《2015年C课程设计题目.doc》由会员分享,可在线阅读,更多相关《2015年C课程设计题目.doc(12页珍藏版)》请在金锄头文库上搜索。
1、基本题目(每人都做)实验目的1 掌握类的定义和使用。2 掌握类的定义和对象的声明。3 复习具有不同访问属性的成员的访问方式。4 观察构造函数和析构函数的执行过程。5 学习类的聚集使用方法。6 使用VC+的Debug调试功能观察程序流程,跟踪观察类的构造函数,析构函数、成员函数的执行顺序。7 使用VC+的debug调试:单步执行、设置断点、观察变量值。1 实验任务1 定义一个CPU类,包含等级(rank)、频率(frequency),电压(voltage)等属性,有两个公有成员函数run、stop。其中,rank为枚举类型CPU_Rank,定义为enum CPU_RankP1=1,P2,P3,P
2、4,P5,P6,P7,frequency为单位是MHz的整型数,voltage为浮点型的电压值。观察构造函数和构构函数的调用顺序。2 定义一个简单的Computer类,有数据成员芯片(cpu), 内存(ram)、光驱(cdrom)等等,有两个公有成员函数run、stop。cpu为CPU类的一个对象,ram为RAM类的一个对象,cdrom为CDROM类的一个对象,定义并实现这个类。3 (选做)设计一个用于人事管理的People(人员)类。考虑到通用性,这里只抽象出所有类型人员都具有的属性;number(编号)、sex(性别)、birthday(出生日期)、id(身份证号)等等。其中“出生日期”定
3、义为一个“日期”类内嵌子对象。用成员函数实现对人员信息的录入和显示。要求包括:构造函数和析构函数、内联成员函数、聚集。 2 实验步骤1 首先定义枚举类型CPU_Rank,例如enum CPU_RankP1=1,P2,P3,P4,P5,P6,P7,再定义CPU类,包含等级(rank)、频率(frequency),电压(voltage)等私有数据成员,定义成员函数run、stop,用来输出提示信息,在构造函数和析构函数中也可以输出提示信息。在主程序中定义一个CPU的对象,调用其成员函数,观察类对象的构造与析构顺序,以及成员函数的调用。程序名:lab4_1.cpp。2 使用debug调试功能观察程序
4、lab3_1.cpp的运行流程,跟踪观察类的构造函数、析构函数、成员函数的执行顺序。参考程序如下:/lab3_1.cpp#include enum CPU_Rank P1=1,P2,P3,P4,P5,P6,P7;class CPUprivate:CPU_Rank rank;int frequentcy;float voltage;public:CPU (CPU_Rank r, int f, float v)rank=r;frequentcy=f;voltage=v;cout”构造了一个CPU!”endl;CPU( ) cout”析构了一个CPU!” endl;CPU_Rank GetRank
5、( ) const return rank;int GetFrequency ( ) const return frequentcy;float GetVoltage ( ) const return voltvage;void SetRank (CPU_Rank r) rank=r;void SetFrequency (int f ) frequentcy=f;void SetVoltage (float v ) voltage=vvoid Run ( ) cout ”CPU 开始运行!”endl;void Stop ( ) cout ”CPU 停止运行!”endl;void main (
6、)CPU a (P6,300,2.8);a. Run ( );a. Stop ( );3 调试操作步骤如下:(1) 单击Build | Start Debug | Step Into命令,或按下快捷键F11,系统进入单步执行状态,程序开始运行,一个DOS窗口出现,此时Visual Studio 中光标停在main ( )函数的入口处;(2) 从Debug菜单或Debug工具栏中单击Step Over,此时,光标下移,程序准备执行CPU对象的初始化;(3) 单击Step Into,程序准备执行CPU类的构造函数;(4) 连续单击Step Over,观察构造函数的执行情况,直到执行完构造函数,程序
7、回到主函数;(5) 此时程序准备执行CPU对象的run( )函数,单击Step Into,程序进入run ( )成员函数,连续单击Step Over,直到回到main ( )函数;(6) 继续执行程序,参照上述的方法,观察程序的执行顺序,加深对类的构造函数、析构函数、成员函数的执行顺序的认识;(7) 再试试Debug菜单栏中别的菜单项,熟悉Debug的各种方法。4 首先定义CPU类(可使用第2题中的CPU类)、RAM类、CDROM类。再定义Computer类;定义私有数据成员cpu、ram、cdrom,定义公在成员函数run、stop,可在其中输出提示信息。在主程序中定义一个Computer的
8、对象,调用其成员函数,观察类对象及其成员变量的构造与析构顺序,以及成员函数的调用。程序名:lab3_2.cpp。5 使用debug调试功能观察lab3_2.cpp程序的运行流程,跟踪观察类的构造函数、析构函数、成员函数的执行顺序,特别注意观察成员变量的构造与析构顺序。6 使用debug调试功能观察lab3_2.cpp程序的运行中数据成员的值。3 思考题 (1) 不同访问属性的成员访问方式。(2) 说明构造函数和析构函数的调用顺序。从下列题目中每人选1题。供选择的C+语言程序课程设计题目题目1:年历显示。功能要求:(1) 输入一个年份,输出是在屏幕上显示该年的日历。假定输入的年份在1940-20
9、40年之间。(2) 输入年月,输出该月的日历。(3) 输入年月日,输出距今天还有多少天,星期几,是否是公历节日。题目2:小学生测验面向小学12年级学生,随机选择两个整数和加减法形成算式要求学生解答。功能要求:(1)电脑随机出10道题,每题10分,程序结束时显示学生得分;(2)确保算式没有超出12年级的水平,只允许进行50以内的加减法,不允许两数之和或之差超出050的范围,负数更是不允许的;(3)每道题学生有三次机会输入答案,当学生输入错误答案时,提醒学生重新输入,如果三次机会结束则输出正确答案;(4)对于每道题,学生第一次输入正确答案得10分,第二次输入正确答案得7分,第三次输入正确答案得5分
10、,否则不得分;(5)总成绩90以上显示“SMART”,80-90显示“GOOD”,70-80显示“OK”,60-70显示“PASS”,60以下“TRY AGAIN”。题目3 运动会比赛计分系统要求:初始化输入:N-参赛学校总数,M-男子竞赛项目数,W-女子竞赛项目数各项目名次取法有如下几种:取前5名:第一名得分7分,第二名得分5,第三名得分3,第四名得分2,第五名得分1;取前3名:第一名得分5,第二名得分3,第三名得分2;功能要求:(1)系统以菜单方式工作(2)由程序提醒用户填写比赛结果,输入各项目获奖运动员信息。(3)所有信息记录完毕后,用户可以查询各个学校的比赛成绩(4)查看参赛学校信息和
11、比赛项目信息等。题目4:学生学籍管理系统(2人)系统主要功能描述(可自己增加或修改部分功能):1、设计一个学生类Student,包括姓名,学号,性别,籍贯,年龄,出生日期和住址,其中出生日期定义为一个日期类(具有属性:year(年),month(月),date(日)内嵌子对象。2、具有数据的录入、显示、保存、查询(按学号或姓名查询)、修改和删除功能。3、对Student类重载运算符和运算符,运算符判断两个Student类对象的id属性是否相等;运算符实现Student类对象的赋值操作。4、对给出的程序源代码要给出各部分的详细注释。5、自己根据能力及需要添加相应功能模块,增强模拟系统功能。更高要
12、求:用数据文件存放学生的学籍,可对学生学籍进行注册,登录,修改,删除,查找,统计,学籍变化等操作。功能要求:(1) 系统以菜单方式工作。(2) 登记学生的学号,姓名,性别,年龄,籍贯,系别,专业,班级;修改已知学号的学生信息;(3) 删除已知学号的学生信息;(4) 查找已知学号的学生信息;(5) 按学号,专业输出学生籍贯表。(6) 查询学生学籍变化,比如入学,转专业,退学,降级,休学,毕业。题目5:排班系统学校实验楼有7名保安人员:钱、赵、孙、李、周、吴、陈。由于工作需要进行轮休制度,一星期中每人休息一天。预先让每一个人选择自己认为合适的休息日。请编制程序,打印轮休的所有可能方案。当然使每个人
13、都满意,例如每人选择的休息日如下: 钱:星期一、星期六赵:星期二、星期四 孙:星期三、星期日 李:星期五 周:星期一、星期四、星期六 吴:星期二、星期五 陈:星期三、星期六、星期日 运行结果: Solution: 1 赵 钱 孙 李 周 吴 陈 = 星期四 星期一 星期三 星期五 星期六 星期二 星期日 Solution: 2 赵 钱 孙 李 周 吴 陈 = 星期四 星期一 星期日 星期五 星期六 星期二 星期三 Solution: 3 赵 钱 孙 李 周 吴 陈 = 星期四 星期六 星期三 星期五 星期一 星期二 星期日 Solution: 4 赵 钱 孙 李 周 吴 陈 = 星期四 星期六
14、 星期日 星期五 星期一 星期二 星期三 题目6:通讯录程序设计设计一个实用的小型通讯录程序,具有添加,查询和删除功能。由姓名,籍贯,电话号码1,电话号码2,电子邮箱组成,姓名可以由字符和数字混合编码。电话号码可由字符和数字组成。实现功能:(1)系统以菜单方式工作(2)信息录入功能 (3)信息浏览功能 (4)信息查询功能 (5)信息修改功能(6)系统退出功能 题目7:学生选课系统假定有n门课程,每门课程有课程编号,课程名称,课程性质,学时,授课学时,实验或上机学时,学分,开课学期等信息,学生可按要求(如总学分不得少于15)自由选课。试设计一个选修课程系统,使之能提供以下功能: (1)系统以菜单方式工作 (2)课程信息和学生选课信息录入功能(课程信息用文件保存) (3)课程信息浏览功能 (4)查询功能 (5)按学分查询(6)某门课程学生选修情况(可选项)题目8:机房收费管理