C/C++数据结构课程设计[2023-06-06]
附件2: 桂林航天工业学院课程设计实施计划表
教学单位: 计算机科学与工程学院
专业班级 2021大数据1班 学生人数 45人
课程名称 数据结构课程设计 指导教师 马莉 周慧怡
地 点 启天B123 起止时间 2023.6.5-2023.6.8
设计准备情况 题目由学生自主拟定,一人一题,独立完成系统的设计与开发,可参考如下题目:
1、 校运会管理系统
*问题描述:桂航运动会,参加运动会的有n个学院,学校编号为1……n,比赛分成m个男子项目,和w个女子项目。项目编号为男子1……m,女子m+1……m+w。不同的项目取前八名积分,且前八名的积分分别为:9、7、6、5、4、3、2、1(m<=20,n<=20)。
*功能要求:(1)可以输入各个项目的前八名的成绩;(2)能统计各学院的总分并排序;(3)可以按学院编号、学院总分、男女团体总分排序输出;(4)可以按学院编号查询学院某个项目的情况;可以按项目编号查询取得前八名的学院。(5)可以查找汇总某名选手参加的项目和获取的名次和积分。
*输出形式:有中文或英文提示,各学院分数为整型。
*界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。
*存储结构:学生自己根据系统功能要求自己设计,要求运动会的相关数据要存储在数据文件中。(数据文件的数据读写方法等相关内容可以参考c语言程序设计的教材)请在最后的上交资料中指明使用的存储结构。
测试数据:要求使用(1)全部合法数据;(2)整体非法数据;(3)局部非法数据。进行程序测试,以保证程序的稳定。测试数据及测试结果请在上交的资料中写明。
源码
https://pan.baidu.com/s/1J--MYtUyPilpJKTD15-SgA?pwd=1111
2、 航班订票系统
*问题描述:通过此系统可以实现如下功能:(1)录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定);(2)查询:可以查询某个航线的情况(如输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况;(3)订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班;(4)退票: 可退票,退票后修改相关数据文件;客户资料有姓名,证件号,订票数量及航班情况,订单要有编号;(5)修改航班信息:当航班信息改变可以修改航班数据文件;(6)汇总:可以查询汇总某航线一段时间内的飞行次数、载客人数,查询每个月的机票出售情况。
*要求:根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能。
源码
https://pan.baidu.com/s/1J--MYtUyPilpJKTD15-SgA?pwd=1111
3、校园导览系统
*问题描述:(1)设计桂航的校园平面图,所含景点不少于10个(例如巡天楼、飞天楼、宿舍、教务处、食堂等)。以图中顶点表示学校各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。(2)为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。 (3)为来访客人提供图中任意景点相关信息的查询。(4)动态更新路线,当某个景点不能被访问的时候,更新所有路径。(5)登录系统,将系统用户的登录信息记录在文件中,每当使用校园导览系统的时候,需要登录,并能统计一段时间内使用系统的人次。
*测试数据:由读者根据实际情况指定。
*实现提示:一般情况下,校园的道路是双向通行的,可设校园平面图是一个无向网。顶点和边均含有相关信息。
源码
https://pan.baidu.com/s/1J--MYtUyPilpJKTD15-SgA?pwd=1111
4、新生入学管理系统
*问题描述:通过此系统可以实现如下功能:(1)用户登录,用户分为管理员和新生两种,不同角色功能不同。(2)管理员模块功能:管理员可以添加学生用户,修改学生信息,查询学生信息,删除学生用户等操作,并能够汇总新生注册人数。(3)学生模块功能:学生可以登录后,实现注册报到、查看或修改个人信息、查看报到状态、查看宿舍和班级情况、查看注册报到流程。
要求:新生数据文件(包括学号、身份证号、姓名等个人信息)读写操作通过文件实现。可以附加入学报到流程的地图导引,如巡天楼注册缴费—宿舍领取钥匙—食堂办理饭卡—图书馆办理借书证—注册报到成功,参考校园导览系统。
源码
https://pan.baidu.com/s/1J--MYtUyPilpJKTD15-SgA?pwd=1111
5、数据结构算法动态演示系统
*问题描述:实现数据结构教材中相关知识点的动态演示效果。选择实现知识点和算法的动态演示效果,如模拟直接插入排序、直接选择排序、冒泡排序、希尔排序、堆排序、深度优先遍历、广度优先遍历、线性表的插入、删除和查找、哈夫曼树的生成、最小生成树算法、单源点最短路径的求取、汉诺塔算法等。
*要求:(1)设计良好的人机界面可供用户选择;(2)具体个数不做限制,由学生自由选题,答辩时根据答辩情况评分。
源码
https://pan.baidu.com/s/1J--MYtUyPilpJKTD15-SgA?pwd=1111
6、小学生计算能力测试系统
*问题描述:设计实现四则运算的测试系统。通过此系统可以实现如下功能:(1)学生登录,学生信息存储在文件中。(2)计算能力测试,学生登录后可以进入该模块,在规定的时间段内完成测试题目的计算,结束后显示成绩。(3)修改学生信息,学生可以修改学号、姓名等个人信息。(4)查询信息,可以查询个人信息以及测试结果。(5)统计汇总,系统能够实现对个人答题信息以及全体答题学生成绩的统计和汇总。(6)删除学生信息。
*基本要求:(1)随机产生四则运算题目。(2)利用算符优先关系,实现对算术四则混合运算表达式的求值,并仿照教材演示在求值中运算符栈、运算数栈、输入字符和主要操作的变化过程。
*实现提示:(1)设置运算栈和运算数栈辅助分析算符优先关系。(2)在输入表达式的字符序列的同时,完成运算符和运算数(整数)的识别处理,以及相应的运算。(3)在识别出运算数的同时,要将其字符序列形式转换成整数形式。
源码
https://pan.baidu.com/s/1J--MYtUyPilpJKTD15-SgA?pwd=1111
7、设计用户可通过人机界面选择文章编辑、joseph环和一元多项式计算的简单系统。
*问题描述:设计一个系统,通过选项(一) 文章编辑(二) joseph环(三)一元多项式计算,选择实现相应的功能。
要求:
文章编辑:输入一页文字,程序可以统计出文字、数字、空格的个数。静态存储一页文章,每行最多不超过80个字符,共N行。
(1)分别统计出其中英文字母数和空格数及整篇文章总字数;(2)统计某一字符串在文章中出现的次数,并输出该次数;(3)删除某一子串,并将后面的字符前移。存储结构使用线性表,分别用几个子函数实现相应的功能。
*输入数据的形式和范围:可以输入大、小写的英文字母、任何数字及标点符号。
*输出形式:(1)分行输出用户输入的各行字符;(2)分4行输出"全部字母数"、"数字个数"、"空格个数"、"文章总字数";(3)输出删除某一字符串后的文章。
joseph环:编号是1,2,……,n的n个人按照顺时针方向围坐一圈,每个人只有一个密码(正整数)。一开始任选一个正整数作为报数上限值m,从第一个仍开始顺时针方向自1开始顺序报数,报到m时停止报数。报m的人出列,将他的密码作为新的m值,从他在顺时针方向的下一个人开始重新从1报数,如此下去,直到所有人全部出列为止。设计一个程序来求出出列顺序。利用单向循环链表存储结构模拟此过程,按照出列的顺序输出各个人的编号。
*测试数据:m的初值为20,n=7 ,7个人的密码依次为3,1,7,2,4,7,4,首先m=6,则正确的输出是什么?
*输入数据:建立输入处理输入数据,输入m的初值,n ,输入每个人的密码,建立单循环链表。
一元多项式计算:能够按照指数降序排列建立并输出多项式;能够完成两个多项式的相加、相减,并将结果输入;在上交资料中请写明:存储结构、多项式相加的基本过程的算法(可以使用程序流程图)、源程序、测试数据和结果、算法的时间复杂度、另外可以提出算法的改进方法。
源码
https://pan.baidu.com/s/1J--MYtUyPilpJKTD15-SgA?pwd=1111
指导计划 日期 时段 学时数 地点 具体工作内容
6月 5日 8:25- 11:55 4 启天B238 选题,进行系统分析。
6月 6日 8:25- 11:55 4 启天B238 程序设计实现、修改。
6月 7日 8:25- 11:55 4 启天B238 系统调试与测试,完成功能。
6月 8日 8:25- 11:55 4 启天B238 编写课程设计报告,验收。
合计 16
考核方式 课程设计成绩由平时表现(出勤等)+作品+课程设计报告组成。
- 平时表现(占10%)
主要考核学生在实习期间的出勤、遵守实习纪律等的成绩。 - 软件系统(占50%)
完成的系统要求学生现场演示功能、讲解并回答问题,要求基本模块设计合理,整个系统运行通畅、使用方便、界面良好、功能完善。 - 课程设计报告(占40%)
要求文档格式规范,内容完整,对系统主要功能模块的设计和实现有较详细的分析。
带队/指导老师:马莉,周慧怡 2023年6月1日
审
批
意
见
教研室主任:王玮 2023年6月1日
说明 1.合计的学时数应与课程规定的学时数一致。2.本表应在每次实施前两周,由指导教师填写一式2份,审批后所在教学单位和指导教师各留1份。 3.若填写内容较多可另纸附后。