《数据结构》课程设计任务书

学期:08-09-2 班级:软件07

一、设计目的

《数据结构》是一门实践性较强的软件基础课程,为了学好这门课程,必须在掌握理论知识的同时,加强上机实践。本课程设计的目的就是要达到理论与实际应用相结合,使同学们能够根据数据对象的特性,学会数据组织的方法,能把现实世界中的实际问题在计算机内部表示出来,并培养基本的、良好的程序设计技能。

二、设计要求

1、通过这次设计,要求在数据结构的逻辑特性和物理表示、数据结构的选择应用、算法的设计及其实现等方面加深对课程基本内容的理解。同时,在程序设计方法以及上机操作等基本技能和科学作风方面受到比较系统和严格的训练。

2、学生必须仔细研读《数据结构》课程设计(实习)要求,以学生自学为主、指导教师指导为辅,认真、独立地完成课程设计的任务,有问题及时主动与指导教师沟通。

3、本次课程设计按照教学要求需要在一周半时间内独立完成,学生要发挥自主学习的能力,充分利用时间,安排好课设的时间计划,并在课设过程中不断检测自己的计划完成情况,及时地向指导教师汇报。

4、编程语言任选。

三、设计选题

选题说明:一个*的题代表10分,两个*的代表20分,三个*的题代表40分,四个*的题代表70分。根据实际选做题目的分值和数量以及实现程序的完善性可以适当加减分;同学们在选题时,要结合个人实际情况,保障及格,力争多做。

1、一元多项式计算(*)

任务:能够按照指数降序排列建立并输出多项式;能够完成两个多项式的相加、相减,并将结果输出;

在上交资料中请写明:存储结构、多项式相加的基本过程的算法(可以使用程序流程图)

、源程序、测试数据和结果、算法的时间复杂度、另外可以提出算法的改进方法;

2、 迷宫求解(*)

任务:可以输入一个任意大小的迷宫数据,用非递归的方法求出一条走出迷宫的路径,并将路径输出;

要求:在上交资料中请写明:存储结构、基本算法(可以使用程序流程图)、源程序、测试数据和结果、算法的时间复杂度、另外可以提出算法的改进方法;

3、 文章编辑(*)

功能:输入一页文字,程序可以统计出文字、数字、空格的个数。

静态存储一页文章,每行最多不超过80个字符,共N行;

要求:

(1)分别统计出其中英文字母数和空格数及整篇文章总字数;

(2)统计某一字符串在文章中出现的次数,并输出该次数;

(3)删除某一子串,并将后面的字符前移。

存储结构使用线性表,分别用几个子函数实现相应的功能;

输入数据的形式和范围:可以输入大写、小写的英文字母、任何数字及标点符号。

输出形式:

(1)分行输出用户输入的各行字符;

(2)分4行输出"全部字母数"、"数字个数"、"空格个数"、"文章总字数"

(3)输出删除某一字符串后的文章;

4、 猴子选大王(*)

任务:一堆猴子都有编号,编号是1,2,3 ...m

,这群猴子(m个)按照1--m的顺序围坐一圈,从第1开始数,每数到第N个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王。

要求:

输入数据:输入m,n。 m,n 为整数,n

输出形式:中文提示按照m个猴子,数n 个数的方法,输出为大王的猴子是几号 ,建立一个函数来实现此功能

5、统计二叉树的结点个数 : 建立二叉树,统计二叉树中度为2的结点个数和叶子结点个数(

用递归或非递归的方法都可以,先序、中序或后序均可)(*)

任务:

要求能够输入树的各个结点;分别建立二叉树存储结构的输入函数、输出中度为2的结点及个数的函数、输出叶子结点及个数的函数;

6、 纸牌游戏(*)

任务:编号为1-52张牌,正面向上,从第2张开始,以2为基数,是2的倍数的牌翻一次,直到最后一张牌;然后,从第3张开始,以3为基数,是3的倍数的牌翻一次,直到最后一张牌;然后…从第4张开始,以4为基数,是4的倍数的牌翻一次,

直到最后一张牌;...再依次5的倍数的牌翻一次,6的,7的直到以52为基数的翻过,输出:这时正面向上的牌有哪些?(正面:反面:)

7、 运动会分数统计(**)

任务:参加运动会有n个学校,学校编号为1……n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1……m,女子m+1……m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些项目取前五名或前三名由学生自己设定。(m<=20,n<=20)

功能要求:

(1)可以输入各个项目的前三名或前五名的成绩;

