2.graph 绘图
1类的定义
//类定义 class graph { public: graph (char ch,int n1):single(ch),n(n1){} void draw(); private: char single;int n; };
2类的实现
//类的实现 #include<iostream> #include "graph.hpp" using namespace std; graph graph ('*',5); void graph::draw() { for(int i=1;i<=n;i++) { for(int j=i;j<=n-1;j++) cout<<' '; for(int m=1;m<=2*i-1;m++) cout<<single; cout<<endl; }//打印图案循环 }//函数实现
3、主函数
//主函数 #include <iostream> #include"graph.hpp" using namespace std; int main() { graph graph1('*',10); graph1.draw(); return 0; }
4、程序结果截图

计算分数
1.header头文件
class Fraction
{
public:
Fraction(int a,int b):top(a),bottom(b){};
void show();
void put(int ,int );
friend double add(Fraction &a,Fraction &b);
friend double min(Fraction &a,Fraction &b);
friend double mul(Fraction &a,Fraction &b);
friend double div (Fraction &a,Fraction &b);
friend void cmp(Fraction &a,Fraction & b);
double quzhi();
private:
int top;
int bottom;
};
2.Fraction.cpp
#include"Fraction.hpp"
#include<iostream>
using namespace std;
//输出函数
void Fraction::show()
{
cout<<top<<'/'<<bottom<<endl;
}
//输入函数
void Fraction::put(int a,int b)
{
top=a;
bottom=b;
}
//取值函数
double Fraction::quzhi()
{
double zhi;
zhi=(double)top/(double)bottom;
return zhi;
}
// 加法友元函数
double add(Fraction &a,Fraction &b)
{
double add1;
add1=a.quzhi()+b.quzhi();
cout<<add1<<endl;
return add1;
}
//减法友元函数
double min(Fraction &a,Fraction &b)
{
double min1;
min1=a.quzhi()-b.quzhi();
cout<<min1<<endl;
return min1;
}
//乘法友元函数
double mul(Fraction &a,Fraction &b)
{
double mul1;
mul1=a.quzhi()*b.quzhi();
cout<<mul1<<endl;
return mul1;
}
//除法友元函数
double div(Fraction &a,Fraction &b)
{
double div1;
div1=a.quzhi()/b.quzhi();
cout<<div1<<endl;
return div1;
}
//比较函数
void cmp(Fraction &a,Fraction &b)
{
if(a.quzhi()>b.quzhi())
cout<< "左边的大于右边的"<<endl;
else if(a.quzhi()==b.quzhi())
cout<<"左边的等于右边的"<<endl;
else
cout<<"左边的小于右边的"<<endl;
}
3.main.cpp
#include<iostream>
#include"Fraction.hpp"
using namespace std;
int main()
{
Fraction fra1(1,2);
Fraction fra2(3,4);
fra2.put(3,5);
fra1.show();
add(fra1,fra2);
min(fra1,fra2);
mul(fra1,fra2);
div(fra1,fra2);
cmp(fra1,fra2);
}
//
做的题目多了可能就会有感觉了,问题也没有啥问题。这次作业分了2次在做,第一次的时候是在课后,当时主要解决的是多文件问题,解决了之后尝试着去做第二项,但是我发现用static函数还是friend函数有些问题,然后 friend函数当时只是书上看了一遍,粗浅的记忆了一下知识点,但是细节方面并没有注意,例如::friend add(Fra &a,Fra &b) static add(Fra a,Fra b)一个是引用一个不是,在复制构造函数中也有这样的问题,也是用的引用。为啥??? 然后上了一次课后,有把那些知识点重新看了一遍,心中做到有B数后在做题目就很顺了,这个道理在很多学科上也是一样,当你的基础打牢之后,再去做题目就是不断的从库存中拿东西,并不费事,关键的关键在于前期的学习和积累。
//
浙公网安备 33010602011771号