类和对象(2)

#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 Graph {
    public:
        Graph(char ch, int n);   // 带有参数的构造函数 
        void draw();     // 绘制图形 
    private:
        char symbol;
        int size;
};
// 类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() {
    int i,j;
    for(i=0;i<size;i++){
     for(j=1;j<=size-i;j++)
     cout<<" ";
     for(j=1;j<=2*i-1;j++)
     cout<<symbol;
     cout<<endl;
}
cout<<endl;
}

Fraction

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

int main ()
{

    int a,b,c,d;
    cout<<"输入第一个数的分子a与分母b:"<<endl; 
    cin>>a>>b;
    Fraction p4(a,b);
    cout<<"输入第二个数的分子c与分母d:"<<endl;
    cin>>c>>d;
    Fraction p5(c,d);
    
    cout<<endl;
    p4.compare(p5);
    cout<<"输入想要的计算方式:"<<endl;
    char x;
    cin>>x;
    switch(x)
    {
        case '+':
           p4.add(p5);
          break;
        case '-':
          p4.minus(p5);
          break;
        case '*':
          p4.multiply(p5);
          break;    
        case '/':
          p4.eliminate(p5);
          break;
        default:
         cout<<"输错了。"<<endl;
         break;     
     } 
    return 0; 
}
//类Fraction的声明 
class Fraction{
    public:
        Fraction(int a=0,int b=1):top(a),bottom(b){}
        void add(Fraction &p);  //
        void minus(Fraction &p);  //
        void multiply(Fraction &p);  //
        void eliminate(Fraction &p);  //
        void compare (Fraction &p); //比较两个分数 
        void show();
    private:
        int top;
        int bottom;
};
#include<iostream>
#include"Fraction.h"

using namespace std;

int yueshu(int a,int b){ //求最大公约数 
    int temp;
    for(int i=1;i<=a&&i<=b;i++){
        if(a%i==0&&b%i==0){
            temp=i;
        }
    }
    return temp;
}

void Fraction::add(Fraction &p){
    Fraction q;
    q.top=top*p.bottom+bottom*p.top;
    q.bottom=bottom*p.bottom;
    cout<<q.top/yueshu(q.top,q.bottom)<<"/"<<q.bottom/yueshu(q.top,q.bottom)<<endl;    
}   //分数相加 

void Fraction::minus(Fraction &p){
    Fraction q;
    q.top=top*p.bottom-bottom*p.top;
    q.bottom=bottom*p.bottom;
    cout<<q.top/yueshu(q.top,q.bottom)<<"/"<<q.bottom/yueshu(q.top,q.bottom)<<endl;    
}  //分数相减

void Fraction::multiply(Fraction &p){
    Fraction q;
    q.top=top*p.top;
    q.bottom=bottom*p.bottom;
    cout<<q.top/yueshu(q.top,q.bottom)<<"/"<<q.bottom/yueshu(q.top,q.bottom)<<endl;    
}  //分数相乘

void Fraction::eliminate(Fraction &p) {
    Fraction q;
    q.top=top*p.bottom;
    q.bottom=bottom*p.top;
    cout<<q.top/yueshu(q.top,q.bottom)<<"/"<<q.bottom/yueshu(q.top,q.bottom)<<endl;    
}  //分数相除 

void Fraction::compare(Fraction &p)
{
    if(top*p.bottom>bottom*p.top)
    cout<<"第一个数大于第二个数。"<<endl; 
    else if(top*p.bottom<bottom*p.top)
    cout<<"第一个数大于第二个数。"<<endl;
    else if(top*p.bottom==bottom*p.top) 
    cout<<"两个数一样大。"<<endl; 
}  //分数比较大小 

猜你喜欢

转载自www.cnblogs.com/a18851962010/p/8922730.html