C/C++《数据结构课程设计》题目(17题)[2024-12-29]

C/C++《数据结构课程设计》题目(17题)[2024-12-29]

软件工程专业 B230412-14班《数据结构课程设计》题目

学生从以下17个题目中选择一题,按题目要求及限选人数独立完成设计。设计题目及要求如下:

1.运动会分数统计(限选2人)
[问题描述]
参加运动会有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)可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。
规定:输入数据形式和范围:20以内的整数(如果做得更好可以输入学校的名称,运动项目的名称)
输出形式:有中文提示,各学校分数为整形
界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。
存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。(数据文件的数据读写方法等相关内容在c语言程序设计的书上,请自学解决)请在最后的上交资料中指明你用到的存储结构;
测试数据:要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。进行程序测试,以保证程序的稳定。测试数据及测试结果请在上交的资料中写明;

2.航空客运订票系统(限选2人)
[问题描述]
通过此系统可以实现如下功能:
录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)
查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况;
订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班;
退票: 可退票,退票后修改相关数据文件;
客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。
修改航班信息:  当航班信息改变可以修改航班数据文件。
[基本要求]
根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能;

3.模拟旅馆管理系统的一个功能——床位的分配与回收(限选2人)
[问题描述]
某旅馆有n个等级的房间,第I等级有ai个房间,每个等级有bi个床位(1≤i≤n)。试模拟旅馆管理系统中床位分配和回收的功能,设计能为单个旅客分配床位,在其离店便回收床位(供下次分配)的算法。
[基本要求]
(1)输入数据
分配时,输入旅客姓名、年龄、性别、到达日期和所需房间等级。
回收时,输入房间等级、房间号和床位号。
(2)输出数据
分配成功时打印旅客姓名、年龄、到达日期、房间等级、房间号码和床位号码。
分配不成功时,如所有等级均无床位,则打印“客满”信息;如旅客需要的等级均无空床位,则打印“是否愿意更换等级?”的询问信息。若旅客愿意更换,则重新输入有关信息,再进行分配,否则分配工作结束。

4.校园导游程序(限选3人)
[问题描述] 
用无向网表示你所在学校的校园景点平面图,图中顶点表示主要景点,存放景点的编号、名称、简介等信息,图中的每条边包含两个景点间的距离和预计消耗的卡路里。要求能够回答有关景点介绍、游览路径等问题。
[基本要求]
(1) 查询各景点的相关信息;
(2) 能够满足不同用户的查询,如:两景点之间的最高卡路里路线和最短距离路线 
(3) 能增加、删除、更新有关景点和道路的信息。

5.哈夫曼编/译码器(限选2人)
[问题描述]
打开一篇英文文章,统计该文章中每个字符出现的次数,然后以它们作为权值,设计一个哈夫曼编/译码系统。
[基本要求]
以每个字符出现的次数为权值,建立哈夫曼树,求出哈夫曼编码,对文件yuanwen中的正文进行编码,将结果存到文件yiwen中,再对文件yiwen中的代码进行译码,结果存到textfile中。

6. 最小生成树问题(限选2人)
[问题描述]
若要在n个城市之间建设通信网络,只需要假设n-1条线路即可。如何以最低的经济代价建设这个通信网,是一个网的最小生成树问题。
[系统要求]
1利用普里姆算法求网的最小生成树。
2.要求输出各条边及它们的权值。
[测试数据]
由学生任意指定,但报告上要求写出多批数据测试结果。
[实现提示]
通信线路一旦建成,必然是双向的。因此,构造最小生成树的网一定是无向网。设图的顶点数不超过30个,并为简单起见,网中边的权值设成小于100的整数,可利用C语言提供的随机函数产生。
图的存储结构的选取应和所作操作相适应。为了便于选择权值最小的边,此题的存储结构既不选用邻接矩阵的数组表示法,也不选用邻接表,而是以存储边(带权)的数组表示图。
[选作内容]
利用堆排序实现选择权值最小的边。

7.员工管理系统(限选1人)
[问题描述]
每个员工的信息包括:编号、姓名、性别、出生年月、学历、职务、电话、住址等。系统能够完成员工信息的查询、更新、插入、删除、排序等功能。
[基本要求]
(1) 排序:按不同关键字,对所有员工的信息进行排序。
(2) 查询:按特定条件查找员工。
(3) 更新:按编号对某个员工的某项信息进行修改。
(4) 插入:加入新员工的信息。
(5) 删除:按编号删除已离职的员工的信息。

