C/C++数据结构课程设计[2023-06-15]

C/C++数据结构课程设计[2023-06-15]

课程设计指导书

学院 信息工程学院
专业 人工智能
课程 数据结构课程设计
班级 22智能1班
指 导 教 师 康子洋

2022 — 2023 学年度第 二 学期

一、数据结构课程设计的目的
数据结构课程设计是一项综合性设计活动,要求在教师的指导下,利用本课程内的以及到目前为止所学到的有关知识和技术解决一些不太复杂但却是综合性的问题。从规模来说,课程设计是在平时作业的基础上进一步扩大的大作业。在设计中,要求学生要全面考虑相互联系的各个方面及问题。
通过课程设计,使学生对整个课程的知识体系有较深入的理解,在运用本课程的知识解决实际问题方面得到锻炼,对锻炼学生的实践能力以及运用本课程的知识、方法解决更为复杂的实际问题有较好的启发和指导作用,从而为后续课程的学习、毕业设计环节以及将来的实际工作打好坚实的基础。
通过对给定问题的求解,使学生在运用《数据结构》、程序设计以及迄今为止所学课程中的各种基本技术和理论,在建立问题模型、构造求解算法、设计数据结构、编程及上机调试等方面得到全面的锻炼,从而能更深刻地理解《数据结构》的精髓,为后续软件课程的学习及软件设计能力的提高奠定良好的基础。
二、数据结构课程设计组织形式
数据结构课程设计为停课实践课程,在理论教学教学任务结束后,空出专门的一周开展数据结构课程设计。周一到周五每天四节课在机房由指导教师指导学生进行课程设计工作,其余时间学生自行进行课程设计的工作。最后一天打印数据结构课程设计报告,提交程序包,完成答辩等工作,课程设计任务结束。
三、数据结构课程设计步骤及要点
(1)选题:在给出的课题中列出了多个设计课题,每个课题都有相应的要求或说明。参加课程设计的学生首先要了解设计的任务,仔细阅读各题的设计要求,然后根据自己的基础和能力情况从中选择题目。一般来说,选择课题应以在规定的时间内能完成,并能得到应有的锻炼为原则。
若学生对课题表以外的相关课题较感兴趣,希望选作课程设计的课题时,应征得指导教师的认可,并写出明确的设计要求和说明。
(2)设计:学生根据自己选择的题目在一周内按照要求完成课程设计。学认真主动完成课设的要求。有问题及时主动通过各种方式与教师联系沟通;学生要发挥自主学习的能力,充分利用时间,安排好课设的时间计划,并在课设过程中不断检测自己的计划完成情况,并及时向教师汇报。
(3)验收:在设计完成后,应当场运行和答辩,由指导教师验收,只有在验收合格后才能算设计部分的结束。
(4)成绩评定:根据大纲和成绩评定规则,集合过程性考核给出最终成绩。
四、推荐参考资料
(1)推荐教材:《数据结构与算法课程设计 C语言描述(第2版)》,阮宏一编著,电子工业出版社,2016年。
(2)参考书目:
《数据结构与算法教程 上机实验指导(第5版)》,李春葆编著,清华大学出版社,2017年。
《数据结构与算法学习指导实验指导课程设计》,陈媛,刘洁,涂飞,卢玲编著,机械工业出版社,2015年。
《数据结构与算法课程设计(王立波)》,王立波编著,西安电子科技大学出版社,2017年。
五、数据结构课程设计的成绩评定
(1)关于设计的总要求:在设计时,要严格按照题意要求独立进行设计,不能随意更改。若确因条件所限,必须要改变课题要求时,应在征得指导教师同意的前提下进行。
(2)设计报告:设计结束后要写出课程设计报告,以作为整个课程设计评分的书面依据和存档材料。设计报告以规定格式的电子文档书写、打印并装订,排版及图、表要清楚、工整。内容及要求如下:
①设计任务、要求及所用软件环境或工具
②问题的模型化描述以及求解算法的简要描述
③所选择的存储结构及基本运算、设计的模块构成、各模块的简要说明、流程图、调用关系表
④所设计软件的组成(程序文件和数据文件)及使用说明
⑤设计总结和体会
(3)关于课程设计的成绩评定:课程设计的成绩评定以选定课题的难易度、完成情况和设计报告为依据综合评分。从总体来说,所设计的程序应该全部符合要求,问题模型、求解算法以及存储结构清晰;具有友好、清晰的界面;设计要包括所需要的辅助程序,如必要的数据输入、输出、显示和错误检测功能;操作使用要简便;程序的整体结构及局部结构要合理;设计报告要符合规范。
具体成绩打分细则见《数据结构课程设计大纲》。
六、设计课题

