#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; } //分数比较大小