面向对象课程设计《民航订票系统》.docx

上传人:b****2 文档编号:1629370 上传时间:2022-10-23 格式:DOCX 页数:38 大小:427.52KB
下载 相关 举报
面向对象课程设计《民航订票系统》.docx_第1页
第1页 / 共38页
面向对象课程设计《民航订票系统》.docx_第2页
第2页 / 共38页
面向对象课程设计《民航订票系统》.docx_第3页
第3页 / 共38页
面向对象课程设计《民航订票系统》.docx_第4页
第4页 / 共38页
面向对象课程设计《民航订票系统》.docx_第5页
第5页 / 共38页
点击查看更多>>
下载资源
资源描述

面向对象课程设计《民航订票系统》.docx

《面向对象课程设计《民航订票系统》.docx》由会员分享,可在线阅读,更多相关《面向对象课程设计《民航订票系统》.docx(38页珍藏版)》请在冰豆网上搜索。

面向对象课程设计《民航订票系统》.docx

面向对象课程设计《民航订票系统》

《面向对象程序设计》课程设计报告

题目:

民航订票系统

班级:

学号:

姓名:

指导老师:

时间:

15-16周/2015年12月7日至2015年12月18日

成绩等级:

一、需求分析

设计一个民航订票系统,实现如下功能:

(1)录入:

可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定);

(2)查询:

可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况;

(3)订票:

