当前位置:文档之家› 飞机订票系统课程设计报告

飞机订票系统课程设计报告

数据结构课程设计报告院系:信息管理学院专业:软件工程班级:软件Q1141学号:11150132姓名:王毅教师:邓沌华时间:2013. 4一、问题描述题目:飞机订票系统题目要求:(1)可以录入航班情况(2)可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况;(3)可以订票,如果该航班已经无票,可以提供相关可选择航班;(4)可以退票,退票后修改相关数据文件;(5)当航班信息改变可以修改航班数据文件二、系统分析及设计12、概要设计主函数中flight a[15]; //全局航班数组,存储供测试的航班信息,一共15架飞机,航班信息可以在所有文件中改变o_customer co; //全局乘客数组存储已经买了票的顾客信息,顾客信息可以在所有文件中调用、修改int k = 15; //全局变量,当前的共有航班的辆数,也可被所有文件调用和修改供测试的航班情况如下:○1按航班号查询航班int number_check() //有此辆航班则返回1,无则返回0○2按终点站查询航班int station_check() //有到该站的航班则返回1,无则返回0.○3订票int Init(int k);//录入乘客信息,订票成功返回1,否则返回0.order_f() //订票函数{m = n = 0;m = number_check();//乘客选择航班号方式的查询航班,m = 1方可订票n = station_check();//乘客选择终点站查询方法查询航班,n = 1,方可订票if(Init(0) == 0){}//按编号查询,只显示一个编号的信息,票存在,但订票失败就给予其它方案if(Init(k) == 0){}//按照终点站查询,订票失败时给予相应处理方法}○4退票void takeoff(){}//请用户输入他的证件号,避免同名现象造成的影响//买票的乘客的信息已经存入全局数组中,直接从数组中找出该乘客信息,然后改变相应航班和乘客的信息3、详细设计Customer.cpp//顾客信息源代码#include<iostream>#include<stdlib.h>#include<time.h>#include "customer.h"//#include"flight.h"//#include<string>//using namespace std;extern flight a[15];extern int f_no[5];extern int f;extern o_customer co;void getnumber(int i, int length)//获得订单号{srand((unsigned)time(NULL));//随机产生一个订单号,设置一个随机种子,保证每次产生的订单号不同co.a[length].t_number=rand()%100000000;a[i].total_s --;} int Init(int k){cout<<"请输入姓名:";cin>>co.a[co.length].c_name;cout<<"\n请输入证件号:";cin>>co.a[co.length].c_number;cout<<"\n请输入订票数量: ";cin>>co.a[co.length].c_total;cout<<endl;if( co.a[co.length].c_total<=a[f_no[k]].total_s){getnumber(f_no[k],co.length);co.a[co.length].f_number = f_no[k];cout<<"订票成功! 您的订单号为";cout<<co.a[co.length].t_number<<endl;co.length ++;}else{cout<<"订票失败,余票不足";return 0;}return 1;}Check.cpp //查询操作源代码#include"check.h"#include<iostream>//#include"flight.h"#include"display_flight.h"int f_no[5]; //用来存储按条件查找的车在数组中的编号int f ; //用来存储找到车辆的个数extern flight a[15]; //15辆飞机int number_check(){int i, n;f = 0;cout<<"请输入航班号:";cin>>n;cout<<endl;display();for(i = 0; i < 15; i ++){if(a[i].f_number == n){f_no[f++] = i;display_flight(a[i]);}}if(f == 0){//cout<<"无此航班"<<endl;return 0;} else{return 1;}}int station_check(){int i;string s;f = 0;cout<<"请输入目的站: ";cin>>s;cout<<endl;display();for(i = 0; i < 15; i ++){if(a[i].e_station == s){f_no[f++] = i;display_flight(a[i]);}}if(f == 0){cout<<"无到达"<<s<<"的航班"<<endl;return 0;}else{return 1;}}Order.cpp //订票源代码#include<iostream.h>#include"check.h" #include"order.h" #include"flight.h" #include"customer.h"#include"display_flight.h"extern flight a[15]; extern int f_no[5]; extern int f;o_customer co; int b[5];void order_f() //订票成功与否都会给出相应提示{char ch;int i, j, k, m, n;cout<<"请输入查找航班方式: ";cin>>ch;cout<<endl;switch(ch){case'n': m = number_check(); break;case'p': n = station_check(); break;}if(ch == 'n' && m == 1)//按编号查询,只显示一个编号的信息,票存在{cout<<endl;if(Init(0) == 0)//订票失败,数量超过座位余额{j = 0;for(i = 0; i < 15; i ++){//cout<<"您还可选择"; 只将于票数大于等于顾客所需票数的航班列车,其他的具有相同起始站的航班不列出if(i!=f_no[0]&& a[i].s_station == a[f_no[0]].s_station&&a[i].e_station== a[f_no[0]].e_station&&co.a[co.length].c_total<=a[f_no[0]].total_s){display_flight(a[i]);b[j ++] = i;}}if(j > 0){char ch1;int n1;cout<<"您你是否继续订票,继续请安'c',退出请按'q' "<<endl;cin>>ch1;if(ch1 == 'c'){cout<<"请输入航班号: "<<endl;cin>>n1;for(i = 0; i < 5; i ++){if(a[b[i]].f_number==1 && co.a[co.length].c_total <= a[b[i]].total_s ){co.a[co.length].f_number = b[i];cout<<"订票成功! 您的订单号为:";cout<<co.a[co.length].t_number<<endl;getnumber(b[i],co.length);cout<<co.a[co.length].t_number<<endl;co.length ++;}}}else{cout<<"欢迎下次使用";return;}}}}if(ch == 'p' && n== 1) //按终点站查询{int a2;cout<<endl;cout<<"请选择航班编号:";cin>>a2; cout<<endl;for(i = 0; i < f ; i ++){if(a[f_no[i]].f_number == a2)k = i;}if(Init(k) == 0){j = 0;for(i = 0; i < 5; i ++){//cout<<"您还可选择"; 只将于票数大于等于顾客所需票数的航班列车,其他的具有相同起始站的航班不列出if(i!=k && co.a[co.length].c_total <= a[f_no[i]].total_s){display_flight(a[i]);b[j ++] = i;}}if(j > 0){char ch1;int n1;cout<<"您你是否继续订票,继续请安'c',退出请按'q' "<<endl;cin>>ch1;if(ch1 == 'c'){cout<<"请输入航班号: ";cout<<endl;cin>>n1;for(i = 0; i < 5; i ++){if(a[b[i]].f_number==n1 && co.a[co.length].c_total<= a[b[i]].total_s ){co.a[co.length].f_number = b[i];cout<<"订票成功! 您的订单号为:"; getnumber(b[i], co.length);co.length ++;}}}else{cout<<"欢迎下次使用";return;}}}}}Takeoff.cpp //退票源代码#include"takeoff.h"#include"customer.h"#include<iostream>extern flight a[15];extern o_customer co;//extern cs[100];void takeoff()//请用户输入他的证件号,以免出现同名现象{int i, j, k, m = -1;cout<<"请输入您的证件号: ";cin>>j;cout<<endl;while(j != -1){for(k = 0; k < co.length; k ++){if(co.a[k].c_number == j)m = k;}if(m > -1){//cout<<endl;cout<<"请输入退票张数:";cin>>i;while(i > co.a[m].c_total){cout<<"输入过大,请重新输入"<<endl;cin>>i;}co.a[m].c_total = co.a[m].c_total - i;a[co.a[m].f_number].total_s = a[co.a[m].f_number].total_s - i;cout<<"退票成功!";j = -1;}else{cout<<"你的证件号有误"<<endl;cout<<"继续退票请重新输入证件号, 退出请按-1: ";cin>>j;cout<<endl;}}}三. 系统实现1.完整源代码(见文档末尾)2.输出界面:查询、订票、退票操作截图:四.设计总结飞机订票系统主要实现的功能是:查询,订票,退票。

相关主题