版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、面向对象程序设计课程设计报告题目:民 航 订 票 系 统专业班级:xxxxxxxxx学生学号:1001学生姓名:XXXXXX指导教师:xxx完成日期:2012.6.11-6.15xxxxx大学课程设计(论文)任务书课程名称: 面向对象程序设计课程设计 校区: xxxx 班级: xxxx 学生姓名: _ 学号: _ 指导教师: xxxx 一、题目自己选择的题目二、目的与意义面向对象程序设计课程设计课程设计是计算机科学与技术专业实践性环节之一,通过课程设计的综合训练可以使学生进一步理解和掌握面向对象程序设计课程的基本知识;掌握面向对象程序设计的思路和方法;基本具有利用面向对象的方法以及 C+的编程
2、思想来完成系统设计的能力。三、要求 1. 要求利用面向对象的方法以及C+的编程思想来完成系统的设计;2. 要求在设计的过程中,建立清晰的类层次;3. 在系统中至少要定义一个类,类中要有各自的属性和方法;4. 在系统的设计中,至少要用到面向对象的一种机制。四、工作内容、进度安排 1. 根据课程设计的要求,确定设计题目;(0.5天)2. 查找相关资料,进行应用程序总体结构、使用功能的设计;(0.5天)3. 进行应用程序的界面设计和源程序代码的编写;(2.5天)4. 设计说明书的撰写、答辩(1.5天)五、主要参考文献1C+语言程序设计(第四版),郑莉,清华大学出版社,2010.72C+程序设计教程,
3、钱能主编,清华大学出版社,1999.43C+程序设计课程设计,刘振安,机械工业出版社,2004.8任务下达时间 2012 年 6 月 11 日指导教师(签字) 审核意见 指导教师签字:_目录1、需求分析11.1客户功能:11.2管理员功能12、系统设计22.1、功能结构图222、模块分析22.2.1. 添加航线22.2.2. 显示航班22.2.3. 查询航班22.2.4. 删除航班22.2.5. 预订订票32.3、界面设计33、系统实施63.1、系统运行环境63.2、程序类结构74、系统实施74.1、主界面74.2、管理员界面74.3、客户界面95、不足及改进96、心得体会107、源代码10-
4、 I -青岛科技大学高密校区1、需求分析为方便民航公司对航班信息的管理和订票的自动化,特设计此系统。由于c+程序的可移植性和可维护性较强,且数据比较安全,所以采用c+进行设计。根据客户需求,本系统共两个角色:客户、管理员。客户的任务是能够查询航线信息并进行客票预定,管理员的主要任务是对航班信息进行添加、删除、查询、显示,具体功能如下所示:1.1客户功能:(1)、航线查询功能:根据输入的起止城市信息查询航班,并显示其详细信息(行程、起飞时间、到达时间、航班号、机型、全价、座位总数、余票量) (2)、客票预订功能:根据输入的航班号和数量预订机票,办理手续并进行信息核对1.2管理员功能(1)、添加功
5、能:添加一个航班的信息,包括航班号、行程、起飞时间、到达时间、机型、全价、座位总数(2)、删除功能:按航班号对一个航班的信息进行删除(3)、显示功能:显示所有航班的详细信息(4)、航线查询功能:根据输入的起止城市信息查询航班,并显示其详细信息(行程、起飞时间、到达时间、航班号、机型、全价、座位总数、余票量)2、系统设计2.1、功能结构图根据需求分析,此系统的功能结构图如下所示:民航订票系统管理员模块客户模块添加航班删除航班查询航班显示航班查询航班预订客票按航班号查询按航线查询按航班号查询按航线查询22、模块分析2.2.1. 添加航线系统将提示用户输入新添加的航班的信息,插入在链表中2.2.2.
6、 显示航班显示模块将输出航班的详细信息。2.2.3. 查询航班首先由用户输入要查找的航班号或起始地点,然后系统用查找函数查找,然后系统就调用输出函数,输出所查找的航班资料。2.2.4. 删除航班首先由用户输入要删除的航班号,然后调用删除函数,删除该航班的资料。2.2.5. 预订订票 由用户输入航班号和订票数目,系统判断能满足用户需求则输出“订票成功”信息。2.3、界面设计民航订票系统的主界面如下所示:* 欢迎使用民航订票系统 开发者 XXXXXXXX*请选择您的帐户类型:1、管理员账户2、普通用户帐户请输入序号并按回车确认(1)、选择1进入管理员菜单:管理员您好,请选择您要进行的操作1、添加一
7、个航班2、删除一个航班3、查询航班信息(按航班号)4、查询航班信息(按航线)5、显示全部信息请输入序号并按回车确认执行功能,输入n并确认退出选择1进入添加信息模块:请输入您要添加的航班信息:出发地点: 南京目的地点: 北京起飞时间:时:5分:43到达时间:时:7分:50航班号: Bn23dt机型: 747全价: 200座位总数: 100您输入的信息是: 出发地点 目的地点 起飞时间 到达时间 航班号 机型 全价 座位总数 剩余票数 南京 北京 05:43 07:50 Bn23dt 747 200 100 100 要继续添加请输入y并回车确认,否则输入n并确认回到菜单选择2进入删除信息模块:请输
8、入您要删除的航班号n23dt航班Bn23dt已成功删除要继续删除 请输入y并回车确认,否则输入n并确认回到菜单选择3进入按航班号查询信息模块请输入您要查找的航班号n23dt 出发地点 目的地点 起飞时间 到达时间 航班号 机型 全价 座位总数 剩余票数 北京 南京 05:43 07:50 Bn23dt 737 150 100 100查找已完成按任意键返回菜单选择4进入按航程查询信息模块:请输入起始地点北京请输入目的地点南京 出发地点 目的地点 起飞时间 到达时间 航班号 机型 全价 座位总数 剩余票数 北京 南京 05:43 07:50 Bn23dt 737 150 100 100查找已完成按
9、任意键返回菜单选择5进入显示全部信息模块:全部航班信息 出发地点 目的地点 起飞时间 到达时间 航班号 机型 全价 座位总数 剩余票数 nanjing Beijing 05:43 06:54 bn23dt 747 200 100 100 北京 南京 05:43 07:50 Bn23dt 737 150 100 100按任意键返回菜单(2)、选择2进入普通用户菜单:用户您好,请选择您要进行的操作1、查询航班信息(按航班号)2、查询航班信息(按航线)3、订购机票请输入序号并按回车确认执行功能,输入n并确认退出选择1进入按航班号查询信息模块请输入您要查找的航班号n23dt 出发地点 目的地点 起飞时
10、间 到达时间 航班号 机型 全价 座位总数 剩余票数 北京 南京 05:43 07:50 Bn23dt 737 150 100 100选择2进入按航程查询信息模块:请输入起始地点北京请输入目的地点南京 出发地点 目的地点 起飞时间 到达时间 航班号 机型 全价 座位总数 剩余票数 北京 南京 05:43 07:50 Bn23dt 737 150 100 100查找已完成按任意键返回菜单选择3进入订票模块:请输入您要订购的航班号n23dt请输入您要订购的机票数量2订票成功!3、系统实施3.1、系统运行环境硬件环境 CPU:P4 3.0 G以上; 内存:1GB以上; 硬盘:硬盘80G;软件环境 操
11、作系统: Windows XP 开发软件: Microsoft Visual C+ 6.03.2、程序类结构class Time / Time类 用于操作飞机起降时间class Flight /Flight类 用于操作航班节点class FlightList: public Flight / FlightList类的声明 用于操作链表class Menu /menu类的声明 处理菜单操作4、系统实施4.1、主界面4.2、管理员界面选择1选择2选择3选择4选择54.3、客户界面选择1选择2选择35、不足及改进这个程序有许多模块组成,模块之间又存在各种包含或调用关系,如果用c语言来实现,虽然程序并
12、不长,后期的调试和修改恐怕也会让人非常头疼,而c+中类的定义和使用使得各种模块相对更加独立,功能分担也更加鲜明,程序容易读,也容易调试和修改。此外,实际动手做一做,才发现c+这门语言有很多细节是当初复习笔试是没有注意到的,对c+的掌握程度和运用能力与编程前有了很大的提高。在编程过程中,格式出错最多的是对类的成员函数进行定义时,常常忘记限定作用域,导致函数无法调用;而内容上出错最多的则是与指针有关的内容,以后编程时还应努力改正。6、心得体会由于对这门语言掌握尚未熟练,编程进度较慢,因此没有时间实现一些功能,比如登录密码的控制,订票人信息的采集,图形界面等等,不过经过这次的锻炼,相信以后编程会越来
13、越完善。7、源代码Time.h#ifndef TIME_H#define TIME_H#include <iostream.h>class Time / Time类的声明private:int hour; int minute; public:int getHour();/返回小时int getMinute();/返回分钟friend istream &operator >>(istream &in,Time &time); /重载""friend ostream &operator <<(ostream
14、&out,Time &time); /重载""#endifTime.cpp#include <iostream.h>#include "Time.h"int Time:getHour()/返回小时return hour;int Time:getMinute()/返回分钟return minute;istream &operator >>(istream &in,Time &time) /重载""cout<<"时:"in>>tim
15、e.hour;while(time.hour>23|time.hour<0)cout<<"输入错误,请重新输入"<<endl;cout<<"时:"in>>time.hour;cout<<"分:"in>>time.minute;while(time.minute>59|time.minute<0)cout<<"输入错误,请重新输入"<<endl;cout<<"分:"i
16、n>>time.minute;return in;ostream &operator <<(ostream &out,Time &time) /重载""if(time.hour<10&&time.minute<10)out<<'0'<<time.hour<<":"<<'0'<<time.minute;else if(time.hour<10)out<<'0'
17、;<<time.hour<<":"<<time.minute;else if(time.minute<10)out<<time.hour<<":"<<'0'<<time.minute;elseout<<time.hour<<":"<<time.minute;return out;Flight.h#ifndef FLIGHT_H#define FLIGHT_H#include "Time
18、.h"class Flightprotected:char start30;/出发地点char destination30;/目的地点Time takeoff;/起飞时间Time descent;/到达时间char flightNumber7;/航班号char type4;/机型int price;/全价int seats;/座位总数int ticketLeft;/余票量public:Flight *next; /下一个节点Flight *previous; /上一个节点public:void set();/Flight类的设置函数char *getstart(); /返回出发地点c
19、har *getDestination();/返回目的地点char *getFlightNumber();/返回航班号int getTicketLeft();/返回剩余票量void setStart(); /设置出发地点void setDestination();/设置目的地点void setTakeoff(); /设置起飞时间void setDescent(); /设置到达时间void setFlightNumber(); /设置航班号void setType(); /设置机型void setPrice(); /设置全价void setSeats(); /设置座位总数void setTick
20、etLeft(int); /设置余票量 friend istream & operator >>(istream &in,Flight &flight); /重载""friend ostream & operator <<(ostream &out,Flight &flight); /重载""#endifFlight.cpp#include <iostream.h>#include <iomanip.h>#include "Flight.h"
21、;char *Flight:getstart()/返回出发地点return start;char *Flight:getDestination()/返回目的地点return destination;char *Flight:getFlightNumber()/返回航班号return flightNumber;int Flight:getTicketLeft()/返回剩余票量return ticketLeft;void Flight:setStart() /设置出发地点cin>>start;void Flight:setDestination()/设置目的地点cin>>d
22、estination;void Flight:setTakeoff() /设置起飞时间cin>>takeoff; void Flight:setDescent() /设置到达时间cin>>descent; void Flight:setFlightNumber() /设置航班号cin>>flightNumber;void Flight:setType() /设置机型cin>>type;void Flight:setPrice() /设置全价cin>>price;void Flight:setSeats() /设置座位总数cin>
23、>seats;void Flight:setTicketLeft(int n) /设置余票量 ticketLeft=n;istream & operator >>(istream &in,Flight &flight) /重载""cout<<"请输入您要添加的航班信息:"<<endl;cout<<"出发地点:"in>>flight.start;cout<<"目的地点:"in>>flight.destin
24、ation;cout<<"起飞时间:"<<endl;in>>flight.takeoff;cout<<"到达时间:"<<endl;in>>flight.descent;while(flight.takeoff.getHour()>=flight.descent.getHour()|(flight.takeoff.getHour()=flight.descent.getHour()&&flight.takeoff.getMinute()>=flight.de
25、scent.getMinute()cout<<"时间输入错误,请重新输入:"<<endl;cout<<"起飞时间:"in>>flight.takeoff;cout<<"到达时间:"in>>flight.descent;cout<<"航班号:"in>>flight.flightNumber;cout<<"机型:"in>>flight.type;cout<<"
26、全价:"in>>flight.price;cout<<"座位总数:"in>>flight.seats;flight.ticketLeft=flight.seats; return in;ostream & operator <<(ostream &out,Flight &flight) /重载""out<<setw(10)<<flight.start<<setw(10)<<flight.destination<<&
27、quot; "<<flight.takeoff<<" "<<flight.descent<<setw(8)<<flight.flightNumber<<setw(6)<<flight.type<<setw(5)<<flight.price<<setw(10)<<flight.seats<<setw(10)<<flight.ticketLeft<<endl;return out;FlightList.
28、h#ifndef FLIGHTLIST_H#define FLIGHTLIST_H#include "Flight.h"#include <iostream.h>class FlightList: public Flightprotected:Flight *head;/链表头Flight *tail;/链表尾public:FlightList(); /构造函数void add(); /添加函数 void remove(); /删除函数void display(Flight *); /显示函数int findByFlight(); /查找函数(按航程)int f
29、indByFlightNumber(); /查找函数(按航班号)void displayAll(); /显示全部 void save(); /写入文件 void load(); /读进内存void destroy();/删除链表void bespeak();/订购机票FlightList(); /析构函数;#endifFlightList.cpp#include <string.h>#include <fstream.h>#include <stdlib.h>#include <conio.h>#include <iomanip.h>
30、#include "FlightList.h"FlightList:FlightList()head=new Flight;tail=new Flight;head->next=tail;tail->previous=head;head->previous=tail->next=NULL;void FlightList:add() /添加函数Flight *p;p=new Flight;tail->previous->next=p;p->previous=tail->previous;p->next=tail;tail-
31、>previous=p;cin>>*p;cout<<"您输入的信息是:"<<endl;display(p);/display(head->next);void FlightList:remove() /删除函数Flight *p=head->next;int sign=0;char number7;cout<<"请输入您要删除的航班号"<<endl;cin>>number;p->previous=head;while(p!=tail)if(!strcmp(p-
32、>getFlightNumber(),number)p->previous->next=p->next;delete p;cout<<"航班"<<number<<"已成功删除"<<endl;+sign;break;elsep->previous=p;p=p->next;if(sign=0)cout<<"您要删除的信息不存在"<<endl;void FlightList:display(Flight *result) /显示函数c
33、out<<setw(10)<<"出发地点"<<setw(10)<<"目的地点"<<setw(10)<<"起飞时间"<<setw(10)<<"到达时间"<<setw(8)<<"航班号"<<setw(6)<<"机型"<<setw(5)<<"全价"<<setw(10)<<&
34、quot;座位总数"<<setw(10)<<"剩余票数"<<endl;cout<<*result<<endl;int FlightList:findByFlight() /查找函数(按航程)int sign=0;Flight *p=head->next;char s30,d30;cout<<"请输入起始地点"<<endl;cin>>s;cout<<"请输入目的地点"<<endl;cin>>
35、d;while(p!=tail)if(!strcmp(p->getstart(),s)if(!strcmp(p->getDestination(),d)display(p);+sign;p=p->next;return sign;void FlightList:bespeak()/订购机票Flight *p=head->next;char f7;int n;cout<<"请输入您要订购的航班号"<<endl;cin>>f;cout<<"请输入您要订购的机票数量"<<end
36、l;cin>>n;while(p!=tail)if(!strcmp(p->getFlightNumber(),f)break;p=p->next;if(p=tail)cout<<"您要订购的航班不存在,请查询其他合适的航班"<<endl;else if(p->getTicketLeft()=0)cout<<"您要订购的航班票已售完,请查询其他合适的航班"<<endl;else if(p->getTicketLeft()-n<0)cout<<"剩
37、余票数不能满足您的要求,请重新操作"<<endl;elsecout<<"订票成功!"<<endl;p->setTicketLeft(p->getTicketLeft()-n);int FlightList:findByFlightNumber() /查找函数(按航班号)int sign=0;Flight *p=head->next;char f7;cout<<"请输入您要查找的航班号"<<endl;cin>>f;while(p!=tail)if(!strc
38、mp(p->getFlightNumber(),f)display(p);+sign;p=p->next;return sign;void FlightList:displayAll() /显示全部函数Flight *p;p=head->next;cout<<"全部航班信息"<<endl;cout<<setw(10)<<"出发地点"<<setw(10)<<"目的地点"<<setw(10)<<"起飞时间"
39、<<setw(10)<<"到达时间"<<setw(8)<<"航班号"<<setw(6)<<"机型"<<setw(5)<<"全价"<<setw(10)<<"座位总数"<<setw(10)<<"剩余票数"<<endl;while(p!=tail)cout<<*p;p=p->next;cout<<&
40、quot;按任意键返回菜单"<<endl;getch();void FlightList:save() /写入文件ofstream outputFile;Flight *p=head->next;outputFile.open("Flight.dat",ios:binary);if(!outputFile)cout<<"文件打开失败!"<<endl;exit(0);while(p!=tail)outputFile.write(char *)p,sizeof(*p);p=p->next;cout&l
41、t;<"保存文件成功"<<endl;outputFile.close();void FlightList:load() /读进内存ifstream inputFile;Flight *p;inputFile.open("Flight.dat",ios:binary);if(!inputFile) cout<<"文件打开失败!"<<endl;exit(0);p=new Flight;inputFile.read(char *)p,sizeof(*p);while(!inputFile.eof()
42、tail->previous->next=p;p->previous=tail->previous;p->next=tail;tail->previous=p;p=new Flight;inputFile.read(char *)p,sizeof(*p);inputFile.close();void FlightList:destroy()/删除链表Flight *p=head->next,*q=p->next;while(p!=tail)delete p;p=q;q=p->next;FlightList:FlightList() /析构函
43、数delete head;delete tail;Menu.h#ifndef MENU_H#define MENU_H#include "FlightList.h"class Menupublic:FlightList list;public:void logOn();/登录界面void administrator();/管理员菜单void user();/用户菜单;#endifMenu.cpp#include "menu.h"#include <conio.h>#include <stdlib.h>void Menu:logOn
44、()/登录界面char choice=' 'cout<<"*"<<endl;cout<<" 欢迎使用民航订票系统"<<endl;cout<<" 开发者 ruoshui"<<endl;cout<<"*"<<endl;while(choice!='1'&&choice!='2')cout<<endl;cout<<endl;cout<
45、<"请选择您的帐户类型:"<<endl;cout<<"1、管理员账户"<<endl;cout<<"2、普通用户帐户"<<endl;cout<<"请输入序号并按回车确认"<<endl;cin.get(choice);if(choice='1')administrator();break;if(choice='2')user();break;break;void Menu:user()/用户菜单ch
46、ar adChoice;char judge='y'cout<<endl;cout<<endl;cout<<"用户您好,请选择您要进行的操作"<<endl;cout<<"1、查询航班信息(按航班号)"<<endl;cout<<"2、查询航班信息(按航线)"<<endl;cout<<"3、订购机票"<<endl;cout<<"请输入序号并按回车确认执行功能,输入
47、n并确认退出"<<endl;cin.ignore();cin.get(adChoice);while(adChoice='1'|adChoice='2'|adChoice='3'|adChoice='4'|adChoice='5')if(adChoice='1')cout<<endl;if(list.findByFlightNumber()cout<<"查找已完成"<<endl;cout<<"按任意键
48、返回菜单"<<endl;getch();elsecout<<"您输入的航班不存在"<<endl;cout<<"按任意键返回菜单"<<endl;getch();if(adChoice='2')cout<<endl;if(list.findByFlight()cout<<"查找已完成"<<endl;cout<<"按任意键返回菜单"<<endl;getch();elsecout
49、<<"您输入的航班不存在"<<endl;cout<<"按任意键返回菜单"<<endl;getch();if(adChoice='3')list.bespeak();cout<<endl;cout<<endl;cout<<"请选择您要进行的操作"<<endl;cout<<"1、查询航班信息(按航班号)"<<endl;cout<<"2、查询航班信息(按航线)&qu
50、ot;<<endl;cout<<"请输入序号并按回车确认执行功能,输入其他字符并确认退出"<<endl;cin.ignore();cin.get(adChoice);void Menu:administrator()/管理员菜单char adChoice;char judge='y'cout<<endl;cout<<endl;cout<<"管理员您好,请选择您要进行的操作"<<endl;cout<<"1、添加一个航班"<<endl;cout<<"2、删除一个航班"<<endl;cout<<"3、查询航班信息(按航班号)"<<endl;cout<<"4、查询航班信息(按航线)"<<endl;cout<<"5、显示全部信息"<<endl;cout<<"请输
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年全职妈妈离婚前个人信用与征信报告查询服务合同2篇
- 2025年度临街店面租赁与租赁保证金退还条件合同4篇
- 2025年智能车棚租赁管理服务合同4篇
- 2025年产业园智能制造合作共建合同4篇
- 二零二五年度企业员工食堂外包服务合同4篇
- 2025年跨境电子商务物流配送承包合同4篇
- 2025年度国际航空业出国务工人员服务协议4篇
- 本质安全事故预防与应急救援的措施
- 2025版全新供电局供配电设备租赁合同下载2篇
- 2025年度水电安装工程安全责任承包合同范本4篇
- C及C++程序设计课件
- 带状疱疹护理查房
- 公路路基路面现场测试随机选点记录
- 平衡计分卡-化战略为行动
- 国家自然科学基金(NSFC)申请书样本
- 幼儿教师干预幼儿同伴冲突的行为研究 论文
- 湖南省省级温室气体排放清单土地利用变化和林业部分
- 材料设备验收管理流程图
- 培训机构消防安全承诺书范文(通用5篇)
- (完整版)建筑业10项新技术(2017年最新版)
- 第8期监理月报(江苏版)
评论
0/150
提交评论