(2)能统计各学校总分,

(3)可以按学校编号、男女团体总分排序输出;

(4)可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。

规定:输入数据形式和范围:20以内的整数(如果做得更好可以输入学校的名称,运动项目的名称)

输出形式:有中文提示,各学校分数为整形

界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。

存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。(数据文件的数据读写方法等相关内容在c语言程序设计的书上,请自学解决)请在最后的上交资料中指明你用到的存储结构;

相关数据结构(参考):

项目名次及分值:用二位数组Score[m+w][5];

单项获奖情况登记表(项目编号,获奖名次、获奖学校,得分(自动得分))

学校获奖名次表(学校编号,团体总分,名次)

测试数据:要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。进行程序测试,以保证程序的稳定。测试数据及测试结果请在上交的资料中写明;

8、宿舍管理查询软件(**)

任务:为宿舍管理人员编写一个宿舍管理查询软件, 程序设计要求:

(1)采用交互工作方式

(2)可以增加、删除、修改信息

(3)建立数据文件 ,数据文件按关键字(姓名、学号、房号)进行排序(选择、快速排序、堆排序等任选一种)

(4) 查询  : a.按姓名查询 ;b.按学号查询 ;c按房号查询

(5) 打印任一查询结果(可以连续操作)

9、最小生成树问题(**)

【问题描述】

若要在n个城市之间建设通信网络,只需要假设n-1条线路即可。如何以最低的经济代价建设这个通信网,是一个网的最小生成树问题。

【系统要求】

1.利用克鲁斯卡尔算法求网的最小生成树。

2.利用普里姆算法求网的最小生成树。

3.要求输出各条边及它们的权值。

【测试数据】

由学生任意指定,但报告上要求写出多批数据测试结果。

【实现提示】

通信线路一旦建成,必然是双向的。因此,构造最小生成树的网一定是无向网。设图的顶点数不超过30个,并为简单起见,网中边的权值设成小于100的整数,可利用C语言提供的随机函数产生。

图的存储结构的选取应和所作操作相适应。为了便于选择权值最小的边,此题的存储结构既不选用邻接矩阵的数组表示法,也不选用邻接表,而是以存储边(带权)的数组表示图。

【选作内容】

利用堆排序实现选择权值最小的边。

10、平衡二叉排序树的实现(**)

【系统要求】

(1)用二叉链表作存储结构,以回车('\n')为输入结束标志,输入数列L,生成一棵平衡的二叉排序树T,并以直观的方式显示在终端上;

(2)对二叉排序树T作中序遍历,输出结果;

(3)输入元素x,查找二叉排序树T,若存在含x的结点,则删除该结点,并作中序遍历(执行操作2);否则输出信息“无x”,并将x插入该二叉排序树中。

注意:插入、删除应保证二叉排序树的平衡性。

11、商店存货管理系统(**)

功能:建立一商店存货管理系统,要求每次出货时取进货时间最早且最接近保质期中止时间的货物。

分步实施:

1.初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;

2.完成最低要求:建立一个文件,包括5个种类的货物情况,能对商品信息进行扩充(追加),修改和删除以及简单的排序;

3.进一步要求:扩充商品数量,以及完成系统查询功能。有兴趣的同学可以自己扩充系统功能。

12、 排序综合(**)

利用随机函数产生N个随机整数(20000以上),对这些数进行多种方法进行排序。

要求:

(1)至少采用三种方法实现上述问题求解(提示,可采用的方法有插入排序、希尔排序、起泡排序、快速排序、选择排序、堆排序、归并排序)。并把排序后的结果保存在不同的文件中;

(2)统计每一种排序方法的性能(以上机运行程序所花费的时间为准进行对比),找出其中两种较快的方法;

(3)统计每种算法所用的比较次数和交换次数,最后列表显示;

(4)如果采用4种或4种以上的方法者,可适当加分。

13、售票处的服务系统(***)

【问题描述】

航空客运订票的业务活动包括:查询航线、客票预订和办理退票等。试设计一个航空客运订票系统,以使上述业务可以借助计算机来完成。

【系统要求】

设民航售票处的计算机系统可以为客户提供下列各项服务:

1.查询航线:根据旅客提出的终点站名输出下列信息:航班号、飞机号、星期几飞行,最近一天航班的日期和余票额;

2.承办订票业务:根据客户提出的要求(日期、航班号、订票数额)查询该航班票额情况,若尚有余额,则为客户办理订票手续,输出座位号;若已满员或余票额少于订票额,则需要重新询问客户要求。若需要,可预约登记排队等候。

