《航空公司订票系统》由会员分享,可在线阅读,更多相关《航空公司订票系统(22页珍藏版)》请在金锄头文库上搜索。
1、_数据结构与算法设计课程设计【设计题目】航空公司订票系统【问题描述】编写一个咸阳航空公司订票大厅的一个订票系统,可以在系统中录入并修改各个航班的具体情况,帮助乘客准确的查询各航班的最新信息(包括航班号、航班的起始时间和地点、票价)和各项业务的及时办理(包括订票、退票等)。该系统用可以用C+的类编写。【软件功能】1.输入航班信息并保存到磁盘 2.浏览航班信息 3.修改航班信息并保存到磁盘 4.查找航班 5.删除航班信息 6.订票 7.退票 【算法思想】1 先定义一个乘客基本信息的类包含乘客的姓名、证件号、订票数量及所乘的航班号(注:每个航班有固定的人数限制,若满额则提示其他可供选择的航班。 2
2、建立一个功能类,包括对航班信息和乘客订票信息的录入及修改的函数,其中订票信息采用单链表的顺序存储方式存储。另外还包括对信息的查询和修改的功能函数,乘客退票的函数。并将最终的改动结果通过i/O流写入磁盘文件保存。 3 编写主函数,对编写的航班系统进行全面测试,对用户界面采用人性化的菜单方式。【类的设计】定义一个航班的类class plane friend class customer;/友元类public: void input(); /插入航班信息 void print(); /打印航班信息void save(); /保存航班信息 void read(); /读取航班信息 void searc
3、h(); /查找航班信息 void Delete(); /删除航班信息 void book(); /订票 void back(); /退票 void xiugai(); /修改航班信息private:int num;/航班号char start_place20;/起点站char arrive_place20;/终点站char time10;/起降时间int count;/机票数量;定义一个顾客信息的类class customerfriend class plane;/友元类protected:Int id;/身份证号char name10;/姓名int customer_num;/订票数量pu
4、blic:void read1();/读取数据void save1();/保存数据;【存储结构设计】采用顺序存储结构,利用动态申请空间实现信息的存储。【模块划分及调用关系】定义了两个类class plane和class customer,分别实现顾客及航班的信息操作。在两个类的后面分别定义了类中的各个函数。另外在主函数中分别调用函数,实现各个功能。【模块流程图】1.主函数main()主函数选择主要功能输入航班信息浏览航班信息修改航班信息查找航班删除航班订票退票2. void search()/查询函数进入查询航班信息函数按航班查找按终点站查找按航线查找是否继续, 若是3void book()/
5、订票函数进入订票系统 航班不存在 无效 航班号存在 请输入您要订的票数 有效若票数有效,显示订票成功输入姓名、ID及要订航班的航班号4. void back()/退票函数输入您的姓名、ID、要退票数 不存在 该用户存在提示:退票成功 进入退票系统【界面设计】采用人性化的菜单提示语,让用户很容易的操作;【用户手册】用户只需要在vc环境下就可以操作,具体步骤可见菜单提示就可以顺利操作。另外,再加入、删除、修改航班信息时必须以管理员的身份进去,所以必须要有密码,在这里初始密码事:xinxi0701.谢谢您的使用!1、 程序上机调试报告【语法错误及其排除】两个类的公有函数中,在循环嵌套调用时总是受阻,
6、不能执行。所以我把两个类都定义为相互的有元类。这样问题就解决了。【算法错误及其排除】在订票与退票函数中,要核对用户信息如姓名、ID等,开始是自己定义一个函数进行字符间的比较,在调用时总是出现语法错误,最后想到可以用一个函数库中的函数strcmp(char,char).把问题简单化,而且语法错误也解决了。2、 程序测试结果【测试数据】说明:测试数据都是输入数据,见输出结果。【输出结果】【程序性能评价】该程序可以查询航班的信息、修改信息,查询顾客的信息,订票、退票等,界面采用人性化的提示,可以让用户很容易的操作。另外在修改信息、添加航班信息时必须要以管理员的身份进入即必须要有密码才能进入。保证了系
7、统的安全。【性能改进方向】该系统在操作中要是不按照菜单的有关提示操作,而进行非法操作,可能会导致系统的死循环。在这点该系统还有待改进。【收获及体会】事实总比想象的难,刚开始编写这个程序的时候思路比较清晰。可是编写的时候遇到了很多难题,譬如将顾客的信息及航班的信息保存到文件中,不知道用那种方式更简便,最后仔细思考,阅读课本资料,选择了用流的形式输出到文件中,感觉用起来特别方便简洁。完成了程序的编写后又对该程序进行了大量的修改,调试,使程序更加简明,并添加了不少提示用户操作的语句,使用户使用该系统时更加方便。对自己的这个程序还是比较满意的,可以说已经超出了自己当初的设想。从编写这个程序的过程中不但
8、发现了许多自己没学明白的地方,而且锻炼了自己的耐心。刚调试时有很多错误,我逐个仔细的修改、排除,最终成功的完成了调试。进过这次实习,我更加深刻的体会到,作任何事情要仔细,要静下心来认真思考,只要努力了,必定会有回报。3、 源程序代码#include#include#include #include#include #define N 1000 /宏定义class customer;/申明顾客信息类/-定义航班信息类-class plane friend class customer;/有元类public: void insert(); /加入航班信息 void print(); /输出航班信息
9、 void save(); /保存航班信息 void read(); /读取航班信息 void search(); /查找航班信息 void Delete(); /删除航班信息 void book(); /订票 void back(); /退票 void xiugai(); /修改航班信息private:int num;/航班号char start10;/起点站char arrive10;/终点站char time20;/起降时间int plane_num;/机票数量sN;/-定义顾客信息类-class customerfriend class plane;/有元类protected:int
10、id;/身份证号char name20;/姓名int pshu;/用户订票数量public:void read1();/读取数据void save1();/保存数据yhN;int i,j;/全局变量int m=0,y=0;/宏定义一个输出#define PRINT si.numsetw(13)si.startsetw(13)si.arrivesetw(13)si.timesetw(13)si.plane_numendl /定义输出格式/-主函数-void main()plane abc;/定义一个航班类的对象int j; docout 管理员密码:xinxi0701 endl;cout endl;cout -欢迎进入航空订票菜单-endl; /主界面cout|=|endl; cout | 1.新增航班 |endl;cout | 2.浏览航班信息 |endl; cout | 3.修改航班信息 |endl; cout | 4.查找航班信息 |endl; cout | 5.删除航班 |endl; cout | 6.订票 |endl; cout | 7.退票