《数据结构》课程大作业题目列表
更新时间:2024-01-30 13:06:01 阅读量: 教育文库 文档下载
《数据结构》课程大作业题目列表
《数据结构》课程大作业要求:
每3~4名同学一组,每组任选作业题目中的一题,组内同学一起进行分析,每个人负责题目中的一个模块进行设计和实现。最后一次上机时,在上机实验室现场,每组分别演示自己的程序,每个同学讲解自己设计的部分,由老师打分。该分数与平时作业和平时上机一起计算进总成绩中。
1. 航空客运订票系统 ................................................................................................................... 2 2. 全国交通咨询模拟 ................................................................................................................... 4 3. 五子棋的设计与实现 ............................................................................................................... 6 4. 学生成绩管理系统 ................................................................................................................... 7 5. 城市导游咨询 ........................................................................................................................... 9 6. 图书管理系统 ......................................................................................................................... 11 7. 简单文本编辑器 ..................................................................................................................... 14 8. 排课软件 ................................................................................................................................. 15
1. 航空客运订票系统
1.1. 问题描述
航空客运订票的业务活动包括:查询航线、客票预定和办理退票等。
每条航线所涉及的信息有:起点站名、终点站名、航班号、起降时间、飞机号、飞行周日(星期几)、票价、票价折扣、乘员定额、余票量、已订票的客户名单(包括姓名、证件类型、证件号码、订票数量、航班情况、舱位等级1,2或3,订单要有编号)以及等候替补的客户名单(包括姓名、所需票量)。
1.2. 功能描述
1. 录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具
体数据自定)
2. 对飞机航班信息进行排序和查询:可按航班的航班号、起点站、到达站、起
飞时间以及到达时间等信息查询某个航线的情况。(可以输入一个或多个信息进行查询。设计中,要求采用基数排序方法对一组具有结构特征的飞机航班号进行排序,利用二分查找的方法对排好序的航班记录按照航班号实现快速查找,而其他次关键字的查找则采用最简单的顺序查找方法进行。当然也可以使用其它的排序方法)
假设每个航班记录包括8项,分别是:航班号,起点站,到达战,班期,起飞时间,到达时间,飞机型号以及票价等,假设的航班信息表(8条记录)入下表所示:
航班信息表 航班号 CA1544 MU5341 CZ3869 MU3682 HU1836 CZ3528 MU4594 K0 C 起点站 合肥 上海 重庆 桂林 上海 成都 昆明 K1 Z 终点站 北京 广州 深圳 南京 北京 厦门 西安 K2 3 班期 1.2.4.5 每日 2.4.6 2.3.4.6.7 每日 1.3.4.5.7 1.3.5.6 起飞时间 到达时间 机型 1055 1420 0855 2050 0940 1510 1015 K3 8 1240 1615 1035 2215 1120 1650 1140 K4 6 733 M90 733 M90 738 CRJ 328 K5 9 票价 960 1280 1010 1380 1250 1060 1160 其中航班号的格式为: 其中k0和k1的输入值是航空公司的名称,用2个大写字母表示,后4位为航班编号,这种航班号关键字可未成2段,即字母和数字。其余7项输入内容因不涉及本设计的核心,因此除了票价为数值型外,均定义为字符型即可。
3. 订票:可以订票,如果该航班已经无票,可以提供相关可选择航班(订票情
况可以存在一个数据文件中,结构自己设定。相关可选择航班可包括进行中转的航班,比如输入西安-杭州,相关可选择航班包括西安-重庆-杭州) 4. 退票:可退票,退票后修改相关数据文件;(若有等候替补的客户名单,则
要及时通知这些客户并修改已订票客户名单)
5. 修改航班信息:当航班信息改变可以修改航班数据文件
6. 当客户不清楚航班的信息情况时,能通过输入起点站和终点站,输出费用最
小的航线。『若无直达航线,可输出中转航线。若有直达航线,但费用并不是最小,则同时输出费用最小的直达航线(在直达航线中费用最小的航线)和费用最小的中转航线(在所有的航线中费用最小的航线)』
1.3. 设计要求
1. 根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能;
2. 对以上每一个功能,都要输出一个例子进行相关的说明; 3. 上述功能的完成涉及到线性表、队列,查找和图 4. 上述系统的设计不可过于小,适中即可。
5. 可以为程序增加简单的界面,但是不要过多注重界面,而忽略程序功能的实
现。
1.4. 设计报告格式及主要内容
(1)需求分析说明文档
(2)概要设计(系统的总体结构、功能模块之间接口) (3)详细设计(模块功能说明,主要数据结构的说明)
(4)测试计划与报告:调试方法,测试结果的分析与讨论,测试过程中遇到的主要问题及采取的解决措施。
(5)源程序清单和执行结果:源程序清单中每个类和方法都应有足够的注释。
2. 全国交通咨询模拟
2.1. 问题描述
出于不同目的的旅客对交通工具有不同的要求。例如,因公出差的旅客希望在旅途中的时间尽可能短,出门旅游的游客则期望旅费尽可能的少,而老年旅客则要求中转次数最少。编制一个全国城市间的交通咨询程序,为旅客提供最优决策的交通咨询。
2.2. 功能描述
(1)提供对城市信息进行编辑(如:添加功删除)的功能
(2)城市之间有目前种交通工具:火车和飞机。提供对列车时间表和飞机航班进行编辑(增设或删除)的功能。
(3)提供两种最优决策:最快到达或最省钱到达。全程只考虑一种交通工具。 (4)旅途中耗费的总时间应该包括中转站的等候时间。
(5)咨询以用户和计算机的对话方式进行。由用户输入起始站、终点站、最优决策原则和交通工具,输出信息:最快需要多长时间才能到达或者最少需要多少旅费才能到达,并详细说明依次于何时坐哪一趟列车哪一次班机到何地。
2.3. 设计要求
提供对全国城市交通图和列车时刻表及飞机航班表的编辑(键盘输入)。 学生可以上网查找相关的算法,但是严禁不加思考和修改,直接拷贝使用,最后的文档中必须包含对本程序使用的核心数据结构的评价(优缺点等),若有,应包含改进的地方。
2.4. 实现提示
(1)飞机航班表的信息包括:起始站台票出发时间、终点站的到达时间和票价;列车时刻表则根据交通图给出各个路段的详细信息。
(2)以邻接表作交通图的存储结构,表示边的结点内除了含有邻接点的信息外,还应包括交通工具、路程中消耗的时间和花费以及出发和到达的时间等多项属性。
2.5. 选作要求
对全国城市交通图和列车时刻表及飞机航班表的编辑,使用文件形式输入; 可以为旅客提供两种以上的最优决策选择;
可以为程序增加简单的界面,但是不要因为界面,而延误了程序基本的功能实现。
(参考数据结构题集(C语言版)P 153)
2.6. 设计报告格式及主要内容
(1)需求分析说明文档
(2)概要设计(系统的总体结构、功能模块之间接口) (3)详细设计(模块功能说明,主要数据结构的说明)
(4)测试计划与报告:调试方法,测试结果的分析与讨论,测试过程中遇到的主要问题及采取的解决措施。
(5)源程序清单和执行结果:源程序清单中每个类和方法都应有足够的注释。
3. 五子棋的设计与实现
3.1. 问题描述
五子棋是起源于中国古代的传统黑白棋种之一,五子棋专用棋盘为十五路(15*15),盘面上横竖各15条、平行线、纵横、线路为黑色,构成225个交叉点。国际规则为:
(1):对局人数: 2人。一人持黑子,一人持白子。 (2):对局方式: 2人轮流一子一子的将棋子置於棋盘的点上。先着者持黑,后着者持白。 (3):胜利条件:先下出连五者则为胜利。 试用相应的数据结构描述,并编程实现。
3.2. 功能描述
程序运行时,可以选择电脑和人对弈或者人人对弈,并设定先下着,通过一些简单的输入进行对弈;
该程序的基本要求为上面所述,如有其他问题,自行规定,将其设计到程序中,并在报告中声明;
鼓励学生上网查找相关的算法,但是严禁不加思考和修改,直接拷贝使用,最后的文档中必须包含对本程序使用的核心数据结构的评价(优缺点等),若有,应包含改进的地方。
3.3. 选作要求
? 为程序提供悔棋等功能;
? 如果条件允许,可以为程序增加简单的界面,但是不要因为界面,而延
误了程序基本的功能实现。
3.4. 设计报告格式及主要内容
(1)需求分析说明文档
(2)概要设计(系统的总体结构、功能模块之间接口) (3)详细设计(模块功能说明,主要数据结构的说明)
(4)测试计划与报告:调试方法,测试结果的分析与讨论,测试过程中遇到的主要问题及采取的解决措施。
(5)源程序清单和执行结果:源程序清单中每个类和方法都应有足够的注释。
4. 学生成绩管理系统
4.1. 问题描述
在年级成绩管理系统中,希望处理各班信息及各班每个学生的学习情况信息,其中班级信息包括班号和名称,学生学习情况信息包括学号,姓名,班号等,及已学课程的课程号及成绩,并能使管理人员通过界面完成对班级、学生信息的录入及对数据的查找和浏览。
4.2. 功能描述
? ? ? ? ? ? ? ?
登记各班的学生基本情况(学号,姓名,性别,年龄,电话等信息) 插入某班某个学生的基本情况 修改各班学生基本情况
删除某班某个学生或某班所有学生基本情况 登记各班所有学生各门课的成绩 修改某个学生某门功课的成绩 浏览各班信息
查找,浏览每个学生的基本信息 ? 查找,浏览每个学生的全部成绩信息
4.3. 设计要求
1. ? ? ? ?
分4个功能模块实现
班级管理模块:主要实现的功能为添加,删除某个班级
学生管理模块:实现的功能为登记,修改,删除某班某个学生的基本情况 成绩管理模块:实现的功能为登记,修改某个学生某门课的成绩
查选浏览模块:实现的功能为浏览各个班级信息,查找,浏览每个学生的基本信息,和全部成绩信息 2. 为用户操作提供人机界面。
4.4. 实现提示
本系统可以看作是一个树结构的应用问题,可考虑采用树的左孩子右兄弟存储结构:
Head
学生1 学生2 班级1 班级2
班级n 学生n ???? ????
成绩1 成绩2 成绩n 4.5. 设计报告格式及主要内容
(1)需求分析说明文档
(2)概要设计(系统的总体结构、功能模块之间接口) (3)详细设计(模块功能说明,主要数据结构的说明)
(4)测试计划与报告:调试方法,测试结果的分析与讨论,测试过程中遇到的主要问题及采取的解决措施。
(5)源程序清单和执行结果:源程序清单中每个类和方法都应有足够的注释。
5. 城市导游咨询
5.1. 问题描述
设计一个城市导游程序,为来旅游的游客提供景点和道路信息查询服务。
5.2. 功能描述
? ? ? ? ? ?
设计一个你所在城市的旅游景点和道路平面图,所含景点不少于10个。 可以添加、修改和删除景点以及景点的信息。
可以添加和删除连接景点的道路及道路长度信息。 景点信息包括景点的介绍、位置、道路等信息。 为游客提供图中任意景点相关信息查询。
为游客提供图中任意景点问路查询,即查询任意两个景点之间的一条最短的简单路径。
? 提供图中任意景点问路查询,即求任意两个景点之间的所有路径。
? 提供图中多个景点的最佳访问路线查选,即求途经这个景点的最佳(短)路
径。
5.3. 实现提示
? 以图中顶点表示校内各景点,存放景点名称,代号,简介等信息,以边表示
道路,存放道路长度等相关信息。
? 一般情况下,校园的道路是双向通行,可设校园平面图是一个无向网。顶点
和边均含有相关信息。
5.4. 选作要求
? 求城市景点图的关节点。
? 扩充道路信息,如道路类别(车道,人行道等),沿途景色等级,以至可按
游客所需分别查询人行路径或车行路径或观景路径。
? 考虑增加公交车查询,可添加公交车的名称、站名和途经的道路、票价等信
息,方便游客查询景点的公交车路线。
5.5. 设计报告格式及主要内容
(1)需求分析说明文档
(2)概要设计(系统的总体结构、功能模块之间接口) (3)详细设计(模块功能说明,主要数据结构的说明)
(4)测试计划与报告:调试方法,测试结果的分析与讨论,测试过程中遇到的主要问题及采取的解决措施。
(5)源程序清单和执行结果:源程序清单中每个类和方法都应有足够的注释。 (参考数据结构题集(C语言版)P 151)
6. 图书管理系统
6.1. 问题描述
图书信息表所表示的是一个数据库文件。图书管理一般包括:图书采编、图书编目、图书查询与图书流通(借、还书)等。要求设计一个图书管理信息系统,用计算机实现上述系统功能。图书管理系统的基本业务活动包括:对一本书的采编入库,清除库存,借阅和归还等等。试设计一个图书管理系统,将上诉业务活动借助于计算机系统完成。
6.2. 功能描述
? 每种书的登记内容至少包括书号,书名,著者,现存量和总库存量等五项 ? 基本业务活动通过书号(即关键字)进行,所以可考虑用B树(2-3)对书号建
立索引,以获得高效率。
? 建立一个图书信息数据文件来存储图书信息,并以书号、书名、作者及出版社为
关键字为图书文件建立若干索引文件。 ? 系统应实现的操作及其功能定义如下:
1. 采编入库:新购入一种书,经分类和确定书号之后登记到图书帐目中去,如果这种书再帐目中有,则只将总库存量增加;
2. 清除库存:某种书已无保留价值,将从图书帐目中注销; 3. 查询:提供关于书号、书名、作者及出版社的图书查询;
4. 借阅:如果一种书的现存量大于零,则借出一本,登记借阅者的图书证号和归还期限;
5. 归还:注销对借阅者的登记,改变该书的现存根据实际情况而定。
6.3. 设计要求
1. 建立一个图书信息数据库文件来存储图书信息。用户可输入若干种书的记
录,系统建立一个以书号为关键字的索引文件;在主数据库文件中建立以书名、作者以及出版社作为关键字的索引以及对应的索引链头文件,如下图所示: 记录书号 号 1 1021 书名 数据指针1 0 作者 指针2 李小0 出版社 人民指针3 0 分藏书类 量 021 8 借出数 0 2 3 4 5 6 7 8 1041 1106 1108 1203 2105 1012 0109 库 数据结构 操作系统 数据结构 程序设计 数据库 数据结构 程序设计 0 0 2 0 1 4 5 云 刘晓阳 许海平 孙华英 李小云 孙海平 李小云 刘晓阳 0 0 0 1 3 5 2 邮电 中国科学 人民邮电 清华大学 中国科学 清华大学 人民邮电 清华大学 0 1 0 2 4 3 6 013 024 013 035 021 013 035 6 7 5 6 6 5 7 0 0 0 0 0 0 0 书名 数据库 数据结构 操作系统 程序设计 作者 李小云 刘晓阳 许海平 孙华英 出版社 人民邮电 中国科学 清华大学 a) 图书主索引文件 链头地址 6 7 3 8 b)书名索引链头文件 链头地址 7 8 6 4 c)作者索引链头文件 链头指针 7 5 8 d)出版社索引链头文件 长度 2 3 1 2 长度 3 2 2 1 长度 3 2 3 2. 建立关于书号、书名、作者及出版社的图书查询;
3. 实现图书的借还子系统,包括建立读者文件、借还文件、读者管理及图书借
还等相关的处理。
4. 实现提示
? 2-3树的查找算法是基础,入库和清除操作都要调要。难点在于删除关键字的
算法,因而只要算法对2-3树适用就可以了。
? 每种书的记录可以用动(或静)态链式结构,借阅登记信息可以链接在相应的那
种书的记录之后
5. 选作内容
? 将一次会话过程(即程序一次运行)中的全部人机对话记入一个日志文件“log”
中去。
? 增加列出某著者全部著作名的操作。思考如何提高这一操作的效率。
? 增加列出某种书状态的操作。状态信息除了包括这种书记录的全部信息外还包括
最早到期(包括预期)的借阅者证号,日期可用整数实现,以求简化。 ? 增加预约借书功能。
6. 设计报告格式及主要内容
(1)需求分析说明文档
(2)概要设计(系统的总体结构、功能模块之间接口) (3)详细设计(模块功能说明,主要数据结构的说明)
(4)测试计划与报告:调试方法,测试结果的分析与讨论,测试过程中遇到的主要问题及采取的解决措施。
(5)源程序清单和执行结果:源程序清单中每个类和方法都应有足够的注释。 (参考数据结构题集(C语言版)P 167)
7. 简单文本编辑器
7.1. 问题描述
参照Turbo C编辑器或Windows的记事本等文本编辑器,使用串的技术设计一个功能简单的文本编辑器,要求具备字符录入、删除、光标移动、查找等基本功能。
7.2. 功能描述
从文件系统中打开文本文件(文件名为edit.txt,位于当前执行程序的目录下),可以进行简单的编辑操作,要求:
(1) 每行最多不超过80个字符,共N行(N>=1); (2) 可以进行文字的添加、删除; (3) 可以通过光标定位到指定位置;
(4) 查找字串并定位光标(快捷键:CTRL+F或CTRL+S); (5) 退出(快捷键:ESC)。
存储结构使用链表和串,分别用几个子函数实现相应的功能。
输入数据的形式和范围:可以输入大写、小写的英文字母、任何数字及标点符号。
7.3. 设计要求
实现对串的基本操作(插入、删除、查找)函数,并在此基础上,建立以串为结点单元的单链表,屏幕的每行对应单链表的每个串结点,通过光标的上、下、左、右、翻页移动,进行链表的结点的定位,实现一个简单文本编辑器的基本功能。
7.4. 设计报告格式及主要内容
(1)需求分析说明文档
(2)概要设计(系统的总体结构、功能模块之间接口) (3)详细设计(模块功能说明,主要数据结构的说明)
(4)测试计划与报告:调试方法,测试结果的分析与讨论,测试过程中遇到的主要问题及采取的解决措施。
(5)源程序清单和执行结果:源程序清单中每个类和方法都应有足够的注释。
8. 排课软件
8.1. 问题描述
大学的每个专业都要进行排课。假设任何专业都有固定的学习年限,每学年含两学期,每个专业开设的课程都是确定的,而且课程在开设时间的安排必须满足先修关系。每门课程有哪些先修课程是确定的。每门课程恰好占一个学期,假定每天上午与下午各有5节课。试在这样的前提下设计一个教学计划编制程序。
8.2. 功能要求
1、 输入数据包括:各学期所开的课程数(必须使每学期所开的课程数之和与课程总数相
等),课程编号,课程名称,周学时数,指定开课学期,先决条件。如指定开课学期为0,表示由电脑自行制定开课学期。
2、 如输入数据不合理,比如每学期所开的课程数之和与课程总数不相等,应显示适当的提
示信息。
3、 试用文本文件存储输入数据。
4、 试用文本文件存储产生的各学期的课表。
8.3. 设计要求
可参考如下的课程结构定义: //课程结构 struct CourseType
{ char courseNo[5]; //课程编号 char courseName[100]; //课程名 int period; //学时数 int term; //开设学期 } 在课程表类Schedule中,包括输入与输出流文件,有向图,顶点入度,每学期应开设的课程数等数据成员,还包括读数据、写排课结果,利用拓扑排序的方法等。
课程信息由文件course_inf.txt表示,为了提高可读性,以//开始的行为注释行。 course_inf.txt如下: //课程编号 课程名称 学时数 指定开课学期 先修课程 C01 程序设计基础 5 0 C02 离散数学 6 0 C01 C03 数据结构 4 0 C01,C02 C04 汇编语言 5 0 C01 C05 算法设计与分析 4 0 C03,C04
C06 计算机体系结构 6 0 C11 C07 编译原理 5 0 C03 C08 操作系统原理 4 0 C05,C06 C09 高等数学 6 0 C10 线性代数 6 0 C09 C11 普通物理 4 0 C09 C12 数值分析 6 0 C09,C10,C11 C30 英语 5 1 C31 英语 5 2 C32 英语 5 3 C33 英语 5 4 C34 英语 5 5 C35 英语 5 6 C36 英语 5 7 C37 英语 5 8 C38 大学语文 3 1
//下面为各学期所开的课程数,必须使每学期所开的课程数之和与课程总数相等 6 7 3 6 5 5 5 1
C06 计算机体系结构 6 0 C11 C07 编译原理 5 0 C03 C08 操作系统原理 4 0 C05,C06 C09 高等数学 6 0 C10 线性代数 6 0 C09 C11 普通物理 4 0 C09 C12 数值分析 6 0 C09,C10,C11 C30 英语 5 1 C31 英语 5 2 C32 英语 5 3 C33 英语 5 4 C34 英语 5 5 C35 英语 5 6 C36 英语 5 7 C37 英语 5 8 C38 大学语文 3 1
//下面为各学期所开的课程数,必须使每学期所开的课程数之和与课程总数相等 6 7 3 6 5 5 5 1
正在阅读:
《数据结构》课程大作业题目列表01-30
以奋斗者为本学习心得体会(个人手写)11-25
飞思卡尔基于HCS12的嵌入式系统设计-Chapter707-17
关于我国农业科技园区建设和管理的探讨07-18
选修3-2 第十章 第1单元 交变电流的产生及描述 课时作业07-18
2012全国软考网络工程师考试大纲及知识点 - 图文10-14
C语言程序设计实验指导书 - V2.011-25
经济适用房申请书怎么写优秀7篇03-26
恒压过滤常数的测定10-23
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 数据结构
- 大作
- 题目
- 课程
- 列表
- 水热法及其合成宝石的鉴定
- 药剂师演讲稿
- 单据转换
- 第三四单元秋冬星空生活中的材料复习
- 自然人股东在企业特殊性重组中税收政策解读-财税法规解读获奖文档
- 《基础拾遗 对接中考》苏科物理(八上)第三讲 光现象
- 2016年化学各地中考题分类汇编第12单元化学与生活
- 安防监控《从入门到精通技术学习资料》
- 当前经济形势及宏观调控政策取向答案
- 中职《公共关系学》课程标准
- 高中化学必修2《重要的有机化合物》精品教案
- 中国石化管道储运有限公司公司组织机构成立
- 金融全部思考题
- 大学生十年职业生涯规划
- 2018届高三英语二轮复习专题三阅读理解第一讲细节理解题
- 苹果公司战略管理研究报告
- 生信实验 模拟卷(1)
- 公共基础模拟一
- 公司类客户(大型)信用等级评定管理办法
- 新人教版七年级下第八章二元一次方程组导学案