码迷,mamicode.com
首页 > 其他好文 > 详细

实验四

时间:2018-04-22 20:11:23      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:private   action   stream   names   return   描述   int   nts   ++   

实验四

项目一:

源码:

类的定义:

#ifndef GRAPH_H
#define GRAPH_H

// 类Graph的声明 
class Graph {
    public:
        Graph(char ch, int n);   // 带有参数的构造函数 
        void draw();    // 绘制图形 
    private:
        char symbol;
        int size;
};


#endif

类的实现

// 类graph的实现
 
#include "graph.h" 
#include <iostream>
using namespace std;

// 带参数的构造函数的实现 
Graph::Graph(char ch, int n): symbol(ch), size(n) {
}


// 成员函数draw()的实现
// 功能:绘制size行,显示字符为symbol的指定图形样式 
//       size和symbol是类Graph的私有成员数据 
void Graph::draw() {
    for(int i=1;i<=size;i++)
    {
        for(int k=size-i;k>=0;k--)
        {
            cout<<" ";
        }
        for(int j=0;j<2*i-1;j++)
        {
            if(j<2*i-2)
                cout<<symbol;
            if(j==2*i-2)
                cout<<symbol<<endl;
        }
    }
    // 补足代码,实现「实验4.pdf」文档中展示的图形样式 
}

主函数

#include <iostream>
#include "graph.h"
using namespace std;


int main() {
    Graph graph1(‘*‘,5), graph2(‘$‘,7) ;  // 定义Graph类对象graph1, graph2 
    graph1.draw(); // 通过对象graph1调用公共接口draw()在屏幕上绘制图形 
    graph2.draw(); // 通过对象graph2调用公共接口draw()在屏幕上绘制图形
    
    return 0; 
} 

运行结果

技术分享图片

项目二:

源码:

类的定义

class Fraction{
    public:
        Fraction(int a=0,int b=1 ):top(a),bottom(b){}//构造函数 
        Fraction operator+(const Fraction &a);
        Fraction operator-(const Fraction &b);
        Fraction operator*(const Fraction &c);      
        Fraction operator/(const Fraction &d);//运算符重载函数; 
        void output();  //输出函数 
        void compare(Fraction &a);//比较函数;   
    private:
        int top;//分子; 
        int bottom;//分母; 
};

类的实现

#include"Fraction.h"
#include<iostream>string gon()
#include<cmath>
using namespace std;
Fraction Fraction::operator+(const Fraction &a){
    return Fraction(top*a.bottom+a.top*bottom,a.bottom*bottom);
}
Fraction Fraction::operator-(const Fraction &b){
    return Fraction(top*b.bottom-b.top*bottom,bottom*b.bottom);
}
Fraction Fraction::operator*(const Fraction &c){
    return Fraction(top*c.top,bottom*c.bottom);  
}
Fraction Fraction::operator/(const Fraction &d){
    return Fraction(top*d.bottom,bottom*d.top);
}

void Fraction::output(){
    int t,x,y;
    if(abs(top)>abs(bottom))
        t=abs(bottom);
    else
        t=abs(top);
    for(int i=1;i<t;i++){
        if(top%i==0&&bottom%i==0){
            top/=i;
            bottom/=i;
            i=1;
        }
    }
    if(bottom<0){
        top*=-1;
        bottom*=-1;
    }
    cout<<top<<"/"<<bottom<<endl; 
}

主函数

#include"Fraction.h"
#include<iostream>
using namespace std;
int main(){
    Fraction a(1,-6);
    Fraction b(4,-6);
    Fraction c;
    c=a+b;
    c.output();
    c=a*b;
    c.output(); 
    c=a/b;
    c.output();
    c=a-b;
    c.output();
    return 0;
}

运行结果

技术分享图片

实验感想

对这种方法还要勤加练习,才能更好地掌握!在项目二中的比较函数不知怎么写,望评论的人能指点一二!

实验四

标签:private   action   stream   names   return   描述   int   nts   ++   

原文地址:https://www.cnblogs.com/obamax/p/8908569.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!