综合程序课程设计题目汇总1.docx
- 文档编号:15320527
- 上传时间:2023-07-03
- 格式:DOCX
- 页数:14
- 大小:28.85KB
综合程序课程设计题目汇总1.docx
《综合程序课程设计题目汇总1.docx》由会员分享,可在线阅读,更多相关《综合程序课程设计题目汇总1.docx(14页珍藏版)》请在冰点文库上搜索。
综合程序课程设计题目汇总1
*注意2人一组共同完成一个题目,任务书要求分工必须明确。
对于题目比较容易的,也可1人一个题目。
可以从如下题目中选择,教师也可以自拟题目,但必须达到足够难度。
题目设计:
赵敏孙成立
题目1、计算器程序设计
[问题描述]:
设计一个多功能计算器,可以完成基本的计算。
[设计要求]:
1.具备整型数据、浮点型数据的算术(加、减、乘、除)运算功能。
依次输入第一个运算数、运算符(+,-,*,/)、第二个运算数,然后输出结果。
结果可以作为下一个运算的第一运算数。
按‘C’清屏,按‘R’返回菜单。
例如:
输入:
2
+
5
输出:
7
2.实现单运算符表达式计算的功能。
输入的操作数可以包含整数或浮点数。
输入表达式如下:
例如:
输入:
2+5
输出:
7
3.除数为零或者输入的不是数字时进行异常处理
题目2、两个源程序的相似性判别
[问题描述]
对于两个C语言的源程序清单,用哈希表的方法分别统计两个程序中使用C语言关键字的情况,并最终按定量的计算结果,得出两份源程序清单的相似性。
[基本要求]
C语言关键字的哈希表可以自建,也可以利用《数据结构及应用算法教程》(严蔚敏陈文博编著清华大学出版社)书中8.10的哈希表。
此题的工作主要是扫描给定的源程序,累计在每个源程序中C语言关键字出现的频度。
在扫描源程序过程中,每遇到关键字就查找哈希表,并累加相应关键字出现的频度。
为保证查找效率,建议自建哈希表的平均查找长度ASL不大于2。
扫描两个源程序所统计的所有关键字不同频度,可以得到两个向量。
如下面简单的例子所示:
Void
Int
For
Char
If
Else
while
4
3
4
3
7
0
2
4
2
5
4
5
2
1
关键字
程序1种关键字频度
程序2种关键字频度
哈希地址
0123456789
X1=[4,3,0,4,3,0,7,0,0,2]X2=[4,2,0,5,4,0,5,2,0,1]
通过计算向量X1和X2的相对距离来判断两个源程序的相似性,相对距离的计算方法是
,T表示向量的转置。
按例子所给的数据,s
0.13。
显然当X1=X2时,s=0,反映出可能是同一个程序;s值越大,则两个程序的差别可能也越大。
[测试数据]
做几个编译和运行都无误的C程序,程序之间有相近的和差别大的,用上述方法求s,并对比差异程度。
[实现提示]
本题的很大工作量将是对源程序扫描,区分出C程序的每一关键字。
可以为C语言关键字集建一棵键树,扫描源程序和在键树中查找同步进行,以取得每一个关键字。
题目3、学生成绩管理系统
现有学生成绩信息,内容如下
姓名学号语文数学英语政治
张明明0167788290
李成友0278918880
张辉灿0368825687
王露0456457767
陈东明0567384770
….......…
请用C编写一系统,实现学生信息管理,软件的入口界面应包括如下几个方面:
(一)功能要求:
(1)信息维护:
要求:
学生信息数据要以文件的形式保存,能实现学生信息数据的维护。
此模块包括子模块有:
增加学生信息、删除学生信息、修改学生信息
(2)信息查询:
要求:
查询时可实现按姓名查询、按学号查询
(3)成绩统计:
要求:
A输入任意的一个课程名(如数学)和一个分数段(如60--70),统计出在此分数段的学生情况。
(4)排序:
能对用户指定的任意课程名,按成绩升序或降序排列学生数据并显示排序结果(使用表格的形式显示排序后的输出结果)(使用多种方法排序者,加分)
(二)其它要求:
(1)只能使用C或C++语言,源程序要有适当的注释,使程序容易阅读
(2)采用文本菜单界面
(3)学生可增加新功能模块
题目4、迷宫路由游戏
(1)问题描述
设计算法生成一个N×M(N行M列)的迷宫,并完成迷宫的组织和存储。
实现两种不同的迷宫路由算法:
广度优先,深度优先算法。
并比较(包括理论和实验)三种方法的时空复杂性。
(2)课程设计目的
理解栈的应用,理解深(广)度优先思想,理解问题的理论和实验分析。
(3)基本要求
①N和M是用户可配置的,缺省值为50和50。
②迷宫的入口和出口分别在第0行和第N-1行上,随机选择。
③生成的迷宫要求是连通的。
④实现图形化界面(可用VC++,也可用C语言的图形库)。
⑤三种方法的试验比较应该在多个迷宫实例上(尤其可以选一些特定的迷宫)。
(4)实现提示
多考虑栈上的运算。
题目5、通信录查询系统
【问题描述】
设计散列表实现通讯录查找系统。
(1)设每个记录有下列数据项:
电话号码、用户名、地址;
(2)从键盘输入各记录,分别以电话号码为关键字建立散列表;
(3)查找并显示给定电话号码的记录;
(4)通讯录信息文件保存;
(5)要求人机界面友好,使用图形化界面;
【实现提示】
主函数:
根据选单的选项调用各函数,并完成相应的功能。
Menu()的功能:
显示英文提示选单。
Quit()的功能:
退出选单。
Create()的功能:
创建新的通讯录。
Append()的功能:
在通讯录的末尾写入新的信息,并返回选单。
Find():
查询某人的信息,如果找到了,则显示该人的信息,如果没有则提示通讯录中没有此人的信息,并返回选单。
Alter()的功能:
修改某人的信息,如果未找到要修改的人,则提示通讯录中没有此人的信息,并返回选单。
Delete()的功能:
删除某人的信息,如果未找到要删除的人,则提示通讯录中没有此人的信息,并返回选单。
List()的功能:
显示通讯录中的所有记录。
Save()的功能:
保存通讯录中的所有记录到指定文件中。
Load()的功能:
从指定文件中读取通讯录中的记录。
题目6、工资报表管理系统
已知N个职工的姓名、职工编号、基本工资、附加工资和扣除工资。
要求:
编写函数:
①计算每个职工的实发工资;②按职工编号由小到大顺序排列,相应数据也要随之调整;③要求输入一个职工编号,用折半查找法找出该职工的数据,从主函数输入要查找的职工号,输出该职工的数据;④将排列后的所有职工的数据存放在磁盘文件“gzbb.dat”中,磁盘文件的格式如下:
GongZiBaoBiao
************************************************************
bhxmjbgzfjgzkcgzsfgz
802211zhoupeng
……………………………………
*************************************************************
name:
XX-XX-XX
date:
XX-XX-XX
注意:
在name与date中填入个人姓名与制表日期
以上各个功能均编写成子函数,由主函数调用实现。
根据题意此题用5个函数完成:
●main函数:
总控函数
●compute函数:
计算函数(求每个职工的实发工资)
●sort函数:
排序函数(按职工编号从小到大排列)
●search函数:
查找函数(按给定的职工编号进行查找)
●output函数:
输出排列后的所有职工数据(建立磁盘数据文件)
取系统日期函数:
structdated;getdate(&d)structdate在头文件dos.h中定义。
题目7、药店的药品销售统计系统
【问题描述】
设计一系统,实现医药公司定期对销售各药品的记录进行统计,可按药品的编号、单价、销售量或销售额做出排名。
【实现提示】
在本设计中,首先从数据文件中读出各药品的信息记录,存储在顺序表中。
各药品的信息包括:
药品编号、药名、药品单价、销出数量、销售额。
药品编号共4位,采用字母和数字混合编号,如:
A125,前一位为大写字母,后三位为数字,按药品编号进行排序时,可采用基数排序法。
对各药品的单价、销售量或销售额进行排序时,可采用多种排序方法,如直接插入排序、冒泡排序、快速排序,直接选择排序等方法。
药品信息的元素类型定义:
typedefstructnode
{charnum[4];/*药品编号*/
charname[10];/*药品名称*/
floatprice;/*药品单价*/
intcount;/*销售数量*/
floatsale;/*本药品销售额*/
}DataType;
存储药品信息的顺序表的定义:
typedefstruct
{DataTyper[MaxSize];
intlength;
}SequenList;
题目8、电视大赛观众投票及排名系统
【问题描述】
在很多的电视大赛中,通常当选手表演结束后,现场观众通过手中的按键对参赛选手进行投票,然后对选手获得的票数进行统计,从高到低进行降序排序,从而自动产生冠军、亚军和季军。
现在要求编写一程序模拟实现上述系统的功能。
【实现提示】
在本例中,首先输入参赛选手的人数(范围为1-9个),然后根据人数通过malloc或new函数来开辟存放选手信息的顺序表。
将选手的编号和姓名依此存入顺序表单元中,观众通过按键进行投票,按’1’为1号选手投票,按’2’为2号选手投票,以此类推,以按’0’作为投票结束标志。
投票结束后进行排序,在此采用希尔排序,然后为每个选手计算名次,得票相同的名次也相同,
(1)存储类型的定义
参赛选手信息存储类型的定义:
typedefstructnode{
charname[8];/*选手姓名*/
intnum;/*选手编号*/
intscore;/*选手得分*/
inttax;/*选手名次*/
}Node;
题目9、研究生初试录取系统设计
问题描述
研究生考试课程为4门,其中数学、外语、政治为统一命题,而专业基础课则根据不同的专业由招生学校自行命题。
国家对初试录取分数有总分要求(如某一年要求4门课总分应达到310分),另外还有对每门课的最低分数要求(如总分为100的试卷最低应达到40分,总分为150的试卷最低应达到65分)。
编程统计初试合格的人数,并按总分由高到低的顺序输出合格考生的信息。
基本要求
程序运行时首先要求输入:
考生姓名,准考证号,报考专业,是否应届生,4门课程(政治、数学、外语、专业基础课)成绩。
这些原始数据应保存到一个文件中。
然后输入:
录取的总分要求,各课程的最低分数要求。
输出要求:
过线考生的姓名,准考证号,报考专业,是否应届生,4门课程(政治、数学、外语、专业基础课)成绩及总分,这些信息应存放到另一个文件中。
测试数据
程序应输入不少于10名考生的信息,其中应届生和历届生分别有若干名,并且都有合格和不合格的情况。
实现提示
可定义一个考生类存放有关信息和实现相应的操作。
分数线数据(总分要求和各门课程的要求)可定义另外的类来存放,但应能被考生类及其派生类直接访问。
题目10、商品销售统计系统
问题描述
编写商品销售统计程序,商品的信息有:
商品的名称,计量单位(重量或件),单价。
所有商品的信息事先已存入计算机,屏幕上显示所有商品的名称,选择商品名,输入商品计量单位(如重量,件数等),根据单价算出总价。
客户一次购物可能购买多种商品,程序应计算出客户应付的钱款数。
基本要求
程序分为两个部分:
第一部分用于输入商品的信息并允许修改和删除;第二部分实现销售统计。
程序运行时由用户选择进入哪一部分功能,并能在运行时在两部分之间切换。
第二部分运行时,首先显示所有商品名称及代码(商品数目较多时,应考虑分屏显示),用户输入商品代码及商品重量或件数,用户一次操作可输入若干商品的购买信息,然后输入一个特殊的代码(如-1)表示本次购物结束。
此时。
程序计算出应付钱款数并显示。
测试数据
程序应输入不少于10种商品的信息,并进行模拟运行。
实现提示
本程序的商品信息管理可采用与课程设计题目二类似的数据结构,既定义一个商品类,每种商品作为商品类的实例(对象)存储在链表节点中。
选做内容
程序在营业结束时统计每种商品的销售量,销售金额及总营业额。
因此第二部分应有营业结束的选择,当用户选择此项时屏幕上显示当天营业的每种商品的销售量,销售金额及总营业额。
注意,商品类的数据成员应增加有商品的销售量和销售金额。
总营业额是所有商品的营业额之和,可用静态数据成员实现。
或可由原商品类派生出一个特殊的类,增加上面的数据成员及相应的成员函数。
题目11、银行账户管理程序
问题描述
设计一个银行账户管理程序,账户的信息有账号(唯一)、姓名、余额、身份证号码、电话号码,允许用户进行如下操作:
开户、销户、存款、取款、转账、查询,一个用户可以有多个户头,账户的数值没有上限。
基本要求
程序运行时,可以由用户选择进行何种操作,开户操作要求输入用户信息后自动获取账号,用户销户后账号被回收,并且该账号可以继续分配给其它账户,不允许用户透支,根据姓名或账号可以进行用户的信息查询,所有的账户信息应存放到一个文件中,可以随时的访问和更新。
测试数据
程序应输入不少于10人的账户信息,应考虑到人员同名的情况。
实现提示
可定义一个账户类存放账户信息以及执行相应的操作,可以用一个链表类来管理账户。
选作内容
在上述程序的基础上,添加联名账户(一个联名账户有两个拥有者)的管理。
题目12、电煤气管理系统
问题描述
设计一个水电管理信息系统,能够对高校的水电费用进行管理,包括了登记费用,查询费用,以及住户信息管理等。
在设计时要考虑到学生和教工在用水电时的不同,学生可以免费使用一定额度的水电,超过这个额度的随便以后必须自费使用,且自费部分水电费的价格标准要高于教工的收费标准(主要是节约资源)。
基本要求
●实现对用户信息的录入
●实现水电煤气数据的录入
●计算并查询用户应缴费用
●查询未缴纳费用名单
测试数据:
可选用小区物业管理部门的数据,也可采用手工输入不少于10个用户信息的数据。
实现提示
●用户基本信息类,教工用户信息类,学生用户信息类
●收费标准类,该类存储水电煤气标准单位的收费标准,如:
煤气,1.0元/立方米;
●不同类型人员水、电、煤气信息类,这些类可以包括水表,电表,煤气表ID,抄表时间,上次抄表时间,本次抄表时间,上次抄表度数,本次抄表度数,本次使用度数,费用,是否缴费标记等信息。
●在实现的时候考虑继承和多态技术的合理使用。
选做内容
实现用户查询系统能够找出该用户半年之内的交费记录和本次应交费的数据。
题目13、Windows绘图板的设计与实现
目的:
采用面向对象编程技术,设计并实现一个功能完善的Windows绘图板程序。
通过实际程序的开发,熟练面向对象程序设计方法,掌握桌面程序设计技巧。
任务:
1)开发一个功能完善的Windows绘图板程序,功能包括:
新建空白文档、文件保存、绘制一些基本的图形组件(直线、矩形、椭圆、圆)、橡皮擦、添加文字等;
2)完成软件开发文档编写;
3)给出程序运行、测试的详细结果。
题目14、音频播放器程序的设计与实现
目的:
利用VC++开发一个支持wav、mp3、wma等不同音频格式的媒体播放器。
通过课程设计掌握多媒体编程的基本原理。
任务:
1)编程实现一个可支持多种音频格式的媒体播放器,其基本功能包括媒体播放、音量调节、播放进度选择、暂停、停止以及歌曲信息的查询与添加等;
2)给出程序的总体设计和详细设计,要求程序总体架构图、详细设计的流程图,函数、变量说明等
3)给出程序运行、测试的详细结果。
题目15、万年历显示程序
实现任务
1).输入任一年将显示出该年的所有月份日期,对应的星期
2).注意闰年情况
其显示格式要求如下:
1)月份:
中文英文都可以,
2)下一行显示星期,从周日到周六,中英文都可以
3)下一行开始显示日期从1号开始,并按其是周几实际情况与上面的星期数垂直对齐
当输入2004显示如下:
Inputtheyear:
2004
Inputthefilename:
a
Thecalendaroftheyear2004.
Januray1February2
SunMonTueWedThuFriSatSunMonTueWedThuFriSat
1231234567
45678910891011121314
1112131415161715161718192021
1819202122232422232425262728
2526272829303129
======================================================
March3April4
SunMonTueWedThuFriSatSunMonTueWedThuFriSat
123456123
7891011121345678910
1415161718192011121314151617
2122232425262718192021222324
28293031252627282930
======================================================
4)…
题目16、飞机飞行游戏
目的:
利用VC++开发一个简单的飞机模型游戏。
任务:
1).该游戏为单人版即玩家一方,计算机一方。
玩家为正方,计算机一方为反方。
2).正方:
具有生命力(本游戏设置为5),有火力(本游戏包括三种:
单火力、双火力和强火力),每次被炸毁生命力减1,当火力值大于5时,生命力和火力强图同增。
火力开始设置为0表示单火力,之后每增加一个火力值就加1。
3)反方:
由计算机按时、随机产生飞机,按时发射子弹,按时移动子弹的位置。
(游戏的实现,往往就是因为要实现计算机的这些按时的“智能”的操作。
)
题目17、俄罗斯方块游戏
目的:
利用VC++开发一个简单的俄罗斯方块游戏。
任务:
1).实现俄罗斯方块的基本功能;
2)、游戏方块的预览功能;
3).游戏方块的控制功能(玩家可以分别实现左移、右移快速下移、自由下移、和行满自动消除功能)
4).重绘功能。
当游戏进行方块移动时,要清除先前的游戏方块,实现重绘的功能。
5).游戏速度的设置和分数的更新
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 综合 程序 课程设计 题目 汇总