《航空订票系统C++数据结构课程设计报告.docx》由会员分享,可在线阅读,更多相关《航空订票系统C++数据结构课程设计报告.docx(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、一 需求分析: 通过此系统可以实现如下功能:1. 航班信息录入每个航班信息包括航班号、起飞时间、降落时间、起飞地点、将落地点、票价、折扣、剩余票量。通过剩余票量可以确定该航班是否已满。2. 航班信息查询通过航班号或者起飞地点、降落地点查询所需要的航班信息。3. 订票输入姓名和所要订的航班的航班号订票。4. 退票输入姓名和所订的航班的航班号办理退票。5. 修改航班信息输入航班号修改该航班的起飞和降落时间以修改航班的起降时间。6. 退出退出的同时将信息写入文件。二 总体设计:结构体:struct flight /航班信息int a1; /航班号 string a2; /起飞时间 string a3
2、; /降落时间char a410; /起飞城市char a510; /降落城市int a6; /价格 int a7; /票价折扣 int a8; /余票fl10;struct customer /客户信息char name10; /定义字符型数组姓名name10 int seat; /定义整型变量座位号seat int num; /定义整型变量航班号numchar no18; /证件号noint ps; /订票数psstring qfs; /起飞时间qfsstring jls; /降落时间jlschar qfd10; /起飞城市qfdchar jld10; /降落城市jldint pj; /票
3、价pjcu200;使用的函数:void luru(); /声明录入函数void chaxun(); /声明查询函数void chaxun1(); /声明查询方式1函数void chaxun2(); /声明按查询方式2函数void dingpiao(); /声明订票函数void tuipiao(); /声明退票函数void xiugai(); /声明修改函数void menu(); /声明主菜单函数void duqu(); /声明文件读取函数void tuichu(); /声明退出并保存函数通过各个函数的调用以实现航班信息录入,航班信息查询,订票,退票,修改航班信息。三 详细设计:1. 系统结构
4、图(功能模块图)主函数航班信息修改退出系统航班退票航班订票航班信息查询航班信息录入2. 功能模块说明:(1). 将航班的基本信息录入到系统中。(2). 根据航班号或者根据起飞地点、降落地点查询所需航班信息。(3). 输入姓名和所要订的航班的航班号订票。(4). 输入姓名和所订的航班的航班号办理退票。(5). 输入航班号修改该航班的起飞和降落时间以修改航班的起降时间。(6). 退出的同时将信息写入文件。四 代码:#include#include#includeusing namespace std;struct flight /航班信息int a1; /航班号 string a2; /起飞时间
5、string a3; /降落时间char a410; /起飞城市char a510; /降落城市int a6; /价格 int a7; /票价折扣 int a8; /余票fl10;struct customer /客户信息char name10; /定义字符型数组姓名name10 int seat; /定义整型变量座位号seat int num; /定义整型变量航班号numchar no18; /证件号noint ps; /订票数psstring qfs; /起飞时间qfsstring jls; /降落时间jlschar qfd10; /起飞城市qfdchar jld10; /降落城市jldi
6、nt pj; /票价pjcu200;int cnum=3;int len=0;int A=0;void luru(); /声明录入函数void chaxun(); /声明查询函数void chaxun1(); /声明查询方式1函数void chaxun2(); /声明按查询方式2函数void dingpiao(); /声明订票函数void tuipiao(); /声明退票函数void xiugai(); /声明修改函数void menu(); /声明主菜单函数void duqu(); /声明文件读取函数void tuichu(); /声明退出并保存函数void luru() /航班信息录入 c
7、out请输入航班信息:endl;cout请输入航班号fllen.a1; /录入航班号 cout起飞时间fllen.a2; /录入起飞时间cout降落时间fllen.a3; /录入降落时间cout起飞城市fllen.a4; /录入起飞城市cout降落城市fllen.a5; /录入降落城市cout票价fllen.a6; /录入票价cout折扣fllen.a7; /录入机票折扣cout剩余票量fllen.a8; /录入剩余票量len+; cout请选择所要进行的操作endl; menu(); /录入完成跳转回菜单选择操作void chaxun() /查询system(cls);cout请选择查询方式
8、endl;cout1.按航班号查询endl;cout2.按城市查询t; /选择查询方式switch(t)case 1:chaxun1();break;case 2:chaxun2();break;default:cout输入的数据有误,请重新输入!endl;menu(); /输入错误返回主菜单重新输入break;void chaxun1() /按航班号查询航班信息 int n;cout请输入要查询的航班号:n;for(int j=0;jlen;j+)if(flj.a1=n)cout*航班信息*endl航班号:flj.a1t起飞时间:flj.a2t降落时间:flj.a3t起飞城市:flj.a4t
9、降落城市:flj.a5t票价:flj.a6t折扣:flj.a7t剩余票量:flj.a8endl;break; /输出航班信息elsecout没有对应的航班!endl;getchar();menu();void chaxun2() /按起飞城市和降落城市查询航班信息char m110,m210;int j;cout请输入要查询的起始、降落城市:m1m2; /输入起始城市和降落城市for(j=0;jlen;j+)if(strcmp(flj.a4,m1)=0)&(strcmp(flj.a5,m2)=0)cout*航班信息*endl航班号:flj.a1t起飞时间:flj.a2t降落时间:flj.a3t
10、起飞城市:flj.a4t降落城市:flj.a5t票价:flj.a6t折扣:flj.a7t剩余票量:flj.a8endl;break;/输出航班信息 if(j=10) cout没有对应的航班!endl;menu();void dingpiao() /订票 char Name10; int fn;int sign=0; cout请输入你的姓名和想订的航班号:Name; /输入乘客姓名 cinfn; /输入乘客所要订的航班号for(int i=0;i0) strcpy(cuA.name,Name);cuA.num=fn;cuA.seat=fli.a8;A+;fli.a8-;sign=1;cout订票
11、成功!endl;break;if(sign) break;if(i=len)cout航班号错误!endl;void tuipiao() /退票system(cls);char Name10;int fn;int sign=0; coutName; /输入乘客姓名 coutfn;coutendl; /输入乘客所订的航班的航班号 for(int i=0;ilen;i+)if(fn=fli.a1)for(int j=0;jA;j+)if(strcmp(Name,cuj.name)=0)cout 退票成功!endl;fli.a8+;sign=1;break;if(sign)break;if(i=len
12、) cout输入信息有误!退票失败endl; void xiugai() /修改航班信息cout输入航班号:num;for(int i=0;ilen;i+)if(fli.a1=num)num=i; coutflnum.a2;coutflnum.a3;coutendl;break; if(i=len)cout航班号错误!endl;void tuichu() /退出时保存录入和更改信息 ofstream nfile2(cus.dat,ios_base:binary); /输出方式打开文件 nfile2.close(); /关闭文件ofstream infile2(cus.dat,ios_base:
13、binary|ios_base:app); /输入方式打开文件 for(int i=0;iA;i+)infile2.write(reinterpret_cast(&cui),sizeof(customer);cout写入成功!endl;/将乘客信息写入文件infile2.close(); /关闭文件ofstream nfile1(airline.dat,ios_base:binary); /输出方式打开文件nfile1.close(); /关闭文件 ofstream infile1(airline.dat,ios_base:binary|ios_base:app); /输出方式打开文件for(
14、 i=0;ilen;i+) infile1.write(reinterpret_cast(&fli),sizeof(flight);/将航班信息写入文件infile1.close(); /关闭文件void duqu() /读取文件信息 ifstream infile1(airline.dat,ios_base:binary); while(infile1.peek()!=EOF)infile1.read(reinterpret_cast(&fllen),sizeof(flight);/输入方式读取文件cout*航班信息*endl航班号:fllen.a1t起飞时间:fllen.a2t降落时间:f
15、llen.a3t起飞城市:fllen.a4t降落城市:fllen.a5t票价:fllen.a6t折扣:fllen.a7t剩余票量:fllen.a8endl;len+; infile1.close();/关闭文件ifstream infile2(cus.dat,ios_base:binary); while(infile2.peek()!=EOF)infile2.read(reinterpret_cast(&cuA+),sizeof(customer); /输入方式读取文件infile2.close(); /关闭文件getchar();system(cls);void menu()cout*航班
16、订票系统*endl;coutendl;cout1.录入航班信息endl;cout2.查询航班信息endl;cout3.订票endl;cout4.退票endl;cout5.修改航班信息endl;cout6.退出系统endl;coutendl;cout*endl;coutendl; /菜单界面int i;cout输入选项:i; /选择菜单switch(i)case 1:luru(); break;case 2:chaxun(); break;case 3:dingpiao();menu();case 4:tuipiao();menu();case 5:xiugai();menu();case 6:
17、tuichu(); exit(1); /退出break;default:cout输入的选项不合法,请重新输入endl;system(cls); /清屏menu();void main()cout读取endl;duqu(); /跳转至读取航班信息文件menu(); /菜单五 程序测试1. 运行程序,因为之前没有进行航班信息的录入,起始读取信息为空:按任意键进入菜单:2. 键入1,录入航班信息,输入完成后跳出菜单选择后续操作:3. 查询航班信息:键入1,按航班号查询,并显示菜单以便继续操作:键入2,按起飞城市及降落城市查询:4. 主菜单键入3,办理订票业务:查询该航班剩余票量是否改变:5. 主菜单键入4,办理退票业务:6. 主菜单键入5,修改起飞和降落航班时间:查询航班信息是否修改完成:7. 主菜单键入6,结束并退出操作并把航班和乘客信息写入文件中:六 总结经过一周的C+数据结构课程设计,不断的对程序及各模块进行修改、编译、调试、运行,期间也遇到不少问题,通过和同学老师之间的交流以及相关资料的查询,最后完成了航空订票系统课程设计。通过此次课程设计,我对数据结构有了更进一步的了解,对调试代码更加熟练,对于代码思想有了更深的理解。