航空订票管理系统程序设计实验报告汇编Word格式文档下载.docx
《航空订票管理系统程序设计实验报告汇编Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《航空订票管理系统程序设计实验报告汇编Word格式文档下载.docx(17页珍藏版)》请在冰豆网上搜索。
stringa2;
//起飞时间
stringa3;
//降落时间
chara4[10];
//起飞城市
chara5[10];
//降落城市
inta6;
//价格
inta7;
//票价折扣
inta8;
//余票
}fl[10];
structcustomer//客户信息
charname[10];
//定义字符型数组姓名name[10]
intseat;
//定义整型变量座位号seat
intnum;
//定义整型变量航班号num
charno[18];
//证件号no
intps;
//订票数ps
stringqfs;
//起飞时间qfs
stringjls;
//降落时间jls
charqfd[10];
//起飞城市qfd
charjld[10];
//降落城市jld
intpj;
//票价pj
}cu[200];
使用的函数:
voidluru();
//声明录入函数
voidchaxun();
//声明查询函数
voidchaxun1();
//声明查询方式1函数
voidchaxun2();
//声明按查询方式2函数
voiddingpiao();
//声明订票函数
voidtuipiao();
//声明退票函数
voidxiugai();
//声明修改函数
voidmenu();
//声明主菜单函数
voidduqu();
//声明文件读取函数
voidtuichu();
//声明退出并保存函数
通过各个函数的调用以实现航班信息录入,航班信息查询,订票,退票,修改航班信息。
1.系统结构图(功能模块图)
2.功能模块说明:
(1).将航班的基本信息录入到系统中。
(2).根据航班号或者根据起飞地点、降落地点查询所需航班信息。
(3).输入姓名和所要订的航班的航班号订票。
(4).输入姓名和所订的航班的航班号办理退票。
(5).输入航班号修改该航班的起飞和降落时间以修改航班的起降时间。
(6).退出的同时将信息写入文件。
#include<
iostream>
string>
fstream>
usingnamespacestd;
intcnum=3;
intlen=0;
intA=0;
voidshanchu();
//生命删除函数
voidluru()//航班信息录入
{
cout<
<
"
请输入航班信息:
endl;
请输入航班号"
cin>
>
fl[len].a1;
//录入航班号
起飞时间"
fl[len].a2;
//录入起飞时间
降落时间"
fl[len].a3;
//录入降落时间
起飞城市"
fl[len].a4;
//录入起飞城市
降落城市"
fl[len].a5;
//录入降落城市
票价"
fl[len].a6;
//录入票价
折扣"
fl[len].a7;
//录入机票折扣
剩余票量"
fl[len].a8;
//录入剩余票量
len++;
请选择所要进行的操作"
menu();
//录入完成跳转回菜单选择操作
}
voidchaxun()//查询
{system("
cls"
);
请选择查询方式"
1.按航班号查询"
2.按城市查询"
intt;
t;
//选择查询方式
switch(t)
{
case1:
chaxun1();
break;
case2:
chaxun2();
default:
cout<
输入的数据有误,请重新输入!
menu();
//输入错误返回主菜单重新输入
}
voidchaxun1()//按航班号查询航班信息
intn;
请输入要查询的航班号:
n;
for(intj=0;
j<
len;
j++)
if(fl[j].a1==n)
{
cout<
***航班信息****"
endl<
航班号:
fl[j].a1<
'
\t'
起飞时间:
fl[j].a2<
降落时间:
fl[j].a3<
起飞城市:
fl[j].a4<
降落城市:
fl[j].a5<
票价:
fl[j].a6<
折扣:
fl[j].a7<
剩余票量:
fl[j].a8<
break;
}//输出航班信息
else
没有对应的航班!
getchar();
voidchaxun2()//按起飞城市和降落城市查询航班信息
charm1[10],m2[10];
intj;
请输入要查询的起始、降落城市:
m1>
m2;
//输入起始城市和降落城市
for(j=0;
if((strcmp(fl[j].a4,m1)==0)&
&
(strcmp(fl[j].a5,m2)==0))
{cout<
break;
}//输出航班信息
if(j==10)
{cout<
voiddingpiao()//订票
charName[10];
intfn;
intsign=0;
请输入你的姓名和想订的航班号:
Name;
//输入乘客姓名
fn;
//输入乘客所要订的航班号
for(inti=0;
i<
i++)
{if(fl[i].a1==fn)
if(fl[i].a8>
0)
{strcpy(cu[A].name,Name);
cu[A].num=fn;
cu[A].seat=fl[i].a8;
A++;
fl[i].a8--;
sign=1;
订票成功!
if(sign)break;
if(i==len)cout<
航班号错误!
voidtuipiao()//退票
intfn;
请输入你的姓名:
;
cin>
请输入航班号:
//输入乘客所订的航班的航班号
{if(fn==fl[i].a1)
for(intj=0;
A;
if(strcmp(Name,cu[j].name)==0)
{cout<
退票成功!
fl[i].a8++;
if(sign)break;
if(i==len)cout<
输入信息有误!
退票失败"
}
voidxiugai()//修改航班信息
输入航班号:
num;
if(fl[i].a1==num){num=i;
起飞时间:
fl[num].a2;
达到时间:
fl[num].a3;
voidshanchu()//删除航班信息
for(inti=0;
if(fl[i].a1==num)
{num=i;
break;
voidtuichu()//退出时保存录入和更改信息
ofstreamnfile2("
cus.dat"
ios_base:
:
binary);
//输出方式打开文件
nfile2.close();
//关闭文件
ofstreaminfile2("
binary|ios_base:
app);
//输入方式打开文件
i++)
{infile2.write((reinterpret_cast<
char*>
(&
cu[i])),sizeof(customer));
写入成功!
}//将乘客信息写入文件
infile2.close();
ofstreamnfile1("
airline.dat"
//输出方式打开文件
nfile1.close();
ofstreaminfile1("
for(i=0;
infile1.write((reinterpret_cast<
fl[i])),sizeof(flight));
//将航班信息写入文件
infile1.close();
voidduqu()//读取文件信息
ifstreaminfile1("
while(infile1.peek()!
=EOF)
{
infile1.read((reinterpret_cast<
fl[len])),sizeof(flight));
//输入方式读取文件
fl[len].a1<
fl[len].a2<
fl[len].a3<
fl[len].a4<
fl[len].a5<
fl[len].a6<
fl[len].a7<
fl[len].a8<
infile1.close();
//关闭文件
ifstreaminfile2("
while(infile2.peek()!
{infile2.read((reinterpret_cast<
cu[A++])),sizeof(customer));
}//输入方式读取文件
getchar();
system("
voidmenu()
*******************航班订票系统*********************"
1.录入航班信息"
2.查询航班信息"
3.订票"
4.退票"
5.修改航班信息"
6.删除航班信息"
7.退出系统"
****************************************************"
//菜单界面
inti;
输入选项:
i;
//选择菜单
switch(i)
luru();
chaxun();
case3:
dingpiao();
menu();
case4:
tuipiao();
case5:
xiugai();
case6:
tuichu();
exit
(1);
//退出
输入的选项不合法,请重新输入"
system("
//清屏
voidmain()
cout<
读取"
duqu();
//跳转至读取航班信息文件
//菜单
1.运行程序:
因为之前没有进行航班信息的录入,起始读取信息为空
按任意键进入菜单
2..录入航班信息:
键入1,录入航班信息,输入完成后跳出菜单选择后续操作
3.查询航班信息:
键入1,按航班号查询,并显示菜单以便继续操作:
键入2,按起飞城市及降落城市查询
4.主菜单键入3,办理订票业务:
查询该航班剩余票量是否改变:
5.主菜单键入4,办理退票业务:
查询航班信息是否修改完成:
6.主菜单键入7,结束并退出操作并把航班和乘客信息写入文件中:
五、课程总结
1、知识点:
此次系统的设计包含了很多的知识点,涉及到C++简单的输入输出控制、运算符和表达式、选择控制(if)、循环控制(while)、字符数组(charp[])、字符串的比较(strcmp(m,p)==0)、数据库(#include<
iostream.h>
、#include<
string.h>
)、函数的定义(voidluru()、voidchaxun()、voidchaxun1();
)等知识点。
2、调试过程中遇到的主要问题及解决办法:
设计初期,先完成初步构思,写出主函数。
然后对主函数所涉及的各个模块进行编程,将各个模块利用指针和链表联系起来。
在环境中进行调试,应一边编译,一边调试,并且要一个模块一个模块的调试。
直至此模块完全没有错误时,在进入下一模块的调试。
不能直接输入全部的代码一次性调,这样错误会很多,并且不易找出和修改。
在完成程序的编译链接后,要用多组数据进行审查,确保做到系统无误。
设计过程中,不应忽视环境提示的警告,有时程序运行不正确与警告也有很大的关系。
这次设计中遇到很多问题都是提示类型不匹配,这时就要认真检查前面的代码,及时改正并且认真仔细,杜绝此类错再次发生。
编写代码时应该少用全局变量,全局变量在编写试看似定义次数少,很方便。
但全局变量出错几率较大,且不易修改,每次修改时都要全面考虑,所以应避免用到。
程序调试中碰到的错误可以使自己学到知识。
养成良好的编程习惯,可以节省很多时间,避免很多不必要的错误。
主要错误有冒号、分号等符号打错了;
大小写等造成的对应问题;
.变量的不完全修改。
改完以后在执行时我发现界面不好看于是我又将主界面略加修改了些。
看上去美观了不少。
心得:
主动上机多多实践提高动手才能实习时不能着急。
通过上机实践来验证所学的理论通过在机器上查找错误来巩固概念,通过提高上机才能来促进理论学习,开阔编程思路提高。
少反映效率提高分析问题解决问题的才能锻炼心理素质提高心理承受才能。
在本门课程实践过程中我更好的领悟了自学的重要性,并且和同学加强了交流以便我们互相及时答疑解惑。
同时我也学会了采用多种形式进行交流,不仅只是传统的面对面进行相互答疑,同时也利用网络通过XX知道、XX文库、邮件、BBS进行网上交流,也学会了绝对不要将问题积累到最后。
同时在本次实践中我还开阔了眼界打开了思路阅读了几本关于C++编程的教程从而通过理解不同作者对于C++的不同看法来提高我对C++的理解以方便自己在未来对C++的进一步学习。
通过此次C++程序设计,我不但学会了用MicrosoftVisualC++6.0这个软件,对C++的程序编写也有一定的了解,能通过C的语言编写实现一定功能的程序,比如此次的航空订票系统菜单、一元二次方程的求解、石头剪子布小游戏等等,为以后的软件编程方面打下了坚实的基础。
这是一个发现问题和解决问题的过程,从困惑到明朗,从苦恼道兴奋。
我一步步地走过来,发现编程真是一个奇妙刺激的旅程。
特别是当我把一个自己认为毫无可能的事情完成自后,那种感觉简直不能用言语来表达。
感谢这次课程设计给我带来的全新体验和丰富经验。
我会把它换成我以后奋斗的源泉。