C++课程设计指导及题目.docx
《C++课程设计指导及题目.docx》由会员分享,可在线阅读,更多相关《C++课程设计指导及题目.docx(13页珍藏版)》请在冰豆网上搜索。
![C++课程设计指导及题目.docx](https://file1.bdocx.com/fileroot1/2023-2/6/ebbb0b9b-893b-4cce-b92a-88bebcd3b691/ebbb0b9b-893b-4cce-b92a-88bebcd3b6911.gif)
C++课程设计指导及题目
文理学院国际学院
《C++程序设计》课程设计指导书(本科)
一、课程设计目的
通过设计设计一个小的系统,进一步熟悉C++中类的概念、类的封装、继承的实现方式。
了解系统开发的需求分析、类层次设计、模块分解、编码测试、模块组装与整体调试的全过程,加深对C++的理解与VisualC++环境的使用;逐步熟悉程序设计的方法,并养成良好的编程习惯。
二、文档要求(见课程设计_格式):
1、系统总框图;
2、每个模块的设计分析(包括流程图、功能说明、运行界面等);
3、列出所有定义的类、函数及说明;
4、举例说明1、2个比较有特点的算法;
5、存在的问题与不足及对策,心得体会;
6、程序源代码须有注释;
7、如多人同组做的,个人报告中只能写自己所负责的工作部分;
8、详见附件。
三、系统要求:
1、所写的有效代码不得少于300行,并用A4幅面的纸打印;
2、实现数据在硬盘上的文件读写;
3、不能重复选题。
四、成绩评定方法:
根据课程设计完成的质量、正确性和工作量综合评分,具体如下:
1、文档:
50%
2、程序:
50%
五、时间与安排
时间为一周(18周),粗略划分:
第一天 布置任务及分组、总体需求分析与设计;
第二天基类、各派生类设计及代码实现;
第三天 各模块的编程设计;各模块的调试与修改、系统组装;
第四天 程序总调试、修改,撰写课程设计报告
第五天课程设计检查,打印提交
六、设计题目
题目一:
小型公司工资管理系统设计(限最多2人完成)
设计说明与要求:
1、公司主要有4类人员:
经理、技术员、销售员、销售经理。
要求存储这些人的职工号、、月工资、岗位、年龄、性别等信息。
2、工资的计算办法:
A、经理:
固定月薪为8000;
B、技术员:
工作时间*小时工资(100元每小时);
C、销售员:
销售额*4%提成;
D、销售经理:
底薪(5000)+所辖部门销售额总额*%;
3、类的层次结构大体如下:
4、输入数据要求每类人员不能少于4人,并按以下格式输出:
职工号
性别
年龄
岗位
工资
排名
及某销售经理所辖部门各销售员的业绩及自己的工资表:
职工号
销售额
销售额合计:
5、总体设计,要有一个菜单,用于选择各项功能,其中
1)数据录入:
输入各种数据;
2)数据统计:
各销售经理的工资计算及最终按工资进行的冒泡排序;
3)数据打印:
打印上述表格;
4)数据备份:
把相关数据写入文件;
5)退出:
退出本系统;
注:
各项菜单都调用一个函数来实现。
题目二:
考勤管理系统(限最多2人完成)
考勤信息记录了学生的缺课情况,它包括:
缺课日期、第几节课、课程名称、学生、缺课类型(迟到、早退、请假及旷课)。
试设计一考勤管理系统,使之能提供以下功能:
1.录入学生的缺课记录;
2.修改某个学生的缺课记录;
3.查询某个学生的缺课情况;
4.统计某段时间,旷课学生及旷课次数,按旷课次数由多到少排序;
5.统计某段时间,有学生旷课的课程及旷课人次,按旷课人次由多到少排序;
6.系统以菜单方式工作。
具体要求如下:
1、采取模块化方式进行程序设计,要求程序的功能设计、数据结构设计及整体结构设计合理。
学生也可根据自己对题目的理解增加新的功能模块(视情况可另外加分)。
2、系统以菜单界面方式(至少采用文本菜单界面,如能采用图形菜单界面更好)工作,运行界面友好,演示程序以用户和计算机的对话方式进行。
3、程序算法说明清晰,理论分析与计算正确,运行情况良好,实验测试数据无误,容错性强(能对错误输入进行判断控制)。
4、编程风格良好(包括缩进、空行、适当注释、变量名和函数名见名知意,程序容易阅读等);
题目三、职工信息表(限最多2人完成)
设计要求:
设计要现如下功能:
(1)建立职工信息数据,包括职工编号、、性别、工资、出生时间、参加工作时间和年龄(必须计算得到)。
(2)根据职工信息表,建立只含有和年龄的职工信息简表。
(可选功能)
(3)使用继承的方法构造3个类,(即雇员类——虚基类,教师类和工人类——派生类)使用相应的对象放置10个职工信息。
(4)编写同名display()成员函数,用来输出数组的容。
(5)按不同类别输出职工信息,比如按系输出教师信息。
(可选功能)
(6)要求对“<<”和“>>”运算符进行重载。
考虑到输人职工编号时,也会因不小心引人空格,而且名字中也需要有空格,所以重载“>>’’运算符时,需要满足这个要求。
(7)抽取并计算职工的平均年龄。
(8)检索(查找)指定信息。
(如按检索、按年龄检索)
(9)显示年龄分布的柱状图,示例如下:
(10)参考界面如下:
设计功能:
增加一位教师记录
增加一位工人记录
显示全部职工记录
计算教师平均年龄
计算工人平均年龄
删除一个教师
删除一个工人
按系输出教师信息(可选)
按检索所有信息
结束程序运行
题目四、学生信息管理(限最多2人完成)
设计要求:
设计要现如下功能:
(1)建立学生信息数据,包括学号、、性别、三科成绩、出生时间、年龄(必须计算得到)。
(2)使用继承的方法构造至少3个类,(即学生类——虚基类,一年级学生和二年级学生类——派生类)使用相应的对象放置10个学生信息。
(3)编写同名display()成员函数,用来输出数组的容。
(4)按不同类别输出学生信息,比如按性别。
(可选功能)
(5)要求对“<<”和“>>”运算符进行重载。
考虑到输人学号时,也会因不小心引人空格,而且名字中也需要有空格,所以重载“>>’’运算符时,需要满足这个要求。
(6)抽取并计算学生的平均成绩。
(7)按照至少一科成绩进行排序。
(8)检索(查找)指定信息。
(如按检索、按年龄检索)
(9)显示成绩分布的柱状图,示例如下:
(10)参考界面如下:
设计功能:
增加学生
显示全部学生
计算平均成绩
删除一个学生
按年级输出学生信息
按性别输出学生信息
按检索学生
结束程序运行
题目五:
图书信息管理系统设计(限最多2人完成)
图书信息包括:
登录号、书名、作者名、分类号、出版单位、出版时间、价格等。
试设计一图书信息管理系统,使之能提供以下功能:
系统以菜单方式工作
1)图书信息录入功能(图书信息用文件保存)--输入
2)图书信息浏览功能--输出
3)查询和排序功能:
(至少一种查询方式)--算法
4)按书名查询
5)按作者名查询
6)图书信息的删除与修改(可选项)
题目六、学生选修课程系统设计(限最多2人完成)
假定有n门课程,每门课程有课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期等信息,学生可按要求(如总学分不得少于60)自由选课。
试设计一选修课程系统,使之能提供以下功能:
1)系统以菜单方式工作
2)课程信息录入功能(课程信息用文件保存)--输入
3)课程信息浏览功能--输出
4)查询功能:
(至少一种查询方式)--算法
5)按学分查询
6)按课程性质查询
7)学生选修课程(可选项)
题目七:
学生通讯系统(限最多2人完成)
基本功能:
以本班同学的具体数据为背景,设计一个本班同学通讯录。
实现功能:
1) 通讯录编辑(添加、删除)。
2) 按不同的项进行查找。
3) 对已存在的通讯录按不同的项排序。
4) 将通讯录写入文件
5) 从文件读入通讯录
备注:
通讯录至少应该有以下数据项:
,地址,,邮编,E-mail。
题目八:
成绩管理系统(限最多2人完成)
现有学生成绩信息,容如下
学号 语文 数学 英语
明明 01 67 78 82
成友 02 78 91 88
辉灿 03 68 82 56
王露 04 56 45 77
东明 05 67 38 47
…. .. .. .. …
请用C/C++编写一系统,实现学生信息管理,软件的入口界面应包括如下几个方面:
(一)功能要求:
(1) 信息维护:
要求:
学生信息数据要以文件的形式保存,能实现学生信息数据的维护。
此模块包括子模块有:
增加学生信息、删除学生信息、修改学生信息
(2) 信息查询:
要求:
查询时可实现按查询、按学号查询
(3) 成绩统计:
要求:
A输入任意的一个课程名(如数学)和一个分数段(如60--70),统计出在此分数段的学生情况。
(4) 排序:
能对用户指定的任意课程名,按成绩升序或降序排列学生数据并显示排序结果(使用表格的形式显示排序后的输出结果)(使用多种方法排序者,加分)
(二)其它要求:
(1)只能使用C/C++语言,源程序要有适当的注释,使程序容易阅读
(2)至少采用文本菜单界面(如果能采用图形菜单界面更好)
(3)学生可自动增加新功能模块(视情况可另外加分)
(4)写出课程设计报告,具体要求见相关说明文档
题目九、手机通信录管理系统(限最多2人完成)
用C++设计出模拟手机通信录管理系统,实现对手机中的通信录进行管理。
(一) 功能要求
(1) 查看功能:
选择此功能时,列出下列三类选择。
A 办公类 B 个人类C商务类,当选中某类时,显示出此类所有数据中的和)
(2) 增加功能:
能录入新数据(一个结点包括:
、、分类(可选项有:
A 办公类 B 个人类C商务类)、电子)。
例如
春 商务类
当录入了重复的和时,则提示数据录入重复并取消录入;当通信录中超过15条信息时,存储空间已满,不能再录入新数据;录入的新数据能按递增的顺序自动进行条目编号。
(3) 拔号功能:
能显示出通信录中所有人的,当选中某个时,屏幕上模拟打字机的效果依次显示出此人的中的各个数字,并伴随相应的拔号声音。
(4) 修改功能:
选中某个人的时,可对此人的相应数据进行修改
(5) 删除功能:
选中某个人的时,可对此人的相应数据进行删除,并自动调整后续条目的编号。
(二)其它要求:
(1)只能使用C/C++语言,源程序要有适当的注释,使程序容易阅读
(2)至少采用文本菜单界面(如果能采用图形菜单界面更好)
(3)建议使用结构和链表等数据结构
(4)学生可自动增加新功能模块(视情况可另外加分)
(5)写出课程设计报告,具体要求见相关说明文档
题目十:
学生管理系统(限最多2人完成)
使用下面的数据,用C/C++设计一个简单的学籍管理系统,实现出最基本的功能。
学生基本信息文件及其容:
文件不需要编程录入数据,可用文本编辑工具直接生成
学号 性别 宿舍
01 成成 男 501
02 成华 女 101
03 王成凤 女 101
04 明明 男 502
05 东 男 501
06 果 男 502
07 园园 女 102
… …. .. … ………..
学生成绩基本信息文件及其容:
学号课程编号课程名称 学分平时成绩 实验成绩 卷面成绩 综合成绩 实得学分
01 A01 大学物理 3 66 78 82
02 B03 高等数学 4 78 -1 90
01 B03 高等数学 4 45 -1 88
02 C01 VF 3 65 76 66
… …. ………. .. .. …
(一) 功能要求及说明:
(1) 数据录入功能:
对进行数据录入,只录入每个学生的学号、课程编号、课程名称、学分、平时成绩、实验成绩、卷面成绩共7个数据.综合成绩、学分由程序根据条件自动运算。
综合成绩的计算:
如果本课程的实验成绩为-1,则表示无实验,综合成绩=平时成绩*30%+卷面成绩*70%;如果实验成绩不为-1,表示本课程有实验,综合成绩=平时成绩*15%+实验成绩*.15%+卷面成绩*70%.
实得学分的计算:
采用等级学分制.
综合成绩在90-100之间,应得学分=学分*100% 综合成绩在80-90之间,应得学分=学分*80%
综合成绩在70-80之间,应得学分=学分*75% 综合成绩在60-70之间,应得学分=学分*60%
综合成绩在60以下,应得学分=学分*0%
(2)查询功能:
分为学生基本情况查询和成绩查询两种
A:
学生基本情况查询:
A1----输入一个学号或(可实现选择),查出此生的基本信息并显示输出。
A2---输入一个宿舍,可查询出本室所有的学生的基本信息并显示输出。
B:
成绩查询:
B1:
输入一个学号时,查询出此生的所有课程情况,格式如下:
学 号:
xx 姓 名:
xxxxx
课程编号:
xxx 课程名称:
xxxxx 综合成绩:
xxxx 实得学分:
xx
课程编号:
xxx 课程名称:
xxxxx 综合成绩:
xxxx 实得学分:
xx
课程编号:
xxx 课程名称:
xxxxx 综合成绩:
xxxx 实得学分:
xx
… … … … ……… … …
共修:
xx科,实得总学分为:
xxx
(3)删除功能:
当在中删除一个学生时,自动地在中删除此人所有信息。
(4)排序功能:
能实现选择按综合成绩或实得学分升序或降序排序并显示数据。
(二)其它要求:
(1)只能使用C/C++语言,源程序要有适当的注释,使程序容易阅读
(2)至少采用文本菜单界面(如果能采用图形菜单界面更好)
(3)学生可自动增加新功能模块(视情况可另外加分)
(4)写出课程设计报告,具体要求见相关说明文档
题目十一:
宾馆客房管理系统(限最多2人完成)
宾馆的客房信息包括客房号、客房类型、客房价格、空闲情况、客人、客人号、入住时间、退房时间,预付费用等信息。
试设计一宾馆客房管理系统统,系统以菜单方式工作,使之能提供以下功能:
1)客房信息的录入功能
2)客人入住登记
3)客人退房结算
4)客房信息浏览功能,浏览全部客房的信息
5)客房信息查询:
查询空房间情况、按或房间号查询
6)客房信息的删除、修改功能
题目十二:
销售管理系统(限最多2人完成)
某公司有四个销售员(编号:
1-4),负责销售五种产品(编号:
1-5)。
每个销售员都将当天出售的每种产品各写一便条交上来。
每便条包含容:
1)销售员的代号
2)产品的代号
3)这种产品的当天的销售额
每位销售员每天可能上缴0-5便条。
假设,收集到了上个月的所有便条,编写一个处理系统,读取上个月的销售情况(自己设定),进行如下处理。
1)计算上个月每个人每种产品的销售额。
2)按销售额对销售员进行排序,输出排序结果(销售员代号)
3)统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果(需输出产品的代号和销售额)
4)输出统计报表
销售统计报表
产品代号销售之和
销售员代号12345
1
2
3
4
每种产品之和总和
题目十三:
运动会管理系统(限最多2人完成)
设计一个运动会管理系统,要求如下:
1) 初始化输入:
N-参赛学校总数,M-男子竞赛项目数,W-女子竞赛项目数;
各项目名次取法有如下几种:
取前6名:
第1名得分7,第2名得分5,第3名得分4,第4名得分3,第5名得分2,第5名得分1
取前3名:
第1名得分5,第2名得分3,第3名得分2;
用户自定义:
各名次权值由用户指定。
2)由程序提醒用户填写比赛结果,输入各项目获奖运动员的信息。
3) 所有信息记录完毕后,用户可以查询各个学校的比赛成绩,生成团体总分报表,查看参赛学校信息和比赛项目信息等。
题目十四:
银行储蓄管理系统(限最多2人完成)
设计并开发一个储蓄管理系统。
功能至少包括:
开户、销户、挂失等管理;
存款(包括活期存款和定期存款);
取款(包括活期取款、定期到期取款和定期提前取款);
转帐(一次转帐可以从一个资金转到多个,一如代发工资的情况)。
储户可以通过网络查询自已的信息;还可以通过网络挂失。
查询、统计与报表(如查询交易历史);
其它管理功能。
题目十五:
高校人事管理系统(限最多2人完成)
某高校,主要人员有:
在职人员(行政人员、教师、一般员工)、退休人员、返聘人员和临时工。
现在,需要存储这些人员的人事档案信息:
编号、、性别、年龄、职务、职称、政治面貌、最高学历、任职时间、来院时间。
要求:
1) 添加删除功能:
能根据学院人事的变动情况,添加删除记录;
2) 查询功能:
能根据编号和进行查询;
3) 编辑功能(高级):
根据查询对相应的记录进行修改,并存储;
4) 统计功能:
能根据多种参数进行人员的统计(在职人数、党员人数、女工人数、高学历高职称人数);
5) 保存功能:
能对输入的数据进行相应的存储,要求重载插入和提取符以完成数据的保存和打开。
6) 人员编号在生成人员信息时同时生成,每输入一个人员信息编号顺序加1。
题目十六:
库存管理系统(限最多2人完成)
某仓库,需要存储这些物品的的信息:
产品编号、产品、产地、数量、价格、总价值。
要求:
1) 添加删除功能:
添加删除记录;
2) 查询功能:
能根据产品编号和产品进行查询;
3) 编辑功能(高级):
根据查询对相应的记录进行修改,并存储;
4) 保存功能:
能对输入的数据进行相应的存储,要求重载插入和提取符以完成数据的保存和打开。