3.承办退票业务:根据客户提供的情况(日期、航班、退票数额),为客户办理退票手续,然后查询该航班是否有人预约登记,首先询问排在第一的客户,若所退票额能满足他的要求,则为他办理订票手续,否则依次询问其他排队预约的客户。

【测试数据】

由学生任意指定,但报告上要求写出多批数据测试结果。

【实现提示】

每条航线应包含的信息有:终点站名、航班号、飞机号、飞行日期(星期几)、乘员定额、余票额、已订票的客户名单(包括姓名、订票额、座位号)和预约登记的客户名单(包括日期、姓名、所需票额)。这最后两项显然是一个线性表和一个队列。为查找方便、已订票客户的线性表应按客户姓名有序,并且,为插入和删除方便,应以链表作存储结构。由于预约人数无法预料,队列也应以链表作存储结构。整个系统需汇总各条航线的情况登录在一张线性表上,由于航线基本不变,可采用顺序存储结构,并按航班有序或按终点站名有序。每条航线是这张表上的一个记录,包含上述八个域,其中乘员名单域为指向乘员名单链表的头指针,预约登记客户名单域为分别指向队头和队尾的指针。

【选做内容】

当客户订票要求不能满足时,系统可向客户提供到达同一目的地的其它航线情况。

大家还可以充分发挥自己的想象力,增加你的系统的功能和其它服务项目。

14、 中国道路交通网络信息查询系统(****)

【问题描述】

出于不同的目的的旅客对交通工具有不同的要求。例如,因公出差的旅客希望在旅途中的时间尽可能短,出门旅游的游客则期望旅费尽可能省,而老年旅客则要求中转次数最少。编制一个全国城市间的交通咨询程序,为旅客提供两种或三种最优决策的交通咨询。

【基本要求】

(1) 提供对城市信息进行编辑(如:添加或删除)的功能。

(2)城市之间有两种交通工具:火车和飞机。提供对列车时刻表和飞机航班进行编辑(增设或删除)的功能。

(3)提供两种最优决策:最快到达或最省钱到达。全程只考虑一种交通工具;

(4)旅途中耗费的总时间应该包括中转站的等候时间;

(5)咨询以用户和计算机的对话方式进行。由用户输入起始站、终点站、最优决策原则和交通工具,输出信息:最快需要多长时间才能到达或者最少需要多少旅费才能到达,并详细说明依次于何时乘坐哪一趟列车或哪一次班机到何地。

【测试数据】

参考《数据结构》清华版7.6节图7.33的全国交通图,自行设计列车时刻表和飞机航班。

【实现提示】

(1)对时刻表和飞机航班进行编辑,应提供文件输入和键盘输入两种形式。飞机航班信息包括:起始站的出发时间,终点站的到达时间和票价;列车时刻表则需

根据交通图给出各个路段的详细信息,如:对从北京到上海的火车,给出北京至天津,天津至徐州及徐州至上海各段的出发时间,到达时间及票价等信息。

(2)以邻接表作交通图的存储结构,表示边的结构内除含有邻接点的信息外,还包括交通工具,路途中耗费的时间和花费以及出发和到达时间等多种属性。

【选做内容】

增加旅途中中转次数最少的最优决策。

学生自选课题

学生原则上可以结合个人爱好自选课题,要求自选课题必须覆盖数据结构的主要内容,有一定的深度与难度,有一定的算法复杂性,能明确体现数据抽象与组织、算法设计与性能分析以及编码实现等过程。学生自选课题需提前报课程设计指导教师批准方可生效。

四、成绩考核

根据完成任务的情况(必须进行系统验收 +

答辩)、课程设计报告书的质量和课程设计过程中的工作态度等按照50%、30%、20%加权综合打分。成绩评定实行优秀、良好、中等、及格和不及格五个等级。上机程序检查未通过者、无设计报告者以及严重抄袭他人设计者,成绩为不及格。

缺席次数

最终成绩

1次

中等及以下

2次及以上

不及格

五、指导教师

软件05:吴志刚 王璐

六、设计报告

设计报告书封面用学校的统一封面,设计报告内容可参照《数据结构题集》中的实习报告示例,包含:设计题目、需求分析、概要设计、详细设计、调试分析、测试结果、附录和设计心得体会等。

