《数据结构》课程设计指导书.docx

上传人:b****6 文档编号:4322618 上传时间:2022-11-29 格式:DOCX 页数:13 大小:94.78KB
下载 相关 举报
《数据结构》课程设计指导书.docx_第1页
第1页 / 共13页
《数据结构》课程设计指导书.docx_第2页
第2页 / 共13页
《数据结构》课程设计指导书.docx_第3页
第3页 / 共13页
《数据结构》课程设计指导书.docx_第4页
第4页 / 共13页
《数据结构》课程设计指导书.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

《数据结构》课程设计指导书.docx

《《数据结构》课程设计指导书.docx》由会员分享,可在线阅读,更多相关《《数据结构》课程设计指导书.docx(13页珍藏版)》请在冰豆网上搜索。

《数据结构》课程设计指导书.docx

《数据结构》课程设计指导书

陶瓷大学信息工程学院

《数据结构》课程设计指导书

(2010年7月)

 

2010年7

目录

第一节、序言1

第二节、课程设计要求2

第三节、课程设计论文的格式3

第四节、考勤及考核4

第五节、课题及任务(题目及要求)5

题目1运动会分数统计**5

题目2一元多项式计算**6

题目3迷宫求解6

题目4文章编辑**6

题目5joseph环7

题目6建立二叉树,层序、先序遍历(用非递归的方法)**7

题目7运动会分数统计**8

题目8商品货架管理8

题目9行文本编辑器9

题目10作业调度10

题目11图(校园导游图)12

题目12教学计划编编制问题12

题目13航空客运订票系统13

第六节、时间安排14

第一节、序言

《数据结构》课程设计是为配合课堂教学,使学生进一步掌握《数据结构》课程中有关理论知识,并通过对具体事物的分析,得出抽象的结构(关系),建立数据模型(公式),并最终设计出良好的算法(流程图)。

本次课程设计统一要求用C++言编程并调试(程序设计),以提高学生的程序设计及解决实际问题的能力;并为后续课程学习打下基础。

本次课程设计所列问题,大都与现实生活密切相关,并且其包含了《数据结构》课程中所讲述的基本类型,具有典型意义。

要求学生利用《数据结构》课程有关理论,参考本手册所介绍的软件工程的的相关方法,对不同问题分别进行需求分析,概要设计,然后进行详细设计和代码的编写,并进行测试得出相应软件,最后编写软件说明及课程设计论文。

由于只有二周共十天的时间,为使学生能尽快抓住问题的本质,每个题目不但给出了问题描述,要求,还给出实现提示,以便学生能尽快完成课程设计任务。

第二节、课程设计要求

学生必须仔细阅读《数据结构》课程设计方案,认真主动完成课设的各项任务。

在设计过程中存在问题,请及时通过各种方式与指导教师联系交流。

  每位同学应发挥自主学习的能力,合理充分的利用时间,安排好课设的时间计划,并在课设过程中不断检测自己的计划完成情况,及时的向教师汇报。

  课程设计按照教学要求需要两周时间完成,两周中每天(按每周5天)至少要上3-4小时的机来调试C++语言设计的程序,总共至少要上机调试程序30小时。

  数据结构是一门涉及多门课程的课程,难度较大,需要较好的C/C++语言的程序设计和调试能力。

如果学生能够按照要求,从时间和精力上保证完全的投入,相信能够有很大的收获。

第三节、课程设计论文的格式

1、对每个题目要有需求分析

  在需求分析中,将题目中要求的功能进行叙述分析,并且设计解决此问题的数据存储结构,(有些题目已经指定了数据存储的,按照指定的设计),设计或叙述解决此问题的算法,描述算法建议使用流程图,进行算法分析指明关键语句的时间复杂度。

给出实现功能的一组或多组测试数据,程序调试后,将按照此测试数据进行测试的结果列出来。

 对有些题目提出算法改进方案,比较不同算法的优缺点。

  如果程序不能正常运行,写出实现此算法中遇到的问题,和改进方法;

2、对每个题目要有相应的源程序(可以是一组源程序,即详细设计部分)

  源程序要按照写程序的规则来编写。

要结构清晰,重点函数的重点变量,重点功能部分要加上清晰的程序注释。

  程序能够运行,要有基本的容错功能。

尽量避免出现操作错误时出现死循环。

3、最后提供的主程序可以象一个应用系统一样有主窗口,通过主菜单和分级菜单调用课程设计中要求完成的各个功能模块,调用后可以返回到主菜单,继续选择其他功能进行其他功能的选择。

