《数据结构》2016课程设计选题统计表

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计任务书

(本页请打印并作为课程设计报告的扉页)

1、每位同学限选1题,并到所在自然班的班长处登记,同一题不超过5人(一个班

之内)。

2、课程设计成绩分为5级:优秀(5分)、良好(4分)、中等(3分)、及格(2分)、

不及格(1分)。

3、题目有难易和工作量大小之分(具体见题目后的“星级”),请同学们结合自身情况

选择题目。

4、课程设计报告和源代码严禁抄袭,报告要严格遵照要求来撰写,大致包含以下内

容:

①需求分析:叙述每个模块的功能性要求;

②概要设计:阐述每个模块的算法设计(可以是描述算法的流程图)、使用的存储结

构(如果指定存储结构请写出该存储结构的struct或typedef定义);

③详细设计:各个算法的实现源代码(注意只写重要算法的源代码,完整的源代码

放在附录里面)。源代码必须正确缩进,关键性代码(如关键变量/ 参数/ 语句的意义、每个函数的功能等)要给出清楚的中文注释;

④调试分析:需要测试数据的至少给出3组测试数据(随机产生的数据除外),记录

每一组数据输出的结果;并用文字描述调试过程中遇到的问题(问题是哪些、如何得以解决?);

⑤课设总结:课程设计过程的收获、遇到的问题、解决问题过程的思考、程序调试

能力的思考、对数据结构这门课程的思考等内容(严禁套话);

⑥附录:完整的源代码(必须正确缩进)。

5、程序运行时,要有友好的说明界面和操作提示菜单(以文字显示即可,有能力的

同学可以编写带GUI的程序,额外加分),严禁出现“一运行屏幕一片黑”的情形;

程序要有良好的容错性,当输入数据不合理或非法,程序必须能处理之并显示友好的提示信息而不能崩溃。

6、提交课程设计报告前,将源代码(.C或.java文件及其有关的数据/资源文件)用

Winrar打包成单一文件(文件名如“软件141—姓名—马踏棋盘.rar”)拷至班长处,由班长统一提交给教师。

7、课程设计报告中除运行截图、附录等内容可以打印外,其余一律手写,并按要求

附上封面装订后,交至班长处。班长统一于1月4日(星期三)下午15:30~16:00(如时间有变则另行通知),交至B座6楼数据挖掘研究室。

可选题目(蓝色文字为题目涉及的算法)

1、一元多项式计算器(★★)

问题描述:创建两个一元多项式A和B,计算A+B和A-B并显示。多项式的项数和每一项的系数/指数在运行时指定。

单链表的合并(结点插入、删除)

2、航空订票系统(★★★★)

问题描述:编写程序模拟航空订票系统,要求实现以下功能:

①允许增、删、改航班信息,包括“航班号/ 机型/ 起降城市/ 起降时间/ 座位数/ 票价等”(所有航班

信息存储在数据文件中,数据结构自定义);

②允许以“航班号/ 起降城市” 等条件查询航班信息;

③订票:无票时应能提供相关可选择的航班以继续操作(订票数据存储在数据文件中)。

④退票:退票后应修改相关数据文件。

顺序表(或链表)的创建、查找、插入、删除,文件读写(fscanf、fprintf等)。

3、迷宫问题(★★★)

问题描述:迷宫以16*16的矩阵存储在数据文件中(迷宫中的障碍物要占到一定比例),编写非递归的程序求出一条从入口到出口的路径并显示之。

基于回溯思想、栈的应用。

4、约瑟夫环问题(★★)

问题描述:编号是1,2,……,N的N个人按照顺时针方向围坐一圈,每个人持有一个密码(一个正整数)。一开始任选一个正整数作为报数上限值M,从第一个人开始顺时针方向自1开始顺序报数,报到M时停止报数。报M的人出列,并将他持有的密码作为新的M值,再从他的顺时针方向的下一个人开始重新从1报数,如此下去,直到所有人全部出列为止。编写程序求出列顺序(采用单循环链表实现,N、M、每个人的密码均在运行时指定)。循环链表的查找、删除。

5、二叉树的创建和遍历(★★★)

问题描述:根据运行时输入的先序序列创建一棵二叉树,分别对其进行先、中、后、层序遍历并显示遍历结果。二叉树的创建和遍历。

6、算术表达式的求值(★★★)

问题描述:若干个算数表达式存放在数据文件中(每行一个,操作数支持小数),形如“(6.2+0.3)*1.2+2-3*(2.4/6)”,编写程序计算每个表达式的值。

栈的应用(注意如何将小数样式的字符串转换为对应小数)。

7、二叉查找树的创建、查找、插入和删除(★★★)

问题描述:运行时产生若干个随机整数,依次插入到一棵初始为空的二叉查找树中,并能在其中查找、插入、删除指定的整数。

BST树的查找、插入、删除。

8、校园导游咨询(★★★★★)

问题描述:为本校设计一个校园导游咨询程序,满足以下要求:

①校园地图存储于数据文件中(格式自定,至少15个景点,25条边),包括景点编号、名称、简介、景点

间道路长度等信息;

②能根据“景点编号/ 名称”查询任意景点的相关信息;

③在用户指定出发和目的景点后,能提供两景点间的最短路径信息;

④能为用户提供从指定景点出发游览完其他所有景点的路线信息。

图的创建、遍历、最短路径。

9、校园网布线问题(★★★★)

问题描述:为本校设计一个校园网布线方案,并编写程序满足以下要求:

①校园内建筑物信息、建筑物间的距离等存储于数据文件中(格式自定,至少15个建筑物,25条边),包

括建筑物编号、名称等信息;

②能根据“建筑物编号/ 名称”查询任意建筑物的相关信息;

③施工成本最低且任意两建筑物可以相互通信。

图的创建、遍历、最小生成树。

10、马踏棋盘问题(★★★)

问题描述:一棋子随机放在8×8棋盘的某个方格中,该棋子下一步能走到的方格如图,编写非递归程序满足以下要求:

①每个方格只走一次;

②走遍棋盘上全部64个方格;

③求出所有满足①、②的行走路线(将1,2,…,64依次填入8×8的矩阵。

回溯思想、栈的应用

相关文档
最新文档