C语言程序设计课程设计题目[2023-02-11]
C语言程序设计课程设计题目
选题说明:
1、以下题目有部分可能功能相近,请同学们可从不同的角度来分析实现。
2、题目描述和要求仅供参考,同学们可以查找资料,自行完成分析、确定功能,但功能不得少于题目的描述和要求。
3、每人选一个课题,同一个行政班级内不得重复,由班长或学习委员统一协调。
4、所有程序必须用C语言实现,否则成绩按不及格计。
5、最终提交的程序源代码不得少于200行(不得以注释语句,重复书写函数等来恶意凑代码),如果因这些原因导致代码不能评分,课程设计直接按不及格计。
6、学生提交的代码将提交至头歌查重,如果重复率超过30%,本课程直接不及格,直接进入重修环节(实践环节无开学补考)。
7、学生课程设计需要提交以下资料:
(1)程序设计源代码电子版
注意:①电子版以附件形式提交到头歌平台,具体提交说明见头歌平台。
②最终提交的源码需要合并成一个.c或.cpp文件(方便头歌系统评分)
(2)课程设计实训报告(含任务书)电子版
注意:①电子版以附件形式提交到头歌平台,具体提交说明见头歌平台。
②最终提交的文档应该为*.doc 或 *.docx
(3)课程设计报告及任务书的纸质版
注意:请按模板格式书写,按照软件工程思想完成分析,纸质版除封面、目录外,正文部分统一要求A4双面打印。
备选题目:
源码
https://pan.baidu.com/s/1pq1Nwwo0hlc_J84F93HM4A?pwd=1111
题目1: 年历及时钟图形化显示
功能要求:
(1) 有要登录界面,用菜单方式工作。
(2) 显示当前的日期和时间,以图形化模式显示时钟钟面,且有时针、分针、秒针的运动。
(3) 输入一个年份,输出是在屏幕上显示该年的日历,显示效果如下图所示。假定输入的年份在1940-2040年之间。
(4) 输入年月,输出该月的日历。
(5) 输入年月日,输出距今天还有多少天,星期几,是否是公历节日。
(6) 输入当天的待办事宜,可以输入单条也可以输入多条,并将相关信息保存至文件。
(7) 输入年月日,可以查询当天的待办事宜,并且可以进行修改、删除。
日历非图形界面显示如下图:
题目2: 小学生测验
面向小学1~2年级学生,随机选择两个整数和加减法形成算式要求学生解答。
功能要求:
(1)进入测试之前先输入用户名、密码登录,以方便保存学生信息。
(2)出题模块:电脑随机出10道试题,每题10分,测试过程中,试题信息保存在链表中,程序结束时显示学生得分;确保算式没有超出12年级的水平,只允许进行50以内的加减法,不允许两数之和或之差超出050的范围,负数更是不允许的;
(3)信息保存:要求用户信息、试题信息保存进文件,需要时可以调出试卷进行重新测试、修改试题内容等。
(4)试卷基本操作功能:试题修改、试题插入、试卷删除等。
(5)答题模块:每道题学生有三次机会输入答案,当学生输入错误答案时,提醒学生重新输入,如果三次机会结束则输出正确答案;
(6)计分功能:对于每道题,学生第一次输入正确答案得10分,第二次输入正确答案得7分,第三次输入正确答案得5分,否则不得分;
(7)成绩保存:将测试记录保存至文件,可以查看学生的解答情况,包括得分等。
(8)结果显示:总成绩90以上显示“SMART”,80-90显示“GOOD”,70-80显示“OK”,60-70显示“PASS”,60以下“TRY AGAIN”。
(9)重考功能:不及格的学生,由学生自己选择是否重新来一次,可以重新做以前的测试卷,也可以选择重新做一套试卷。重做机会只有一次。
(10)排行榜功能:排行榜显示用户名、分数、做题时间等。
题目3: 运动会管理系统
问题描述:
校际运动会管理系统。设有n个学校参加校际运动会,共有男子竞赛项目数m,女子竞赛项目数w。每个学校可以参加所有竞赛项目,也可以只参加部分竞赛项目,每个学校对每个项目的参赛运动员不能超过4人,每个运动员最多只能参加3项单项比赛,团体赛不受限制。
各项目名次取法有如下几种:用户自定义:(各名次权值由用户指定)
① 参赛人数超过6人,取前5名:第1名得分 7,第2名得分 5,第3名得分3,第4名得分2,第5名得分 1;
②参赛人数不超过6人,取前3名:第1名得分 5,第2名得分 3,第3名得分2;
③ 团体项目的名次取法和上面相同,但分数加倍。
功能要求 :
⑴ 运动员报名登记,以学校为单位进行运动员报名登记,登记的限制要求按问题描述的要求;
⑵ 参赛信息查询,查看参赛学校信息和比赛项目信息;
⑶ 竞赛检录,每项比赛开始前完成参赛运动员的检录;
⑷ 竞赛成绩登记,填写比赛名次,然后根据竞赛检录的运动员人数和上述的记分方式自动完成各学校的成绩登记并实时生成各学校的团体总分;
⑸ 比赛成绩查询,可以按竞赛项目、参赛学校、参赛运动员查看比赛成绩;
⑹ 竞赛成绩排序,以学校为单位,按总成绩的高低,分别排序输出每个学校的总成绩、男子总成绩、女子总成绩;
⑺ 设计一个菜单,至少具有上述操作要求的基本功能。
(8) 运动员信息、竞赛成绩等保存在链表中,并能完成以上各种操作。
(9)保存为文件功能,并可查询往届的比赛成绩。
题目4: 学生学籍管理系统
用文件存放学生的学籍,可对学生学籍进行注册,登录,修改,删除,查找,统计,学籍变化等操作。
功能要求:
(1) 系统以菜单方式工作。
(2) 登记学生的学号,姓名,性别,年龄,籍贯,系别,专业,班级,学籍情况;并将信息保存至文件。
(3) 使用链表实现修改、删除已知学号的学生信息;
(4) 查询已知学号的学生信息;
(5) 按学号,专业输出学生籍贯表。
(6) 查询学生学籍变化,比如入学,转专业,退学,降级,休学,毕业。
题目5: 排班系统
学校实验楼有7名保安人员:钱、赵、孙、李、周、吴、陈。由于工作需要进行轮休制度,一星期中每人休息一天。预先让每一个人选择自己认为合适的休息日。请编制程序,打印轮休的所有可能方案。当然使每个人都满意,例如每人选择的休息日如下:
钱:星期一、星期六
赵:星期二、星期四
孙:星期三、星期日
李:星期五
周:星期一、星期四、星期六
吴:星期二、星期五
陈:星期三、星期六、星期日
运行结果:
Solution: 1
赵 钱 孙 李 周 吴 陈
=============================================================
星期四 星期一 星期三 星期五 星期六 星期二 星期日
Solution: 2
赵 钱 孙 李 周 吴 陈
=============================================================
星期四 星期一 星期日 星期五 星期六 星期二 星期三
Solution: 3
赵 钱 孙 李 周 吴 陈
=============================================================
星期四 星期六 星期三 星期五 星期一 星期二 星期日
Solution: 4
赵 钱 孙 李 周 吴 陈
=============================================================
星期四 星期六 星期日 星期五 星期一 星期二 星期三
功能要求:
1、保安人员个人信息、排班情况需要保存到文件
2、能从文件读取到已经完成的本周排班情况,并存储到链表进行处理。
3、使用链表实现排班情况的修改或删除,修改完毕,结果需要保存至文件。
4、文件中要保存最近四周的排班信息,前三周的只能查看,本周的排班情况可以修改。
5、输入保安人员的名字,查询最近四周工作哪些天,休息那几天。
6、输入保安人员的名字,能显示保安的个人详细信息,保安个人的详细信息应包含人员代码、姓名、年龄(整数型)、性别、家庭住址等。
7、能够对保安的个人信息进行修改、删除。
题目6: 通讯录程序设计
设计一个实用的小型通讯录程序,具有添加,查询和删除功能。由姓名,籍贯,电话号码1,电话号码2,电子邮箱组成,姓名可以由字符和数字混合编码。电话号码可由字符和数字组成。实现功能:
(1)系统以菜单方式工作
(2)信息录入功能,录入的数据要求保存到文件
(3)信息浏览功能
(4)信息查询功能
(5)信息修改、删除功能,要求用链表实现修改及删除
(6)拔号功能:能显示出通信录中所有人的姓名,当选中某个姓名时,屏幕上模拟打字机的效果依次显示出此人的电话号码中的各个数字
(7)系统退出功能,若有没有保存的信息,则提示将信息保存至文件。
题目7: 学生选课系统
假定有n门课程,每门课程有课程编号,课程名称,课程性质,学时,授课学时,实验或上机学时,学分,开课学期等信息,学生可按要求(如总学分不得少于15)自由选课。试设计一个选修课程系统,使之能提供以下功能:
(1)系统以菜单方式工作
(2)学生信息、课程信息、选课信息等所有数据需要用文件保存
(3)课程信息浏览功能
(4)查询课程信息功能
①按课程名、课程编号查询课程信息
②按学分查询课程信息
③按课程性质查询课程信息
(5)完成学生选课功能,不能重复选同一门课。
(6)查询某学生选修课程情况
(7)显示没有达到要求的学生信息及其选课信息
(8)某门课程学生选修情况
(9)用链表修改、删除学生选修课程信息,更新后保存至文件。
题目8: 机房机位预定系统
20台机器,编号1到20,从早八点到晚八点。两小时一个时间段,每次可预定一个时间段。功能要求:
(1) 系统以菜单方式工作
(2) 用户注册、登录后方可进行机房机位的预定。
(3)登录后可以查询,根据输入时间,输出机位信息。
(4)机位预定,根据输入的时间查询是否有空机位,若有则预约,若无则提供最近的时间段,另:若用户在非空时间上机,则将用户信息列入等待列表。
(5)取消预定,根据输入的时间,机器号撤销该事件的预定,撤销历史记录需要保存到文件中,并可以查看!
(6)查询是否有等待信息,若有则提供最优解决方案(等待时间尽量短),若无则显示提示信息。
(7)所有的机位信息、预定情况都需要保存至文件,并可以随时查询。信息修改情况需要随时保存至文件。
(8)处理机位预定信息时,要求用链表实现,包括查询、删除、修改。
题目9: 班级档案管理系统
对一个有N个学生的班级,通过该系统实现对该班级学生的基本信息进行录入、显示、修改、删除、保存等操作的管理。
功能要求:
(1) 学生基本信息包括:学号、姓名、性别、出生日期、备注。
(2) 本系统所涉及的所有数据都需要保存至文件。
(3)本系统如下菜单形式显示:
请选择系统功能项:
a 学生基本信息录入
b 学生基本信息显示,使用链表实现
c 学生基本信息保存
d 学生基本信息删除,使用链表实现
e 学生基本信息修改,使用链表实现
f 学生基本信息查询
(1)按学号查询
(2)按姓名查询
(3)按性别查询
(4)按年龄查询
g. 退出系统
(4)执行一个具体的功能之后,程序将重新显示菜单。
(5)按菜单要求实现所有功能,能用链表处理的,要求全部用链表实现。
(6)将学生基本信息保存到文件中。
(7)进入系统之前要先输入密码。
题目10: 职工工资管理系统
功能设计要求
- 输入记录:将每一个职工的姓名、ID号以及基本工资、职务工资、岗位津贴、医疗保险、公积金的数据作为一个记录。该软件能建立一个新的数据文件或给已建立好的数据文件增加记录。
- 显示记录:根据用户提供的记录或者根据职工姓名显示一个或几个职工的各项工资和平均工资,使用链表实现。
- 修改记录:可以对数据文件的任意记录的数据进行修改并在修改前后对记录内容进行显示,使用链表实现。
4.查找记录:可以对数据文件的任意记录的数据进行查找并在查找前后对记录内容进行显示,使用链表实现。 - 删除记录:可删除数据文件中的任一记录,使用链表实现。
- 统计:
(A)计算各项工资平均工资及总工资, (B)统计符合指定条件(如职工工资前三项之和在3000元以上、30002000元、20001000元) 以内的工资职工人数及占总职工人数的百分比。(C)按字符表格形式打印全部职工工资信息表及平均工资(包括各项总的平均工资)。
7.保存数据文件功能。
例如:职工工资信息表
ID号 姓名 基本工资 职务工资 津贴 医疗保险 公积金 总工资
01 张望 1286 794 198 109 135 2034
02 李明 1185 628 135 94 114 1740
03 王小民 895 438 98 64 73 1294
04 张效章 1350 868 210 116 150 2162
05 彭山 745 398 84 61 68 1098
各项平均工资 1092.2 625.2 145 88.8 108
题目11: 歌手比赛系统
对一次歌手比赛的成绩进行管理,功能要求:
1、输入每个选手的数据包括编号、姓名、十个评委的成绩,根据输入计算出总成绩和平均成绩(去掉最高分,去掉最低分)。
2、要实现的功能及显示主菜单如下:
1)输入选手数据
2)修改选手信息
3)删除选手信息
2)评委打分
3)成绩排序(按平均分)
4)数据查询
5)追加选手数据
6)写入数据文件
7)退出系统。
3、系统中涉及到的所有信息都必须保存到文件中。
4、查询、修改、删除、追加等功能要求使用链表实现,并将结果保存至文件。
题目12: 航班信息管理
问题描述:
飞机航班系统的数据包括两部分:
① 航班信息:航班号、最大载客数、起飞地点、起飞时间、降落地点、降落时间,单价;
② 乘客信息:航班号、身份证号码、姓名、性别、出生年月、座位号。
乘客订票的主要方式是:乘客提出航班号、起飞地点、起飞时间、降落地点、订票数等订票要求,根据事先保存的航班数据决定乘客能否订票?只有全部满足了乘客的订票要求并且所订航班有足够的未订座位之后才能完成订票处理,并且修改该航班的未订座位数(每个航班的未订座位数的初始值就是该航班的最大载客数);否则,订票失败,并且给出不能订票的原因。
要求将各类数据保存在数据文件中,在处理时按航班的起飞地点建立不同的链表。
功能要求 :
⑴ 增加航班记录。将新的航班记录增加到原有的航班数据文件中。在进行处理时必须检查所要增加的航班记录是否存在,如果已经存在,应给出提示信息后停止增加;
⑵ 航班取消。如果某次航班的乘客数太少(已订票的少于本次航班最大载客数的10%),将取消该航班,但该航班的记录仍然保存在原有的航班数据文件中;
⑶ 航班查询。应该有以下几种基本的查询方式:按航班号、按起飞地点和起飞时间、按降落地点,按起飞地点和降落地点;
⑷ 航班订票。按上述问题描述中的乘客订票方式完成航班订票处理。
⑸ 设计一个菜单,至少具有上述操作要求的基本功能。
题目13: 学生成绩管理
问题描述:
设学生信息包括:学号、姓名、学期、每门课程的成绩(每学期的课程门数是不一样的) ,对学生的成绩信息进行管理。
实现要求:
实现:学生信息的录入;修改;删除和查询,按学期、学号、成绩不及格等查询。
⑴ 输入学生的成绩信息,包含学号、姓名、性别等基本信息和各课成绩,并保存为文件。
⑵ 显示全部学生各科成绩信息;
⑶ 对各科成绩统计分析(总分、平均分、最高分、最低分、及格率等);
⑷ 统计各科各分数段人数;
⑸ 按学号或姓名查找并显示某个学生的各科成绩;
⑹ 按课程成绩或总分由高到低排序显示;
⑺ 更新某个学生的基本信息或课程成绩;
⑻ 设计一个菜单,具有上述规定的操作要求、退出系统等最基本的功能。
(注意:该题可以自由发挥增加其他功能,但要求用链表处理相关模块)
题目14: 实验设备管理系统设计
实验设备信息包括:设备编号,设备种类(如:微机、打印机、扫描仪等等),设备名称,设备价格,设备购入日期,经手人,是否报废,报废日期等。
主要功能:
1、能够完成对设备的录入和修改,并将各类信息分别保存到文件。
2、对设备进行分类统计,统计时要给总价值。
3、设备的破损耗费和遗损处理,并将相关信息保存至文件。
4、设备的查询功能。
5、可以按数字、设备等的购买日期进行排序。
5、修改和删除功能使用链表实现。
要求:采用二进制文件方式存储数据,系统以菜单方式工作
题目15: 产品销售统计
一家公司生产五种产品,每种产品在一个月内每周的生产数量和销售价格都要记录下来。
下面是一个二维的表格,表格的每一行记录了五种产品分别在这一周的生产量,每一列记录了每种产品分别在四个星期中的生产量:
M11 M12 M13 M14 M15
M21 M22 M23 M24 M25
M31 M32 M33 M34 M35
M41 M42 M43 M44 M45
其中,Mij表示在第i周中第j种产品的生产量。
下面是一个二维的表格,表格的每一行记录了五种产品分别在这一周的销售量,每一列记录了每种产品分别在四个星期中的销售量:
S11 S12 S13 S14 S15
S21 S22 S23 S24 S25
S31 S32 S33 S34 S35
S41 S42 S43 S44 S45
其中,Sij表示在第i周中第j种产品的销售量。
下面是一个一维表格,表示五种产品的单价。
C1 C2 C3 C4 C5
其中,Cj表示第j种产品的单价。
根据以上内容,编程要求:
(1) 输入每种产品每周的生产值和销售值,系统涉及的所有信息都需分类保存至文件;
(2) 计算所有产品每周的生产值和销售值;
(3) 计算每种产品一个月内的生产值和销售值;
(4) 计算所有产品生产总值和销售总值;
(5) 使用链表实现查询、修改、删除产品每周的生产值和销售值等;
(6) 按以下要求和格式显示:
当输入数字1,显示每种产品每周生产值和销售值;当输入数字2,显示所有产品每周的生产值和销售值;当输入数字3,显示每种产品一个月内的生产值和销售值;当输入数字4,显示所有产品生产总值和销售总值;当输入数字5,显示退出。
显示格式示例如下:
每种产品每周的生产值
Week(1) 110 300 360 210 325
Week(2) ………………………………
Week(3) ………………………………
Week(4) ………………………………
每种产品每周的销售值
Week(1) 110 300 360 210 325
Week(2) ………………………………
Week(3) ………………………………
Week(4) ………………………………
每周所有产品的生产值和销售值
生产值 销售值
Week(1) 1300 1230
Week(2) … …
Week(3) … …
Week(4) … …
每种产品一个月内的生产值和销售值
生产值 销售值
Product(1) 500 450
Product(2) … …
Product(3) … …
Product(4) … …
所有产品一个月的生产总值和销售总值
Total product = 5220
Total sales = 4450
题目16: 书店存货清单
书店通常使用个人电脑设置一个清单来管理书籍的存货情况,该清单记录每本书籍的书名,作者,出版社,在清单中的位置等信息。当顾客想要买某本书时,只要输入书籍的名称和作者,系统就会显示该书籍是否在清单中,如果书籍在清单中,系统会显示书籍的详细信息以及库存数量,如果不在清单中,也会显示相应的提示信息。如果顾客想买的书籍数量在库存的范围内,系统会计算总价格并显示出来,否则,会提示:所需数量不在库存范围内,现在该书籍的数量。
根据以上的分析,编程要求:
(1) 用结构体自行定义几本书籍,要求包括书籍名称,作者,出版社,出版日期,价格,在目录中的位置;并将书籍等各类信息保存至文件。
(2) 使用链表实现书籍等各类信息的查询、修改、删除操作,并将更新后的信息保存至文件;
(3) 当从键盘输入某本书的名称和作者姓名,如果能查询到则显示该书籍的所有信息,并提示“请输入所需数量”,如果所需数量在库存范围内,则显示总价,否则,显示“所需数量不在库存范围内”,接着继续提示顾客是否还想买其他书籍,如果输入“y”或“Y”表示继续输入下一本书的名称和作者姓名,进行下一轮查询;如果不能查询到该书籍,则显示“谢谢,再见!”,依次类推,不断循环。
(4) 最后要显示顾客想购买的书籍的信息及总价。
题目17: 职工工作量统计系统设计
编写一个程序,该程序能输入职工工号、完成的产品数量、产品名称、产品种类,程序允许同一职工有多次输入,由程序对其完成的产品数量实现累计。程序按完成数量对他们排序,并确定他们的名次。按完成的产品数量由多到少的顺序,输出名次、同一名次的职工人数及他们的工号(工号由小到大顺序输出)。
要求:
(1)程序用有序链表实现相关功能
(2)各类信息存储至文件
(3)修改、删除后的信息需要同步更新至文件。
(4)系统具有数据录入功能。
(5)工作量统计功能,可以分别按职工工号、产品种类。
(6)工作量排序功能。
(7)通过链表对录入的信息进行查询、修改、删除。
题目18: 单项选择题标准化考试系统设计
一、功能要求:
1、采用文本菜单界面(如果能采用图形菜单界面更好)
2、用文件保存试题库。(每个试题包括题干、4个备选答案、标准答案)
3、试题录入:可随时增加试题到试题库中,但如果出现与题库中已存在题的题干相同的,则给出提示信息,不能增加)
4、试题修改、删除、插入等功能要求用链表实现。
5、试题抽取:每次从试题库中可以随机抽出N道题(N由键盘输入)
6、答题:进入测试之前先输入用户名、密码登录,以方便保存用户信息。用户可实现输入自己的答案
7、自动判卷:系统可根据用户答案与标准答案的对比实现判卷并给出成绩。
8、排行榜功能,排行榜显示用户名、分数、做题时间等。
9、查看历史答卷情况。
题目19: 职工信息管理系统设计
职工信息包括职工号、姓名、性别、出生日期、学历、工资、住址、电话等(职工号不重复)。
试设计一职工信息管理系统,使之能提供以下功能:
1、系统以菜单方式工作
2、职工信息录入功能(职工信息用文件保存)
3、职工信息浏览功能
4、职工信息查询功能(如按学历、职工号等进行查询)
5、职工信息删除、修改功能(输入正确密码才可以操作),要求使用链表实现
题目20: 机房收费管理系统
(1)输入功能:输入若干名学生的学号、班级、姓名、机器号、开始上机时间和结束上机时间,并将信息保存至文件。
(2)计算功能:计算每个学生的上机费用(计算公式:上机费用=(结束上机时间-开始上机时间)*收费标准,(以分钟为单位))
(3)使用链表进行增加、修改、删除功能:修改学生上机的个人档案
(4)查询功能:a.按条件(班级、学号、姓名)查询学生上机信息,并能显示查询学生的相应全部档案。b.查询某机器应收费总数
题目21: 电子英汉词典设计
一、问题描述
英汉词典作为一个常用的学习工具,是我们经常要使用的。该系统能完成一个简单的电子英汉词典的功能,如:单词的查找、增词、删除、修改和维护等工作。
二、功能描述
- 在计算机中建立有限规模的电子英汉词典(保存至文件),利用链表实现电子英汉词典的查找、增词、删除、修改和维护工作。
- 词典的内容为:每行对应一个词条,每个词条由两个字符串组成,字符串用若干空格符分开;前一个是单词字符串(英文),后一个是释义字符串(中文),使用分号作为多个释义的分隔符(无空格)。
- 对单词和释义字符串长度的限定分别为不少于20个与40个字符,词条数限定为不少于200条。
- 采用菜单工作方式。在一个操作执行之后,程序询问是否继续执行该操作。如输入Y或y,则重复同一操作,不退回到菜单;如输入其它信息,则回到菜单等待另一次选择。仅当选择退出操作时,程序应询问是否将修改后的词典存盘,并根据用户选择存盘退出或不存盘退出。
- 测试功能。测试前,进行用户登录,屏幕上随机出现一个汉语单词或英语单词,提示学生给出相应答案,答错了要提示要求重新输入,直到答对为止。统计给分,且累计,够一定分数后可进级。
- 排行榜功能,排行榜显示用户名、等级等。
题目22: 销售管理系统设计
某公司有四个销售员(编号:1-4),负责销售五种产品(编号:1-5)。每个销售员都将当天出售的每种产品各写一张便条交上来。每张便条包含内容:1)销售员的代号,2)产品的代号,3)这种产品的当天的销售额。每位销售员每天上缴1张便条。
试设计一个便条管理系统,使之能提供以下功能:
1、便条信息录入功能(便条信息用文件保存)--输入
2、收集到了上个月的所有便条后,读取销售情况
1)计算每个人每种产品的销售额。
2)按销售额对销售员进行排序,输出排序结果(销售员代号)
3)统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果(需输出产品的代号和销售额)
3、使用链表进行增加、删除、修改便条信息,并将更新后的信息保存至文件。
题目23: 银行账户信息管理系统
功能要求:
1、 经办人登录功能
2、 开户功能,各类信息全部保存至文件。(每个客户是一条记录,包括编号、客户姓名、支取密码、客户地址、客户电话、账户总金额,至少10条客户信息)
3、具有查询帐户余额的功能
4、具有简单的存取款功能(若取款数超过余额时要给出相应提示,存取款后应该告诉客户余额)
5、用链表实现帐户的增加、删除和修改(删除账户只能是帐户为0的才可以)
6、把所有的操作记录和管理员信息(如取款、存款记录)保存至文件。在存取款文件中,每次存取款是一条记录,包括编号、日期、操作类别、存取数目、经办人。
题目24: 考勤管理系统
考勤信息记录了学生的缺课情况,它包括:缺课日期、第几节课、课程名称、学生姓名、缺课类型(迟到、早退、请假及旷课)。试设计一考勤管理系统,使之能提供以下功能:
1.录入学生的缺课记录,系统涉及的所有信息需保存至文件;
2.使用链表实现修改、删除某个学生的缺课记录;
3.查询某个学生的缺课情况;
4.统计某段时间内,旷课学生姓名及旷课次数,按旷课次数由多到少排序;
5.统计某段时间内,有学生旷课的课程及旷课人次,按旷课人次由多到少排序;
6.系统以菜单方式工作。
题目25: 图书信息管理系统设计
图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。试设计一图书信息管理系统,使之能提供以下功能:
系统以菜单方式工作
1) 图书信息录入功能(图书等各类信息用文件保存)--输入
2) 图书信息浏览功能--输出
3) 查询和排序功能:(至少一种查询方式)--算法
4) 按书名查询
5) 按作者名查询
6) 使用链表实现图书信息的删除与修改
题目26: 车票管理系统
一车站每天有n个发车班次,每个班次都有一班次号(1、2、3…n),固定的发车时间,固定的路线(起始站、终点站),大致的行车时间,固定的额定载客量。如
班次 发车时间 起点站 终点站 行车时间 额定载量 已定票人数
1 8:00 郫县 广汉 2 45 30
2 6:30 郫县 成都 0.5 40 40
3 7:00 郫县 成都 0.5 40 20
4 10:00 郫县 成都 0.5 40 2
…
用C语言设计一系统,能提供下列服务:
(1)录入班次信息(各类信息用文件保存)
(2)使用链表实现增加、修改、删除班次数据,更新后数据进行保存。
(3)浏览班次信息,可显示出所有班次当前状态(如果当前系统时间超过了某班次的发车时间,则显示“此班已发出”的提示信息)。
(4) 查询路线:可按班次号查询 ,可按终点站查询
(5)售票和退票功能
当查询出已定票人数小于额定载量且当前系统时间小于发车时间时才能售票,自动更新已售票人数
退票时,输入退票的班次,当本班车未发出时才能退票,自动更新已售票人数
(6)售票和退票操作信息保存至文件,并可读出查看。
题目27: 酒店房间登记与计费管理系统
功能:
1、 界面友好(良好的人机交互)。
2、 输入房间信息列表(结构体定义要合理),各类信息保存至文件。
3、 对不同标准的房间实施不同的收费标准,也可以按天收费或按小时收费,可以按照房间号、房型等进行排序。
4、 登记入住。
5、 使用链表对顾客入住信息进行管理,包括增加、删除、修改等。
6、 查询房间的入住情况。
7、 查询房间当前费用。
8、 结账退房等操作。在结账退房时,根据入住的时间,计费方式和房间单价计算出总费用。
9、 结账退费操作信息保存至文件,并可按条件读出信息。
题目28: 商品订购系统设计
功能:
1、 界面友好(良好的人机交互)。
2、 输入商品信息并保存至文件(包括商品编号、商品名称、商品型号、商品价格、商品产地、库存数量和已订购数量等,至少包括10种产品供顾客选择)。
3、 使用链表实现商品的增、删、改功能,并把更新后的信息保存至文件。
4、 查询商品功能,如输入商品名称、商品型号等。
5、 选购流程:所选商品编号—列出对应商品的信息—要求顾客输入邮寄地址信息—确认订购,是否继续选购其它商品,列出所有选订商品,再次确认订购。
6、 订购信息保存至文件。
7、 每天订购统计功能,并能根据输入的数据显示低于或高于此数据的商品信息。
第二类题目 小游戏和图形处理
题目29: 井子棋游戏
1. 目的与要求
(1) 设计一个程序实现人与计算机玩井子棋游戏,假设计算机画×,人画O,人可选择是否先走。
(2) 显示3×3方格的棋盘,一个玩家选择一个棋格画×,紧接着另一个玩家选择一个空棋格画O,双方轮流走棋,直到一个玩家占领一行,一列或一条对角线获胜,这时比赛结束。
(3) 输出参考格式:
是否先走(Y/N)?y
输入要走的棋格行号和列号:1,1
+------+------+------+
| | | |
+------+------+------+
| | O | |
+------+------+------+
| | | |
+------+------+------+
计算机选手走的棋格是:0,0
(4) 实现用户排名功能,要求能够将排名信息进行保存。
(5) 当新用户的成绩需要插入排名列表时,要能够修改原列表信息;如果是同一用户需要更新成绩,则覆盖原成绩。
(6) 插入、修改、删除排名信息等要求使用链表实现。
2. 实现提示(仅供参考)
(1) 选手及棋局状态:可以采用枚举类型定义选手{Human,Computer};选手棋局状态{WIN(胜),LOSE(负),TIE(平),UNEND(还没结束)}
(2) 棋格位置:用棋格的行号和列号来表示
(3) 棋格打分规则:
① 如果棋盘上有棋子,则得0分;
② 如果棋盘上没有棋子,但棋格所在行,列或对角线有两个×,则得6分;
③ 如果棋盘上没有棋子,但棋格所在行,列或对角线有两个O,则得5分;
④ 如果棋盘上没有棋子,但棋格所在行,列或对角线其他棋格有一个×和一个没有棋子,则得4分;
⑤ 如果棋盘上没有棋子,但棋格所在行,列或对角线其他棋格有一个O和一个没有棋子,则得3分;
⑥ 如果棋盘上没有棋子,但棋格所在行,列或对角线没有棋子,则得2分;
⑦ 如果棋盘上没有棋子,但棋格所在行,列或对角线有一个×和一个O,则得1分。
(4) 选手走棋规则:选择分值最高值为计算机的走棋,如果有多个棋格的分值都为最高分,则随机选择一个分值最高的棋格作为计算机的走棋。
题目30: 国际象棋游戏
编写程序,实现国际象棋游戏,要求:
(1)实现国际象棋游戏的各个规则
(2)使用图形函数生成棋盘等。
(3)用文件存储用户的进度
(4)用户开始新游戏时,先检测是否有历史记录,有的话可以继续未完成的棋局,也可以重新开始。
(5)实现用户排名功能,要求能够将排名信息进行保存,存至文件永久保存。
(6)当新用户的成绩需要插入排名列表时,要能够修改原列表信息;如果是同一用户需要更新成绩,则覆盖原成绩。
(7)插入、修改、删除排名信息等要求使用链表实现。
题目31: 围棋
编写程序,实现围棋游戏,要求:
(1)实现围棋游戏的各个规则
(2)使用图形函数生成棋盘等。
(3)用文件存储用户的进度
(4)用户开始新游戏时,先检测是否有历史记录,有的话可以继续未完成的棋局,也可以重新开始。
(5)实现用户排名功能,要求能够将排名信息进行保存,存至文件永久保存。
(6)当新用户的成绩需要插入排名列表时,要能够修改原列表信息;如果是同一用户需要更新成绩,则覆盖原成绩。
(7)插入、修改、删除排名信息等要求使用链表实现。
题目32: 中国象棋
编写程序,实现中国象棋游戏,要求:
(1)实现中国象棋游戏的各个规则
(2)使用图形函数生成棋盘等。
(3)用文件存储用户的进度
(4)用户开始新游戏时,先检测是否有历史记录,有的话可以继续未完成的棋局,也可以重新开始。
(5)实现用户排名功能,要求能够将排名信息进行保存,存至文件永久保存。
(6)当新用户的成绩需要插入排名列表时,要能够修改原列表信息;如果是同一用户需要更新成绩,则覆盖原成绩。
(7)插入、修改、删除排名信息等要求使用链表实现。
题目33: 五子棋游戏
1. 基本要求
(1)实现五子棋游戏的各个规则
(2)使用图形函数生成棋盘等。
(3)用文件存储用户的进度
(4)用户开始新游戏时,先检测是否有历史记录,有的话可以继续未完成的棋局,也可以重新开始。
(5)实现用户排名功能,要求能够将排名信息进行保存,存至文件永久保存。
(6)当新用户的成绩需要插入排名列表时,要能够修改原列表信息;如果是同一用户需要更新成绩,则覆盖原成绩。
(7)插入、修改、删除排名信息等要求使用链表实现。
2. 目的与要求
(1) 游戏规则:传统五子棋的棋具与围棋相同,棋子分为黑白两色,盘为19×19,棋子放置于棋盘线交叉点上。两人对局,各执一色,轮流下一子。如果某一方下棋的棋子最先5子连续连成一线(行、列、对角线),则该方为赢家,游戏一局结束;如果棋盘下满未定胜负则为平局,游戏一局结束。
(2) 功能模块:将程序分为图形显示、玩家控制、胜负判断和玩家计分四个模块。
① 图形显示模块:程序开始运行时,给出欢迎及帮助界面;游戏开始后要求生成19×19的棋盘图像,并在棋盘上方提示当前落子方棋子颜色,游戏进行过程中,要求实时显示棋盘上已落下的棋子;分出胜负后,要求给出游戏结束画面。
② 玩家控制模块:程序开始时,需玩家确定而后开始游戏;游戏过程中,两个玩家通过不同的按键移动光标,选择落子;游戏结束时,有玩家选择是否开始新棋局。
③ 胜负判断模块:实时监测棋盘上棋子,一旦某一色棋子出现五子连线,终止游戏程序,并着色连成一线的五子,弹出该色玩家胜出界面。
④ 玩家计分模块:一方玩家再胜利后通过对文件的操作进行计分,并输出于计分板上。
(3) 其他要求:
① 进入演示程序后,即显示欢迎界面,按任何键进入帮助界面,再按任何键可以进入主界面开始游戏。
② 棋子的移动与落子有键盘上按键控制,本程序选取1P按键为W、S、A、D和空格键,2P按键为↑、↓、←、→和回车键,分别代表上移、下移、左移、右移光标和落子。在光标移动的过程中,光标按照玩家按键移动;在玩家按下落子按键后,程序自动调用棋子显示子程序和判断胜负子程序。1P、2P的落子后,程序会为落子处的数组元素赋一个特定值,用于判定胜负。
③ 游戏中esc键可以直接退出游戏,backspace键可以操作进行悔棋。
④ 游戏过程中,如果玩家1或者玩家2有一方获得胜利后,程序自动将提示哪一方获得了胜利,并将着色构成连珠的5个子。
⑤ 游戏结束且玩家选择不再继续后,跳出结束界面。退出程序。
3. 实现提示
(1) 程序不涉及人机交互,算法较为简单。首先,以落子为出发点,分别沿着水平、竖直和两条对角线方向(分别为45°和135°)进行搜索,看在这四个方向是否最后落子的一方构成连续五个棋子。为了提高搜索速度,尽量减少搜索范围。以落子为中心两侧各判断四子共九子,判断这九子中是否有最后落子的一方的连续五个棋子。只要最后落子的一方在任一方向上有连续五个棋子,就表示该盘棋局已经分出胜负。
(2) 监控键盘输入的函数及各键的ASCII码值;图形方式下的输入、输出及其相关的函数;判定五子成一线的方法,即矩阵中行向、列向、两条对角线方向上是否有连续五子;调用系统提供的声音函数等。
题目34: 俄罗斯方块游戏
1. 目的与要求
(1) 游戏规则:7种状态的方块(长条型、Z字型、反Z字型、田字型、7字型、反7字型、T字型)随机产生,自由下落,落下时可由玩家用上、下、左、右控制键控制翻转和移动,以便以万家所需要的形态和位置落下。如果落下时,方块的方格能填满某一行,则这一行可消去。消去一行后,游戏可给玩家加分,若由存在空格的方块填满整个窗口,则游戏失败。
(2) 游戏界面:游戏的背景色是黑色,方块用蓝色,在一定区域内运动和变形,落下后的障碍物用黄色显示。
(3) 游戏形状:由数组作为存储方块状态的数据结构,各个方块要能实现下落、移动、旋转,旋转可设为顺时针或逆时针变形,一般为逆时针,实现下落底部方块的处理。
(4) 键盘处理:方块下落时,可通过键盘方向键(上、下、左、右键)对该方块进行向上(变形),向下(加速)、向左、向右移动。
(5) 鼠标事件:通过点击菜单栏中相应的菜单项,可以实现游戏的开始、结束,方块形状的变换,分数、等级的显示,以及游戏帮助等功能。
(6) 显示需求:当不同的方块填满一行时可以消行,剩余方块向下移动并统计分数。当达到一定分数的时候,会增加相应的等级。
(7)实现用户排名功能,要求能够将排名信息进行保存,存至文件永久保存。
(8)当新用户的成绩需要插入排名列表时,要能够修改原列表信息;如果是同一用户需要更新成绩,则覆盖原成绩。
(9)插入、修改、删除排名信息等要求使用链表实现。
2. 实现提示
(1) 方块如何实现旋转:通用的方法是旋转90度,还可以把每个方块各种变形的样子都用结构体定义好,形成一个封闭的链表,变形一次指针指向下一种形状。
(2) 方块是否还能下落:用一个带有返回值的函数,若碰撞则说明不能下落,返回1;反则说明没有碰撞,返回0。即将整个4×4方块数组下落看成一个单位长度,与游戏空间数组有重叠的1,则在当前位置4×4数组是1的地方赋值给游戏空间对应的数组元素,表示停止下落,并画有1 的地方。对于左移、右移一个单位长度有重叠的1 ,则不允许左移、右移,继续自然下落。
(3) 方块如何实现消行:先认为每一行都是满1的,从游戏空间的数组由上到下扫描,一旦测试到某一行中某个列元素为0,则认为这一行没满,跳出这行的扫描循环,进入下一行的扫描。若扫描完某一行的元素都没有发现0,则以这行以上的每一行完完整整地将上一行的元素赋值给下一行,这个过程以由下到上进行,然后将整个游戏空间画黒,再在有1的地方画小正方形。
题目35: 迷宫游戏
功能:
1.随机生成迷宫,找出由入口经过迷宫到达出口的一条路径,允许选择人或计算机找出路。
2.界面要求:初始状态——显示迷宫的图面;用箭头指出入口外和出口外;游戏进行状态——选择人找出路时,显示每一步的结果,到边了和遇上障碍,发出“嘟”的叫声。走到出口处,应给出“胜利”的字样;选择计算机找出路时,用一条有颜色的线画出路径,若找不出出口就显示“无出路”的字样。
3.计算机找出路部分。
4.实现用户排名功能,要求能够将排名信息进行保存,存至文件永久保存。
5.当新用户的成绩需要插入排名列表时,要能够修改原列表信息;如果是同一用户需要更新成绩,则覆盖原成绩。
6.插入、修改、删除排名信息等要求使用链表实现。
题目36: 贪吃蛇游戏
1.目的与要求
(1)界面友好(图形界面,良好的人机交互)
(2)实现用户排名功能,要求能够将排名、成绩等信息进行保存,存至文件永久保存。
(3)当新用户的成绩需要插入排名列表时,要能够修改原列表信息;如果是同一用户需要更新成绩,则覆盖原成绩。
(4)插入、修改、删除排名信息等要求使用链表实现。
2.实现提示
贪吃蛇游戏是一个经典小游戏,一条蛇在封闭围墙里,围墙里随机出现一个食物,通过按键盘四个光标键控制蛇向上下左右四个方向移动,蛇头撞倒食物,则食物被吃掉,蛇身体长一节,同时记10分,接着又出现食物,等待蛇来吃,如果蛇在移动中撞到墙或身体交叉蛇头撞倒自己身体游戏结束。
这个程序的关键是表示蛇的图形以及蛇的移动。用一个小矩形表示蛇的一节身体,身体每长一节,增加一个矩形块,蛇头用两节表示。移动时必须从蛇头开始,所以蛇不能向相反方向移动,也就是蛇尾不能改作蛇头。如果不按任何键,蛇自行在当前方向上前移,当游戏者按了有效的方向键后,蛇头朝着指定的方向移动,一步移动一节身体,所以当按了有效的方向键后,先确定蛇头的位置,然后蛇身体随着蛇头移动,图形的实现是从蛇头的新位置开始画出蛇,这时由于没有庆平的原因,原来蛇的位置和新蛇的位置差一个单位,所以看起来社会多一节身体,所以将蛇的最后一节用背景色覆盖。食物的出现和消失也是画矩形块和覆盖矩形块
题目37: 扫雷游戏
请参考Windows中的扫雷游戏,编程实现一个简易版的扫雷游戏。
基本要求
(1)实现扫雷游戏的各个规则
(2)使用图形函数生成界面等。
(3)用文件存储用户的进度。
(4)用户开始新游戏时,先检测是否有历史记录,有的话可以继续未完成的游戏,也可以重新开始。
(5)实现用户排名功能,要求能够将排名、成绩信息进行保存,存至文件永久保存。
(6)当新用户的成绩需要插入排名列表时,要能够修改原列表信息;如果是同一用户需要更新成绩,则覆盖原成绩。
(7)插入、修改、删除排名、成绩等信息等要求使用链表实现。
题目38: 2048游戏
基本要求
(1)实现游戏规则
(2)使用图形函数生成界面等。
(3)用文件存储用户的进度。
(4)用户开始新游戏时,先检测是否有历史记录,有的话可以继续未完成的游戏,也可以重新开始。
(5)实现用户排名功能,要求能够将排名信息进行保存,存至文件永久保存。
(6)当新用户的成绩需要插入排名列表时,要能够修改原列表信息;如果是同一用户需要更新成绩,则覆盖原成绩。
(7)插入、修改、删除排名信息等要求使用链表实现。
游戏规则:
2048游戏共有16个格子,初始时初始数字由2或者4构成。
1、手指向一个方向滑动,所有格子会向那个方向运动。
2、相同数字的两个格子,相撞时数字会相加。
3、每次滑动时,空白处会随机刷新出一个数字的格子。
4、当界面不可运动时(当界面全部被数字填满时),游戏结束;当界面中最大数字是2048时,游戏胜利。
游戏效果如下图
源码
https://pan.baidu.com/s/1pq1Nwwo0hlc_J84F93HM4A?pwd=1111
标签:02,11,课程设计,游戏,功能,信息,保存,链表,查询 From: https://www.cnblogs.com/codewriter/p/17111249.html