《C++语言基础》实践项目——运算符重载(二)
来源:互联网 发布:爱q生活网帝国cms源码 编辑:程序博客网 时间:2024/06/17 05:32
返回:贺老师课程教学链接
【项目1-复数类中的运算符重载(续)】
在复数类中的运算符重载基础上
(1)再定义一目运算符 -,-c相当于0-c。
(2)定义Complex类中的<<和>>运算符的重载,实现输入和输出,改造原程序中对运算结果显示方式,使程序读起来更自然。
[参考解答]
【项目2-Time类中的运算符重载(续)】
在Time类中的运算符重载基础上
(1)定义对时间对象的自增和自减一目运算符
//一目运算符的重载CTime operator++(int);//后置++,下一秒CTime operator++();//前置++,下一秒,前置与后置返回值不一样CTime operator--( int);//后置--,前一秒CTime operator--();//前置--,前一秒(2)定义Time类中的<<和>>运算符重载,实现时间的输入输出,改造原程序中对运算结果显示方式,使程序读起来更自然。
[参考解答]
【项目3-分数类中的运算符重载(续)】
在第8周项目3基础上
(1)定义分数的一目运算+和-,分别代表分数取正和求反,将“按位取反运算符”~重载为分数的求倒数运算。
(2)定义分数类中<<和>>运算符重载,实现分数的输入输出,改造原程序中对运算结果显示方式,使程序读起来更自然。
[参考解答]
【项目4-我的向量类】
建立一个向量类MyVector,声明如下,请完成类的定义
class MyVector //定义向量类{public: MyVector(int m); //构造函数,共有m个元素的向量,元素值预置为0 MyVector(const MyVector &v); //复制构造函数 ~MyVector(); //析构函数:释放动态数组所占用的存储空间 friend istream &operator>>(istream &input, MyVector &d); friend ostream &operator<<(ostream &output, const MyVector &d); friend MyVector operator+(const MyVector &d1,const MyVector &d2);//向量相加,对应位置上的元素相加 friend MyVector operator-(const MyVector &d1,const MyVector &d2);//向量相减,对应位置上的元素相减 bool operator==(const MyVector &d);//判断两个矩阵是否相等,即对应位置上的所有元素是否相等private: int *Array; //Array 为动态数组指针,指向向量占用内存的起始地址 int num; //向量中元素个数};int main() { MyVector d1(5),d2(5); cout<<"输入d1——"; cin>>d1; cout<<"输入d2——"; cin>>d2; cout<<"d1="<<d1<<endl; cout<<"d2="<<d2<<endl; cout<<"d1+d2="<<d1+d2<<endl; cout<<"d1-d2="<<d1-d2<<endl; cout<<"d1"<<((d1==d2)?"==":"!=")<<"d2"<<endl; return 0;}[参考解答]
【项目5-方程也是类】
设计一元一次方程类,求形如ax+b=0的方程的解。
例如:输入3x-8=0时,输出的方程的解为x=2.66667;
再如:输入5s+18=0时,输出的方程的解为s=-3.6;
参考界面如下:
参考代码为:
class CEquation{private:double a; // 未知数系数double b; // 常数项char unknown; // 代表未知数的符号public:CEquation(double aa=0,double bb=0);friend istream &operator >> (istream &in,CEquation &e);friend ostream &operator << (ostream &out,CEquation &e);double Solve();char getUnknown();};int main(){CEquation e;cout<<"请输入方程(格式:ax-b=0,a、b为常数,x处是代表未知数的字母):";cin>>e; //在两次测试中,分别输入3x-8=0和50s+180=0cout<<"方程为:"<<e;cout<<"方程的解为:"<<e.getUnknown()<<"="<<e.Solve()<<endl; //对两次测试,分别输出x=...和s=...e.Solve();}[参考解答]
0 0
- 《C++语言基础》实践项目——运算符重载(二)
- 《C++语言基础》实践项目——运算符重载(一)
- 《C++语言基础》实践参考——复数类中的运算符重载(续)
- 《C++语言基础》实践参考——Time类中的运算符重载(续)
- 《C++语言基础》实践参考——分数类中的运算符重载(续)
- 第九周 课后实践:项目二——Time类中的运算符重载(续)
- 《C++语言基础》实践参考——Time类中的运算符重载
- 《C++语言基础》实践参考——分数类中的运算符重载
- 第八周 课后实践:项目二——Time类中的运算符重载
- C++——运算符重载(二)
- 第九周项目二——Time类中的运算符重载(利用输入输出运算符重载)
- 第十三周实践项目1————分数类运算符重载(3)
- 第十三周实践项目1————分数类运算符重载(4)
- 第八周上机实践项目——实现复数类中的运算符重载(2)
- 第八周上机实践项目——实现复数类中的运算符重载(3)
- 第八周上机实践项目3——分数类的运算符重载(1)
- 第八周上机实践项目3——分数类中的运算符重载(2)
- 第八周 课后实践:项目三——分数类中的运算符重载(1)
- c#添加picturebox自定义可选图片按键
- python下通过串口发送结构体数据
- 协同过滤推荐算法
- uva11038 How Many O's? 数位dp
- 排序算法的简单总结
- 《C++语言基础》实践项目——运算符重载(二)
- 移动应用统计的基本原理及 UMID 方案解析
- (转)给刚毕业的大学生和刚入门的程序员的忠告及图书推荐
- JDK的动态代理为什么必须要使用接口与使用CGLIB动态代理
- c++引用参数与引用返回值
- SQL数据库通用数据导出工具(一)
- Android atomic
- 工作日志2015-04-27
- windows内存详解(一) 全面介绍Windows内存管理机制及C++内存分配实例