当前位置:文档之家› C++课程大作业参考报告

C++课程大作业参考报告

目录目录 (I)第一章需求分析 (2)1.1 问题描述 (2)1.2 功能需求 (2)1.3 开发环境 (2)1.4 开发过程 (2)第二章概要设计 (3)2.1 总体设计 (3)2.2 航空类的定义 (3)2.3 接口设计 (5)2.4 运行界面设计 (5)第三章详细设计 (6)3.1 输入模块设计 (6)3.2 查找模块设计 (7)3.3 订票模块设计 (8)3.4 退票模块的设计 (9)3.5 保存及读取模块设计 (10)第四章测试分析 (11)4.1 测试程序执行情况 (11)第五章用户手册(可选) (15)5.1 使用说明 (15)第六章课程设计总结 (15)附录:程序代码 (17)参考文献 (25)第一章需求分析1.1问题描述飞机订票系统设计假定民航机场共有n个航班,每个航班有一航班号、确定的航线(起始站、终点站)、确定的飞行时间(星期几)和一定的成员订额。

试设计一民航订票系统,使之能提供下列服务:❖航班信息录入功能(航班信息用文件保存)--输入❖航班信息浏览功能--输出❖查询航线:(至少两种查询方式)--算法●按航班号查询●按终点站查询❖承办订票和退票业务1.2功能需求根据要求用户需要设计一个关于售票处服务系统程序,使航空公司可以通过的乘客简单地输入个人部分信息,便可方便的管理机票。

该程序还要实现以下功能:(1)能够对航空航线进行查询;(2)能够自主的承办订票业务(3)能够自主的承办退票业务1.3开发环境应用VisualC++,VisualC++不仅仅是一个C++编译器,而且是一个基于Windows操作系统的是集成开发环境IDE,这种环境开发出来的软件稳定性好、可移植性强,可以编制各种的Windows应用程序。

1.4开发过程第一天选择课程设计题目,分析课题的要求第二天编程第三天编程及调试第四天写课程设计报告第五天提交课程设计报告(打印稿及电子稿)第二章概要设计2.1 总体设计根据需求分析,由于程序较为简单我们将只设计一个类:plane(即航班类)。

其主要功能模块有:(1)输入(2)输出(3)票额计算(4)查询(5)订票(6)退票各功能模块的调用应通过菜单进行选取。

由于乘客和机票的主要信息是由plane类的对象所生成,而且机票的管理自动运行,plane类的构造函数的设计以及机票数额计算的设计要尤其精细,因为这两个函数的调用十分的频繁。

2.2航空类的定义class Plane{private:char name[40];//终点站名int number;//航班号int Number;//飞机号int week;//星期几飞行int day;//日期int left;//余票额int n;//与数组flag一起确定客户订票状态public:int flag[20];//订票状态数组,-1为预订票,1为已定票,0为初始化状态Plane()//构造函数{name[0]='\0';number=0;Number=0;week=0;day=0;left=M;n=0;//数组从0开始计数for(int i=0;i<20;i++)flag[i]=0;}void init()//初始化每种飞机票{cout<<"请输入终点站名:";cin>>name;cout<<"请输入航班号:";cin>>number;cout<<"请输入飞机号:";cin>>Number;cout<<"请输入星期几飞行:";cin>>week;cout<<"请输入航班的日期:";cin>>day;}~Plane(){};//析构函数char *getname(){return name;}//获得终点站名int getnumber(){return number;}//获得航班号int getNumber(){return Number;}//获得飞机号int getweek(){return week;}//获得星期几飞行int getday(){return day;}//获得日期int getleft(){return left;}//获得余票额int getn(){return n;}//获得旅客数目void inleft(int n){left=left+n;}//余票额增加函数void deleft(int n){left=left-n;}//余票额减少函数void inn(){n++;}//旅客数目增加函数};2.3 接口设计表2.1:函数列表2.4 运行界面设计图2-2 类的结构图2-3 系统结构示意图第三章 详细设计 3.1 输入模块设计主要功能用来对航班信息的进行收集和输入。

将航班信息保存在系统中的前提下,需要输入航班资料,比如航班号,飞机号,航班终点站,航班时间,机票数。

该信息输入成功后,可继续输入航班信息,否则系统返回到主菜单。

第一段:void init()//初始化每种飞机票{cout<<"请输入终点站名:";cin>>name;cout<<"请输入航班号:";cin>>number;cout<<"请输入飞机号:";cin>>Number;cout<<"请输入星期几飞行:";cin>>week;cout<<"请输入航班的日期:";cin>>day;第二段:void start(){for(int i=0;i<N;i++){pl[i].init();cout<<endl;}}3.2 查找模块设计主要功能是对航班信息的查找。

在系统已经录入航班信息前提下,使用该功能通过查找方式进行查找航班信息。

具体包括按按终点站查找。

在查找航班各方面信息后,按任意键就可以返回主菜单。

void query(){int i,num=0;char name[40];cout<<endl;cout<<"请输入终点站名:";cin>>name;for(i=0;i<=N;i++)if(strcmp(name,pl[i].getname())==0){num++;cout<<"航班号:"<<pl[i].getnumber()<<endl;cout<<"飞机号:"<<pl[i].getNumber()<<endl;cout<<"星期:"<<pl[i].getweek()<<"飞行"<<endl;cout<<"航班日期:"<<pl[i].getday()<<endl;cout<<"余票额:"<<pl[i].getleft()<<endl;break;}if(num==0)cout<<"没有此航班"<<endl;}3.3 订票模块设计(1)用于乘客预定机票并就乘客的操作管理机票(2)具体语句为:void make(){int number,n,sitnumber,nu,ch,num=0;cout<<"请输入航班号:";cin>>number;cout<<"请输入订票数额:";cin>>n;for(int i=0;i<N;i++)if(number==pl[i].getnumber()){num++;if(n<=pl[i].getleft()){cout<<"此航班有票"<<endl;pl[i].deleft(n);pl[i].inn();pl[i].flag[pl[i].getn()]=1;for(i=0;i<n;i++){3.4退票模块的设计(1)用于乘客退定机票并就乘客的操作管理机票(2)具体语句为:void back(){int number,day,n,nu,sitnumber,num=0;//航班号,日期,退票数目,订票数目,座位号,标志量cout<<"请输入日期:";cin>>day;cout<<"请输入航班:";cin>>number;for(int i=0;i<N;i++)if((day==pl[i].getday())&&(number==pl[i].getnumber()))//日期与航班是否满足{num++;//日期与航班满足cout<<"输入退票数目";cin>>n;cout<<"退票成功"<<endl;pl[i].inleft(n);//该种飞机票增加,即已退票for(int j=0;j<=pl[i].getn();j++)//顺序查询客户订票状态{if(pl[i].flag[j]==-1)//客户是否为预定状态{cout<<"有预约订票,请输入订票数额:";cin>>nu;if(nu<=pl[i].getleft())//余票额是否满足要求{cout<<"此航班有票"<<endl;pl[i].flag[j]=1;cout<<"订票成功"<<endl;pl[i].deleft(nu);for(int k=0;k<nu;k++){cout<<"座位号"<<" ";cin>>sitnumber;}cout<<"余票额为"<<pl[i].getleft()<<endl;}}elsecout<<"没有预约订票!"<<"余票额为"<<pl[i].getleft()<<endl;}}if(num==0)cout<<"没有此票"<<endl;}3.5保存及读取模块设计主要功能是对订票信息的保存及读取。

相关主题