东华大学数据结构课程设计任务书.docx
《东华大学数据结构课程设计任务书.docx》由会员分享,可在线阅读,更多相关《东华大学数据结构课程设计任务书.docx(10页珍藏版)》请在冰点文库上搜索。
东华大学数据结构课程设计任务书
数据结构课程设计任务书
15级电气信息类专业
信息科学与技术学院
2016年4月
数据结构课程设计任务书
一、课程设计目的
上机实习是对学生的一种全面综合训练,是与课堂听讲、自学和练习相辅相成的必不可少的一个教学环节。
实习题是软件设计的综合训练,包括问题分析、总体结构设计、用户界面设计、程序设计基本技能和技巧以至一整套软件工作规范的训练和科学作风的培养。
希望通过本次课程设计,使学生能够独立地完成从问题分析到文档撰写一整套的软件设计过程,达到学以致用的目的。
二、课程设计内容(任选两题独立完成)
课题一运动会分数统计
任务:
参加运动会有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)可以按学校编号查询学校某个项目的情况;
5)可以按项目编号查询取得前三或前五名的学校。
测试数据:
学校数据
校名
东华大学
上海交大
复旦大学
同济大学
华东师范大学
编号
1
2
3
4
5
项目数据
项目编号
项目名称
1
男子100米
2
男子200米
3
男子400米
4
男子跳高
5
男子跳远
6
女子跳高
7
女子跳远
8
女子铅球
9
女子100米
10
女子400米
课题二航空订票系统
任务:
航空客运定票的业务活动包括:
查询航线、客票预定和办理退票等。
试设计一个航空客运定票系统,以使上述业务可以借助计算机来完成。
功能要求:
1)录入:
可以录入航班情况
2)查询:
可以查询某个航线的情况(如输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况;
3)订票:
(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果
该航班已经无票,可以提供相关可选择航班;
4)退票:
可退票,退票后修改相关数据文件;
5)客户资料:
有姓名,证件号,订票数量及航班情况,订单要有编号;
6)修改航班信息:
当航班信息改变可以修改航班数据文件。
测试数据
航班数据
航班号
出发
城市
到达
城市
起飞
时间
到达
时间
价格
折扣率(%)
总票数
剩余
票数
MU5103
上海虹桥
北京
7:
00
9:
20
1063
94
20
2
CA1590
上海虹桥
北京
8:
55
11:
15
864
75
20
0
FM9307
上海虹桥
广州
10:
30
12:
50
608
48
20
5
HO1241
上海浦东
青岛
19:
50
21:
20
418
56
20
11
3U8964
上海浦东
成都
15:
45
19:
05
922
57
20
1
客户数据
姓名
证件号
订票数
航班号
张三丰
31000012
1
3U8964
张翠山
31000025
1
FM9307
张无忌
31000033
1
MU5103
课题三校园十大优秀青年评比
问题描述:
新一届校园十大优秀青年评比开始了!
每一位在校学生可通过网上评比系统,为自己认为优秀的学生提名与投票。
请开发一个可用于该需求的系统,满足下列基本功能。
(1)提名优秀学生和投票。
(2)查看提名学生的基本信息。
(3)显示各提名学生的票数。
(4)显示排行榜。
功能要求:
(1)采用哈希存储,存放提名学生的相关信息。
(2)设计哈希函数和冲突解决方法。
(3)提名学生至少包括以下信息:
姓名、票数、个人基本信息(如班级、专业、年级、突出事迹等。
)
(4)设计输入提名学生信息的界面。
(5)完成图示基本功能。
(6)界面友好,操作简单。
(7)设计足够多的测试用例。
(8)查看指定学生的票数。
(9)不接收非法数据。
实现要点提示:
(1)投票就是在哈希表中查找提名学生的过程。
若找到,则为该学生添加一票;若没找到,则将该青年插入到哈希表中。
(2)哈希函数可根据姓名拼音的ASCII码来设计,例:
H(Key)=Key%HashLength,其中Key为姓名所有拼音的ASCII码值的累加和,HashLength为表长。
如此,需要存储提名学生姓名的拼音。
(3)为显示排序榜,可采用二叉排序树。
根据哈希存储的数据,建立按票数的二叉排序树。
然后求其中序序列,前10位即为上榜者。
课题四迷宫问题求解
问题描述:
迷宫问题是取自心理学的一个古典实验。
实验中,把一只老鼠从一个没有顶的大盒子的门放入,在盒中设置了许多墙,对行进的方向形成了多处阻挡。
盒子仅仅有一个出口,在出口处放置了一块奶酪,吸引老鼠在迷宫中寻找道路以到达出口。
重复对老鼠进行上述实验,看老鼠能在多久找到出口。
请设计一个算法实现迷宫问题求解。
测试数据:
0表示可以行走的区域,1表示不可行走的区域。
入口
1
0
0
0
1
0
1
1
0
1
0
1
1
0
1
1
0
1
1
0
0
1
0
1
1
1
1
0
出口
三、课程设计要求
1.问题分析和任务定义。
2.软件设计。
3.编码实现。
4.软件测试。
5.通过程序验收,并提交课程设计报告。
四、考核与成绩评定
1.课程设计报告(含报告的规范、文字图表的质量等)40%
2.程序上机检查30%
3.答辩,对程序的理解和解题过程进行阐述,并回答问题30%
五、注意事项
1.课程设计期间应按进度,自觉进行有关内容的预习和复习,按照任务要求,认真设计独立思考,全面完成设计任务。
2.进入机房,应遵守机房规定的各项制度。
六、参考教材
1.严蔚敏等数据结构(C语言版)清华大学出版社
2.严蔚敏等数据结构题集(C语言版)清华大学出版社
3.郑人杰等实用软件工程(第二版)清华大学出版社
4.其他有关C或C++教材或资料
七、课程设计报告样本(参看7-10页)
设计题目
猴子选大王
任务:
一堆猴子都有编号,编号是1,2,3...m,这群猴子(m个)按照1-m的顺序围坐一圈,从第1开始数,每数到第N个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王。
功能要求:
1)输入数据:
输入m,nm,n为整数,n2)输出形式:
中文提示按照m个猴子,数n个数的方法,输出为大王的猴子是几号,建立一个函数来实现此功能。
需求分析
本演示程序中,由用户定义总人数、每个人的密码,然后程序会自动生成出队的序列。
概要设计
typedefstructNode
{
intkey;//每个人持有的密码
intnum;//这个人的编号
structNode*next;//指向下一个节点
}Node,*Link;
voidInitList(Link&L)//创建一个空的链表
voidCreater(intn,Link&L)//初始化链表
程序调用关系如下:
主程序模块
创建链表模块读取链表结点模块输出模块
详细设计
程序源代码(略),同学自己输入各自的源代码
调试分析
a.在做单循环链表时,开始创建了一个头结点,后来发现头结点没有用到,现在通过调试,解决了这个问题。
b.调试后程序会自动判断输入的数字的有效性。
用户手册
(1)演示程序的运行环境为WindowsVista系统,MicrosoftVisualStudio6.0中的MicrosoftVisualC++6.0中运行。
执行文件为:
猴子选大王.exe
(2)进入演示程序后即显示DOS形式的界面:
(3)输入总后子数和数数值。
系统会自动计算,最后选出猴子大王
(4)接受其他命令后即执行相应运算和显示相应结果。
测试结果(截图)
(1)m=130,n=7
(2)m=12,n=1
(3)m=-5,n=-7
(3)m=0,n=0
(4)m=10,n=11