**8.哈希表的设计与实现(限选2人) **
[问题描述] 设计哈希表实现电话号码查询系统
[基本要求] 基本要求:
1、设每个记录有下列数据项:电话号码、用户名、地址;
2、从键盘输入各记录,分别以电话号码和用户名为关键字建立哈希表;
3、采用链地址法解决冲突;
4、查找并显示给定电话号码的记录;
5、查找并显示给定用户名的记录。
6、在哈希函数确定的前提下,尝试各种不同类型处理冲突的方法(至少两种),考察平均查找长度的变化。

9.英文单词的词频统计和检索系统(限选2人)
[问题描述]一篇英文文章存储在一个文本文件中,然后分别基于线性表、二叉排序树和哈希表不同的存储结构,完成单词词频的统计和单词的检索功能。同时计算不同检索策略下的平均查找长度ASL,通过比较ASL的大小,对不同检索策略的时间性能做出相应的比较分析。
[基本要求]
1、 读取一篇包括标点符号的英文文章(InFile.txt),假设文件中单词的个数最多不超过5000个。从文件中读取单词,过滤掉所有的标点。
2、 分别利用线性表(包括基于顺序表的顺序查找、基于链表的顺序查找、折半查找)、二叉排序树和哈希表(包括基于开放地址法的哈希查找、基于链地址法的哈希查找)总计6种不同的检索策略构建单词的存储结构。
3、 不论采取哪种检索策略,完成功能均相同。
(1)词频统计
当读取一个单词后,若该单词还未出现,则在适当的位置上添加该单词,将其词频计为1;若该单词已经出现过,则将其词频增加1。统计结束后,将所有单词及其频率按照词典顺序写入文本文件中。其中,不同的检索策略分别写入6个不同的文件。

基于顺序表的顺序查找— OutFile1.txt
基于链表的顺序查找— OutFile2.txt
折半查找— OutFile3.txt
基于二叉排序树的查找— OutFile4.txt
基于开放地址法的哈希查找— OutFile5.txt
基于链地址法的哈希查找— OutFile6.txt

注:如果实现方法正确,6个文件的内容应该是一致的。
(2)单词检索
输入一个单词,如果查找成功,则输出该单词对应的频率,同时输出查找成功的平均查找长度ASL和输出查找所花费的时间。如果查找失败,则输出“查找失败”的提示。

**10. 教师信息管理系统(限选1人) **
[问题描述]
教师信息管理系统包括两个方面的内容:1.教师基本信息,包括工号、姓名、性别、职称、所属部门、联系电话。
2.教师每学期上课信息,包括教师工号、上课学期学期号、课程、上课班级、理论学时数、实验学时数、合班数、上课人数。
[基本要求]
,例如:
(1) 程序运行时提供菜单。
(2) 能对n个教师的信息以及教师上课信息进行增加、删除、修改。
(3) 能对教师信息进行查询,能提供2种以上查询方式。(如按工号、姓名、职称等)。
(4) 能对教师某学期的上课信息进行增删改。
(5) 能对教师上课信息进行查询,能提供2种以上查询方式。如查询某学期某教师上课信息,或某教师所有学期上课信息,某教师上某门课程的所有信息等。
(6) 能计算某学期某教师和某学期所有教师的教学工作量。工作量计算方式为:理论课工作量+实验课工作量。理论课工作量=理论课时重复系数合班系数,若是重复课则乘以重复系数0.9,无重复则为1;如果合班数为2个,则乘以1.5,若合班数为3个以上,则合班系数为2。实验课工作量没有重复系数,但有人数系数,若上课人数<=30,系数为1.0,人数31-45,系数为1.3,人数46-60,系数为1.5,人数61-75,系数为1.7,人数76-90,系数为2.0,人数>=90,系数为2.2。
(7) 列表显示所有教师的工作量,给出两种列表显示方式,按工号排列显示和按工作量降序显示。

11.算术表达式求值及评判系统(限选1人)
【问题描述】
设计一个算术表达式的求值及评判系统,可供小学生作业,并能给出分数。
【基本要求】
(1)建立试题库文件,随机产生n个题目
(2)题目涉及加、减、乘、除、带括号的混合运算;
(3)随时可以退出;
(4)保留历史分数,能回顾历史,给出与历史分数比较后的评价。多名小学生使用该系统,应能记录他俩的所有历史记录,包括但不限于姓名,成绩,日期等测试信息。

12.家谱管理系统(限选3人)
【问题描述】实现具有下列功能的家谱管理系统
1). 输入文件以存放最初家谱中各成员的信息,成员的信息中均应包含以下内容:
姓名、出生日期、婚否、地址、健在否、死亡日期(若其已死亡),也可附加其它信息、但不是必需的。
2). 实现数据的存盘和读盘。
3). 显示家谱。
4). 按照出生日期查询成员名单。
5). 按照姓名查询,输出成员信息(包括其本人、父亲、孩子的信息)。
6). 修改某成员信息。
7).打开一家谱时,提示当天生日的健在成员。
【基本要求】
建立至少20个成员的数据,以较为直观的方式显示结果,并提供文稿形式以便检查。
界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。
存储结构:学生自己根据系统功能要求自己设计,但是要求相关数据要存储在数据文件中。
测试数据:要求使用1、全部合法数据;2、局部非法数据。进行程序测试,以保证程序的稳定。
测试数据及测试结果请在上交的资料中写明;