(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关提示信息;

(4)退票:

可退票,退票后修改相关数据文件;

(5)客户资料:

有姓名,证件号,订票数量及航班情况,订单要有编号;

(6)修改航班信息:

当航班信息改变可以修改航班数据文件。

二、对每个类的说明,包括数据成员、成员函数的含义与功能

本程序中所用到的数据类型有:

int,chat,结构,指针

数据结构有链表,其中链表的数据域是结构。

结构等数据的定义如下:

typedefstructCustomer//已定票乘客信息

{

charName[7];//姓名

intAmount;//定票数

charRank;//舱位等级

intSeat_No;//座位号

structCustomer*Next;

}Customer;

typedefstructReplace//替补乘客信息

{

charName[7];//姓名

intAmount;//定票数

charRank;//舱位等级

charSeat_No;//座位号

structReplace*Next;

}Replace,*PReplace;

typedefstructFlight//航线信息

{

charDes_Name[10];//终点站名

charFlight_No[6];//航班号

charPlane_No[6];//飞机号

charWeek_Day;//飞行周日

intCustomer_Amount;//乘员定额

intFree_Amount;//剩余票数

floatPrice[3];//舱位等级的价格

Replace*ReplName;//该航班的候补乘客名单

Customer*CustName;//该航班的已定票乘客名单

structFlight*Next;//指示下一航线结点

}Flight,*PFlight;

intCustomer_Count=0;//所有航线的定票乘客总数

Flight*Head;//航线头指针

Flight*p2;//航线结点指针

Customer*Custp1[MAX];//各条航线乘客结点指针

Replace*Replp1[MAX];//各条航线候补结点指针

intIsEmpty=1;//是否有定票乘客

intIsReplace=1;//是否有候补乘客

Customer*prior;//满足要求的定票乘客的前结点,以作删除操作

三、系统框架图

四、调试分析

在调试过程中,由于没有做出界面而是在DOS环境下实现的,所以要想得到比较友好的DOS界面必须耐心地调整.。

在密码登陆时,输入密码出现实心黑圆点也是通过循环语句多次慢慢调试出的。

在分析实现时,首先想到的是用链表来存放记录,但每个记录包括的许多信息最好是存放在结构中,故选取以结构为链表信息域的数据结构来实现。

改进之处:

1>用可视化做出界面,让程序实现起来更加好看。

2>用文件实现数据信息的存取,本题中可以通过改动来增加此项功能。

3>退票时,若乘客定的是多票,则出现询问其退几张票。

五、用户手册

编绎连接得到EXE文件,运行程序,出现如下密码登陆界面(以lyh为密码)

输入lyh,

按下回车

接着出现

选取1,按下回车

选取1,按下回车

按提示输入并按回车,最后出现如下界面:

按Y或y继续录入航班信息,输入N或n退回。

输入Y继续输入一些信息..(;输入的航班号若不唯一则出现提示信息,并要求重新输入)

输入N,回车,返回航线管理子菜单

输入2,回车查看航线信息

按下任意键返回航线管理子菜单

输入3对航线进个修改;输入4返回主菜单,

输入2,回车,进入订票办理界面如下:

若输入的航班号有误,则出现如下提示界面:

按下Y,继续

按提示一步步输入,直到输入完毕,出现如下界面

由于本人比较懒,所以没有在订票人所定票数为所有时显示”包机”0.0

输入y,继续定票,输入N返回主菜单

若余票不足,则出现如下界面:

输入N出现是否退出“订票办理”的提示信息,输入Y出现:

按提示,输入信息,直至出下如下界面:

输入Y继续订票,输入N返回主菜单界面

输入4,查看乘客信息,界面如下:

输入1,回车

按下任意键,返回乘客管理子菜单

输入2,回车,查看候补乘客信息:

按下任意键返回乘客管理子菜单

输入3返回主菜单

输入3,回车,进入退票办理界面

按提示一步步输入

(本系统只有“一退全光”的效果>-<)

按下任意键返回主菜单

输入5,回车

输入N返回主菜单,输入Y退出航空订票管理系统

汪:

1>凡提示输入Y或N时不分大小写

2>在主菜单及子菜单界面时,若输入的菜单项不存在,则出现(以主界面为例)

按下任意键返回主菜单界面,可以继续输入菜单项

六、附录

#include

#include

#include

#include

#include

#include

#defineMAX50

#defineNULL0

typedefstructCustomer//已定票乘客信息

{

charName[7];//姓名

intAmount;//定票数

charRank;//舱位等级

intSeat_No;//座位号

structCustomer*Next;

}Customer;

typedefstructReplace//替补乘客信息

{

charName[7];//姓名

intAmount;//定票数

charRank;//舱位等级

charSeat_No;//座位号

structReplace*Next;

}Replace,*PReplace;

typedefstructFlight//航线信息

{

charDes_Name[10];//终点站名

charFlight_No[6];//航班号

charPlane_No[6];//飞机号

charWeek_Day;//飞行周日

intCustomer_Amount;//乘员定额

intFree_Amount;//剩余票数

floatPrice[3];//舱位等级的价格

Replace*ReplName;//该航班的候补乘客名单

Customer*CustName;//该航班的已定票乘客名单

structFlight*Next;//指示下一航线结点

}Flight,*PFlight;

intCustomer_Count=0;//所有航线的定票乘客总数

Flight*Head;//航线头指针

Flight*p2;//航线结点指针

Customer*Custp1[MAX];//各条航线乘客结点指针

Replace*Replp1[MAX];//各条航线候补结点指针

intIsEmpty=1;//是否有定票乘客

intIsReplace=1;//是否有候补乘客

Customer*prior;//满足要求的定票乘客的前结点,以作删除操作

//-------密码登入窗口函数----------

intCode_Verify()

{

charb[10];

charc[10]="lyh";//已经进行简单加密

chara;

inti=0,j,k=1,x;

//system("cls");

//cout<<"\n\n\n\n\n\n\n\n\n\t\t\t请输入系统密码:

";

while

(1)

{

system("cls");

cout<<"\n\n\n\n\n\n\n\n\n\t\t\t请输入系统密码:

";

for(j=0;j

cout<<"●";

cout<

a=getch();

if(int(a)!

=8||int(a)!

=13)//不等于回车或退格键

b[i]=a;

if(int(a)==8)

{

i-=2;

system("cls");

cout<<"\n\n\n\n\n\n\n\n\n\t\t\t请输入系统密码:

";

for(j=0;j

cout<<"●";

cout<

}

if(int(a)==13)

{

b[i]='\0';

if(strcmp(c,b)==0)

return0;

else

{

if(k==3)

{

while(!

kbhit())

{

system("cls");

for(x=0;x<100000000;x++);

cout<<"\n\n\n\n\n\n\n\n\t\t你无权使用本系统,任意键退出系统..."<

for(x=0;x<100000000;x++);

}

return1;

}

cout<<"\n\t\t密码错误,你还有"<<3-k<<"次机会.请按任意键,重新输入."<

k++;

getch();

}

i=-1;

}

i++;

}

}

//-------启动画面函数----------

voidCover()

{

charline[]={"━━━━━━━━━━"};

charbar[]={"...."};

inti,j,k=0,x=0,y=0;

for(i=1;i<=strlen(line)/2;)

{

system("cls");

for(j=0;j<9;j++)//改变行坐标

cout<

for(j=0;j<(75-strlen(line))/2;j++)//改变列坐标

cout<<"";

for(j=1;j<=i;j++)//进度显示器

cout<<"■";

for(x=strlen(line)/2;x>i;x--)

cout<<"□";

if(k==4)

i++;

cout<

for(j=0;j<(75-strlen(line))/2;j++)//行坐标定位

cout<<"";

cout<

cout<

for(j=0;j<(65-strlen(bar))/2;j++)

cout<<"";

cout<<(i-1)*10<<"%Loading";

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 互联网

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1