4、对每个模块的层次结构用具体的语言来实现(C++语言)。

5、编写软件使用说明手册。

6、课程设计的上交作业包括:

课程设计论文+源程序+可执行程序+运行说明文档。

第四节、考勤及考核

全体同学在课程设计期间,必须在上课时间到专业机房进行考勤,一天至少二次(早上8:

00及12:

00,下午2:

30及4:

30)。

每位同学必须的课题完成之后,必须通过指导老师的考核,基本完成课题要求的起点为合格,另根据具体完成模块情况进行考核评分。

《数据结构》课程设计的最后成绩有以下几个方面组成:

⏹考勤(10分)

⏹程序运行情况(30分),

⏹程序的结构合理与否(10分),

⏹算法(30分),

⏹独立完成情况(学生间不相互雷同)(20分),

⏹以及加分因素(10分);共110分

附注:

1.在学生实习中,学生若有3次考勤不到,综合评定成绩不得超过中以上成绩;

2.在学生实习中,学生若有5次考勤不到,综合评定成绩不得超过及格及以上成绩;

3.在学生实习中,学生若有7次考勤不到,综合评定成绩为不及格。

4.在学生实习中,发现学生有抄袭现象,综合评定成绩为不及格。

 

第五节、课题及任务(题目及要求)

本次课程设计完成如下模块(共13个模块,学生可以按如下提示选择功能块完成,多做可以加分)

题目1~7至少选做三题(打**部分至少选做二题)

题目1运动会分数统计**

1、问题描述

参加运动会有n个学校,学校编号为1……n。

比赛分成m个男子项目,和w个女子项目。

项目编号为男子1……m,女子m+1……m+w。

不同的项目取前五名或前三名积分;取前五名的积分分别为:

7、5、3、2、1,前三名的积分分别为:

5、3、2;哪些取前五名或前三名由学生自己设定。

(m<=20,n<=20)

2、要求

功能要求:

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

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

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

(4)可以按学校编号查询学校某个项目的情况;

(5)可以按项目编号查询取得前三或前五名的学校。

规定:

输入数据形式和范围:

20以内的整数(如果做得更好可以输入学校的名称,运动项目的名称)

输出形式:

有中文提示,各学校分数为整数

界面要求:

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

存储结构:

学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。

(数据文件的数据读写方法等相关内容在c语言程序设计的书上,请自学解决)请在最后的上交资料中指明你用到的存储结构;

测试数据:

要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。

进行程序测试,以保证程序的稳定。

测试数据及测试结果请在上交的资料中写明;

题目2一元多项式计算**

1、问题描述

1)、能够按照指数降序排列建立并输出多项式;

2)、能够完成两个多项式的相加、相减,并将结果输入。

2、要求

在上交资料中请写明:

存储结构、多项式相加的基本过程的算法(可以使用程序流程图)、源程序、测试数据和结果、算法的时间复杂度、另外可以提出算法的改进方法。

题目3迷宫求解

1、问题描述

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

2、要求

在上交资料中请写明:

存储结构、基本算法(可以使用程序流程图)、源程序、测试数据和结果、算法的时间复杂度、另外可以提出算法的改进方法。

题目4文章编辑**

1、问题描述

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

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

2、要求

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

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

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

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

输入数据的形式和范围:

可以输入大写、小写的英文字母、任何数字及标点符号。

输出形式:

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

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

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

题目5joseph环

1、问题描述

编号是1,2,……,n的n个人按照顺时针方向围坐一圈,每个人只有一个密码(正整数)。

一开始任选一个正整数作为报数上限值m,从第一个仍开始顺时针方向自1开始顺序报数,报到m时停止报数。

报m的人出列,将他的密码作为新的m值,从他在顺时针方向的下一个人开始重新从1报数,如此下去,直到所有人全部出列为止。

设计一个程序来求出出列顺序。

2、要求

利用单向循环链表存储结构模拟此过程,按照出列的顺序输出各个人的编号。

测试数据:

m的初值为20,n=7,7个人的密码依次为3,1,7,2,4,7,4,首先m=6,则正确的输出是什么?

要求:

输入数据:

建立输入处理输入数据,输入m的初值,n,输入每个人的密码,建立单循环链表。

输出形式:

建立一个输出函数,将正确的输出序列

题目6建立二叉树,层序、先序遍历(用非递归的方法)**

1、问题描述

