数据结构与算法 课程设计 写作模板.docx
《数据结构与算法 课程设计 写作模板.docx》由会员分享,可在线阅读,更多相关《数据结构与算法 课程设计 写作模板.docx(19页珍藏版)》请在冰豆网上搜索。
数据结构与算法课程设计写作模板
课程设计报告
课程名称:
数据结构与算法
题目名称:
航空客运订票系统
学生学院:
计算机与信息科学学院
专业班级:
计算机科学与技术2008级1班
小组组长:
邓衣泽
小组成员:
江德兰冉黎郑丹郑伟王刚张莉
陈庭隆罗兆辉张凯夏果陈雅倩
指导老师:
唐万梅职称教授
2010年6月23日
目录(目录希望通过自动生成目录的方式产生)
一、设计目的…………………………………3
二、问题描述3
三、基本要求…3
四、概要设计4
1、算法思路4
2、工作分配4
3、程序模块4
(1)主界面.5
(2)程序模块...5
5、主程序6
六、测试数据16
七、总结
7、1.不足........
8、2.心得体会……
航空客运订票系统
一、设计目的
我们之所以选择做航空订票系统这个课题,主要是因为当今时代的需求。
随着科技与经济的发展,越来越多的人选择乘飞机,这跟我国的经济增长有很大关系,人们在追求快节奏的生活方式,所以做飞机无疑成了首选。
而且随着网络的盛行,航空订票系统就显得尤为重要,我们开发这个系统主要是为了方便大家,让大家能够快速、清晰、准确地了解航班信息,而不至于像以前那样排队等候,从而避免耽搁乘客大量的等待时间。
二、问题描述
航空客运订票的业务活动包括:
查询航线,预订客票,办理退票等。
顾客只要在网上登陆了这个系统并输入相应的航班信息和飞行时间等信息,就可以了解当天的航班信息,方便乘客合理的安排自己的时间。
顾客可以通过这个系统了解到当天将到地点的详细航班信息,包括:
航班号、飞机号以及余票额等相关信息。
三、基本要求
(1)每条航线所涉及带的信息有:
终点站名、航班号、飞机号、飞行日期、余票量
(2)作为示意系统,全部数据可以存放在内存中。
(3)系统能实现的操作功能如下:
①查询航线:
根据旅客提出的终点站名输出下列信息:
航班号、飞机号、星期几飞行、最近一天航班的日期和余票额
②承办订票业务:
根据客户提出的要求(订票数额)、查询该航班的票额情况,若尚有余票,则为客户办理订票手续,输出座位号:
若已满员或余票额少于订票额,则需重新询问客户要求。
③承办退票业务:
根据客户提供的情况(姓名、航班),为客户办理退票手续。
四、概要设计
1、算法思路
数据用数组存储以及结构体等通过设置关键字并用一定的数据结构对其进行一定的数据排序。
输入航班信息,进行存储及按要求的查找。
在这期间,我们需要书写四个基本函数:
即录入函数、查找函数、订票函数及退票函数。
用switch分支实现分条件的选择,并对子函数进行相关的调用。
按要求输出用户所需信息,实现简单而便捷的快速查询。
2、工作分配
(1)框架设计:
由邓衣泽设计,同时辅导组员各自分工,并共同完成此次作业。
(2)系统设计:
由邓衣泽和江德兰负责用vf设计完成航空定票系统的登陆系统。
(3)程序设计:
由陈雅倩总体负责并设计出算法整体框架,然后分别由:
张莉、郑丹、郑伟、陈庭隆、罗兆辉、张凯、夏果一起共同完成和完善并调试出程序结果,使函数得以实现及最综结果。
其中张莉、郑丹写订票函数,郑伟、陈庭隆、罗兆辉完成查询函数,张凯、夏果一起完成订票函数,并最终一起交给陈雅倩调试及完善,得出正确结果。
(4)文档制作,由冉黎和陈雅倩共同完成文档的编辑工作。
3、程序模块
(1)主界面
说明:
其余的图也应按上图形式给出图标题及编号!
图标题以文本框形式插入,然后把图标题和图进行组合。
(2)程序的模块为
录入功能:
原始数据的输入。
查询功能:
根据客户需要,查询相关航线。
订票功能:
满足客户的订票任务。
退票功能:
根据客户的不同情况,支持客户的退票请求。
退出功能:
退出系统。
登陆界面
录入功能a
录入功能b
查询功能
订票功能
退票功能
退出系统
五、主程序
#include
#include
#include
#include
#include
#include//overflow
#defineok1
typedefstructHangxian//创建一个含有六个信息的结构体
{
charhangbanhao[15];//航班号
charfeijihao[15];//飞机号
charfeixingriqi[15];//飞行日期
intzuoweishu;//座位数
intyupiao;//余票
charzhongdianzhan[15];//降落城市
structHangxian*next;
structyidingkehu*yiding;
}hangxian,*linkhangxian;
typedefstructyidingkehu
{
charname[15];
intpiaoshu;
structyidingkehu*next1;
}yidingkehu,*linkyidingkehu;
structHangxian*L=NULL;
linkhangxianinithangxian();//初始化单链表
voidlurugongneng();//录入功能
voidpanduan();//判断是否继续录入
voidchaxungongneng();//查询功能
voiddingpiaogongneng();//订票功能
voidtuipiaogongneng();//退票功能
voidhbhchaxun();//通过航班号查询
voidmddchaxun();//通过目的地查询
linkhangxianinithangxian()
{
L=(linkhangxian)malloc(sizeof(Hangxian));
if(!
L)
exit(OVERFLOW);
L->next=NULL;//建立一个带有头结点的单链表
return(L);
}
intcharuxinxi(linkhangxian&L)//插入信息
{
linkhangxianp;
p=(linkhangxian)malloc(sizeof(hangxian));
{
if(!
p)
return0;
else
{
cout<<"请输入以下信息:
"<cout<<"请输入航班号:
";
cin>>p->hangbanhao;
cout<cout<<"请输入飞机号:
";
cin>>p->feijihao;
cout<cout<<"请输入飞行日期:
";
cin>>p->feixingriqi;
cout<cout<<"请输入座位数:
";
cin>>p->zuoweishu;
cout<cout<<"请输入余票:
";
cin>>p->yupiao;
cout<cout<<"请输入终点站:
";
cin>>p->zhongdianzhan;
cout<p->next=L->next;
L->next=p;
return1;
}
}
}
voidlurugongneng()//*********************************录入功能
{
intn;
cout<<"你选择的是录入功能!
"<cout<do
{
if(!
charuxinxi((linkhangxian)L))
{
cout<<"内存已满!
"<}
cout<<"是否继续输入下一条航向信息?
"<cout<<"是==>请输入:
1"<cout<<"否==>请输入:
2"<cout<<"请输入您的选择:
";
cin>>n;
cout<}while(n==1);
}
voidchaxungongneng()//*******************************查询功能
{
cout<<"你选择的是查询功能!
"<cout<intx;
charm[15];
cout<<"请输入终点站:
";
cin>>m;
linkhangxianp=L;
do
{
p=p->next;
if(p)
{
x=strcmp((*p).zhongdianzhan,m);//如果==的话则m=0;
if(x==0)
{
cout<<"航班信息:
"<cout<cout<<"航班号:
"<hangbanhao<cout<cout<<"飞机号:
"<feijihao<cout<cout<<"飞行日期:
"<feixingriqi<cout<cout<<"余票量:
"<yupiao<cout<}
}
else//如果不匹配的话就做
{
cout<<"对不起没有你要找的目的地!
"<x=0;
}
}while(x!
=0);
}
voiddingpiaogongneng()//*****************************订票功能
{
cout<<"你选择的是订票功能!
"<cout<linkhangxianp;
linkyidingkehuh;
chara[15];
intx;
cout<<"请输入终点站:
";
cin>>a;
p=L->next;
x=strcmp(p->zhongdianzhan,a);
if(x==0)
{
cout<<"航班信息:
"<cout<<"航班号:
"<hangbanhao<cout<<"飞机号:
"<feijihao<cout<<"飞行时间:
"<feixingriqi<cout<<"余票:
"<yupiao<}
else
{
cout<<"无信息!
"<}
if(x==0)
{
cout<<"请输入票数:
"<h=(linkyidingkehu)malloc(sizeof(yidingkehu));
cin>>h->piaoshu;
if(h->piaoshu<=p->yupiao)
{
cout<<"请输入姓名:
"<cin>>h->name;
p->yupiao=p->yupiao-h->piaoshu;
cout<<"订票成功!
"<cout<<"祝您旅途愉快!
"<}
else
{
cout<<"余票不足!
"<cout<<"欢迎下次订票!
"<}
}
}
voidtuipiaogongneng()//******************************退票功能
{
cout<<"你选择的是退票功能!
"<cout<linkyidingkehuh;
linkhangxianp;
chara[15],b[15];
intx=0,y;
h=(linkyidingkehu)malloc(sizeof(yidingkehu));
p=(linkhangxian)malloc(sizeof(hangxian));
cout<<"请输入航班号:
"<cin>>b;
p=L->next;
y=strcmp(p->hangbanhao,b);
{
if(y==0)
{
h=p->yiding;
cout<<"请输入姓名:
"<cin>>a;
cout<<"请输入票数:
"<cin>>x;
{
if(strcmp(h->name,a)==0&&h->piaoshu==x)
{
p->yupiao+=h->piaoshu;
h=h->next1;
cout<<"您退票成功!
"<}
else
{
cout<<"用户名不存在,请查证后再使用!
"<}
}
}
else
{
cout<<"对不起,没有你要查找的航班!
"<}
}
}
voidmain()
{
intn;
inithangxian();
do
{//打印主界面
cout<<"欢迎使用航空客运订票系统"<cout<<"+++++++++++++++++++++++++++++"<cout<<"==>1.录入功能=="<cout<<"==>2.查询功能=="<cout<<"==>3.订票功能=="<cout<<"==>4.退票功能=="<cout<<"==>5.退出=="<cout<<"+++++++++++++++++++++++++++++"<cout<<"请选择:
";
cin>>n;
cout<switch(n)
{
case1:
lurugongneng();//录入功能
break;
case2:
chaxungongneng();//查询功能
break;
case3:
dingpiaogongneng();//订票功能
break;
case4:
tuipiaogongneng();//退票功能
break;
default:
exit(0);//退出
}
cout<}
while(n==1||n==2||n==3||n==4);
}
六、测试数据
七、总结:
1.不足
经过小组同学的努力,我们也终于结束了这次的课程设计,虽然最后的检验已经通过了,但是其中仍显现出许多的不足。
(1)录入系统:
每次输入的数据会覆盖上次输入的数据。
(2)查询系统:
只能查找最近输入的数据,并且相同终点站只能显现一个信息。
(3)订票系统:
当余票不足时没有相应的预定系统。
(4)退票系统:
当客户选择正确航线退票时总是出现exe错误,不能完成最终的退票功能。
2.心得体会
通过这次课程设计,我们从中学会了很多东西,再一次体会到了团队的力量是多么的伟大。
在编写程序的过程中,我们大家都参考了很多相关资料,还有参考书等。
我们小组的合理分工,各个成员翻阅了很多这方面的资料,图书馆成了我们的首要选择。
这其中可能有辛酸也有快乐,但是我们却体验到其中的很多乐趣,毕竟在学校像这种实践性的机会并不多,所以我们还是很珍惜的,尽量把它做到最好,尽可能把自己所学的专业知识用上,尽管最后的系统仍然存在一些问题,但是我们会在接下来的时间里尽量改变不足,努力是这个系统更加完善,发挥更全面的作用。
以上就是我们在这次课程设计的全部内容,谢谢老师和同学们的观看。