C课程设计题目.docx
- 文档编号:10629726
- 上传时间:2023-02-22
- 格式:DOCX
- 页数:20
- 大小:26.25KB
C课程设计题目.docx
《C课程设计题目.docx》由会员分享,可在线阅读,更多相关《C课程设计题目.docx(20页珍藏版)》请在冰豆网上搜索。
C课程设计题目
封面
作者:
PanHongliang
仅供个人学习
基本题目(每人都做)
实验目的
1.掌握类的定义和使用。
2.掌握类的定义和对象的声明。
3.复习具有不同访问属性的成员的访问方式。
4.观察构造函数和析构函数的执行过程。
5.学习类的聚集使用方法。
6.使用VC++的Debug调试功能观察程序流程,跟踪观察类的构造函数,析构函数、成员函数的执行顺序。
7.使用VC++的debug调试:
单步执行、设置断点、观察变量值。
1.实验任务
1.定义一个CPU类,包含等级(rank)、频率(frequency),电压(voltage)等属性,有两个公有成员函数run、stop。
其中,rank为枚举类型CPU_Rank,定义为enumCPU_Rank{P1=1,P2,P3,P4,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(身份证号)等等。
其中“出生日期”定义为一个“日期”类内嵌子对象。
用成员函数实现对人员信息的录入和显示。
要求包括:
构造函数和析构函数、内联成员函数、聚集。
2.实验步骤
1.首先定义枚举类型CPU_Rank,例如enumCPU_Rank {P1=1,P2,P3,P4,P5,P6,P7}, 再定义CPU类,包含等级(rank)、频率(frequency),电压(voltage)等私有数据成员,定义成员函数run、stop,用来输出提示信息,在构造函数和析构函数中也可以输出提示信息。
在主程序中定义一个CPU的对象,调用其成员函数,观察类对象的构造与析构顺序,以及成员函数的调用。
程序名:
lab4_1.cpp。
2.使用debug调试功能观察程序lab3_1.cpp的运行流程,跟踪观察类的构造函数、析构函数、成员函数的执行顺序。
参考程序如下:
//lab3_1.cpp
#include
enumCPU_Rank{P1=1,P2,P3,P4,P5,P6,P7};
classCPU
{
private:
CPU_Rankrank;
intfrequentcy;
floatvoltage;
public:
CPU(CPU_Rankr,intf,floatv)
{
rank=r;
frequentcy=f;
voltage=v;
cout<<”构造了一个CPU!
”< } ~CPU(){cout<<”析构了一个CPU! ”< CPU_RankGetRank()const{returnrank;} intGetFrequency()const{returnfrequentcy;} floatGetVoltage()const{returnvoltvage;} voidSetRank(CPU_Rankr){rank=r;} voidSetFrequency(intf){frequentcy=f;} voidSetVoltage(floatv){voltage=v} voidRun(){cout<<”CPU开始运行! ”< voidStop(){cout<<”CPU停止运行! ”< }; voidmain() { CPUa(P6,300,2.8); a.Run(); a.Stop(); } 3.调试操作步骤如下: (1)单击Build|StartDebug|StepInto命令,或按下快捷键F11,系统进入单步执行状态,程序开始运行,一个DOS窗口出现,此时VisualStudio中光标停在main()函数的入口处; (2)从Debug菜单或Debug工具栏中单击StepOver,此时,光标下移,程序准备执行CPU对象的初始化; (3)单击StepInto,程序准备执行CPU类的构造函数; (4)连续单击StepOver,观察构造函数的执行情况,直到执行完构造函数,程序回到主函数; (5)此时程序准备执行CPU对象的run()函数,单击StepInto,程序进入run()成员函数,连续单击StepOver,直到回到main()函数; (6)继续执行程序,参照上述的方法,观察程序的执行顺序,加深对类的构造函数、析构函数、成员函数的执行顺序的认识; (7)再试试Debug菜单栏中别的菜单项,熟悉Debug的各种方法。 4.首先定义CPU类(可使用第2题中的CPU类)、RAM类、CDROM类。 再定义Computer类;定义私有数据成员cpu、ram、cdrom,定义公在成员函数run、stop,可在其中输出提示信息。 在主程序中定义 一个Computer的对象,调用其成员函数,观察类对象及其成员变量的构造与析构顺序,以及成员函数的调用。 程序名: lab3_2.cpp。 5.使用debug调试功能观察lab3_2.cpp程序的运行流程,跟踪观察类的构造函数、析构函数、成员函数的执行顺序,特别注意观察成员变量的构造与析构顺序。 6.使用debug调试功能观察lab3_2.cpp程序的运行中数据成员的值。 3.思考题 (1)不同访问属性的成员访问方式。 (2)说明构造函数和析构函数的调用顺序。 从下列题目中每人选1题。 供选择的C++语言程序课程设计题目 题目1: 年历显示。 功能要求: (1)输入一个年份,输出是在屏幕上显示该年的日历。 假定输入的年份在1940-2040年之间。 (2)输入年月,输出该月的日历。 (3)输入年月日,输出距今天还有多少天,星期几,是否是公历节日。 题目2: 小学生测验 面向小学1~2年级学生,随机选择两个整数和加减法形成算式要求学生解答。 功能要求: (1)电脑随机出10道题,每题10分,程序结束时显示学生得分; (2)确保算式没有超出1~2年级的水平,只允许进行50以内的加减法,不允许两数之和或之差超出0~50的范围,负数更是不允许的; (3)每道题学生有三次机会输入答案,当学生输入错误答案时,提醒学生重新输入,如果三次机会结束则输出正确答案; (4)对于每道题,学生第一次输入正确答案得10分,第二次输入正确答案得7分,第三次输入正确答案得5分,否则不得分; (5)总成绩90以上显示“SMART” 80-90显示“GOOD”,70-80显示“OK”,60-70显示“PASS”,60以下“TRYAGAIN” 。 题目3运动会比赛计分系统 要求: 初始化输入: N-参赛学校总数,M-男子竞赛项目数,W-女子竞赛项目数 各项目名次取法有如下几种: 取前5名: 第一名得分7分,第二名得分5,第三名得分3,第四名得分2,第五名得分1;取前3名: 第一名得分5,第二名得分3,第三名得分2; 功能要求: (1)系统以菜单方式工作 (2)由程序提醒用户填写比赛结果,输入各项目获奖运动员信息。 (3)所有信息记录完毕后,用户可以查询各个学校的比赛成绩 (4)查看参赛学校信息和比赛项目信息等。 题目4: 学生学籍管理系统(2人) 系统主要功能描述(可自己增加或修改部分功能): 1、设计一个学生类Student,包括姓名,学号,性别,籍贯,年龄,出生日期和住址,其中"出生日期"定义为一个"日期"类(具有属性: year(年),month(月),date(日))内嵌子对象。 2、具有数据的录入、显示、保存、查询(按学号或姓名查询)、修改和删除功能。 3、对Student类重载"=="运算符和"="运算符,"=="运算符判断两个Student类对象的id属性是否相等;"="运算符实现Student类对象的赋值操作。 4、对给出的程序源代码要给出各部分的详细注释。 5、自己根据能力及需要添加相应功能模块,增强模拟系统功能。 更高要求: 用数据文件存放学生的学籍,可对学生学籍进行注册,登录,修改,删除,查找,统计,学籍变化等操作。 功能要求: (1)系统以菜单方式工作。 (2)登记学生的学号,姓名,性别,年龄,籍贯,系别,专业,班级;修改已知学号的学生信息; (3)删除已知学号的学生信息; (4)查找已知学号的学生信息; (5)按学号,专业输出学生籍贯表。 (6)查询学生学籍变化,比如入学,转专业,退学,降级,休学,毕业。 题目5: 排班系统 学校实验楼有7名保安人员: 钱、赵、孙、李、周、吴、陈。 由于工作需要进行轮休制度,一星期中每人休息一天。 预先让每一个人选择自己认为合适的休息日。 请编制程序,打印轮休的所有可能方案。 当然使每个人都满意,例如每人选择的休息日如下: 钱: 星期一、星期六 赵: 星期二、星期四 孙: 星期三、星期日 李: 星期五 周: 星期一、星期四、星期六 吴: 星期二、星期五 陈: 星期三、星期六、星期日 运行结果: Solution: 1 赵钱孙李周吴陈 ============================================================= 星期四星期一星期三星期五星期六星期二星期日 Solution: 2 赵钱孙李周吴陈 ============================================================= 星期四星期一星期日星期五星期六星期二星期三 Solution: 3 赵钱孙李周吴陈 ============================================================= 星期四星期六星期三星期五星期一星期二星期日 Solution: 4 赵钱孙李周吴陈 ============================================================= 星期四星期六星期日星期五星期一星期二星期三 题目6: 通讯录程序设计 设计一个实用的小型通讯录程序,具有添加,查询和删除功能。 由姓名,籍贯,电话号码1,电话号码2,电子邮箱组成,姓名可以由字符和数字混合编码。 电话号码可由字符和数字组成。 实现功能: (1)系统以菜单方式工作 (2)信息录入功能 (3)信息浏览功能 (4)信息查询功能 (5)信息修改功能 (6)系统退出功能 题目7: 学生选课系统 假定有n门课程,每门课程有课程编号,课程名称,课程性质,学时,授课学时,实验或上机学时,学分,开课学期等信息,学生可按要求(如总学分不得少于15)自由选课。 试设计一个选修课程系统,使之能提供以下功能: (1)系统以菜单方式工作 (2)课程信息和学生选课信息录入功能(课程信息用文件保存) (3)课程信息浏览功能 (4)查询功能 (5)按学分查询 (6)某门课程学生选修情况(可选项) 题目8: 机房收费管理系统 (1)输入功能: 输入30名学生的学号、班级、姓名、上机起始时间。 (2)计算功能: 计算每个下机学生的上机费用,每小时1元。 (上机费用=上机时间*1.0/h,不足一小时按一小时计算) (3)查询功能: 按条件(班级、学号、姓名)显示学生的上机时间。 (4)机器使用情况的显示(显示方式不限但要一目了然) 题目9: 班级成绩管理系统(2人) 对一个有N个学生的班级,每个学生有M门课程。 该系统实现对班级成绩的录入、显示、修改、排序、保存等操作的管理。 功能要求: (1)本系统采用一个结构体数组,每个数据的结构应当包括: 学号、姓名、M门课程名称。 (2)本系统显示这样的菜单: 请选择系统功能项: a、成绩录入 b、成绩显示 c、成绩保存 d、成绩排序 e、成绩修改(要求先输入密码) f、成绩统计 1)显示每门课程成绩最高的学生的基本信息 2)显示每门课程的平均成绩 3)显示超过某门课程平均成绩的学生人数 g、退出系统 (3)执行一个具体的功能之后,程序将重新显示菜单。 (4)将学生成绩保存到文件中。 题目10: 机房机位预定系统 20台机器,编号1到20,从早八点到晚八点。 两小时一个时间段,每次可预定一个时间段。 功能要求: (1)系统以菜单方式工作 (2)查询,根据输入时间,输出机位信息。 (3)机位预定,根据输入的时间查询是否有空机位,若有则预约,若无则提供最近的时间段,另: 若用户在非空时间上机,则将用户信息列入等待列表。 (4)退出预定,根据输入的时间,机器号撤销该事件的预定! (5)查询是否有等待信息,若有则提供最优解决方案(等待时间尽量短),若无则显示提示信息。 题目11: 班级档案管理系统 对一个有N个学生的班级,通过该系统实现对该班级学生的基本信息进行录入、显示、修改、删除、保存等操作的管理。 功能要求: (1)本系统采用一个包含N个数据的结构体数组,每个数据的结构应当包括: 学号、姓名、性别、年龄、备注。 (2)本系统显示这样的菜单: 请选择系统功能项: a学生基本信息录入 b学生基本信息显示 c学生基本信息保存 d学生基本信息删除 e学生基本信息修改(要求先输入密码) f学生基本信息查询 (1)按学号查询 (2)按姓名查询 (3)按性别查询 (4)按年龄查询 g.退出系统 (3)执行一个具体的功能之后,程序将重新显示菜单。 (4)将学生基本信息保存到文件中。 (5)进入系统之前要先输入密码。 题目12: 职工工资管理系统 功能设计要求 1.输入记录: 将每一个职工的姓名、ID号以及基本工资、职务工资、岗位津贴、医疗保险、公积金的数据作为一个记录。 该软件能建立一个新的数据文件或给已建立好的数据文件增加记录。 2.显示记录: 根据用户提供的记录或者根据职工姓名显示一个或几个职工的各项工资和平均工资。 3.修改记录: 可以对数据文件的任意记录的数据进行修改并在修改前后对记录内容进行显示。 4.查找记录: 可以对数据文件的任意记录的数据进行查找并在查找前后对记录内容进行显示。 5.删除记录: 可删除数据文件中的任一记录。 6.统计: (A)计算各项工资平均工资及总工资,(B)统计符合指定条件(如职工工资前三项之和在3000元以上、3000~2000元、2000~1000元)以内的工资职工人数及占总职工人数的百分比。 (C)按字符表格形式打印全部职工工资信息表及平均工资(包括各项总的平均工资)。 7.保存数据文件功能。 例如: 职工工资信息表 ID号姓名基本工资职务工资津贴医疗保险-公积金-总工资 01张望12867941981091352034 02李明1185628135941141740 03王小民8954389864731294 04张效章13508682101161502162 05彭山7453988461681098 各项平均工资1092.2625.214588.8108 题目13: 工资纳税系统 个人所得税每月交一次,底线是1600元/月,也就是超过了1600元的月薪才开始计收个人所得税。 个人所得税税率表一(工资、薪金所得适用) 级数----------全月应纳税所得额----------税率(%) 1--------------不超过500元的--------------------------5 2----------超过500元至2000元的部分------------10 3----------超过2000元至5000元的部分----------15 4----------超过5000元至20000元的部分---------20 5----------超过20000元至40000元的部分-------25 6----------超过40000元至60000元的部分-------30 7----------超过60000元至80000元的部分-------35 8----------超过80000元至100000元的部分------40 9----------超过100000元的部分---------------------45 表中的应纳税所得额是指以每月收入额减除1600元后的余额。 例如: 计算为: 2500-1600=900 应纳个人所得税额=500×5%+400×10%=65 再比如: 我们用一个大额工资计算,25000元 应纳税所得额=25000-1600=23400 应纳个人所得税税额=500×5%+1500×10%+3000×15%+15000×20%+3400×25%=4475 要求: 输入工资计算出纳税金额。 题目14: 歌手比赛系统 对一次歌手比赛的成绩进行管理,功能要求: 1、输入每个选手的数据包括编号、姓名、十个评委的成绩,根据输入计算出总成绩和平均成绩(去掉最高分,去掉最低分)。 2、显示主菜单如下: 1)输入选手数据2)评委打分3)成绩排序(按平均分)4)数据查询5)追加学生数据6)写入数据文件7)退出系统。 题目15: 用英文单词模拟数学计算 读入两个小于100的正整数A和B,计算A+B。 需要注意的是: A和B的每一位数字由对应的英文单词给出。 具体的输入输出格式规定如下: 输入格式: 测试输入包含若干测试用例,每个测试用例占一行,格式为"A + B =",相邻两字符串有一个空格间隔。 当A和B同时为zero时输入结束,相应的结果不要输出。 输出格式: 对每个测试用例输出1行,即A+B的值。 输入样例: one + two = three four + five six = zero seven + eight nine = zero + zero = 输出样例: three ninezero ninesix 题目16: 万年历查询程序。 功能要求: (1)提供菜单方式选择 (2)输入年份、月份、日期,计算得到的是这一天据今天有多少天,星期几; (3)输入公历的年月日,输出农历年月日。 (4)输入农历节气,输出当年农历的年月日及公历年月日。 可以假定只涉及年份是1940年到2040年。 题目17: C语言关键字中英翻译机。 要求输入中文的名词和关键字,可以将其翻译成英语,如输入“基本整形”+回车,得到int;输入英文的单词int,则可以翻译成中文“基本整形”。 可模拟文曲星来实现。 可多次查询,输入bye时退出。 题目18: 用C语言设计一个简单的计算器,要求能够对输入的数 1.进行+,-,*,/,运算; 2.可以带括号(); 3.不限定运算式的输入长度. 题目19: 多项式乘法的实现,已知如下两个多项式 P(x)=PX+PX+...+PX+P Q(x)=qX+qX+...+qX+q 求它们的乘积多项式S(x)=sX+...+sX+s。 可以定义两个一维数组p,q,按照次数从高到低存储两个多项式的系数,定义一维数组来s来存储结果;利用函数来完成对结果多项式各项系数的计算,最后在屏幕上计算结果。 题目20: 实现带有括号的四则运算。 输入是一个带有括号的四则运算表达式,输出是计算得出的正确计算结果。 例如: 输入: 123+213-67*34+345/23*45*(34+34-345+245+567)回车,然后程序计算得出结果为: 359183 题目21: 线性方程组求解,输入是N(N<256)元线性方程组Ax=B,输出是方程组的解,也可能无解或有多组解。 可以用高斯消去法求解,也可以采用其它方法。 题目22: n阶方阵求逆。 输入是一个n(n<256)阶方阵A,输出是它的逆矩阵,要求还要再将得到的逆矩阵与原来的矩阵相乘,验证其结果是单位矩阵。 题目23: 大整数的四则运算。 大整数指超过十位的十进制整数,这里为简便,假定不超过五十位。 这类大整数在C语言系统中因超界溢出,是不能直接表达和计算的。 可以用数组来表示大整数,在此基础上编写出实现大整数加、减、乘、除的程序,并努力加以优化。 题目24: 编程: 建立一个分数类。 分数类的数据成员包括分子和分母,操作包括约分、通分、加、减、乘、除、求倒数、比较、显示和输入。 分类数的定义如下: classfraction { intabove;//分子 intbelow;//分母 voidreduction();//约分 voidmakeCommond(fraction);//通分 public: fraction(int=0;int=1);//构造函数 fractionadd(fraction);//两个分数相加 fractionsub(fraction);//两个分数相减 fractionmul(fraction);//两个分数相乘 fractiondiv(fraction);//两个分数相除 fractionreciprocal();//求倒数 boolepual(fraction);//等于运算 boolgreaterThan(fraction);//大于运算 boollessThan(fraction); voiddisplay(); voidinput(); }; 【要求】完成以上所有成员函数并进行检查 题目25: 课程设计选题管理系统 设计学生类;课程设计题目类(序号,题目,人数,描述);每个题目限两个人选;要求使用面向对象编程进行模拟课程设计选题。 主要包括下列模块: 1. 新增、修改、删除课程设计题目; 2. 新增、修改、删除学生信息; 3. 查询课程设计内容; 4. 课程设计选题; 题目26: 简单电话簿 请用面向对象方法设计并实现一个简单电话簿,包括如下功能: 能设置并以文件保存若干姓名、联系电话和电邮地址。 根据输入的姓名,在已经保存的文件中查询相应的联系电话和电邮地址,并显示查询结果。 根据输入的电话号码,在已经保存的文件中查询相应的联系人姓名,并显示查询结果。 题目27: 列车车次管理系统(2人) 实现简单的列车车次管理系统,可以对列车的车次进行简单的增加、删除、修改、查找等功能,乘客还可以预订车票,管理员还可以查找乘客的信息等等功能。 基本功能描述: 乘客: 1.查询车次情况(按照车次号、发车时间、到站时间等)。 2.根据已有的车次预定车票。 3.显示全部车次情况。 管理员: 1.查询车次情况(按照车次号、发车时间、到站时间等)。 2.增加,修改,删除车次情况
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计题目 课程设计 题目
![提示](https://static.bdocx.com/images/bang_tan.gif)