- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
上机作业讲解课件
高级语言程序设计-2 谭火彬 第四章 上机作业:运算符重载 上机实验3—实验内容 参考Fig 11.12~11.14,完善日期类CDate 对于常量成员函数,加上相应的const约束 重载流输出运算符,并去掉以前的print函数 重载自增运算符++(含前置和后置增),实现日期加1 (选做)重载流输入、加法+(能将日期递增指定的天数) 编写课程类CCourse 数据成员:课程名称name,采用标准库的string类型 数据成员:学分creditHour,int类型 提供必要的get/set函数 重载流输出运算符,输出课程信息 完善学生类CStudent 增加数据成员courseList,类型为CCourse类的指针数组(即 为CCourse *courseList[MAX_SIZE]),表示学生所选所有课程 增加数据成员courseNumber,int类型,表示实际的课程总数 重载流输出,输出学生姓名、生日以及所选的课程信息 编写main函数,测试所要求的功能 定义学生对象,并为其添加几门课程信息 主要要点 1. 日期类的前置和后置自增运算符 2. 课程类的实现 3. 课程指针数组的使用 4. 增加一门课程 5. 删除一门课程 1. 日期类自增运算符 2. 课程类的实现 3. 在学生类中添加指针数组 CCourse *courseList[MAX_SIZE] courseList是指针数组,它的每个成员(courseList[i])都是一个指针类型 courseNumber指学生对象实际所包含课程数量,应在构造函数中初始化为0 关于课程指针数组的使用规则 目标:构造一个学生选课系统 基本思路:初始化一个学生对象,开始时没有课程 采用指针存储课程,在构造学生对象的时候并不构造具体的课程对象 构造学生对象后,可以进行如下操作: 当他选了一门课后,就增加一门课 退选了某课程后,就删除该课程 4. 选课:增加一门课程 courseList是一个指针数组 要增加一门课程,需要新建一个课程对象,并将它的地址存入指针数组 下面增加课程的操作可行吗? 另一个增加课程的方法 两种方式的优缺点 addCourse(const string courseName, int creditHour) 优点:使用直观,简单 缺点:接口不稳定,学生类直接面对课程类的数据成员;当课程类发生变化时,该接口相应的需要变化 addCourse(CCourse *course) 优点:接口稳定,修改课程类成员信息不影响该函数(;支持多态特性);建议使用该方案 缺点:该指针是从外面传入,但在学生类内部需要对该指针进行维护(如释放等操作)(即在不同作用域进行操作),容易出现运行问题 4. 退选:删除一门课程 courseList是一个指针数组 数组是有序的,删除时需要考虑保持数组中元素的顺序 退选的另一个函数原型 下标运算符可以返回课程信息 析构函数中需要释放课程信息 *thbin * C++ CDate CDate::operator ++() { this-nextDay(); return *this; //返回自增后的值 } CDate CDate::operator ++(int) { CDate d(*this); this-nextDay(); return d; //返回自增前的值 } class CCourse { public: CCourse(const string n=, int ch=0) :name(n),creditHour(ch){}//构造函数 virtual ~CCourse(); //析构函数 const string getName() const {return name;} void setName(const string n) {name=n;} int getCreditHour() const {return creditHour;} void setCreditHour(int ch){creditHour=ch;} private: string name; int creditHour; }; #define MAX_SIZE 10 //每个学生最多可选择10门课程 class CStudent{…… private: CCourse *courseList[MAX_SIZE]; int courseNumber; //实际选课门数 }; CStudent CStudent::addCourse (const string courseName, int creditHour){ if(courseNumberMAX_SIZE){ c
您可能关注的文档
最近下载
- 高中地理高三一轮复习 自然地理 地表形态的塑造 大单元学历案 教学设计附双减作业设计(基于新课标教学评一体化).docx VIP
- 中国历代战略思想教程(转发).doc VIP
- Starter Unit1 Hello!26个字母练习题【人教新目标(2024)版七上英语】.docx VIP
- 2025年特色小镇产业发展与社区安全稳定风险评估报告.docx
- 医师定考题库及答案人文.doc
- 消防设施操作员(中级监控)线下实操考核提问要点.pdf VIP
- 苏教版小学三年级科学下册第一单元《植物的一生》每课参考教案汇总(含4个参考教案).doc VIP
- 皖教版五年级上册综合实践活动7.洗衣服(课件).pptx VIP
- 剧本杀完整剧本 致命喷泉(4人封闭).docx VIP
- 2024全国职业院校技能大赛GZ101婴幼儿健康养育照护赛项赛题(技能实操) .docx VIP
文档评论(0)