课题一:简易图书管理系统设计

图书管理系统的设计主要是实现对图书的管理和相关操作。基本功能如下:
(1)图书信息录入、添加功能:图书信息包括书号(即ISBN号,不可重复)、书名(多书可重名)、作者、出版社名称、存馆数量、定价等,添加时能进行冲突性检查(即相同的数据不能添加两次)。
(2)图书信息查询功能:①按书名进行查询②按作者名进行查询。③按出版社进行查询。
(3)排序:①按书号的升序进行排序;②按作者的升序进行排序,作者相同时按书号的升序再进行排序。
(4)图书的修改、删除功能:按书号进行图书的修改、删除。
(5)图书借阅、归还功能:如果一种书的现存量大于0,可以借出,借出相应数量后改存馆数量;归还时改变该书的存馆数量。

源码

https://pan.baidu.com/s/1J–MYtUyPilpJKTD15-SgA?pwd=1111

课题二:医院排队看病模拟系统设计

医院排队看病模拟系统主要是实现对病人排队看病的模拟和相关运算。基本功能如下:
(1)病人信息录入:包括病人的病历号(不能重复,须有冲突性检查),姓名、性别、年龄。
(2)病人进入诊室看病:诊室结构是栈结构(即只有一个出口),且是有大小的(比如最多只能进去3个病人救诊),按病人到达的先后顺序进入诊室,如果诊室满了,病人只能在候诊室(队列结构)等待,候诊室也是有大小的(比如最多只能容纳4个人)。
(3)病人看病后离开:当某病人看完病后要离开诊室(比如是先进来的病人),因为诊室是栈结构,所以在它之后进入诊室的病人必须先退出诊室为它让路(可以再模拟一个诊室供其他病人退出使用),待该病人离开后,其它病人再按原次序进入诊室,且候诊室的第一个病人进入诊室。
(4)查询功能:查询诊室、候诊室的病人分别有哪些,也能查询某病人是在诊室还是在候诊室。
(5)排序功能:能将救诊室和候诊室中的人员信息全部读出,并能按姓名进行排序。

源码

https://pan.baidu.com/s/1J–MYtUyPilpJKTD15-SgA?pwd=1111

课题三:家谱的设计与实现

家谱的设计主要是实现对家庭成员信息的建立、查找、插入、修改、删除等功能。可。基本功能如下:
(1)家谱中每个成员的信息包括:姓名、性别。
(2)家谱祖先数据的录入(树的根结点)。
(3)家庭成员的添加:即添加某人的儿女(包括姓名和性别),儿女的数目由控制台端给出,然后输入相应的儿女姓名和性别(此处所有儿女的姓名不能重名,需判断是否重复)。
(4)家庭成员的修改:可以修改某一成员的姓名。
(5)家庭成员的查询:查询某一成员在家族中的辈分(第几代),并能查询此成员的所有子女及这一辈的所有成员。
(6)家庭成员的删除:删除此成员时,若其有后代,将删除所有后代成员。
(7)家庭成员的排序:能读出家谱中所有成员信息,并能按姓名排序。

源码

https://pan.baidu.com/s/1J–MYtUyPilpJKTD15-SgA?pwd=1111

课题四:互联网铺设造价模拟系统设计

假设一个省有N个城市,要实现N个城市之间的互联网都能相互接通,构造此省N个城市之间的互联网(极小连通子图)。
(1)输入N个城市及其之间距离(无向带权图)。
(2)输出N个城市信息及其邻接矩阵。
(3)计算所有造价方案。
(4)能对所有造价进行排序。
(5)找出造价最小的一种或几种方案。

源码

https://pan.baidu.com/s/1J–MYtUyPilpJKTD15-SgA?pwd=1111

课题五:校园导游程序设计