要求能够输入树的各个结点,并能够输出用不同方法遍历的遍历序列;分别建立建立二叉树存储结构的的输入函数、输出层序遍历序列的函数、输出先序遍历序列的函数;

2、要求

在上交资料中请写明:

存储结构、基本算法(可以使用程序流程图)、源程序、测试数据和结果、算法的时间复杂度、另外可以提出算法的改进方法。

题目7运动会分数统计**

1、问题描述

编号为1-52张牌,正面向上,从第2张开始,以2为基数,是2的倍数的牌翻一次,直到最后一张牌;然后,从第3张开始,以3为基数,是3的倍数的牌翻一次,直到最后一张牌;然后…从第4张开始,以4为基数,是4的倍数的牌翻一次,直到最后一张牌;...再依次5的倍数的牌翻一次,6的,7的直到以52为基数的翻过,输出:

这时正面向上的牌有哪些?

2、要求

在上交资料中请写明:

存储结构、基本算法(可以使用程序流程图)、源程序、测试数据和结果、算法的时间复杂度、另外可以提出算法的改进方法。

题目8~13至少选做一题

题目8商品货架管理

1、问题描述

一超市货架以栈的方式摆放商品,生产日期越靠近栈底;出货时从栈顶取货,一天营业结束,如果货架不满,则需上货。

如果直接将商品摆放到货架上,则会使生产日期越近的商品越靠近栈顶。

这样就需要倒货架,仍使生产日期越近的越靠近栈底。

假设该超市由专人根据电脑销售数据随时进行上货,某种商品每件次“取货”平均时间为TX1,每件次“上货”平均时间为TX2,该商品每天销售件数为NX(每天销售总件数据为N,K为商品种类数,N=N1+~+NK),该员工该商品上货工作时间为TX(每天工作总时间为T,T=T1+~+TK),

2、要求

设计一个算法,每一次上货后始终保持生产日期越近的商品越靠近栈底。

求货架上剩余货物M、每天销售件数N、员工每天上货工作时间T,三者之间有何关系及T的最小值。

题目9行文本编辑器

1、问题描述

行文本编辑器(EDLIN)通过终端对文本文件进行创建、删除、修改、存储操作。

2、要求

(1)编辑新文件,运行EDLIN进入编辑状态,是新文件则提示“NewFile”,并给出编辑提示符“*”号。

C〉EDLINfilename

*I〈RETURN〉(输入I命令进入插入状态)

1:

*a=1

2:

*b=2

3:

*c=a+b

4:

*?

c

5:

*〈Ctrl〉+〈Break〉

*E〈RETURN〉(存盘退出)

(2)修改旧文件,运行EDLIN进入编辑状态,是旧文件则提示“Endofainputfile”,说明文件已从盘上调出,可以进行修改;并给出编辑提示符“*”号。

*3〈RETURN〉(输入行号进行修改)

3:

*c=a+b

3:

*c=a*b(输入修改内容)

*Q〈RETURN〉(不存盘退出)

(3)显示文件内容

*L〈RETURN〉

1:

*a=1

2:

*b=2

3:

*c=a+b

4:

*?

c

*

插入行:

*nD〈RETURN〉(从n行之前开始插入内容,以〈Ctrl〉+〈Break〉结束)

删除行

*nD〈RETURN〉(将第n行内容删除)

*n,mD〈RETURN〉(将第n行到第m行的所有内容删除)

3、实现提示:

采用一种堆结构存储待编辑字符,具体做法在下面介绍。

(1)在内存开辟可容纳maxlines行大小的编辑工作区的bufsize的修改缓冲区。

(2)系统启动时,要求用户输入编辑文件名,如果该文件存在,则调入maxlines行到文本编辑工作区;如果该文件不存在,则认为是新建文件。

(3)对读入的文件建立相应的行表。

行表指出每一行的行号和该行子串的长度,它们按照行号排序。

在文本编辑程序中设立行指针、字符指针,分别批示当前操作的行、字符。

(4)执行插入、删除、修改操作时,将本次操作内容放到缓冲区。

题目10作业调度

1、问题描述

一个公司的职员可分为经理、部门主管和职工。

公司的服务支持由一个共同的秘书处承担,每一个职员都可以提出服务请求(诸如企划及建议、指示及批复等),只要填写一张包括该职员的职位、任务号、任务内容的表格即可。

这张表格内的信息存储在一个作业请求记录JobRequest队列中,并根据时间将作业加入到对应的优先级队列中。