13. 仓库管理系统(限选1人)
【问题描述】
建立一个仓库管理程序,可以按顺序和货物名称查询仓库存储情况,也可以增加或删除货物信息、实现货物的入库出库,要求能用文件保存仓库货品信息。
【基本要求】
1) 记录货物编号,货物名称,货物数量、生产日期、保质期。
2) 能够实现按货物编号、按货物名称查询仓库中货物的库存情况。
3) 能够实现货物入库、出库,并及时更新库存数量。

14.教学计划编制问题(限选2人)
[问题描述]大学的每个专业都要制订教学计划。假设任何专业都有固定的学习年限,每学年含两学期,每学期的时间长度和学分上限值相等。每个专业开设的课程都是确定的,而且课程在开设时间的安排必须满足先修关系。每门课程有哪些先修课程是确定的,可以有任意多门,也可以没有。每门课恰好占一个学期。试在这样的前提下设计一个教学计划编制程序。
[基本要求]

  1. 输入参数包括:学期总数,一学期的学分上限,每门课的课程号(固定占3位的字母数字串)、学分和直接先修课的课程号;
  2. 允许用户指定下列两种编排策略之一:一是使学生在各学期中的学习负担尽量均匀;二是使课程尽可能地集中在前几个学期中;
  3. 若根据给定条件无解,则报告适当信息;否则将教学计划存入用户指定的文件中。
    [测试数据]
    学期总数:6;学分上限:10;该专业共开设12门课,课程号从C01到C12,学分顺序为2,3,4,3,2,3,4,4,7,5,2,3。先修关系如下:
课程编号课程名称先决条件
C1程序设计基础
C2离散数学C1
C3数据结构C1,C2
C4汇编语言C1
C5语言的设计和分析C3,C4
C6计算机原理C11
C7编译原理C5,C3
C8操作系统C3,C6
C9高等数学
C10线性代数C9
C11普通物理C9
C12数值分析C9,C10,C1

15.考试报名管理系统(限选1人)
【问题描述】
为考试报名管理人员编写一个考试报名管理系统 ,能够完成报名信息添加、查询、排序、修改等功能。
【基本要求】
用菜单选择方式完成下列功能:
(1)考生报名信息添加:包括准考证号、姓名、性别、年龄、学院、专业、班级、身份证号、报考科目(eg. CET4/CET6)等。
(2)考生报名信息查询:分别按姓名、学院、专业、班级、报考科目等进行查询。
(3)排序:分别根据姓名、年龄、学院等按升序进行排序。
(4)考生报名信息的修改、删除:按准考证号进行考生信息的修改和删除。

16. 软件工程进度规划(限选2人)
【问题描述】设计一个软件,需要进行用户需求分析、系统需求确认、系统概要设计、设计用例场景、系统的详细设计、数据库详细设计、编码、单元测试、集成测试、系统测试、维护等活动。用户需求分析需要在系统需求确认之前完成,系统的系统的详细设计必须在系统的概要设计、设计系统用例和设计用例场景之前完成。
如表所示,是一系列活动之间的关系。
表 系统活动之间的关系

活动代码活动名称先需活动
A1用户需求分析
A2系统需求确认A1
A3系统概要设计A2
A4设计用例场景
A5系统的详细设计A3, A4
A6数据库详细设计A3
A7编码A5, A6
A8单元测试A7
A9集成测试A8
A10系统测试A7
A11维护A11

图所示是设计一个软件的AOV网示意图。

请设计算法判断该软件设计流程是否有回路,若无请给出该软件设计AOV网的拓扑序列。

17. 图书管理系统(限选2人)
【问题描述】
设计一个计算机管理系统完成图书管理基本业务。
【基本要求】

  1. 每种书的登记内容包括书号、书名、著作者、现存量和库存量;
  2. 对书号建立索引表(线性表)以提高查找效率;
  3. 系统主要功能如下:
    *采编入库:新购一种书,确定书号后,登记到图书帐目表中,如果表中已有,则只将库存量增加;
    *借阅:如果一种书的现存量大于0,则借出一本,登记借阅者的书证号和归还期限,改变现存量;
    *归还:注销对借阅者的登记,改变该书的现存量。
    【进一步完成内容】
    系统功能的进一步完善;

源码联系UP主 -> https://space.bilibili.com/329101171

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值