航空订票管理系统程序设计实验报告_第1页
航空订票管理系统程序设计实验报告_第2页
航空订票管理系统程序设计实验报告_第3页
航空订票管理系统程序设计实验报告_第4页
航空订票管理系统程序设计实验报告_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 C+ 程序设计 学院:电气信息工程学院 专业:电子信息工程专业 班级学号:20111605010234 姓名: 张鹤 1、 需求分析2、 概要设计3、 详细设计4、 调试分析5、 课程总计1、 需求分析1、 系统需求分析:随着经济全球化的推进以及企业激烈的竞争,各大机场订票系统已不能适应人们日常出行的习惯局面,所以我们现在需要一个检索迅速、查找方便、易修改功能齐全方便的系统来适应我们的需求。问题的提出:为了减少人工工作量,提高工作效率,使机场管理员的工作更加有效的进行。2、功能需求分析: 通过此系统可以实现如下功能:(1)、航班信息录入:每个航班信息包括航班号、起飞时间、降落时间、起飞地点、

2、将落地点、票价、折扣、剩余票量。通过剩余票量可以确定该航班是否已满。(2)、航班信息查询:通过航班号或者起飞地点、降落地点查询所需要的航班信息。(3)订票:输入姓名和所要订的航班的航班号订票。(4)、退票:输入姓名和所订的航班的航班号办理退票。(5)、修改航班信息:输入航班号修改该航班的起飞和降落时间以修改航班的起降时间。(6)、删除航班信息:输入航班号删除该航班。(7)、退出:退出的同时将信息写入文件。二、概要设计结构体:struct flight /航班信息int a1; /航班号 string a2; /起飞时间 string a3; /降落时间char a410; /起飞城市char

3、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; /票价pjcu200;使用的函数:void luru();

4、/声明录入函数void chaxun(); /声明查询函数void chaxun1(); /声明查询方式1函数void chaxun2(); /声明按查询方式2函数void dingpiao(); /声明订票函数void tuipiao(); /声明退票函数void xiugai(); /声明修改函数void menu(); /声明主菜单函数void duqu(); /声明文件读取函数void tuichu(); /声明退出并保存函数通过各个函数的调用以实现航班信息录入,航班信息查询,订票,退票,修改航班信息。三、详细设计1. 系统结构图(功能模块图)主函数航班信息修改退出系统航班退票航班订票

5、航班信息查询航班信息录入2. 功能模块说明:(1). 将航班的基本信息录入到系统中。(2). 根据航班号或者根据起飞地点、降落地点查询所需航班信息。(3). 输入姓名和所要订的航班的航班号订票。(4). 输入姓名和所订的航班的航班号办理退票。(5). 输入航班号修改该航班的起飞和降落时间以修改航班的起降时间。(6). 退出的同时将信息写入文件。#include#include#includeusing namespace std;struct flight /航班信息int a1; /航班号 string a2; /起飞时间 string a3; /降落时间char a410; /起飞城市ch

6、ar 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; /票价pjcu200;int cnum=3;int l

7、en=0;int A=0;void luru(); /声明录入函数void chaxun(); /声明查询函数void chaxun1(); /声明查询方式1函数void chaxun2(); /声明按查询方式2函数void dingpiao(); /声明订票函数void tuipiao(); /声明退票函数void xiugai(); /声明修改函数void shanchu(); /生命删除函数 void menu(); /声明主菜单函数void duqu(); /声明文件读取函数void tuichu(); /声明退出并保存函数void luru() /航班信息录入 cout请输入航班信息

8、: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请选择查询方式endl;cout1

9、.按航班号查询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降落城市:flj.a

10、5t票价: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起飞城市:flj.a

11、4t降落城市: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订票成功!endl;br

12、eak;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,)=0)cout 退票成功!endl;fli.a8+;sign=1;break;if(sign)break;if(i=len) cout输入信息

13、有误!退票失败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 shanchu() /删除航班信息cout输入航班号:num;for(int i=0;ilen;i+) if(fli.a1=num)num=i;break; if(i=len)cout航班号错误!endl;void tuichu() /退出时保存录入和更改信息 ofstream

14、nfile2(cus.dat,ios_base:binary); /输出方式打开文件 nfile2.close(); /关闭文件ofstream infile2(cus.dat,ios_base: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); /输出方式打

15、开文件nfile1.close(); /关闭文件 ofstream infile1(airline.dat,ios_base:binary|ios_base:app); /输出方式打开文件for( 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.rea

16、d(reinterpret_cast(&fllen),sizeof(flight);/输入方式读取文件cout*航班信息*endl航班号:fllen.a1t起飞时间:fllen.a2t降落时间:fllen.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_cas

17、t(&cuA+),sizeof(customer); /输入方式读取文件infile2.close(); /关闭文件getchar();system(cls);void menu()cout*航班订票系统*endl;coutendl;cout1.录入航班信息endl;cout2.查询航班信息endl;cout3.订票endl;cout4.退票endl;cout5.修改航班信息endl;cout6.删除航班信息endl;cout7.退出系统endl;coutendl;cout*endl;coutendl; /菜单界面int i;cout输入选项:i; /选择菜单switch(i)case 1:l

18、uru(); break;case 2:chaxun(); break;case 3:dingpiao();menu();case 4:tuipiao();menu();case 5:xiugai();menu();case 6:tuichu(); exit(1); /退出break;default:cout输入的选项不合法,请重新输入endl;system(cls); /清屏menu();void main()cout读取endl;duqu(); /跳转至读取航班信息文件menu(); /菜单四、调试分析1. 运行程序:因为之前没有进行航班信息的录入,起始读取信息为空 按任意键进入菜单2.录

19、入航班信息:键入1,录入航班信息,输入完成后跳出菜单选择后续操作 3.查询航班信息:键入1,按航班号查询,并显示菜单以便继续操作:键入2,按起飞城市及降落城市查询4.主菜单键入3,办理订票业务:查询该航班剩余票量是否改变:5. 主菜单键入4,办理退票业务:查询航班信息是否修改完成:6.主菜单键入7,结束并退出操作并把航班和乘客信息写入文件中:5、 课程总结1、知识点:此次系统的设计包含了很多的知识点,涉及到C+简单的输入输出控制、运算符和表达式、选择控制(if)、循环控制(while)、字符数组(char p)、字符串的比较(strcmp(m,p)=0)、数据库(#include、#inclu

20、de )、函数的定义(void luru()、void chaxun()、void chaxun1();void chaxun2();void dingpiao();void tuipiao();void xiugai(); void shanchu();void menu();void duqu();void tuichu();)等知识点。2、调试过程中遇到的主要问题及解决办法 :设计初期,先完成初步构思,写出主函数。然后对主函数所涉及的各个模块进行编程,将各个模块利用指针和链表联系起来。在环境中进行调试,应一边编译,一边调试,并且要一个模块一个模块的调试。直至此模块完全没有错误时,在进入下一模块的调试。不能直接输入全部的代码一次性调,这样错误会很多,并且不易找出和修改。在完成程序的编译链接后,要用多组数据进行审查,确保做到系统无误。 设计过程中,不应忽视环境提示的警告,有时程序运行不正确与警告也有很大的关系。这次设计中遇到很多问题都是提示类型不匹配,这时就要认真检查前面的代码,及时改正并且认真仔细,杜绝此类错再次发生。 编写代码时应该少用全局变量,全局变量在编写试看似定义次数少,很方便。但全局变量出错几率较大,且不易修改,每次修改时都要全面考虑,所以应避免用到。 程序调试中碰到的错误可以使自己学到知识。养成良好的编程习惯,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论