C/C++数据结构课程设计题目(19题)[2023-12-30]

   日期:2024-12-27    作者:qfglgs 移动:http://mip.riyuangf.com/mobile/quote/65369.html

数据结构课程设计题目及要求

一、课程设计目的
《数据结构》是计算机专业一门重要的专业技术基础课程,是一门关键性核心课程。《数据结构》课程的目标是使学生学会分析研究计算机加工对象的特性,选择合适的数据结构和存储表示,以及编制相应的实现算法,培养和提高学生程序设计的能力。《数据结构》课程也是一门实践性较强的课程,设置实践环节是十分重要的。本课程设计的目标就是要达到理论与实际应用相结合,提高学生组织数据及编写大型程序的能力,并培养基本的、良好的程序设计技能以及合作能力。

二、课程设计内容

题目一:仓库管理系统(线性表应用
[问题描述]
建立一个仓库管理程序,可以按顺序和货物名称查询仓库存储情况,也可以增加或删除货物以及建立新的仓库存储系统。
[实现提示]
可以采用单向链表的存储结构,如可定义如下的存储结构

 

题目二:学生成绩管理系统(线性表应用
[问题描述]
提供身份验证,和使用系统的权限设置、判定。教师用户能实现本班同学各学期各科成绩的录入、编辑,数据必须保存在文件中,以便反复使用。学生用户提供对学号或姓名,各学期、各学科成绩的查询。学生和教师用户能按各学期、各学科分数排序输出。教师用户能统计各科成绩分数段的分布,并输出。
[实现提示]
1、 操作界面美观、友好,有必要的容错处理。
2、 分数段统计结果要求保存在单独的文件中。

题目三:单位员工通讯录管理系统(线性表应用
[问题描述]
为某个单位建立一个员工通讯录管理系统,可以方便查询每一个员工的办公室电话、手机号、及电子邮箱。其功能包括通讯录链表的建立、员工通讯信息的查询、修改、插入与删除、以及整个通讯录表的输出。
[实现提示]
可以采用单链表的存储结构,如可定义如下的存储结构

 

题目四:客户消费积分管理系统
[问题描述]
针对客户的消费情况,进行客户管理,根据客户的消费积分对客户实行不同程度的打折优惠。有录入功能:录入新客户,录入消费积分。对客户的信息可以进行修改、删除、添加;根据消费情况进行客户积分的计算;并根据积分情况实行不同情况的打折优惠。
[实现提示]
1、采用一种存储结构进行客户信息的存储
2、操作界面美观、友好,有合理的容错处理
3、查询应根据查询条件合理选择先进的查询方法。

题目五: 哈夫曼编码/译码系统(树应用
【问题描述】
利用哈夫曼编码进行通信,可以压缩通信的数据量,提高传输效率,缩短信息的传输时间,还有一定的保密性。现在要求编写一程序模拟传输过程,实现在发送前将要发送的字符信息进行编码,然后进行发送,接收后将传来的数据进行译码,即将信息还原成发送前的字符信息。
【实现提示】
在本例中设置发送者和接受者两个功能。
发送者的功能包括
①输入待传送的字符信息
②统计字符信息中出现的字符种类数和各字符出现的次数(频率
②根据字符的种类数和各自出现的次数建立哈夫曼树
③利用以上哈夫曼树求出各字符的哈夫曼编码
④将字符信息转换成对应的编码信息进行传送。
接受者的功能包括
①接收发送者传送来的编码信息
②利用上述哈夫曼树对编码信息进行翻译,即将编码信息还原成发送前的字符信息。
从以上分析可发现,在本例中的主要算法有三个
(1)哈夫曼树的建立
(2)哈夫曼编码的生成
(3)对编码信息的翻译。

题目六:教学计划编制问题(图的应用
【问题描述】
大学的每个专业都要制定教学计划。假设任何专业都有固定的学习年限,每学年含两学期,每学期的时间长度和学分上限值均相等。每个专业开设的课程都是确定的,而且课程在开设时间的安排必须满足先修关系。每门课程有哪些先修课程是确定的,可以有任意多门,也可以没有。每门课恰好占一个学期。试在这样的前提下设计一个教学计划编制程序。
【实现提示】
1、 输入参数应包括:学期总数,一学期的学分上限,每门课的课程号(可以是固定占3位的字母数字串)、学分和直接先修课的课程号。
2、 应允许用户指定下列两种编排策略之一:一是使学生在各学期中的学习负担尽量均匀;二是使课程尽可能地集中在前几个学期中。
3、 若根据给定的条件问题无解,则报告适当的信息;否则将教学计划输出到用户指定的文件中。计划的表格格式可以自己设计。
4、 可设学期总数不超过12,课程总数不超过100。如果输入的先修课程号不在该专业开设的课程序列中,则作为错误处理。

题目七: 通信录查询系统(查找应用
【问题描述】
设计散列表实现通讯录查找系统。
(1) 设每个记录有下列数据项:电话号码、用户名、地址
(2) 从键盘输入各记录,分别以电话号码为关键字建立散列表
(3) 采用线性探测再散列法解决冲突
(4) 查找并显示给定电话号码的记录
(5) 通讯录信息文件保存
(6) 要求人机界面友好,使用图形化界面
【实现提示】
主函数:根据选单的选项调用各函数,并完成相应的功能。
Menu()的功能:显示英文提示选单。
Quit()的功能:退出选单。
Create()的功能:创建新的通讯录。
Append()的功能:在通讯录的末尾写入新的信息,并返回选单。
Find():查询某人的信息,如果找到了,则显示该人的信息,如果没有则提示通讯录中没有此人的信息,并返回选单。
Alter()的功能:修改某人的信息,如果未找到要修改的人,则提示通讯录中没有此人的信息,并返回选单。
Delete()的功能:删除某人的信息,如果未找到要删除的人,则提示通讯录中没有此人的信息,并返回选单。
List()的功能:显示通讯录中的所有记录。
Save()的功能:保存通讯录中的所有记录到指定文件中。
Load()的功能:从指定文件中读取通讯录中的记录。

题目八: 全国交通咨询模拟系统
【问题描述】
出于不同目的的旅客对交通工具有不同的要求。例如,因公出差的旅客希望在旅途中的时间尽可能短,出门旅游的游客则期望旅费尽可能省,而老年旅客则要求中转次数最少。编制一个全国城市间的交通咨询程序,为旅客提供两种或三种最优决策的交通咨询。
【基本要求】
(1)提供对城市信息进行编辑(如:添加或删除)的功能。
(2)城市之间有两种交通工具:火车和飞机。提供对列车时刻表和飞机航班进行编辑(增设或删除)的功能。
(3)提供两种最优决策:最快到达或最省钱到达。全程只考虑一种交通工具。
(4)旅途中耗费的总时间应该包括中转站的等候时间。
(5)咨询以用户和计算机的对话方式进行。由用户输入起始站、终点站、最优决策原则和交通工具,输出信息:最快需要多长时间才能到达或者最少需要多少旅费才能到达,并详细说明依次于何时乘坐哪一趟列车或哪一次班机到何地。

题目九: 文章编辑系统(字符串
【问题描述】
实现一个文章编辑系统,可以统计一页文字中文字、数字及空格的个数,存储一页文章保存在文件中,每行最多不超过80个字符,共N行,分别统计出其中英文字母数和空格数及整篇文章总字数;统计某一字符串在文章中出现的次数,并输出该次数;当删除某一子串时,后面的字符随之前移;用指定的字符串替换某一子串
【实现提示】

  1. 存储结构使用线性表,分别用几个子函数实现相应的功能
  2. 输入数据的形式和范围:可以输入大写、小写的英文字母、任何数字及标点符号
  3. 输出形式:①分行输出用户输入的各行字符;②分4行输出"全部字母数"、“数字个数”、“空格个数”、“文章总字数”;③输出删除某一字符串后的文章;④输出替换某一字符串后的文章
  4. 界面要友好,输入有提示,尽量展示人性化
  5. 源程序代码清晰、有层次
  6. 用户输入非法数据时,系统要及时给出警告信息

题目十: 航班信息的查询与检索
【问题描述】
设计民航售票处的计算机系统可以为客户提供下列各项服务

  1. 查询航线:根据旅客提出的终点站名输出下列信息:航班号、飞机号、星期几飞行、最近一天航班的日期和余票额
  2. 承办订票业务:根据客户提出的要求(航班号、订票数额)查询该航班票额情况。
    【实现提示】
    1.对飞机航班信息进行排序和查找。可按航班的航班号、起点站、到达站、起飞时间以及到达时间等信息进行查询。
    2.采用基数排序法对一组具有结构特点的飞机航班号进行排序。
    3.利用二分查找法对排好序的航班记录按航班号实现快速排序。
    4.每个航班记录包括八项,分别为:航班号、起点站、终点站、班期、起飞时间、到达时间、飞机型号以及票价等。

题目十一: 校园导游咨询系统
【问题描述】
设计你的学校的平面图,至少包括10个以上的场所,每两个场所间可以有不同的路,且路长也可能不同,找出从任意场所到达另一场所的最佳路径(最短路径)。
【基本要求】
1、设计校园平面图,在校园景点选10个左右景点。以图中顶点表示校园内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等有关信息。
2、为来访客人提供图中任意景点相关信息的查询。
3、为来访客人提供任意景点的问路查询,即查询任意两个景点之间的一条最短路径。
一般情况下,校园的道路是双向通行的,可设计校园平面图是一个无向网。顶点和边均含有相关信息。

图1村庄交通图
[实现提示]
用有向加权图表示的交通图中,有向边<Vi,Vj>表示第i个村庄和第j个村庄之间有道路,边上的权表示这条道路的长度。该问题实质上是求解任意两顶点间最短路径问题。解决思想与方案
1、运用弗洛伊德算法求出有向图中各顶点对的最短距离。
2、根据步骤(1)结果,求出每个顶点到其他顶点的最短距离的最大值。
3、最大值最小的顶点作为医院所在村庄。
结构定义

 

题目十三:教学计划编制问题(图的应用
[问题描述]
大学的每个专业都要制定教学计划。假设任何专业都有固定的学习年限,每学年含两学期,每学期的时间长度和学分上限值均相等。每个专业开设的课程都是确定的,而且课程在开设时间的安排必须满足先修关系。每门课程有哪些先修课程是确定的,可以有任意多门,也可以没有。每门课恰好占一个学期。试在这样的前提下设计一个教学计划编制程序。
[实现提示]
1、 输入参数应包括:学期总数,一学期的学分上限,每门课的课程号(可以是固定占3位的字母数字串)、学分和直接先修课的课程号。
2、 应允许用户指定下列两种编排策略之一:一是使学生在各学期中的学习负担尽量均匀;二是使课程尽可能地集中在前几个学期中。
3、 若根据给定的条件问题无解,则报告适当的信息;否则将教学计划输出到用户指定的文件中。计划的表格格式可以自己设计。
4、 可设学期总数不超过12,课程总数不超过100。如果输入的先修课程号不在该专业开设的课程序列中,则作为错误处理。

题目十四: 一元多项式计算器
【问题描述】
设计一个一元多项式的计算器,功能包括
(1)输入并建立多项式(一个多项式最多不超过20项,可以从文件中读取相关数据
(2)输出多项式,输出形式可以是图形方式,也可以是文本方式
(3)实现两个多项式相加,并输出和多项式
(4)实现两个多项式相减,并输出差多项式
(5)实现两个多项式相乘,并输出乘积多项式
(6)计算并输出多项式在指定x处的值。
【实现提示】
(1) 数据结构的设计:可以采用带头结点的单链表的形式
(2) 整个系统最好设计一个菜单
(3) 多项式的输入不能保证各项顺序输入。

题目十五: 电视大赛观众投票及排名系统(排序应用
【问题描述】
在很多的电视大赛中,通常当选手表演结束后,现场观众通过手中的按键对参赛选手进行投票,然后对选手获得的票数进行统计,从高到低进行降序排序,从而自动产生冠军、亚军和季军。现在要求编写一程序模拟实现上述系统的功能。
【实现提示】
在本例中,首先输入参赛选手的人数(范围为1-9个,然后根据人数通过malloc函数来开辟存放选手信息的顺序表。将选手的编号和姓名依此存入顺序表单元中,观众通过按键进行投票,按’1’为1号选手投票,按’2’为2号选手投票,以此类推,以按’0’作为投票结束标志。投票结束后进行排序,在此采用希尔排序,然后为每个选手计算名次,得票相同的名次也相同
(1)存储类型的定义
参赛选手信息存储类型的定义

 

题目十六:银行客户排队系统(队列的应用
【问题描述】
银行的营业网点会客户根据来到的先后顺序同时考虑客户的级别为其办理业务。设计并一个银行客户排队系统,可以根据客户的先后顺序和客户的级别办理业务。客户分为普通客户和VIP客户。客户首次注册之后,成为普通客户。当客户的交易额满一百万后就成为VIP客户。当同时有普通客户和VIP客户等待办理业务时,按照VIP客户的先后顺序先办理VIP客户的业务,再按照普通客户的先后顺序办理普通客户的业务。
【实现提示】
首先实现注册功能,用户结构体中有用户的基本信息以及用户的以往交易总额。建立两个队列,一个普通客户队列,一个VIP客户队列。一个用户来办理业务时,首先到排队系统登记,排队系统通过用户身份证号查询到用户的交易记录,判断用户的类型,并将其加入对应的队列中。银行业务员端,只要输入“下一个”,系统自动决定并显示下一个客户的资料。

题目十七:工程的关键活动
【问题描述】一个实际的工程活动可以用AOE网表示,AOE网中的顶点表示事件,边表示活动,边上的权值表示进行活动所需要的花费。如果一个工程想要顺利进行,需要确保关键活动能够按时完成。求出工程的关键活动,并求出工程能够按时完成至少要花费多长时间。
【实现提示】
建立一个AOE网,并求关键活动,需要确保关键活动能够按时完成则需要提示用户这些关键活动必须按时完成。之后计算工程的关键活动对应的关键路径的时间就是工程能够按时完成至少要花费多长时间。

题目十八:基于哈希表的班级人员通信录
【问题描述】使用哈希表存储班级人员的通讯录。假设人员的姓名是以汉语拼音存储的,每个记录下有数据项:电话号码,姓名,班级,寝室号。从键盘输入各个记录,建立基于哈希表的人员通信录。用户可以分别以电话号码和用户名为关键字查找一条记录。

【实现提示】
分别以用户名和电话号码为关键字建立哈希表。在以用户名为关键字建立哈希表的时候,自己设计合适的哈希函数。在以电话号码为关键字建立哈希表的时候,采用除留余数法作为哈希函数。在哈希函数确定的情况下采用不同方法解决冲突。通过比较平均查找长度来确定最适合的冲突解决方法。不同的用户角色的权限不同,管理员有权删除记录。

题目十九 学生宿舍管理查询软件
【问题描述】
编程实现宿舍管理查询软件。实现如下功能:1、录入,删除,修改学生和宿舍信息的功能。按姓名查询或者按学号查询寝室号。2、按照寝室号查询所住的学生的姓名和学号。3、不同的用户有不同的权限,管理员有权删除学生信息和宿舍信息,而普通用户仅能查询。

【实现提示】
数据文件按照学号升序排序,采用冒泡排序方法为其排序。以学号和寝室号查询使用二分查找方法,以姓名查询采用顺序查找方法。


特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号