《算法与数据结构》课程设计报告书
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
烟台大学计算机学院课程设计(算法与数据结构)
设计题目:
班级
姓名
学号
指导教师
成绩
二○一三年四月十日
内容包括:
一、课程设计题目:
二、课程设计内容:
三、算法设计:
四、程序正确性验证(指边界测试数据,即程序对于精心选择的典型、苛刻
而带有刁难性的几组输入数据能够得出满足要求的结果):
五、课程设计过程中出现的主要问题、原因及解决方法:
六、课程设计的主要收获:
七、对今后课程设计的建议:
算法与数据结构课程设计题目
一、单项分值:25分
1、约瑟夫环游戏
2、八皇后问题(图形表示加20分)
3、表达式的求值问题
4、迷宫问题(图形表示加10分)
二、单项分值:80分
5、HTML文档标记匹配算法
要求:输入一段HTML代码,判断该代码是否符合HTML的语法
提示:HTML文档由不同的标记划分为不同的部分与层次。与括号类似,这些标记需要成对出现,对于名为
● :HTML文档
●
●
:文档体●
:节的头部
●
●
●
:段落
●。。。
HTML语言有合理的嵌套,如
6、程序源代码的相似性
问题描述:对于两个C++语言的源程序代码,用哈希表的方法分别统计两个程序中使用C++语言关键字的情况,并最终按定量的计算结果,得出两份程序的相似性。
基本要求:建立C++语言关键字的哈希表,统计在每个源程序中C++关键字出现的频度, 得到两个向量X1和X2,通过计算向量X1和X2的相对距离来判断两个源程序的相似性。
例如:
关键字 Void Int For Char if else while do break class 程序1关键字频度 4 3 0 4 3 0 7 0 0 2
程序2关键字频度 4 2 0 5 4 0 5 2 0 1
X1=[4,3,0,4,3,0,7,0,0,2]
X2=[4,2,0,5,4,0,5,2,0,1]
设s是向量X1和X2的相对距离,s=sqrt( ∑(xi1-xi2) 2 ),当X1=X2时,s=0, 反映出可能是同一个程序;s值越大,则两个程序的差别可能也越大。
测试数据: 选择若干组编译和运行都无误的C++程序,程序之间有相近的和差别大的,用上述方法求s, 对比两个程序的相似性。
提高要求:建立源代码用户标识符表,比较两个源代码用户标识符出现的频度,综合关键字频度和用户标识符频度判断两个程序的相似性。
三、单项分值:100分
7、飞机订票系统(限1 人完成)
任务:通过此系统可以实现如下功能:
录入:
可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)
查询:
可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);
可以输入起飞抵达城市,查询飞机航班情况;
订票:(订票情况可以存在一个数据文件中,结构自己设定)
可以订票,如果该航班已经无票,可以提供相关可选择航班;
退票:可退票,退票后修改相关数据文件;
客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。
修改航班信息:
当航班信息改变可以修改航班数据文件
要求:
根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能;
8、图书管理系统(限1 人完成)
【问题描述】
设计一个计算机管理系统完成图书管理基本业务。
【基本要求】
1)每种书的登记内容包括书号、书名、著作者、现存量和库存量;
2)对书号建立索引表(线性表)以提高查找效率;
3)系统主要功能如下:
*采编入库:新购一种书,确定书号后,登记到图书帐目表中,如果表中已有,则只将库存量增加;
*借阅:如果一种书的现存量大于0,则借出一本,登记借阅者的书证号和归还期限,改变现存量;
*归还:注销对借阅者的登记,改变该书的现存量。
【进一步完成内容】
1)系统功能的进一步完善;
2)索引表采用树表。
3)设计内容
4)程序流程图
5)源程序
6)软件测试报告(包括所用到的数据及结果)
9、校园导航问题(限1 人完成)
1.问题描述
以我校为例,设计一个校园导游程序,主要为来访的客人提供信息查询。
2.需求分析
提供至少5个景点的校园导游咨询(包括景点介绍、景点间距离等)。
本程序的目的是为来客提供路径咨询和景点查询(根据用户指定的始点和终点输出相应最短简单路径或者输出用户指定景点的详细信息);系统管理员又可根据实际情况对导游图进行修改,删除路径或景点。
选取九个大家熟悉的景点,抽象成一张带权无向图(如图所示)。以图中顶点表示景点,存放景点名称、代号等信息;以边表示路径,边上的权值表示两地的距离,为此图选择适当的数据结构:
本演示程序采用C语言编写,完成了无向图的建立和其他操作:
①输入的形式和输入值的范围:主函数中调用图表建立函数之后,通过输入1到6不同的阿拉伯数字进行功能选择;在查找景点详细信息操作时需要输入景点的的序号;在求路径函数中,也是输入对应景点序号值;在删除路线函数里,输入构成边的两个景点的序号对;。在所有输入操作中,输入的值都是整数
②输出的形式:菜单函数,输出功能菜单目录;查找函数信息操作,输出景点序号,名称,还有详细介绍;求最短路径函数,输出路线经过的顶点和路线的长度!删除函数,当删除成功后会输出删除成功;求删除操作后显示删除的元素的值。
③程序所能达到的功能:完成无向带权图的生成(通过建立顶点数组和领结矩阵)、通过选择菜单进行不同操作,查看景点信息、求景点间最短路径、删除景点或路线。
④测试数据:
A.查看景点详细信息操作中输入3
B.查询最短路径操作中输入3,5
C.删除操作中先后输入1(删除景点),2)(删除边)
D.删除景点操作中输入1
E.删除边操作中输入1,5
F.查看一个景点到其他景点所有路线输入1
10、小型英汉词典
问题描述:设计一个英汉词典,支持Member (查找)、Insert (插入)、Delete (删除) 操作。