您好,欢迎来到筏尚旅游网。
搜索
您的当前位置:首页飞机订票系统,数据结构附代码

飞机订票系统,数据结构附代码

来源:筏尚旅游网


数据结构实验报告

实验三

专业:[软件学院]

学生姓名:[ ] 完成时间:2014年5月2日

《数据结构》课程设计报告

姓名 学号 2012 级 实验室 A109 提交日期 2014.4.23 指导教师 4班 组 成绩 实验题目:飞机订票系统。 设计一个飞机票订票系统,完成对航空客运订票的业务管理,包括客户资料管理、原始数据的录入、航班信息的浏览、根据航班号查询航班信息、根据航线查询航班信息、订票和退票、针对特定的航班号或是航线给出推荐的航班排序。 问题解析(对问题的分析、理解和解题方法): 主要考察数据结构中的线性表、队列以及图的各种相关操作,和文件的基本知识以及应用基本知识解决实际问题的能力。掌握好基本知识,将实际问题一步步分解,得出最终结果。 数据结构选择、算法设计:此次课程设计我们小组成员主要借用C++语言中的类(或是C语言中的结构体)和数组的结合,结合类的成员变量可以多样化的优点和数组的下标拥有类似指针遍历的功能的优点。将要处理的数据借用文件的处理手段存到结构体数组里从而将数据引进到程序里,其余的拓展操作都按基本的方法处理。 任务分工及进度计划:花费三周时间完成代码编写、数据测试、报告书写等全部任务。首先小组成员各自仔细研读实验要求,展开讨论,综合俩人的想法,去粗取精,捋出大致的创作思路并给出简单的计划实施流程,整合程序涉及的对象个数和各个对象应包括的成员变量从而给出类的定义,根据类定义给出部分用于测试的原始数据。站在用户的角度思考主函数开始后的每个步骤从而先写出主函数,所用到的各个方法的函数头给出。组员分配函数方法编写任务,在仔细研究每个步骤的前提下,做出相应的方法定义,各自完成各自的函数体编码后整合到一起。对整合后的代码进行初步完善,主要集中于类定义、方法实现、界面设计,补充注释,多次测试几组数据。上网查询相关知识,补充大脑,完善完美。 用户手册:当用户启动程序后,后台会自动加载原始信息。服务人员也可以通过更改原始数据文件及时更新航班信息。之后老用户需要输入客户名和密码进行登陆,新用户可以先注册或以游客身份进入。然后就进入正式的操作界面,永和可以根据界面信息提示一步步操作,当有错误操作时,程序会给出相应的警告和提示。信息浏览和信息查询会将结果直接显示在操作界面,而有关订票和退票的信息记录会实时输入到文件上,方便工作人员的查询使用。 测试结果:对于的操作,可以达到原目的。 程序清单: (部分程序代码显示) #include #include #include #include #include # define N 30 # define M 25 #defineOUTPUT\"%-d%s%s%s%s%s%1.2f%s\\n\i].time1,p[i].time2,p[i].price,p[i].discount,p[i].company class plane{ public: int num;int f; //剩余票数 char city1[20]; char city2[20]; char time1[20]; char time2[20]; char price[20]; float discount; char company[20]; }p[M]; class guest{ public: int num; int sits; char name[20]; }g[M]; class plane1{ public: int num;int f; char city1[20]; char city2[20]; char time1[20]; char time2[20]; char price[20]; float discount; char company[20]; }p1[M]; //所有函数声明 void login(); void input(); int menu0(); int menu3(); void output1(); void output2(); int menu1(); void search1(int number); void search2(); void order(); void backspace(); int menu2(); void sort1(char c1[],char c2[]); void sort2(char c1[],char c2[]); int deal(char c1[],char c2[]); //所涉及的全局变量,基本用于做中间变量 int i1=0; int i2=0; int i3=0; int i4=0; int number=0; char c1[20]; char c2[20]; //main函数,总体流程 int main (){ login(); input(); //char *a=strtok(p[0].city2,\" \"); while (1){ i1=menu0(); switch (i1){ case 1: i4=menu3(); switch (i4){ case 1: output1(); break; case 2: output2(); break; } break; case 2: i2=menu1(); switch (i2){ case 1: cout<<\"请输入要查询的航班号\"<>number; search1(number); break; case 2: /*cout<<\"请输入要查询的航线的起始站\"<>c1; cout<>c2;*/ search2(); break; } break; case 3: order(); break; case 4: backspace(); case 5: i3=menu2(); switch (i3){ case 1: cout<<\"请输入要查询的航线的起始站\"<>c1; cout<>c2; sort1(c1,c2); break; case 2: cout<<\"请输入要查询的航线的起始站\"<>c1; cout<>c2; sort2(c1,c2); break; } break; default: cout<<\"输入错误!请重新选择!\"<>i1; return i1; } int menu1(){ cout<<\"请输入您选择的操作\"<>i2; return i2; } int menu2(){ cout<<\"请输入您选择的操作\"<>i3; return i3; } int menu3(){ cout<<\"请输入您选择的操作\"<>i4; return i4; } void input(){ ifstream fin(\"plane.txt\"); if(!fin){ cout<<\"文件打开失败!\"<>p[i].num; fin.getline(p[i].city1,17); fin.getline(p[i].city2,17); fin.getline(p[i].time1,8); fin.getline(p[i].time2,8); fin.getline(p[i].price,9); fin>>p[i].discount; fin.getline(p[i].company,20); } fin.close(); } void output1(){ char w[10]; cout<<\"航班号 起始站 终点站 起飞时间 到达时间 票价 折扣 所属航空公司\"<>w; } void output2(){ char w[10]; cout<<\" 起始站\"<<\" ------>\"<<\" 终点站\"<\"<>w; } void search1(int number){ char w[10]; int j=0; for(int i=0;i>w; } void search2(){ cout<<\"请输入要查询的航线的起始站\"<>c1; cout<>c2; char w[10]; int j=0; for(int i=0;i>w; } void order(){ char w[10]; int j=0; ofstream fout(\"order.txt\"); if(!fout){ cout<<\"文件打开失败!\"<>g[i].name; cout<<\"请输入您预定航班的航班号\"<>g[i].num; cout<<\"请输入你预定的机票数目\"<>g[i].sits; fout<>j; if(j==2) break; } fout.close(); cout<<\"请按任意键+Enter结束返回上层菜单:\"<>w; } void backspace(){ char w[10]; int i; int j; int tui; int q; char yhname[20]; bool flag = true; while(flag){ cout<<\"******************欢迎使用退票系******************\"<>yhname; for(i = 0;i < M;i++){ if(strcmp(yhname,g[i].name)==0) break; } if(i>M-1){ cout<<\"无此客户!请检查是否姓名输入有误\"<>tui; while(tui>g[i].sits){ cout<<\"您没有订那么多张票\"<>tui; } cout<<\"确定要退票(是1/否0):\"; cin>>q; if(q==1){ g[i].sits = g[i].sits-tui; for(j = 0;j < M;j++){ if(g[i].num ==p[j].num){ p[j].f=p[j].f+tui; } } if(g[i].sits == 0){ for(i=i+1;i>q; if(q==2) flag=false; } cout<<\"请按任意键+Enter结束返回上层菜单:\"<>w; } void sort1(char c1[],char c2[]){ char w[10]; int g=0; int i; int j; char temp[20]; deal(c1,c2); int count = deal(c1,c2); if(count!=0){ cout<=i;j--){ //对该轮待排序的数进行排序 if(p1[j].price>w; } void sort2(char c1[],char c2[]){ char w[10]; int g=0; int i; int j; char temp[20]; deal(c1,c2); int count = deal(c1,c2); if(count!=0){ cout<=i;j--){ //对该轮待排序的数进行排序 if(p1[j].time1>w; } int deal(char c1[],char c2[]){ int count = 0; for(int i=0;i>name; cout<>password; cout<

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- efsc.cn 版权所有 赣ICP备2024042792号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务