C语言航班售票系统课程设计报告(2)

2019-04-22 13:36

return ID; }

void setname(char na[]) //修改姓名 {

strcpy(name,na); }

int getseatnum() {

return seatnum; }

void addbook(int n,char *na,int id,int seat) //订票操作 {

note=0;

flightnum=n; ID=id;

seatnum=seat; strcpy(name,na); }

void delpassenger() //删除乘客信息 {

note=1; }

void list() // 显示乘客信息 {

cout<<\客户姓名\客户编号\已定航班号\\座位号\ cout<

乘客信息库类与飞机信息库类实现的功能原理类似,记录了乘客类的对象数组。主函数实现了主操作界面的程序。

class PDatabase //乘客信息库类 {

private:

int top;

Passenger passer[Maxb]; public:

PDatabase() {

Passenger p; top=-1;

fstream file(\

while(1) {

file.read((char *)&p,sizeof(p)); if(!file) break; top++;

passer[top]=p; }

file.close(); }

void settop() {

top--; }

void clear() {

top=-1;

cout<<\乘客信息删除成功!\ }

int addbook(int n,char *na,int id,int seat) {

Passenger *s=query(n); if(s==NULL) {

top++;

passer[top].addbook(n,na,id,seat); return 1; }

return 0; }

Passenger *query(int id) {

for(int i=0;i<=top;i++)

if(passer[i].getID()==id && passer[i].getnote()==0) return &passer[i]; return NULL; }

Passenger *query1(int seat) {

for(int i=0;i<=top;i++)

if(passer[i].getseatnum()!=seat && passer[i].getnote()==0) return &passer[i]; else

return NULL; }

void list() {

for(int i=0;i<=top;i++)

if(passer[i].getnote()==0) passer[i].list(); }

void passengerdata(); ~PDatabase() {

fstream file(\ for(int i=0;i<=top;i++)

if(passer[i].getnote()==0)

file.write((char *)& passer[i],sizeof(passer[i])); file.close(); } };

主要功能:此航空系统管理可以进行新增航班,更改航班,查找航班,显示航班信息,删除航班。客户可以进行订票,退票,客户资料修改,查找,删除等操作。 具体实现过程:

1、 新增航线的实现过程:通过录入航线的飞机号,航班号,目的地。系统会存入到飞机的对象

数组里,一个飞机就是一个对象,然后存入飞机的对象数组中,这主要通过飞机信息类中的addplane()函数在调用飞机类中的addplane()函数实现存入飞机的基本信息,同时这一个飞机的信息作为一个对象保存在飞机类的对象数组中。如果想要把这个新增的飞机写入文件的话,通过飞机信息库类的中析构函数写入文件,所以每当要储存进文件,则需要推出系统后保存,则下次进入后你将会看到在飞机信息类中会看到飞机的信息。

2、 更改航班操作的实现过程:先要录入你要更改的航班号,系统会找到那个航班,这样你可以

进行目的地修改的操作。通过飞机信息库类中的query()函数进行查找,利用for循环,逐个查找,当找到的飞机航班号与输入的航班号相同时,进行输出。并通过飞机类的setname()函数对目的地的字符串利用strcpy()函数进行覆盖。所以这个飞机对象的目的地就改变了。 3、 查找航班的实现过程:输入航班号,利用飞机信息库类中的query()函数查找,最后返回

对象,并输出对象。

4、 显示航班信息的实现过程:利用飞机信息库类中的list()函数进行输出对象数组中的对象。 5、 删除航班过程的实现:可以删除单个航班,也可以删除全部,删除单个航班先输入航班号查

找出航班,然后通过调用飞机类的delplane()函数进行信息存在标记的改变。删除全部直接更改飞机对象数组中的下标即可。

6、 订票的实现:首先输入航班号,如果没有此航班会提示错误,直到有此航班后才能进行下一

步操作,然户输入姓名,客户编号,座位号,客户编号是客户自己拥有的一个ID,座位号用户可以自己预定。如果作为被预定后,会显示错误需要重新预定座位号。调用乘客信息库类中的addbook()函数在调用乘客类中的addbook()函数进行赋值操作,而且此航班的信息中余票数会减少一个,已定票数会增加一个。同时将此乘客的信息存入乘客对象数组中。 7、 退票的实现:输入航班号,用户编号。系统会查找出此客户,并会通过乘客信息类的

delpassenger()函数设置删除标记。已达到删除乘客信息的效果,就达到了退票的效果,而且飞机信息中的余票数会增加1,订票数会减少1。

8、 客户资料修改的实现过程:通过输入用户ID后,查找出当前客户,可以进行客户信息的姓名

修改,调用setname()函数修改姓名。

主界面 1、订票 2、退票 3、客户信息4、飞机信息 1、订票 需要输入航班号、姓名、用户编号、座位号 2、退票 需要输入航班号、 用户编号 客户信息管理 1更改 2查找 3显示 4删除全部 5删除单个

飞机信息管理 1新增 2 更改 3删除单个 4 查找 5 显示 6删除全部 数调用乘客类中的addbook() (调)用乘客类中的 delpassenger ()调用乘客信息类中的 和list调用(乘)客信息类中的query 12345clear(),delpassenger() 调用乘客信息类中的list、调用乘客信息类的

setname函()()()调用飞机信息库类的1addplane 调用飞机类的setname()调用飞机信息类中的3 delplane和list2 调(用)飞机信息类中的query4 5 6 调用飞机信息类的list调用飞机信息类的clear ()()()()

四、上机调试过程:

问题:在调试过程时经常会遇到一些类与类内嵌时有函数未定义的情况,明明已经定义过类了,但编译时显示类未定义,对象为定义,不能互相访问,还有的时候由于定义的标示符过多,导致会编写错误标示符,还有一些小错误,比如符号漏写等,这些错误都是很好看出来。最难的错误应该是在嵌套过程中的逻辑问题,有的时候会调用错误函数,有的时候会很混乱,整个思路就乱了。

修改:在嵌套时要注意有没有先定义对象到另一个类中,定义函数时,如果函数体短的函数直接定义为内联函数,这样不会有忘定义的现象产生。在类与类嵌套时应该注意类前向引用声明。类与类的逻辑问题还是静下心来梳理一下自己的思路,这是我觉得最好的办法了。

五、测试结果及分析

1、程序一开始的登录界面(主界面)

2、在主界面选择3 进入客户管理系统

3、在主界面选择4 进入航线管理系统


C语言航班售票系统课程设计报告(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:外研社新标准八年级英语上册教案M3U2

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: