C语言数据结构课程设计题(20题)[2024-11-03]
课题1:学生成绩管理系统
问题描述:
设计并实现一个学生成绩管理系统,要求以学生成绩管理业务为背景,学生信息包含学号,姓名,性别,相应科目成绩等信息。
具体设计要求如下:
(1)录入学生信息
(2)查询学生信息(按学号、按名称……)
(3)插入、删除学生信息等基本功能。
(4)按照成绩进行排序
课题2:芳馨美食城后台管理系统
问题描述:
设计并实现一个美食城后台管理系统,可以进行顾客管理和商家管理。顾客信息存储在user.txt文件中,可以包含用户账号、密码和联系方式。商家信息保存在shop.txt文件中,可以包含商家ID,商家名称、密码、电话、餐品特色及特色菜、人气值等。
具体设计要求如下:
(1) 用户管理可以查看所有顾客、查询某个顾客、删除某个顾客等。
(2) 商家管理可以查看所有商家、查询某个商家、删除某个商家等。
(3) 可以根据商家的人气值对商家进行排序,至少使用两种不同的排序方法。
课题3:川渝人家订餐系统
问题描述:
设计并实现一个订餐管理系统,可以进行餐品的预订,一个用户(会员或非会员)可以预订多种餐品,一个餐品也可以被多个用户预订。用户信息存储在user.txt文件中,可以包含用户账号、用户类型(会员或非会员)、密码和联系方式,餐品信息存储在menu.txt文件中,包含餐品ID,餐品名称,餐品介绍等。为了简化处理,所有预订信息均保存在用户订餐信息文件order.txt文件中。用户可以通过读写文件order.txt中的信息,实现个人对预订信息的管理。
具体设计要求如下:
(1) 可以查询顾客本人的所有预订信息。
(2) 可以查询某个餐品的预订信息。通过输入的餐品名称,查询预订该餐品的所有预订信息。
(3) 添加某餐品的预订、删除某餐品的预订。输入某餐品的名称,如果该餐品在menu.txt文件中存在,则说明可以预订,增加一条新的预订信息存储在文件order.txt的最后;如果餐品不存在,则预订失败。
课题4:机房预订系统
问题描述:
设计并实现一个机房预订系统,一个用户(学生或者老师)可以预订多个机房,一个机房也可以被多个用户预订。用户信息存储在user.txt文件中,可以包含用户账号、用户类型(学生或老师),密码和联系方式,机房信息存储在room.txt文件中,包含机房ID,机房名称,机房地址等。为了简化处理,所有预订信息均保存在用户预订信息文件order.txt文件中。用户可以通过读写文件order.txt中的信息,实现个人对预订信息的管理。
具体设计要求如下:
(1) 可以查询用户本人的所有预订信息。
(2) 可以查询某个机房的预订信息。通过输入的机房名称,查询预订该机房的所有预订信息。
(3) 添加某机房的预订、删除某机房的预订。输入某机房的名称,如果该机房在room.txt文件中存在,则说明可以预订,增加一条新的预订信息存储在文件order.txt的最后;如果机房不存在,则预订失败。
课题5:基于栈的后缀算术表达式求值。
问题描述:
输入一个中缀算术表达式,将其转换为后缀表达式,然后对后缀表达式进行求值。运算符包括“+,-,*,/,=”,参与运算的为小于10的自然数
具体设计要求如下:
输入要求:多组数据,每组数据一行,对应一个算术表达式,每个表达式均以"=“结尾。当表达式只有一个”="时,输入结束。
输出要求:对于每组数据输出2行,第1行为中缀表达式对应的后缀式,第2行为后缀式求值的结果。
输入样例:
9+(3-1)*3+1/2=
1+2=
=
输出样例:
931-3*+12/+
15
12+
3
课题6:基于字符串模式匹配算法的病毒感染检测问题。
问题描述:
医学研究者最近发现了某些新病毒,通过对这些病毒的分析,得知它们的DNA 序列都是环状的。现在研究者已收集了大量的病毒DNA 和人的DNA数据,想快速检测出这些人是否感染了相应的病毒。为了方便研究,研究者将人的DNA 和病毒DNA 均表示成由一些字母组成的字符串序列,然后检测某种病毒DNA 序列是否在患者的DNA序列中出现过, 如果出现过,则此人感染了该病毒,否则没有感染。例如, 假设病毒的DNA 序列为 baa, 患者1的DNA 序列为 aaabbba,则感染;患者2的DNA 序列为 babbba, 则未感染。(注意, 人的DNA 序列是线性的,而病毒的DNA序列是环状的。)
具体设计要求如下:
分别利用BF算法以及KMP算法来实现字符串的模式匹配过程,并进行两种算法效率的比较
输入要求:多组数据,每组数据有1行,为序列A和B,A对应病毒的DNA序列,B对应人的DNA序列。A和B都为“0”时输入结束。
输出要求:对于每组数据输出1行, 若患者感染了病毒输出“YES”, 否则输出“NO”。
输入样例:
abbab abbabaab
baa cacdvcabacsd
abc def
0 0
输出样例:
YES
YES
NO
课题7:城市链表
问题描述:
将若干城市的信息,存入一个带头结点的单链表。结点中的城市信息包括:城市名,城市位置坐标。要求能够利用城市名和位置坐标进行有关查找、插入、删除、更新等操作。
基本要求
(1) 给定一个城市名,返回其位置坐标;
(2) 给定一个位置坐标P和一个距离D,返回所有与P的距离小于等于D的城市。
课题8: 看病排队候诊问题
问题描述:
设计并实现一个患者排队管理系统
基本要求:
要求病人到医院看病时必须排队候诊,而病人的病情有轻重之分,不能简单的根据先来先服务的原则进行诊断治疗,所以医院根据病人的病情规定了不同的优先级别。医生在诊断治疗时,总是选择优先级别高的病人进行诊治,如果遇到两个优先级级别相同的额病人,则选择最先来排队的病人进行诊治。
课题9: 校园导游程序
问题描述
用无向网表示学校的校园景点平面图,图中顶点表示主要景点,存放景点的编号、名称、简介等信息,图中的边表示景点间的道路,存放路径长度等信息。要求能够回答有关景点介绍、游览路径等问题。
基本要求:
(1) 查询各景点的相关信息;
(2) 查询图中任意两个景点间的最短路径。
(3) 增加、删除、更新有关景点和道路的信息。
课题10: 员工管理系统
问题描述
员工的信息包括:编号、姓名、性别、出生年月、学历、职务、电话、住址等。系统能够完成员工信息的查询、更新、插入、删除、排序等功能。
基本要求
(1) 排序:按不同关键字,对所有员工的信息进行排序。
(2) 查询:按特定条件查找员工。
(3) 更新:按编号对某个员工的某项信息进行修改。
(4) 插入:加入新员工的信息。
(5) 删除:按编号删除已离职的员工的信息。
课题11: 算术表达式求值
问题描述
算术表达式是由操作数、运算符和界限符组成的。假设操作数是正整数,运算符只含加减乘除等四种运算符,界限符有左右括号和表达式起始、结束符“#”,如:#(4+1)*(9-8/2)#。引入表达式起始、结束符是为了方便。编程利用“算符优先法”求算术表达式的值。
基本要求
(1) 程序对所输入的表达式最简单的判断,如括号是否匹配
(2) 从键盘读入一个合法的算术表达式,输出正确的结果。
(3) 显示输入序列和栈的变化过程。
课题12: 关系查询系统
问题描述
建立关系数据库(家族关系或者公司关系),实现对其成员的相关查询。
基本要求
(1)建立家族或公司关系并能存储到文件中。
(2)实现成员的添加。
(3)可以查询成员的双亲、祖先、兄弟、 孩子等信息。
课题13: 停车场管理
问题描述:
设停车场只有一个可停放n辆汽车的狭窄通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南(大门在最南端,最先到达的第一辆车停放在车场的最北端),若停车场已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开,在其之后开入的车辆必须先退出停车场让路,待该辆车开出大门后,其他车辆再按原次序进入停车场,每辆停放在停车场的车在其离开停车场时必须按照其停留的时间长短交纳费用,试为停车场编制按照上述要求进行管理的模拟程序
设计要求:
输入1,表示车辆到达;
输入2,表示车辆离开;
输入3表示显示出停车场内及便道上的停车情况;
输入4,表示退出系统。
车辆到达操作,需输入汽车牌照号码及到达的时刻;车辆离开操作需输入汽车在停车辆的位置及离开时间,且对应输出汽车在停车场内停留的时间和应缴的费用(在便道上停留的时间不收费)
课题14:学生搭配问题。
问题描述
一班有 m 个女生,有 n 个男生(m 不等于 n ),现要开一个舞会。男女生分别编号坐在舞池的两边的椅子上。每曲开始时,依次从男生和女生中各出一人配对跳舞,本曲没成功配对者坐着等待下一曲找舞伴。
基本要求如下:
- 输出每曲配对情况;
- 计算出任何一个男生(编号为X )和任意女生(编号为Y ),在第K 曲配对跳舞的情况.至少求出 K 的两个值;
- 尽量设计出多种算法及程序。
- 提示:用队列来解决比较方便.
课题15: 运动会分数统计
参加运动会有 n 个学校,学校编号为 1……n。 比赛分成m 个男子项目,和 w 个女子项目。项目编号为男子 1……m,女子m+1……m+w 。 不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2 、1,前三名的积分分别为:5、3、2 ;哪些取前五名或前三名由学生自己设定。(m<=20,n<=20 )
功能要求:
(1) 可以输入各个项目的前三名或前五名的成绩;
(2) 能统计各学校总分;
(3) 可以按学校编号或名称、学校总分、男女团体总分排序输出;
(4) 可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名 的学校。 数据存入文件并能随时查询
(5) 规定:输入数据形式和范围:可以输入学校的名称,运动项目的名称
输出形式:有中文提示,各学校分数为整形
界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。
存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。(数据文件的数据读写方法等相关内容在 c 语言程序设计的书上,请自学解决)请在最后的上交资料中指明你用到的存储结构;
测试数据:要求使用 1、全部合法数据;2 、整体非法数据;3、局部非法数据。进行程序测试,以保证程序的稳定。测试数据及测试结果请在上交的资料中写明;
课题16: 飞机订票系统
问题描述:
通过此系统可以实现如下功能:
(1) 录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)。
(2) 查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况。
(3) 订票:(订票情况可以存在一个数据文件中,结构自己设定);可以订票,如果该航班已经无票,可以提供相关可选择航班。
(4) 退票:可退票,退票后修改相关数据文件;
(5) 客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。修改航班信息:当
(6) 航班信息改变可以修改航班数据文件
设计要求:
根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能
课题17: 电文的编码和译码
问题描述:
从键盘接受一串电文字符,输出对应的huffman编码,同时翻译出编码生成的代码串,输出对应的电文字符串
设计要求:
(1) 构造一棵huffman树
(2) 实现huffman编码,并用huffman编码生成代码串进行译码
(3) 程序中字符和权值是可变的,实现程序的灵活性
课题18: 图书管理系统。
基本描述:
基于图书管理的业务流程设计并建立一个图书管理系统
设计要求:
(1)每种书的登记内容包括书号、书名、著作者、现存量和库存量;
(2)采编入库:新购一种书,确定书号后,登记到图书帐目表中,如果表中已有,则只将库存量增加;
(3)借阅:如果一种书的现存量大于 0,则借出一本,登记借阅者的书证号和归还期限, 改变现存量;
(4)归还:注销对借阅者的登记,改变该书的现存量。
课题19: 二叉树的建立与遍历
问题描述
建立一棵二叉树,并对其进行遍历(先序、中序、后序),打印输出遍历结果。
基本要求
从键盘接受输入(先序),以二叉链表作为存储结构,建立二叉树(以先序来建立),并采用递归算法对其进行遍历(先序、中序、后序),将遍历结果打印输出。
测试数据(可自己定)
ABCффDEфGффFффф(其中ф表示空格字符)
则输出结果为
先序:ABCDEGF
中序:CBEGDFA
后序:CGBFDBA
课题20: 简易英文单词词频统计和检索系统
问题描述:
英文文章存储在一个文本文件中, 分别基于线性表和散列表不同的存储结构,实现单词词频的统计和单词的检索功能。同时计算不同检索策略下的ASL, 通过比较ASL 的大小,对不同检索策略的时间性能做出相应的比较分析(在课程设计报告中给出)。
具体设计要求如下:
- 一篇包括标点符号的英文文章存储在文本文件InFile. txt中, 假设文件中单词的个数最多不超过5000个。从该文件中读取英文单词, 过滤掉所有的标点。
- 分别基于线性表和散列表不同的存储结构, 实现单词词频的统计和单词的检索功能。其中, 检索策略总计包括以下4种: 基于顺序表的顺序查找、基于链表的顺序查找、基于开放地址法的散列查找、基于链地址法的散列查找。
- 不论采取哪种检索策略, 实现的功能均相同。
(1) 词频统计
当读取一个单词后,若该单词尚未出现,则在适当的位置上添加该单词,将其词频计为1;若该单词已经出现过,则将其词频增加1。统计结束后,将所有单词及其频率按照词典顺序写入文本文件中。其中, 不同的检索策略分别写入以下4个不同的文件(四选三)。
基于顺序表的顺序查找: OutFilel. txt
基于链表的顺序查找: OutFile2. txt
基于顺序表的二分查找OutFile3.txt
基于开放地址法的散列查找: OutFile4. txt
(2) 单词检索
输入一个单词,如果查找成功,则输出该单词对应的词频,同时输出查找成功的平均查找长度ASL和查找花费的时间。如果查找失败,则输出“查找失败”的提示。
1458

被折叠的 条评论
为什么被折叠?



