新版数据结构课程设计任务书1027.docx
《新版数据结构课程设计任务书1027.docx》由会员分享,可在线阅读,更多相关《新版数据结构课程设计任务书1027.docx(17页珍藏版)》请在冰豆网上搜索。
新版数据结构课程设计任务书1027
数据结构课程设计任务书
10级电气信息类专业
信息科学与技术学院
2011年9月
数据结构课程设计任务书
一、课程设计目的
上机实习是对学生的一种全面综合训练,是与课堂听讲、自学和练习相辅相成的必不可少的一个教学环节。
实习题是软件设计的综合训练,包括问题分析、总体结构设计、用户界面设计、程序设计基本技能和技巧以至一整套软件工作规范的训练和科学作风的培养。
希望通过本次课程设计,使学生能够独立地完成从问题分析到文档撰写一整套的软件设计过程,达到学以致用的目的。
二、课程设计内容(任选两题独立完成)
课题一运动会分数统计
任务:
参加运动会有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)客户资料:
有姓名,证件号,订票数量及航班情况,订单要有编号;
6)修改航班信息:
当航班信息改变可以修改航班数据文件。
课题三迷宫问题求解
问题描述:
迷宫问题是取自心理学的一个古典实验。
实验中,把一只老鼠从一个没有顶的大盒子的门放入,在盒中设置了许多墙,对行进的方向形成了多处阻挡。
盒子仅仅有一个出口,在出口处放置了一块奶酪,吸引老鼠在迷宫中寻找道路以到达出口。
重复对老鼠进行上述实验,看老鼠能在多久找到出口。
请设计一个算法实现迷宫问题求解。
课题四哈希表查找的设计
问题描述:
设哈希表长为20,用除留余数法构造一个哈希函数,以开放定址法中的线性探测再散列法作为解决冲突的方法,编程实现哈希表查找、插入和建立算法。
三、课程设计要求
1.问题分析和任务定义。
2.软件设计。
3.编码实现。
4.软件测试。
5.通过程序验收,并要求提交课程设计报告和电子文档(以自己的学号姓名为文件名,建立压缩文件,文件内包括:
两个已编译的课程设计程序、课程设计报告的word文档)。
四、考核与成绩评定
1.课程设计阶段的表现10%
1.课程设计报告(含报告的规范、文字图表的质量等)40%
2.程序上机检查50%
五、注意事项
1.课程设计期间不迟到,不早退,有特殊情况要事先请假,并经有关老师批准方能有效,无故缺席者作旷课处理。
2.课程设计期间应按进度,自觉进行有关内容的预习和复习,按照任务要求,认真设计独立思考,全面完成设计任务。
3.进入机房,应遵守机房规定的各项制度。
六、参考教材
1.严蔚敏等数据结构(C语言版)清华大学出版社
2.严蔚敏等数据结构题集(C语言版)清华大学出版社
3.郑人杰等实用软件工程(第二版)清华大学出版社
4.其他有关C或C++教材或资料
七、课程设计报告样本(参看5-16页)
设计题目
1、航空订票系统
任务:
航空客运定票的业务活动包括:
查询航线、客票预定和办理退票等。
试设计一个航空客运定票系统,以使上述业务可以借助计算机来完成。
功能要求:
1)录入:
可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具
体数据自定);
2)查询:
可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵
达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,
查询飞机航班情况;
3)订票:
(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果
该航班已经无票,可以提供相关可选择航班;
4)退票:
可退票,退票后修改相关数据文件;
5)客户资料:
有姓名,证件号,订票数量及航班情况,订单要有编号;
6)修改航班信息:
当航班信息改变可以修改航班数据文件。
2、猴子选大王
任务:
一堆猴子都有编号,编号是1,2,3...m,这群猴子(m个)按照1-m的顺序围坐一圈,从第1开始数,每数到第N个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王。
功能要求:
1)输入数据:
输入m,nm,n为整数,n2)输出形式:
中文提示按照m个猴子,数n个数的方法,输出为大王的猴子是几号,建立一个函数来实现此功能。
需求分析
1、航空订票系统
本演示程序中,每组航班信息有航班号、起始地、目的地、起飞时间、降落时间、票价、剩余座位数这7个信息。
以及预定功能中的乘客基本信息。
系统通过录入、查询、修改等操作实现订票。
演示程序以用户和计算机的对话方式执行,即在计算机终端上显示“提示信息”之后由用户在键盘上输入演示程序中规定的运算命令;相应的输入数据(无非法字符)和运算结果显示在其后。
数据结构方面,航班信息和订单信息均采用线性存储结构,主要方便数据录入和查找。
功能主要通过航班预定类实现。
在实现航班查询中,系统实现了可针对航班号、起始地和出发地这三个字段同时搜索,提高了系统的查找效率,减少了代码的冗余量。
同时,在细节上,本系统首先实现了批量数据同时录入,便于用户操作,而且还实现了在查询过程中直接订票功能,方便使用者订票,提高了系统的实用性。
2、猴子选大王
(略)
概要设计
1、航空订票系统
typedefstructFlight//航班信息
{
charFlightNumber[6];//航班号
charSPlace[10];//起始地
charDPlace[10];//目的地
charStime[5];//起飞时间
charEtime[5];//降落时间
intprice;//票价
intRemnantSeat;//剩余座位数
}Flight;
typedefstructOrder//订单信息
{
intOrderNumber;//订单编号
charPName[10];//乘客姓名
charID[20];//身份证号
charFlightNumber[6];//航班号
intnum;//订票数量
}Order;
classOrderFlight
{
private:
Flightfl[FN];
Orderol[ON];
intfn,on;
public:
voidInputF()//数据录入函数
voidOutputF()//所有航班信息输出
voidOutput(inti)//单组航班信息显示
voidOutputOrder()//订单输出
voidDeleteOrder()//退订航班
voidSearchF()//航班查询
voidOrderF()//预定航班
voidAmendF()//航班信息修改
}
程序调用关系如下:
(也可以画模块图,例如下图)
主程序模块
输入模块统计模块排序模块查询模块
2、猴子选大王
(略)
详细设计
1、航空订票系统
程序源代码(略),同学自己输入各自的源代码
2、猴子选大王
程序源代码(略),同学自己输入各自的源代码
调试分析
1、航空订票系统
(1)航班信息线性表建立错误问题:
在录入数据过程中,总是出现字符数据不能保存到对应的字符变量中,经过修改定义时,字符数组的长度得以解决。
(2)订单信息之前想用链表结构,这样可以实现动态删除,但由于系统类结构较复杂,未能实现指针值的传递,所以采用线性结构。
虽然在数据空间上会有一定的浪费,但通过利用线性表固有的位置特点,通过变量传递,也很好的实现了订单删除的功能。
(3)在测试阶段,还修正了退订机票后,原航班信息中剩余座位数没有还原的bug。
2、猴子选大王
(略)
用户手册
1、航空订票系统
(1)演示程序的运行环境为WindowsVista系统,MicrosoftVisualStudio6.0中的MicrosoftVisualC++6.0中运行。
执行文件为:
航空订票系统.exe
(2)进入演示程序后即显示DOS形式的界面:
(3)首先录入航班数据,再选择需要的项目,根据输入信息系统会自行的出结果。
(4)航班预定时,需要输入客户资料。
(5)接受其他命令后即执行相应运算和显示相应结果。
2、猴子选大王
(1)演示程序的运行环境为WindowsVista系统,MicrosoftVisualStudio6.0中的MicrosoftVisualC++6.0中运行。
执行文件为:
猴子选大王.exe
(2)进入演示程序后即显示DOS形式的界面:
(3)输入总后子数和数数值。
系统会自动计算,最后选出猴子大王
(4)接受其他命令后即执行相应运算和显示相应结果。
测试结果
1、航空订票系统
(1)航班数据录入
(2)所有航班信息查看
(3)航班查询
(4)航班预定
预定后的航班票数变化,由剩余20张到剩余17张
(5)查看现有订单
(6)退票
退票之后航班票数恢复原来票数从17到20
(7)航班信息修改
2、猴子选大王
(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
课程设计时间安排
指导教师
班级
上机时间
地点
范红
1-3班
第18周周3-4第19周周2-3
1-4节
图文中心
6号机房
谢颖华
4-6班
第18周周3-4第19周周2-3
1-4节
图文中心
5号机房
孙韶媛
7-10班
第19周周2-41-4节
图文中心
2号机房
齐金鹏
11-14班
第19周周2-41-4节
图文中心
3号机房