数据结构项目设计.docx
- 文档编号:3408616
- 上传时间:2022-11-22
- 格式:DOCX
- 页数:9
- 大小:30.94KB
数据结构项目设计.docx
《数据结构项目设计.docx》由会员分享,可在线阅读,更多相关《数据结构项目设计.docx(9页珍藏版)》请在冰豆网上搜索。
数据结构项目设计
《数据结构项目设计》
一、项目设计的性质、教学目的和要求
《数据结构》是运算机软件的一门基础课程,运算机科学各领域及有关的应用软件都要用到各类类型的数据结构。
学好数据结构对把握实际编程能力是很有帮忙的。
为了学好《数据结构》,必需编写一些在特定数据结构上的算法,通过上机调试,才能更好地把握各类数据结构及其特点,同时提高解决运算机应用实际问题的能力。
二、设计要点
1.设计和调试进程要标准化。
1需求分析
将题目中要求的功能进行表达分析,而且设计解决此问题的数据存储结构,(有些题目已经指定了数据存储的,依照指定的设计),设计或表达解决此问题的算法,描述算法建议利用流程图,进行算法分析指明关键语句的时刻复杂度。
给出实现功能的一组或多组测试数据,程序调试后,将依照此测试数据进行测试的结果列出来。
对有些题目提出算法改良方案,比较不同算法的优缺点。
若是程序不能正常运行,写出实现此算法中碰到的问题,和改良方式。
②源程序(能够是一组源程序,即详细设计部份)
源程序要依照写程序的规那么来编写。
要结构清楚,重点函数的重点变量,重点功能部份要加上清楚的程序注释。
程序能够运行,要有大体的容错功能。
尽可能幸免显现操作错误时显现死循环。
2.课程设计实习报告的书写格式
1设计题目(任选其一)
②运行环境(软、硬件环境)
③算法设计的思想
④算法的流程图
⑤算法设计分析
⑥源代码
⑦运行结果分析
⑧收成及体会
3.实施方式
可设3-4人一题,安排在《数据结构》课程开课学期布置题目,然后在期末两周时刻内完成。
三.设计要求
学生要发挥自主学习的能力,充分利历时刻,安排好课设的时刻打算,并在课设进程中不断检测自己的打算完成情形,及时的向教师汇报。
课程设计依照教学要求需要两周时刻完成,两周中天天至少要上3-4小时的机来调试C语言设计的程序,总共至少要上机调试程序30小时。
为保证质量,需要每一个学生将天天的上机调试程序的时刻记录下来,作为评判成绩的标准之一。
四.设计题目
一、运动会分数统计
问题描述:
参加运动会有n个学校,学校编号为1……n。
竞赛分成m个男子项目,和w个女子项目。
项目编号为男子1……m,女子m+1……m+w。
不同的项目取前五名或前三名积分;取前五名的积分别离为:
7、五、3、二、1,前三名的积分别离为:
五、3、2;哪些取前五名或前三名由学生自己设定。
(m<=20,n<=20)
功能要求:
1).能够输入各个项目的前三名或前五名的成绩;
2).能统计各学校总分,
3).能够按学校编号、学校总分、男女集体总分排序输出;
4).能够按学校编号查询学校某个项目的情形;能够按项目编号查询取得前三或前五名的学校。
规定:
输入数据形式和范围:
20之内的整数(若是做得更好能够输入学校的名称,运动项目的名称)
输出形式:
有中文提示,各学校分数为整形
界面要求:
有合理的提示,每一个功能能够设立菜单,依照提示,能够完成相关的功能要求。
存储结构:
学生自己依照系统功能要求自己设计,可是要求运动会的相关数据要存储在数据文件中。
(数据文件的数据读写方式等相关内容在c语言程序设计的书上,请自学解决)请在最后的上交资料中指明你用到的存储结构;
测试数据:
要求利用:
1)全数合法数据;
2)整体非法数据;
3)局部非法数据。
进行程序测试,以保证程序的稳固。
测试数据及测试结果请在上交的资料中写明;
二、一元多项式计算
问题描述:
能够依照指数降序排列成立并输出多项式;
能够完成两个多项式的相加、相减,并将结果输入;
在上交资料中请写明:
存储结构、多项式相加的大体进程的算法(能够利用程序流程图)、源程序、测试数据和结果、算法的时刻复杂度、另外能够提出算法的改良方式;
3、订票系统
问题描述:
通过此系统能够实现如下功能:
1)录入:
能够录入航班情形(数据能够存储在一个数据文件中,数据结构、具体数据自定)
2)查询:
能够查询某个航线的情形(如,输入航班号,查询起降时刻,起飞抵达城市,航班票价,票价折扣,确信航班是不是满仓);
能够输入起飞抵达城市,查询飞机航班情形;
3)订票:
(订票情形能够存在一个数据文件中,结构自己设定)
能够订票,若是该航班已经无票,能够提供相关可选择航班;
4)退票:
可退票,退票后修改相关数据文件;
客户资料有姓名,证件号,订票数量及航班情形,定单要有编号。
5)修改航班信息:
当航班信息改变能够修改航班数据文件
要求:
依照以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能;
4、迷宫求解
问题描述:
能够输入一个任意大小的迷宫数据,用非递归的方式求出一条走出迷宫的途径,并将途径输出;
要求:
在上交资料中请写明:
存储结构、大体算法(能够利用程序流程图)、源程序、测试数据和结果、算法的时刻复杂度、另外能够提出算法的改良方式;
五、文章编辑
问题描述:
输入一页文字,程序能够统计出文字、数字、空格的个数。
静态存储一页文章,每行最多不超过80个字符,共N行。
要求
(1)别离统计出其中英文字母数和空格数及整篇文章总字数;
(2)统计某一字符串在文章中显现的次数,并输出该次数;
(3)删除某一子串,并将后面的字符前移。
存储结构:
利用线性表,别离用几个子函数实现相应的功能;
输入数据的形式和范围:
能够输入大写、小写的英文字母、任何数字及标点符号。
输出形式:
(1)分行输出用户输入的各行字符;
(2)分4行输出"全数字母数"、"数字个数"、"空格个数"、"文章总字数"
(3)输出删除某一字符串后的文章;
6、马踏棋盘
问题描述:
将马随机放在国际象棋的8Ⅹ8棋盘Bord[8Ⅱ8]的某个方格中,马按走棋规那么进行移动。
要求每一个方格上只进入一次,走遍棋盘上全数64个方格。
编制非递归程序,求出马的行走线路,并按求出的行走线路,将数字1,2,…,64依次填入1个8Ⅹ8的方阵,输出之。
测试数据:
由读者指定,可自行指定一个马的初始位置。
实现提示:
每次在多个可走位置当选择一个进行试探,其余不曾试探过的可走位置必需用适当结构妥帖治理,以备试探失败时的“回溯”(悔棋)利用。
7、校园导游咨询
问题描述:
(1)设计你的学校的校园平面图,所含景点很多于10个。
以图中极点表示学校各景点,寄存景点名称、代号、简介等信息;以边表示途径,寄存途径长度等相关信息。
(2)为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单途径。
(3)为来访客人提供图中任意景点相关信息的查询。
测试数据:
由读者依如实际情形指定。
实现提示:
一样情形下,校园的道路是双向通行的,可设校园平面图是一个无向网。
极点和边均含有相关信息。
8、编制一个求解迷宫通路的图形界面演示程序。
问题描述:
1)输入一个任意大小的迷宫,任设起点、终点、障碍,用栈求出一条走出迷宫的途径,并显示在屏幕上。
2)依照用户界面提示,用键盘输入。
Home键设置迷宫起点,End键设终点,上下左右箭头键移动,Enter键添加墙,Del键删除墙,完成后按F9键演示,Esc键退出。
3)橙色的实心小圆圈表示起点,绿色实心圆圈表示终点,空心圆圈表示足迹,红色方块表示墙。
4)本程序只求出一条成功的通路,但假设对求解函数MazePath略加更改即可求得全数途径。
另外,因受图形界面限制,不能保留或载入测试文件(此功能可在Maze_text中实现)。
5)当未输入起点时,消息显示“Error:
YoumustsetStartplace.”;未输入终点时,显示“Error:
YoumustsetEndplace.”找到途径时,屏幕显示足迹,并在消息框显现Pathfound,不然消去足迹,显示Pathnotfound.
9.一元稀疏多项式计算器
问题描述:
一元多项式简单计算器的大体功能是:
(1)输入并成立多项式;
(2)输出多项式,输出形式为整数序列n,c1,e1,c2,e2,…,cn,en,其中n是多项式的项数,ci和ei别离是第I项的系数和指数,序列指指数降序排列;
(3)多项式a和b相加,成立多项式a+b;
(4)多项式a和b相减,成立多项式a-b。
实现提示:
用带头结点的单链表存储多项式,多项式的项数存在头结点。
10.算术表达式求值演示
问题描述:
表达式求值是实现程序设计语言的大体问题之一,也是栈的应用的一个典型例子。
设计一个程序,演示用算符优先法对算术表达式求值的进程。
大体要求
以字符序列的形式从终端上输入语法正确的、不含变量的整数表达式。
利用教材中给出的算符优先关系,实现对算术四那么混合运算表达式的求值,并仿照教材例3-1演示在求值中运算符栈、运算数栈、输入字符和要紧操作的转变进程。
实现提示:
(1)设置运算栈和运算数栈辅助分析算符优先关系。
(2)在输入表达式的字符序列的同时,完成运算符和运算数(整数)的识别处置,和相应的运算。
(3)在识别出运算数的同时,要将其字符序列形式转换成整数形式。
选作内容:
(1)扩充运算符集,如增加乘方、单目减、赋值等运算;
(2)运算量能够是变量;
(3)运算量能够是实数类型;
(4)计数器的功能和仿镇界面。
11.稀疏矩阵运算器
问题描述:
稀疏矩阵是指那些多数元素为0的矩阵。
利用“稀疏”特点进行存储和计算能够大大节省存储空间,提高计算效率。
实现一个能进行稀疏矩阵大体原酸的运算器。
大体要求:
以“带行逻辑链接信息”的三元组顺序表示稀疏矩阵,实现两个矩阵相加、相减和相乘的运算。
稀疏矩阵的输入形式采纳三元组表示,而运算结构的矩阵那么以通常的阵列形式列出。
实现提示:
(1)第一应输入矩阵的行数和列数,并判别给出的两个矩阵的行、列数关于所要求作的运算是不是匹配。
可设矩阵的行数和列数均不超过20。
(2)程序能够对三元组的输入顺序加以限制,例如,按行优先。
注意研究教科书中的算法,以便提高计算效率。
(3)在用三元组表示稀疏矩阵时,相加或相减所得结果矩阵应该另生成,乘积矩阵也能够用二维数组寄存。
12.图书治理
问题描述:
图书治理大体业务活动包括:
对一本书的采编入库、清除库存、借阅和归还等等。
试设计一个图书治理系统,将上述业务活动借助于运算机系统完成。
大体要求:
(1)每种书的记录内容至少包括书号、书名、作者、现存量和总库存量等。
(2)作为演示系统,没必要利用文件,全数数据能够都在内存寄存。
可是由于上述四项大体业务活动都是通过书号(即关键字)进行的,因此要用B树对书号尽力索引,以取得高效率。
(3)系统应实现的操作及功能概念如下:
①采编入库:
新购入一种书,经分类和确信书号后记录到图书帐目中去。
若是这种书在帐目中已有,那么只将总库存量增加。
2清除库存:
某种书已无保留价值,将它从图书帐目中注销。
3某种书的现存量大于零,那么借出一本,记录借阅者的图书证号和归还期限。
4归还:
注销对借阅者的记录,改变该书的现存量。
5显示:
以凹入表的形式显示B树。
那个操作是为了调试和保护的目的而设置的。
以下B树的打印格式如下所示:
13:
通信录的制作
问题描述:
编写一个通信录治理系统,本系统应完成一下几方面的功能:
1.输入信息——enter();
2.显示信息———display();
3.查找以姓名作为关键字———search();
4.删除信息———delete();
5.存盘———save();
6.装入———load();
大体要求:
用双向链表作数据结构。
1.每条信息至包括:
姓名(NAME)街道(STREET)城市(CITY)(EIP)
国家(STATE)几项
2.作为一个完整的系统,应具有友好的界面和较强的容错能力
五、参考书目
《数据结构C语言》严蔚敏清华大学出版社
《c语言程序设计》谭浩强清华大学出版社
《数据结构》高教出版社
《数据结构习题》李春保清华大学出版社
《数据结构习题》严蔚敏清华大学出版社
《c语言与数据结构》王立柱清华大学出版社
《数据结构(C语言篇)习题与解析》李春葆清华大学出版社
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 项目 设计