标签:efi tip info break 绘制图形 ios def private 项目
一、分数类
#include<iostream> using namespace std; #include"Class.h" int main() { Fraction a; Fraction b(3,4); Fraction e(5); int t1,b1,t2,b2; cout<<"Please enter the number:"<<endl; cout<<"number 1:"; cin>>t1>>b1; cout<<"number 2:"; cin>>t2>>b2; if(b2==0||b1==0) cout<<"no number exist Please try again"<<endl; else { Fraction c(t1,b1); Fraction d(t2,b2); a.Add(c,d); a.Minus(c,d); a.multiply(c,d); a.divid(c,d); a.compare(c,d); } }
class Fraction{ public: Fraction(int T=0,int B=1):top(T),bottom(B){ } Fraction(const Fraction &p):top(p.top),bottom(p.bottom){ } void Add(Fraction &F,Fraction &S); void Minus(Fraction &F,Fraction &S); void multiply(Fraction &F,Fraction &S); void divid(Fraction &F,Fraction &S); void compare(Fraction &F,Fraction &S); int gettop(){return top;} int getbottom(){return bottom;} Fraction(Fraction &xp1,Fraction &xp2); private: int top; int bottom; };
#ifndef FUNCTION_H #define FUNCTION_H #include<iostream> #include"Class.h" using namespace std; void yue(int b1,int b2) { int i; for(i=1;;i++) { if(i%b1==0&&i%b2==0) break; } b1=i/b1; b2=i/b2; if(b1<0) { b1*=-1; b2*=-1; } if(b1==1) cout<<b2<<endl; else cout<<b2<<"/"<<b1<<endl; } void Fraction::Add(Fraction &F,Fraction &S) { int t1=F.gettop(); int b1=F.getbottom(); int t2=S.gettop(); int b2=S.getbottom(); int i,j; for(i=1;;i++) { if(i%b1==0&&i%b2==0) break; } int pb=i; int Pt=(i/b1)*t1+(i/b2)*t2; cout<<"c+d="; if(Pt==0) cout<<0<<endl; else yue(Pt,i); } void Fraction::multiply(Fraction &F,Fraction &S) { int t1=F.gettop(); int p1=F.getbottom(); int t2=S.gettop(); int p2=S.getbottom(); int Pt=t1*t2; int Bt=p1*p2; cout<<"c*d="; yue(Pt,Bt); } void Fraction::divid(Fraction &F,Fraction &S) { int t1=F.gettop(); int p1=F.getbottom(); int t2=S.gettop(); int p2=S.getbottom(); int Pt=t1*p2; int Bt=t2*p1; cout<<"c/d="; if(t1==0||t2==0) cout<<0<<endl; else yue(Pt,Bt); } void Fraction::compare(Fraction &F,Fraction &S) { int N=F.gettop()*S.getbottom()-S.gettop()*F.getbottom(); if(N>0) cout<<F.gettop()<<"/"<<F.getbottom()<<">"<<S.gettop()<<"/"<<S.getbottom()<<endl; else if(N<0) cout<<F.gettop()<<"/"<<F.getbottom()<<"<"<<S.gettop()<<"/"<<S.getbottom()<<endl; else cout<<F.gettop()<<"/"<<F.getbottom()<<"="<<S.gettop()<<"/"<<S.getbottom()<<endl; } void Fraction::Minus(Fraction &F,Fraction &S) { int t1=F.gettop(); int b1=F.getbottom(); int t2=S.gettop(); int b2=S.getbottom(); int i,j; for(i=1;;i++) { if(i%b1==0&&i%b2==0) break; } int pb=i; int Pt=(i/b1)*t1-(i/b2)*t2; cout<<"c-d="; if(Pt==0) cout<<0<<endl; else yue(Pt,i); } #endif
运行截图
二、Graph类的实现
#include <iostream> #include"graph.h" using namespace std; int main() { Graph graph1(‘*‘,5); graph1.draw(); system("pause"); Graph graph2(‘$‘,7); graph2.draw(); return 0; }
#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的指定图形样式 void Graph::draw() { int i,j; for(i=1;i<=size;i++) { for(j=1;j<=size-i;j++) cout<<" "; for(;j<=size+i-1;j++) cout<<symbol; cout<<endl; } }
运行截图
实验总结:
1.在获取分数的分子分母时,因为分子分母是private成员,原本打算用友元函数,中途运行时报错,因为没有看懂,最后还是设置了gettop函数来获取分子分母。
2.在设计算法、函数时要注意个例,比如分数类的四则运算中,分母为0的就是个个例。
3.建项目时以前没有注意到文件名称,导致今天出了不少错误,以后得注意。
4.这次实验也是体会到了项目的优势,编译时有错误可以更加快捷地找出错误之处。
标签:efi tip info break 绘制图形 ios def private 项目
原文地址:https://www.cnblogs.com/qiuqiuwr/p/10739483.html