Part2
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
#ifndef GRAPH_H #define GRAPH_H // 类Graph的声明 class Graph { public: Graph(char ch, int n); // 带有参数的构造函数 void draw(); // 绘制图形 private: char symbol; int size; }; #endif
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
#include <iostream> #include "graph.h" using namespace std; int main() { Graph graph1('*',5); graph1.draw(); system("pause"); system("cls"); Graph graph2('$',7); graph2.draw(); system("pause"); return 0; }
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
// 类graph的实现 #include "graph.h" #include <iostream> using namespace std; // 带参数的构造函数的实现 Graph::Graph(char ch, int n): symbol(ch), size(n) { } // 成员函数draw()的实现 // 功能:绘制size行,显示字符为symbol的指定图形样式 void Graph::draw() { int i,j,k; for( i=0;i<size;i++) { for( j=0;j<=size-i;j++) cout<<" "; for( k=0;k<2*i-1;k++) cout<<symbol; cout<<endl; } }
Part3
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
#include <iostream> #include "fraction.h" using namespace std; int main() { Fraction a; cout<<"a="; a.show(); Fraction b(3,4); cout<<"b="; b.show(); Fraction c(5); cout<<"c="; c.show(); Fraction d; cout<<"+:"<<endl; d.add(a,b); cout<<"-:"<<endl; d.sub(a,c); cout<<"*:"<<endl; d.mul(b,c); cout<<"/:"<<endl; d.div(c,b); c.com(a); return 0; }
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
#include<iostream> #include"fraction.h" using namespace std; void Fraction::show(){ cout << top << "/" << bottom << endl; } void Fraction::add(Fraction &a, Fraction &b){ fraction c; c.top=a.top*b.bottom+b.top*a.bottom; c.bottom=a.bottom*b.bottom; cout<<"add: "<<c.top<<"/"<<c.bottom<<endl; } void Fraction::sub(Fraction &a, Fraction &b){ int comm,t,r,f1,f2; if(a.bottom<b.bottom) { t=a.bottom; a.bottom=b.bottom; b.bottom=t; } r=a.bottom%b.bottom; while(r!=0) { a.bottom=b.bottom; b.bottom=r; r=a.bottom%b.bottom; } comm=a.bottom*b.bottom/b.bottom; f1=a.top*(comm/a.bottom)-b.top*(comm/b.bottom); f2=comm; cout<<"sub: "<<f1<<"/"<<f2<<endl; } void Fraction::mul(Fraction &a, Fraction &b){ int f1,f2; f1=a.top*b.top; f2=a.bottom*b.bottom; cout<<"mul: "<<f1<<"/"<<f2<<endl; } void Fraction::div(Fraction &a, Fraction &b){ int f1,f2; f1=a.top*b.bottom; f2=b.top*a.bottom; cout<<"div: "<<f1<<"/"<<f2<<endl; } void Fraction::com(Fraction &a, Fraction &b){ int comm,t,r,f1,f2; if(a.bottom<b.bottom) { t=a.bottom; a.bottom=b.bottom; b.bottom=t; } r=a.bottom%b.bottom; while(r!=0) { a.bottom=b.bottom; b.bottom=r; r=a.bottom%b.bottom; } comm=a.bottom*b.bottom/b.bottom; f1=a.top*(comm/a.bottom)-b.top*(comm/b.bottom); if(f1<0) cout<<"com: "<<a.top<<"/"<<a.bottom<<"<"<<b.top<<"/"<<b.bottom<<endl; else if(f1>0) cout<<"com: "<<a.top<<"/"<<a.bottom<<">"<<b.top<<"/"<<b.bottom<<endl; else cout<<"com: "<<a.top<<"/"<<a.bottom<<"="<<b.top<<"/"<<b.bottom<<endl; }
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
#ifndef Fraction_H #define Fraction_H class Fraction { public: Fraction(int i=0, int j=1){ top=i; bottom=j; } void add(Fraction &a, Fraction &b); void sub(Fraction &a, Fraction &b); void mul(Fraction &a, Fraction &b); void div(Fraction &a, Fraction &b); void com(Fraction &a, Fraction &b); void show(); private: int top; int bottom; }; #endif
实验小结
程序运行不出来,改了好几次也不行,不知道是dev不好还是程序本身的问题,最后一道题找公倍数的方法不会简化的办法,所以只能用以前学过的c语言来写。