用无向网表示你所在学校的校园景点平面图,图中顶点表示主要景点,存放景点的编号、名称、简介等信息,图中的边表示景点间的道路,存放路径长度等信息。要求能够回答有关景点介绍、游览路径等问题。基本要求
(1)查询各景点的相关信息;查询图中任意两个景点间的最短路径;查询图中任意两个景点间的所有路径;
(2)增加、删除、更新有关景点和道路的信息。
(3)求多个景点的最佳(最短)游览路径。
(4)区分机动车道和人行道。

源码

https://pan.baidu.com/s/1J–MYtUyPilpJKTD15-SgA?pwd=1111

课题六:员工管理系统设计

每个员工的信息包括:编号、姓名、性别、出生年月、学历、职务、电话、住址等。系统能够完成员工信息的查询、更新、插入、删除、排序等功能。
基本要求:
(1)排序:按不同关键字,对所有员工的信息进行排序;
(2)查询:按特定条件查找员工;
(3)更新,按编号对某个员工的某项信息进行修改;
(4)插入,加入新员工的信息;
(5)删除,按编号删除已离职的员工的信息。
选作内容:实现图形用户界面。

源码

https://pan.baidu.com/s/1J–MYtUyPilpJKTD15-SgA?pwd=1111

课题七:订票系统设计

任务:通过此系统可以实现如下功能:
(1)录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)
(2)查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓)
(3)可以输入起飞抵达城市,查询飞机航班情况;
(4)订票:(订票情况可以存在一个数据文件中,结构自己设定)
(5)可以订票,如果该航班已经无票,可以提供相关可选择航班;
(6)退票航班信息改变可以修改航班数据文件

源码

https://pan.baidu.com/s/1J–MYtUyPilpJKTD15-SgA?pwd=1111

课题八:学生成绩管理系统设计

建立一个4个学生的信息登记表,每个学生的信息包括:学号,姓名,和3门课程的成绩。能实现对学生信息的简单管理。
(1)对4个学生的信息进行输入;
(2)对每个学生的3门课程统计总分;
(3)对4个学生的总分按降序排序并显示出来;
(4)查询输入一个学号后,显示出该学生的有关信息;
(5)实现成绩输入、输出、插入、删除、查找、追加、读入、显示、保存、拷贝、排序、索引、分类合计、退出。

源码

https://pan.baidu.com/s/1J–MYtUyPilpJKTD15-SgA?pwd=1111

课题九:旅馆管理系统设计

某旅馆有n个等级的房间,第i等级有ai个房间,每个等级有bi床位(1≤i≤n)。试模拟旅馆管理系统中床位分配和回收的功能,设计能为单个旅客分配床位,在其离店便回收床位(供下次分配)的算法。
输入数据:
(1)对房间信息进行初始化,包括房间的类别、数量以及房间和床位的计费标准;
(2)分配时,输入旅客姓名、年龄、性别、到达日期和所需房间等级;
(3)回收时,输入房间等级、房间号和床位号。
输出数据:
(1)分配成功时打印旅客姓名、年龄、到达日期、房间等级、房间号码和床位号码;
(2)分配不成功时,如所有等级均无床位,则打印“客满”信息;
(3)如旅客需要的等级均无空床位,则打印“是否愿意更换等级?”的询问信息。若旅客愿意更换,则重新输入有关信息,再进行分配,否则分配工作结束。
课题十:银行业务活动系统设计
假设某银行有4个窗口对外接待客户,从早晨银行开门起不断有客户进入银行,由于每个窗口在某个时刻只能接待一个客户。因此在客户人数众多时需要在每个窗口前顺次排队,对于刚进入银行的客户。如果某个窗口的业务员正空闲,则可上前输业务。反之,若个窗口均有客户所占,他便会排在为数最少的队伍后面。编制一个程序模拟银行的这种业务活动并计算一天中客户在银行的平均逗留时间。功能要求:
(1)实现数据的输入;
(2)各个窗口数据的访问和输出;
(3)当前窗口的人员分布情况动态显示。
界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。存储结构:学生自己根据系统功能要求自己设计。请在最后的上交资料中指明你用到的存储结构;
测试数据:要求使用(1)全部合法数据;(2)整体非法数据;(3)局部非法数据。进行程序测试,以保证程序的稳定。测试数据及测试结果请在上交的资料中写明。

源码

https://pan.baidu.com/s/1J–MYtUyPilpJKTD15-SgA?pwd=1111

八、课题分配表
学号 姓名 题目 学号 姓名 题目
20210315101 蔡亮 简易图书管理系统

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值