C语言通信网络最小生成树,《数据结构》课程设计任务书相关推荐

  1. C语言数据结构课程设计任务书

    C语言数据结构课程设计任务书 四.课程设计题目: 1.文本编辑系统 [问题描述] 输入一页文字,程序可以统计出文字﹑数字﹑空格的个数·静态存储一页文章,每行最多不超过80个字符,共N行. [要求] ( ...

  2. 数据结构课程设计——哈夫曼编/译码器

    数据结构课程设计任务书 学生姓名:            专业班级:软件工程 指导教师:              工作单位: 题  目:   哈夫曼编/译码器 基础要求: (1)熟悉各种数据结构和运 ...

  3. 《数据结构》课程设计任务书[2023-01-24]

    <数据结构>课程设计任务书[2023-01-24] <数据结构>课程设计任务书 此任务书仅适用选课储岳中老师的学生 一.设计要求 仔细阅读<数据结构课程设计指导>一 ...

  4. C语言《数据结构》课程设计任务书

    C语言<数据结构>课程设计任务书 1.个人薪资管理系统 [基本功能] 1)个人工号及薪资使用线性表实现数据存储: 2)可实现个人薪资信息的输入.修改.删除功能: 3)能够对数据按薪资的升序 ...

  5. 数据结构课程设计[2023-01-19]

    数据结构课程设计[2023-01-19] 数据结构课程设计 一.课程设计要求 实现指定的题目(学号最后两位%4+1),并撰写课程设计报告. 独立完成,功能不完备也没关系,只要是自己做的 使用 C.C ...

  6. 大学数据结构课程设计题目

    数据结构课程设计题目 1.         飞机订票系统(限1 人完成) 任务:通过此系统可以实现如下功能: 录入: 可以录入航班情况(数据可以存储在一个数据文件中,数据结构.具体数据自定) 查询: ...

  7. java校院导游程序课程设计_数据结构课程设计之校园导游系统

    数据结构课程设计之校园导游系统 放假到现在终于安下心来要搞点学习了,现在对放假前一周的数据结构课设做一个总结,快放假的时候搞数据结构课设,当时满脑子都是期末考试忙着复习,根本没啥心思去做.所以课设一共 ...

  8. 数据结构课程主页-2014级

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 前言 新 ...

  9. 员工任务管理系统c语言,C语言职工信息管理系统课程设计任务书.docx

    C语言课程设计任务书 一.题目:职工信息管理系统 二.目的和要求 目的:要求熟练掌握C语言的基本知识和编辑技能: 基本掌握结构化程序设计的基本思路和方法. 要求:设计一个职工信息管理系统,使之能提供以 ...

最新文章

  1. LeetCode 167. Two Sum II - Input array is sorted--Python解法
  2. 厉害的组件_企业级React UI组件库——React Suite
  3. 在js中如何判断一个对象是否为空
  4. JavA持有类_关于继承:Java持有对象的超类的类型
  5. java)_Java NIO系列教程(一) Java NIO 概述
  6. JavaScript计算两个日期相差天数/分钟/小时
  7. Spring :Spring AOP 中的一些术语
  8. Linux基础知识--Linux分区
  9. 支付宝区块链专利申请连续三年全球第一:办事效率提升1万倍
  10. 笔记本电脑热点手机无法连接解决方案
  11. WPF做的金山词霸页面
  12. Flutter 基础布局之Stack
  13. Mac 电脑添加代理服务器
  14. office2016简体中文版
  15. gms认证流程_【热点资讯】详解Google GMS认证流程可大大缩短终端手机上市时间...
  16. anaconda安装及配置
  17. 下拉菜单html菜鸟教程,Bootstrap 下拉菜单
  18. 华为模拟器ENSP部分指令解释(计算机网络实验必备)
  19. win10推送_升级!win10 2020年5月更新已正式发布,你还没有收到官方推送?
  20. 通过超链接(a标签)和js代码打开链接

热门文章

  1. 谈谈开源的利弊和国内的开源 ——《新程序员005:开源深度指南 新金融背后的科技力量》书评
  2. java mission 篡改后 网速很慢_解析导致局域网网速变慢的五大真凶
  3. 移动端发票识别SDK
  4. 暑假实习——微信小商城
  5. 窗口设置Service中添加 浮动 View
  6. 直播带货,真的适合在线教育吗?
  7. 酷乐天气开发总结记录7
  8. 服务器怎么远程连接控制
  9. pdf如何添加水印文字?
  10. 数字孪生|可视化图表之堆叠面积图