课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759,内有完整教学方案及资源链接

【程序阅读】阅读程序“简单C++学生信息管理系统”,找出其中出现构造函数、友元函数、运算符重载、静态数成员语法现象出现的位置,仔细体会其用法,在以后的设计中能够灵活应用有关方法和技巧

项目1-3直接复制第8周的代码,加入要求的运算符重载定义后,作为第9周的任务另外发博文。
【项目1】在第8周项目1基础上
(1)再定义一目运算符 -,-c相当于0-c。
(2)定义Complex类中的<<和>>运算符的重载,实现输入和输出,改造原程序中对运算结果显示方式,使程序读起来更自然。

【项目2】在第8周项目2基础上
(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个元素的向量,元素值预置为0MyVector(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();
}
==================== 迂者 贺利坚 CSDN博客专栏=================
|== IT学子成长指导专栏 专栏文章的分类目录(不定期更新) ==|
|== C++ 课堂在线专栏  贺利坚课程教学链接(分课程年级) ==|
|== 我写的书——《逆袭大学——传给IT学子的正能量》    ==|
===== 为IT菜鸟起飞铺跑道,和学生一起享受快乐和激情的大学 =====

2013级C++第9周(春)项目——运算符重载(二)相关推荐

  1. C++第15周(春)项目2 - 用文件保存的学生名单

    课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759.内有完整教学方案及资源链接 本程序中须要的相关文件.请到http://pa ...

  2. 2015级C++第3周实践项目

    [项目1:个人所得税计算器] 编写选择结构程序,输入个人月收入总额,计算出他本月应缴税款和税后收入(计算办法见附:关于个人所得税的有关背景知识). (1)自选if语句的嵌套或/和switch语句完成程 ...

  3. 2015级C++第14周实践项目 模板

    [项目1-排序函数模板] 已知 void Sort(int a[],int size); void Sort(double a[],int size); 是一个函数模板的两个实例,其功能是将数组a中的 ...

  4. 2015级C++第2周实践项目

    [项目1 - 宣告"主权"] 你已经是CSDN博客主了,用IT人特有的方式,编一段程序.在屏幕上输出你想说的话.按要求公布博文,作为我们的开山之作. [项目2 - 胖子不想说体重] ...

  5. C++第9周(春)项目5 - 一元一次方程类

    课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759,内有完整教学方案及资源链接 [项目5]设计一元一次方程类.求形如ax+b= ...

  6. 2013级C++第18周——收官来战

    课程主页在:http://blog.csdn.net/sxhelijian/article/details/11890759 Problem A: 1-n之间能够被m整除的数的和 Descriptio ...

  7. C++程序设计课程主页-2013级

    本课2014级的方案更完整,且有完整视频,请有需求的人士,移步到---->2014C++ 我和我的新一级学生在此开始"C++程序设计"课程的学习.借助于博客,我们将继续将&q ...

  8. 地大计算机学院田甜,【学霸画像】第七十一期—记计算机学院2013级本科生詹才韬...

    编者按:詹才韬,男,中国地质大学(武汉)2013级计算机学院学生,专业计算机科学与技术,平均绩点4.07,连续三年专业第一(1/122).ESS班成员,托福103(口语26),GRE 158+167+ ...

  9. 计算机培训研修心语,学子榜样 | 2018级国家励志奖学金程春旭:不忘初心,砥砺前行...

    原标题:学子榜样 | 2018级国家励志奖学金程春旭:不忘初心,砥砺前行 个人简介 程春旭,女,河北衡水人,系华中师范大学计算机学院2018级本科生,中国共青团员,学分绩排名年级二十五(共计两百人), ...

最新文章

  1. 《新一代城市大脑建设与发展》专家研讨会在京举办
  2. python文本数据增强_CVPR2020场景文字数据增强(纯python实现)
  3. varnish 缓存php,Varnish Cache不会使用会话缓存PHP除非后端TTL被更改
  4. 虚函数、纯虚函数、虚函数与析构函数
  5. 引用js或css后加?v= 版本号的用法
  6. 数据分析TB级别数据量大了怎么办,不会代码模型训练怎么办?
  7. SpringBoot—分层结构
  8. summit_Linux注册简介开始,Open Hardware Summit寻求提交,等等
  9. fiddler模拟服务器响应,fiddler模拟返回响应数据
  10. 互联网大牛们的电脑桌面,佩服!
  11. 关于ibatis中sqlMap配置文件中使用到,的处理
  12. java nio 追加写文件_java.nio.file读写文件
  13. pyqt5 python qlineedit信号_PyQt5实现QLineEdit添加clicked信号的方法
  14. BUUCTF:FLAG
  15. HTC Vive开发笔记之手柄控制
  16. anaconda安装python3.6_Windows10配置Anaconda+Python3.6+TensorFlow+PyCharm
  17. Unity 实现2D地面挖洞!涂抹地形(碰撞部分,方法一)
  18. win7查看隐藏文件_u盘删除文件怎么恢复?
  19. 使用计算机的场所和用途,天天在使用计算机,很多东西我竟然不知道!
  20. 国庆第七天的一些杂感

热门文章

  1. IT里的精英美女!(转)
  2. 新手购买阿里云服务器完整版图文教程
  3. 【计算机网络】chapter4延河笔记-介质访问控制
  4. C++实现英文字母菱形输出
  5. 多设备智能语音交互—小爱协同唤醒
  6. CSS样式 float浮动用法
  7. Java生成MD5的两种方式
  8. Cannot retrieve repository metadata (repomd.xml) for repository:epel
  9. 《你是我的荣耀》——怎么可以这么甜?
  10. 【高等数学】定积分2