初始作业队列存放于一个作业队列文件中,作业队列文件中存放有一批将被加入到优先级队列的作业。

每个作业请求都以记录的形式存放在“job.dat”文件中。

记录中记载着职员的职位、作业标识号和工作时间。

所有作业在读入后都加入到一个名为“jobpool-作业池”的优级队列中,然后,按其所具有的优先级逐个进行处理,并将处理结果打印出来。

程序最后打印为每一类人的总服务时间。

2、要求

(1)编写为输入打开文件“job.dat”,读入作业文件,为staffPerson域、作业标识域、任务内容等域赋值。

(2)利用优先级队列对所有作业调度,计录作业流转各处理环节所需的处理的时间,并打印作业信息。

最后打印为每一作业服务的总时间。

(3)将调度策略改为“先来先服务”,利用先进先出的队列重新实现作业调度。

3、实现提示

(1)为表明每一员工因职位不同具有不同的优先级,将其按职位建在一个枚举型变量中。

经理优先级最高(为0);部门主管优先级次之(为1),等等:

(2)程序中需要使用一个辅助数组jobServicesUse,用来存放为每一类职员提供服务的时间。

(3)程序中还需要用到两个打印函数,一个是PrintJobInfo(),它打印出每一个作业的信息;另一个是PrintSummary(),打印公司为各类职员提供服务的总时间。

JobRequest记录及相关的函数都在头文件“job.h”中。

(4)为输入打开文件“job.dat”,读入作业文件时,需判断出错情况。

再根据不同类的人,分别为为staffPerson域、作业标识域、作业所需时间域赋值。

(5)执行一个循环,当优先级队列不空时,作业逐个退出优先级队列,打印作业信息,进行服务时间累计。

待作业全部退出后,打印公司为各类职员提供服务的总时间。

 

题目11图(校园导游图)

1、问题描述

制作陶瓷学院的校园导游图,游客通过终端可询问:

(1)从某一景点到另一景点的最短路径。

(2)游客从公园进入,选取一条最佳路线3,使游客可以不重复地游览各景点,最后回到出口(出口就在入口处旁边)

2、要求

(1)将导游图看作一张带权无向图,顶点表示公园的各个景点,边表示各景点之间的道路,边上的权值表示距离。

为此图选择适当的数据结构。

(2)把各种路径都显示给游客,由游客自己选择游览路线。

(3)画出景点分布图于屏幕上。

3、实现提示

(1)第一实际是最短路径问题,如果有几条路径长度相同,可选择途径景点较少的路径提供给游客。

(2)第二问可采用深度优先搜索,如果有多种路径可选择,则选择带权路径最小的路线提供给游客。

题目12教学计划编编制问题

1、问题描述、

在学的每个专业都要制定教学计划。

假设任何专业都有固定的学习班年限,每学期含两个学期,每学期的时间长度和学分上限值均相等。

每个专业开设的课程都是确定的,而且课程开设时间的安排必须满足先修关系。

每门课程有哪些先修课程是确定的,可以有任意多门,也可以没有,每门课恰好占一个学期。

试在这样的前提下设计一个教学计划编制程序。

2、基本要求

输入参数包括:

学期总期总数,一学期的学分上限,每门课的课程号(固定占3位的字母数字串)课程名等信息均以文件方式存放在磁盘中;

安排教学计划时以使学生在各学期中的学习负担尽量均匀;

输出的计划存入文件中。

3、提示

设学期总数不超过8,课程总数不超过100。

题目13航空客运订票系统

1、问题描述

航空客运订票的业务活动包括:

查询航线、客票预订和办理退票等。

设计一个航空客运订票系统,以使上述业务可以借助计算机完成。

2、要求

1)每条航线所涉及的信息有:

终点站名、航班号、飞机号、飞行周日(星期几)、乘员定额、余票量、已订票的客户名单(包括名字、订票量、舱位等级1、2、3)以及等候替补的客户名单;

2)系统实现的功能如下:

通过此系统可以实现如下功能:

录入:

可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)

查询:

可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况;

订票:

(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班;

退票:

可退票,退票后修改相关数据文件;客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。

修改航班信息:

当航班信息改变可以修改航班数据文件

3、提示

可使用队列实现候补客户名单,航线情况可使用一静态表实现。

第六节、时间安排

日期

步骤

1

2

3

4

5

1

2

3

4

5

问题分析

流程图设计

编码

调试

编写软件说明

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 育儿知识

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1