数据结构飞机订票课程设计报告Word文件下载.docx
- 文档编号:20092391
- 上传时间:2023-01-16
- 格式:DOCX
- 页数:33
- 大小:228.73KB
数据结构飞机订票课程设计报告Word文件下载.docx
《数据结构飞机订票课程设计报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《数据结构飞机订票课程设计报告Word文件下载.docx(33页珍藏版)》请在冰豆网上搜索。
”,但是随着每一次循环如果找不到信息就得输出一次,这样就会不停地输出那句话。
我想了很久想出来用一个中间变量a来解决,如果名字像匹配就让a=0,不匹配就让a=1,这样就能避免一直的循环,直接在后面判断a的值就能知道判断的结果,然后做出相应的结果,运行的时候终于解决了这个问题。
在其他的几个函数里面我也遭遇到了同样的问题,就是在判断的时候屏幕上一直不停地输出信息,我采取了同样的方法解决了问题。
同样用定义中间变量值的办法。
还有就是存储问题了。
在开始的时候我直接用输出流对象来存储到文件里面,后来打开文件,里面确实有数据,但是在调出数据,也就是在查询客户信息的时候,尽管我输入的是已经存在的客户姓名,但是系统却找不到客户信息。
后来查阅了资料才知道,我存储的时候数据间没有间隔,在读取的时候就不能分别数据了,应该在存储的时候在每个数据间加入一个空格符号,来分开每一个数据。
这样终于搞定了,系统能正常识别数据了。
四.运行结果
1、首先进入系统提示是否是第一次进入,如果是第一次就进行初始化。
否则直接进入主菜单:
第一次进入,初始化!
并且进入主菜单:
2、进行第一个功能选项:
订票业务:
3、下面为第二个功能选项:
查询航班信息
输入航班号或者出发到达地,就会自动输出航班的相关信息。
也可以查询所有航班,并输出相关乘客信息。
4、第三个功能选项,修改航班信息:
包括航班的所有信息。
可以根据航班号以及航班航线进行查找并修改。
5、第四项功能:
订票业务
可以根据航班号以及航班航线进行订票,如果无直达航班,则提供中转航班进行性订票。
5、第五项功能:
退票业务
输入客户证件号及航班号进行退票。
6、退出系统
六.心得体会
本次程序设计所用时间较长,工作量很饱满,而且所用的知识很多,但是我们平常在课堂上所学的知识很有限,这就需要我大量的自学书本和课外的其他书籍上的知识。
为了让程序容易使人看懂,我用到的知识点不是非常多,大都是一些基本知识,我能熟练地运用这些知识编程也算一个很大的成功了。
C++设计实践是对之前学过的知识的加深和巩固,之前学得较浅,实践的机会不多,这次实践让我对C++程序有了更加深入的了解,心理也由原来的不喜欢到喜欢,感觉很有意思也很有用,可也设计一些有用的或者是自己喜欢的程序。
最令我收益的是写程序的过程和调试修改的过程,因为之前我们就学了几章,没有把知识学习全面,因此编写起来是有难度的,在预先想好程序结构后,就开是卡看书,一个函数一个函数来编写,不懂的地方就上网搜或是请教一下同学,当终于把程序写出来的时候,内心里又有一种说不出来的激动,我感觉这很符合大学的教育观念,是对个人自主学习能力的一个锻炼。
在接下来就是调试,虽然出了很多的错误,虽然自己也被搞的焦头烂额,但我还是很兴奋,一点点找线索,找到问题,再解决。
现在程序终于能较好的运行出来了,当然,还存在一些瑕疵,但通过这个暑假的实践学习,我收获的不仅仅是这一个程序,我的自学能力,以及寻找问题解决问题的能力也得到了很好的锻炼。
源代码:
#include<
iostream>
#include<
string>
fstream>
usingnamespacestd;
structflight
{
intnum;
charplace1[10];
charplace[10];
charplace2[10];
chartime1[20];
chartime[20];
chartime2[20];
intprice1;
intprice2;
intprice;
chardiscount[10];
intdticket;
intyticket;
}fl[20]={{101,"
南京"
"
武汉"
北京"
09-01-13:
00"
09-01-16:
09-01-18:
2700,3000,5600,"
50%"
1,99},
{102,"
新疆"
哈尔滨"
上海"
09-01-09:
09-01-15:
09-01-21:
4000,4500,7800,"
70%"
{103,"
杭州"
海南"
广州"
09-01-12:
09-01-14:
2100,2000,3400,"
20%"
1,99}};
structcustomer
charname[10];
charid[20];
intticket;
//订票数量
intseat;
//座位号
}cu[300]={{"
张三"
101,"
321002"
5600,1,1},{"
李四"
102,"
225006"
7800,1,1},{"
王五"
103,"
210023"
3400,1,1}};
//定义结构体
structticketnum
intyticket1;
intyticket2;
}ti[20]={{"
"
99,99},{"
99,99}};
intcnum=3;
//定义客户编号
intfnum=3;
//定义飞机编号
voidlist();
voidinput();
voiddingpiao();
voidtuipiao();
voidsearch();
voidchange();
voidmenu();
//函数声明
voidchushi();
voidmain()
intx;
cout<
<
"
第一次使用请按1进行初始化,按任意数字继续:
;
cin>
>
x;
if(x==1)
chushi();
else
menu();
}//主函数
voidmenu()
inti;
*************航空订票系统*************"
endl;
*** ***"
***1.录入业务2.查询航班信息***"
***3.修改航班信息4.订票业务***"
***5.退票业务6.退出系统***"
******"
********************************************************"
ifstreaminfile1("
airline.dat"
);
ifstreaminfile2("
customer.dat"
for(i=0;
i<
20;
i++)
{
infile1>
fl[i].num>
fl[i].place1>
fl[i].place>
fl[i].place2>
fl[i].time1>
fl[i].time>
fl[i].time2>
fl[i].price1>
fl[i].price2>
fl[i].price>
fl[i].discount>
fl[i].dticket>
fl[i].yticket>
ti[i].yticket1>
ti[i].yticket2;
}
300;
infile2>
cu[i].name>
cu[i].num>
cu[i].id>
cu[i].price>
cu[i].ticket>
cu[i].seat>
cnum;
}
infile1.close();
infile2.close();
//读取数据
请输入业务代码:
list();
}
voidchushi()
inti,j;
ofstreamoutfile("
ofstreamfile("
//outfile<
航班号起点站终点站起飞时间到达时间票价折扣已订票数剩余票数"
//file<
顾客姓名航班号证件号订票数量座位号订单号"
for(i=0;
3;
i++)
{
j=i+1;
outfile<
fl[i].num<
fl[i].place1<
fl[i].place<
fl[i].place2<
<
fl[i].time1<
fl[i].time<
fl[i].time2<
fl[i].price1<
fl[i].price2<
fl[i].price<
fl[i].discount<
fl[i].dticket<
fl[i].yticket<
ti[i].yticket1<
ti[i].yticket2<
file<
cu[i].name<
cu[i].num<
cu[i].id<
cu[i].price<
cu[i].ticket<
cu[i].seat<
j<
outfile.close();
file.close();
初始化已完毕!
endl<
}//存储数据
voidlist()
inta;
a;
while(a<
1||a>
6)
cout<
输入错误,请重新输入:
cin>
switch(a)
case1:
input();
break;
case2:
search();
case3:
change();
case4:
dingpiao();
case5:
tuipiao();
case6:
exit
(1);
default:
{
cout<
输入错误,请重新输入正确的代码:
list();
}//输入代码
voidinput()/////////////////////////////////////////////////////////////////////录入
{
ios:
:
app);
inty,i;
一共要录入的航班数:
y;
请依次输入航班信息:
**********************************************************************"
请输入航班号:
fl[i+fnum].num;
请输入起始站:
fl[i+fnum].place1;
请输入中转站:
fl[i+fnum].place;
请输入终点站:
fl[i+fnum].place2;
请输入起飞时间:
fl[i+fnum].time1;
请输入中转时间:
fl[i+fnum].time;
请输入降落时间:
fl[i+fnum].time2;
请输入票价1:
fl[i+fnum].price1;
请输入票价2:
fl[i+fnum].price2;
请输入总票价:
fl[i+fnum].price;
请输入票价折扣:
fl[i+fnum].discount;
请输入已经订购机票:
fl[i+fnum].dticket;
请输入剩余机票数:
fl[i+fnum].yticket;
ti[i+fnum].yticket1=fl[i+fnum].yticket;
ti[i+fnum].yticket2=fl[i+fnum].yticket;
fl[i+fnum].num<
fl[i+fnum].place1<
fl[i+fnum].place<
fl[i+fnum].place2<
fl[i+fnum].time1<
fl[i+fnum].time<
fl[i+fnum].time2<
fl[i+fnum].price1<
fl[i+fnum].price2<
fl[i+fnum].price<
fl[i+fnum].discount<
fl[i+fnum].dticket<
fl[i+fnum].yticket<
ti[i+fnum].yticket1<
ti[i+fnum].yticket2<
fnum=fnum+1;
}////////////////////////////////////////////////////////////////////////////////录入
voiddingpiao()//////////////////////////////////////////////////////////////////订票
intnum,i,j,t,k,temp,cho;
intx,y;
请输入你的姓名,证件号和订票方式:
姓名:
name;
证件号:
id;
1.航班号:
2.起点终点:
cho;
switch(cho)
输入航班号:
num;
for(i=0;
if((strcmp(id,cu[i].id)==0)&
&
num==cu[i].num)
您已经定过该航班,要返回主菜单吗?
输入1返回"
cin>
t;
if(t==1)
menu();
}
if(id!
=cu[i].id)
for(j=0;
fnum;
j++)
if(fl[j].num==num)
temp=j;
if(fl[temp].yticket>
0)//判断有没有余票
{
cout<
此航班还有余票,要订票吗?
输入1订票,其他数字退出"
cin>
switch(x)
{
case1:
{
cout<
该航班订几张票?
cin>
for(k=0;
k<
k++)
if(fl[k].num==num)
{
cnum=cnum+1;
strcpy(cu[cnum].name,name);
cu[cnum].num=num;
cu[cnum].price=fl[k].price;
cu[cnum].ticket=y;
cu[cnum].seat=fl[k].dticket+1;
strcpy(cu[cnum].id,id);
fl[k].dticket=fl[k].dticket+y;
fl[k].yticket=fl[k].yticket-y;
ofstreamoutfile1("
for(j=0;
j++)
outfile1<
fl[j].num<
fl[j].place1<
fl[j].place<
fl[j].place2<
fl[j].time1<
fl[j].time<
fl[j].time2<
fl[j].price1<
fl[j].price2<
fl[j].price<
fl[j].discount<
fl[j].dticket<
fl[k].yticket<
ti[k].yticket1<
ti[k].yticket2<
ofstreamoutfile2("
outfile2<
cu[cnum].name<
cu[cnum].num<
cu[cnum].id<
cu[cnum].price<
cu[cnum].ticket<
cu[cnum].seat<
cnum<
//打开文件并存储数据
cout<
订票成功!
endl
<
客户信息:
'
\t'
航班号:
\t"
票价:
订票数量:
座位号:
订单号:
outfile1.close();
outfile2.close();
1.返回主菜单2.退出:
cin>
temp;
menu();
}
};
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 飞机 订票 课程设计 报告