航空公司售票系统(沈航C语言课设)报告及代码

合集下载

航空售票系统C课程设计源代码

航空售票系统C课程设计源代码

#include <string.h>#include <iostream.h>#define M 5//每种飞机票的总数目#define N 3//飞机票的总数目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++;}//旅客数目增加函数};Plane pl[N];int showmenu();//菜单函数void start();//初始化函数void query();//查询函数void make();//订票函数void back();//退票函数int main(){cout<<"这是民航售票处的计算机系统程序"<<endl;start();while(1){int choice;choice=showmenu();switch(choice){case 1:query();break;case 2:make();break;case 3:back();break;case 0:return 0;default:cout<<"你敲错了!\n";}}return 0;}int showmenu(){int ch;cout<<endl;cout<<"请选择你要执行的功能"<<endl;cout<<"1:查询航线"<<endl;cout<<"2:承办订票业务"<<endl;cout<<"3:承办退票业务"<<endl;cout<<"0:退出程序的运行"<<endl;cin>>ch;return ch;}void start(){for(int i=0;i<N;i++){pl[i].init();cout<<endl;}}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;}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++){cout<<"座位号";cin>>sitnumber;}}else{cout<<"余票额少于订票额,请重新输入订票数额,"<<"订票数额应该少于或等于"<<pl[i].getleft();cin>>nu;if(nu<=pl[i].getleft()){cout<<"此航班有票"<<endl;pl[i].deleft(nu);pl[i].inn();pl[i].flag[pl[i].getn()]=1;for(i=0;i<N;i++){cout<<"座位号";cin>>sitnumber;}}else{cout<<"是否需要预约"<<endl;cout<<"是(1) 否(2)"<<endl;cin>>ch;switch(ch){case 1:pl[i].inn();pl[i].flag[pl[i].getn()]=-1;break;case 2:break;default:cout<<"你敲错了!"<<endl;}}}}if(num==0)cout<<"没有此航班"<<endl;}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;}。

C语言数据结构课程设计航空订票实验报告(含源代码)

C语言数据结构课程设计航空订票实验报告(含源代码)

一、设计要求任务通过此系统可以实现如下功能:1.录入航班信息:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据定)2.查询航班:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,确定航班是否满仓);3.订票:(订票情况可以存在一个数据文件中,结构自己设定);4.退票:可退票,退票后修改相关数据文件;5.修改航班信息6.退出程序客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。

修改航班信息:当航班信息改变可以修改航班数据文件要求:根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能;二、设计概要主界面选择操作项目1.录入航班信息通过单链表这种数据结构,设置了剩余票数,航班号,出发地点,到达地点,起飞日期,出发时间,到达时间,票价。

2.订票输入旅客的姓名,证件号,航班号,和订票张数。

程序中自动查询输入要定的航班号,如果没有则叫其重新输入,有则执行:票数足够则订票成功,票数不充足叫其选择其它航班。

此也采用单链表的数据结构。

3.退票要旅客输入订单号,查询航班号,没有此航班号则叫旅客核对。

有则执行:1)查询旅客的航班2)修改航班的剩余票数。

3)删除旅客订票信息。

4)退票成功,显示剩余票数。

4.查询输入航班号,有与之匹配的航班则输出之,没有则说没有此航班5.修改航班信息查询到要修改的航班,然后直接进行修改6.退出程序三、设计中主要用到的结构体typedef struct P//旅客机票信息{char name[10];//姓名int ordernum;//机票编号char num[10];//旅客证件号struct P *next;int ticketnum;//订票张数int flightn;//航班号}person;typedef struct node//航班信息{ int ticket;//剩余票数int flightnum;//航班号char startadd[20];//出发地点char arriveadd[20];//到达地点char startdate[20];//出发日期char starttime[10];//出发时间char arrivetime[10];//到达时间int price;//票价struct node *next;}LinkList;四、主要函数void dingpiao(LinkList *&L,person *&p)//订票函数void write(LinkList *&L)//航班信息录入函数void showF(LinkList *fn)//展示航班信息的函数void showT(LinkList *L1,person *p1)//展示机票信息的函数void tuipiao(LinkList *&L,person *p)//退票函数void xiugai(LinkList *&L)//修改航班信息的函数void scr()//主界面函数void chaxun(LinkList *&L)//查询函数int main()//主函数,定义为int型五、变量说明1.在主函数中LinkList *h 表示航班节点person *p 表示机票信息节点2.在其他函数中一般也用 r,p,f等表示链表指针i j m等表示int变量六、演示截图1.航班信息录入2.订票3.退票4.查询5.修改航班信息6.主界面、七、实验心得体会1.巩固和加深了对数据结果的理解,提高综合运用本课程所学知识的能力2.培养了我选用参考书,查阅手册及及文献资料的能力。

航空订票系统课程设计(c语言)

航空订票系统课程设计(c语言)

航空订票系统课程设计(c语言)一、教学目标本课程旨在通过学习航空订票系统的开发,让学生掌握C语言编程的基本概念和方法,培养学生的实际编程能力和问题解决能力。

具体目标如下:1.理解C语言的基本语法和数据结构。

2.掌握函数的定义和调用。

3.学习面向对象编程的基本概念。

4.能够使用C语言编写简单的程序。

5.能够运用面向对象编程的思维解决实际问题。

6.能够独立完成航空订票系统的开发。

情感态度价值观目标:1.培养学生的团队合作意识和沟通能力。

2.培养学生的创新思维和问题解决能力。

3.培养学生对编程语言和计算机科学的兴趣和热情。

二、教学内容本课程的教学内容主要包括C语言的基本语法、数据结构、函数的定义和调用,以及面向对象编程的基本概念。

具体安排如下:1.C语言的基本语法和数据结构(2课时)。

2.函数的定义和调用(2课时)。

3.面向对象编程的基本概念(2课时)。

4.航空订票系统的开发实践(4课时)。

三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等。

1.讲授法:用于讲解C语言的基本语法、数据结构和函数的定义和调用。

2.讨论法:用于讨论面向对象编程的基本概念,促进学生之间的交流和思考。

3.案例分析法:通过分析航空订票系统的案例,让学生理解和应用所学的编程知识。

4.实验法:通过实际编写程序和开发航空订票系统,培养学生的实际编程能力和问题解决能力。

四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将准备以下教学资源:1.教材:选择一本适合学生水平的C语言编程教材。

2.参考书:提供相关的编程参考书籍,供学生自主学习。

3.多媒体资料:制作相关的教学PPT和视频,帮助学生更好地理解和掌握知识。

4.实验设备:提供计算机实验室,让学生能够实际编写程序和进行实验。

五、教学评估本课程的评估方式将包括平时表现、作业和考试三个部分,以全面客观地评价学生的学习成果。

C语言数据结构课程设计航空订票实验报告(含源代码)

C语言数据结构课程设计航空订票实验报告(含源代码)

数据结构课程设计实验报告设计题目__________________________________________________________________ 设计者__________________________________________________________________ 指导老师__________________________________________________________________ 班级___________________________________________________________________ 学号____________________________________________________________________一、设计要求任务通过此系统可以实现如下功能:1.录入航班信息:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据定)2.查询航班:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,确定航班是否满仓);3.订票:(订票情况可以存在一个数据文件中,结构自己设定);4.退票:可退票,退票后修改相关数据文件;5.修改航班信息6.退出程序客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。

修改航班信息:当航班信息改变可以修改航班数据文件要求:根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能;二、设计概要主界面选择操作项目1.录入航班信息通过单链表这种数据结构,设置了剩余票数,航班号,出发地点,到达地点,起飞日期,出发时间,到达时间,票价。

2.订票输入旅客的姓名,证件号,航班号,和订票张数。

程序中自动查询输入要定的航班号,如果没有则叫其重新输入,有则执行:票数足够则订票成功,票数不充足叫其选择其它航班。

此也采用单链表的数据结构。

C语言课程设计报告飞机订票系统

C语言课程设计报告飞机订票系统

C语言课程设计报告飞机订票系统摘要本文是关于C语言课程设计报告飞机订票系统,它具有灵活的菜单,可以让用户轻松查看有关航班信息的详细信息,并用于购买操作。

本文旨在概述程序的全部运行流程,运用相关编程技术来实现订票系统。

关键词:C 语言课程设计,飞机订票系统,编程技术1 引言随着科技的不断发展,传统的人工订票系统已经不能满足人们的复杂需求,订票系统需要采用新技术来改进,以适应现代用户的需求。

为了建立一个高效的订票系统,我们开发了一个飞机订票系统。

它具有基于菜单式界面的灵活性,可以有效地实现飞机航班信息的查询,购票和航班信息的管理。

本报告着重介绍了构筑飞机订票系统的过程,旨在介绍编程技术以及每个模块的函数、功能实现,并概述程序的全部运行流程。

2 技术框架编写本程序的主要语言是C,采用层次功能模块结构设计,分为用户界面,数据管理,查询服务,支付服务和关系维护四个主要模块。

(1)用户界面用户界面模块主要实现功能是提供用户访问的菜单界面,用户可以在输入信息后,访问系统并根据输入信息获取反馈,进行下一步操作。

(2)数据管理数据管理包含数据结构和文件管理模块,它用来存储和管理航班信息、乘客信息等有关数据,数据在使用后可以及时写入文件。

(3)查询服务查询服务模块提供用户查询航班信息所必需的功能,根据用户输入的查询条件,提供精确的查询结果。

(4)支付服务支付服务模块用来实现订票系统和外围支付系统或服务的接口,以进行订票支付操作,以保证系统订票的安全性。

(5)关系维护关系维护模块主要负责订票系统的关系维护,保证数据的一致性,以及相联的航班和乘客信息之间的一致性。

3 设计实现(1)用户界面模块用户界面模块主要是用户与系统的交互界面,用C语言的标准输入输出实现,通过“while-switch”语句实现对不同功能的跳转。

(2)数据管理模块数据管理模块采用数组和二维字符串实现,能够有效地存储和进行订票,查询,修改和删除数据。

(完整word版)C语言课程设计——航空售票系统范文

(完整word版)C语言课程设计——航空售票系统范文

本模板是课程设计报告模板,请各位同学认真阅读以下要求:1.页删除)2.3.本设计报告左侧装订。

在虚线处装订.4.在课程设计封皮一页上用已经设置好的宋体四号来填写各个项目.5.在课程设计评定表一页上用宋体小四填写班级、学号、姓名、项目组、项目组长、项目组组员、本人工作简介。

组长评语一栏应由组长来给出。

6.在课程设计任务书一页的开头应按照给定的设置(黑体三号)填写好你的班级,在第五项时间安排里面应用宋体五号加粗来填写好日期范围。

7.从程序基本框架结构图开始到设计报告的最后一页都要求有页眉,内容为你的课程设计题目,宋体小五居中。

页脚中的页码已经设置好,同学们不必改动.8.在程序基本框架结构图采用WORD中的自选图形绘制程序基本框架结构图,也就是程序流程图。

9.在程序设计说明书中应该描述程序的设计思想,重点描述自己做的那部分的设计思想。

字体用宋体小四。

10.在代码清单中打印程序已经调试好的可运行的程序代码。

要求字体为宋体五号。

(页数可增加)11.报告的最后一部分是设计总结,应在程序代码之后另起一页,主要写通过一周课程设计你自己的体会,包括你学到了什么,哪里遇到了困难解决的办法以及今后的目标。

字体用宋体小四。

12.报告的各个部分都可以不为规定的一页,自己可增加页数,但要保证开始另外一项要另起一页。

13. 服务课程名称:本科添写:C语言;/专科添写:计算机语言(c)14. 报告完成后,要更新目录.方法为:单击目录左侧,选定整个目录后,按F9键更新目录。

课 程 设 计目录C 语言课程设计成绩评定表 .............................C 语言课程设计任务书 ....................................程序设计思路 ..................程序基本框架结构图 .................... 错误!未定义书签。

系统运行界面截图 ....................... 错误!未定义书签。

c语言程序设计飞机,C语言程序设计――飞机订票系统

c语言程序设计飞机,C语言程序设计――飞机订票系统

c语⾔程序设计飞机,C语⾔程序设计――飞机订票系统《C语⾔程序设计――飞机订票系统》由会员分享,可在线阅读,更多相关《C语⾔程序设计――飞机订票系统(7页珍藏版)》请在⼈⼈⽂库⽹上搜索。

1、C语⾔程序设计飞机订票系统代码如下:”#include stdio.h#include stdlib.h#include string.h#define LEN sizeof (struct plane)#define MAX 10;struct planechar destination12;char num10;char time12;int price;int amount;typedef struct plane PLANE;PLANE a100;void menu();void input();void search();void preserve();void planeadd()。

2、;void delplane();void main()system(cls);menu();void menu()char *menu = * 欢迎进⼊飞机订票系统*, a:输⼊航线 , b:查询航线 , c:退订票系统 , d:追加航线 , e:删除航线 , f: 退出 ,* ;int i;char NO;int quit = 0;dosystem(cls);for (i = 0; i9; i+)printf(n%s,menui);printf(n请输⼊服务代码a,b,c,d,e或fn);NO = getchar();switch (NO)casea: input(); break;ca。

3、seb: search(); break;casec: preserve(); break;cased: planeadd(); break;casee: delplane(); break;casef: quit = 1; break; while (!quit);void input()int i, n;FILE *fp;system(cls);if (fp = fopen(D:file, wb) = NULL)printf(error!n); exit(0);printf(n请输⼊航班总数n:);scanf(%d, &n);printf(n请按下⾯提⽰输⼊航班信息:起点站:沈阳);for。

c语言航班售票系统课程设计报告航班售票系统

c语言航班售票系统课程设计报告航班售票系统

计算机科学与技术系课程设计报告2008~2009学年第二期课程程序设计语言Ⅱ课程设计课程设计名称航班售票系统一、课程设计题目课程设计名称:航班售票系统设计内容:设计一个航班售票系统系统,能够对航空公司的售票进行管理。

航空公司的售票系统主要包括:航线信息、订票业务、退票业务。

任务和要求1.航线信息:每条航线包括航班号,飞机号,目的地,订票数,余票数,共5项。

现有3条航线:目的地北京,上海,广州。

飞机可乘100人(初始定票数为0,余票数为100)。

将这些信息存入文件中。

2.订票业务:(1).客户信息包括姓名,航班号,座位号(初始为0),假设已有3个客户信息存入文件。

(2).有新客户订票时,先输入姓名和航班号,查询情况,如果还有余票,就为这个客户办理订票手续,分给客户一个座位号,然后写入文件,并修改文件,若无余票,则输出客户已满3.退票业务:根据客户提出的航班号,办理退票,从文件中删除这个客户的信息,并修改中相应的航线的订票数和余票数输出全部航线的信息和全部客户信息,退出系统。

二、问题的分析首先这是一个管理系统,有两个大类乘客和飞机,所以要定义2个类,又因为需要进行文件的操作,那么可以再定义2个类,乘客信息类,飞机信息类用于储存多个信息。

界面操作当然需要用switch语句实现,case时调用到函数。

三、算法的设计我设计的这个航空管理系统运用到了条件判断,switch语句,循环语句,类与对象,对象数组,对象指针,类与类的嵌套,文件的写入写出等知识点。

整体的构思:设计了四个类飞机信息库类,乘客类,乘客信息库类。

飞机类包含了飞机的一些基本属性,有航班号,飞机号,目的地,余票数,已定票数等信息class Flight //飞机类{private:int note; //删除标记 1:已删,0:未删int flightnum; //航班号int planenum; //飞机号char destination[20]; //目的地int bookednum; //已定票数int refundnum; //余票public:Flight():bookednum(0),refundnum(100){}char *getdes(){return destination;}int getnote(){return note;}int getflightnum(){return flightnum;}int getplanenum(){return planenum;}void setrefund() //订票后对余票和已定票数的操作{bookednum++;refundnum--;}void delrefund() //退票后对余票和已定票数的操作{bookednum--;refundnum++;}void setname(char de[]){strcpy(destination,de);}void delplane() //删除飞机的操作{note=1;}void addplane(int n,int m, char *de) //增加飞机{note=0;flightnum=m;planenum=n;strcpy(destination,de);}void list(){cout<<"飞机号"<<" "<<" 航班号"<<" "<< "目的地"<<" "<<"已定票数"<<" "<<"剩余票数"<<endl;cout<<planenum<<" "<<setw(5)<<flightnum<<""<<setw(10)<<destination<<" "<<setw(5)<<bookednum<<" "<<setw(5)<<refundnum<<endl;}};飞机信息库类内嵌了一个飞机类的对象数组作为飞机信息库类的私有成员,每一个飞机的信息都是一个对象,都储存在了飞机类的对象数组中,通过这个数组进行对单个或多个飞机对象属性的一些操作,飞机信息库类中还包括界面操作选择的程序,其中还有信息的写入文件,读取文件中的数据的功能class FDatabase //飞机信息库类{private:int top; //记录数组下标Flight Fl[Maxp]; //飞机类的对象数组public:FDatabase(){Flight f;top=-1;fstream file("airline.dat",ios::in); //文件打开while(1){file.read((char *)&f,sizeof(f));if(!file)break;top++;Fl[top]=f;}file.close();}void clear() //清楚所有航班的操作{top=-1;cout<<"航班信息已删除!"<<endl;}int addplane(int n,int m,char *de) //增加飞机{Flight *fl=query(n);if(fl==NULL){top++;Fl[top].addplane(n,m,de);return 1;}return 0;}Flight *query(int pflightnum) //对象指针用于查找等操作{for(int i=0;i<=top;i++)if(Fl[i].getflightnum()==pflightnum && Fl[i].getnote()==0) return &Fl[i];return NULL;}Flight *query1(int pplanenum){for(int i=0;i<=top;i++)if(Fl[i].getplanenum()==pplanenum && Fl[i].getnote()==0) return &Fl[i];return NULL;}void list(){for(int i=0;i<=top;i++)if(Fl[i].getnote()==0)Fl[i].list();}void planedata();~FDatabase(){fstream file("airline.dat",ios::out);for(int i=0;i<=top;i++)if(Fl[i].getnote()==0)file.write((char *)& Fl[i],sizeof(Fl[i]));file.close();}};乘客类包含了乘客的一些基本属性,有姓名,航班号,座位号,客户编号等属性class Passenger //乘客类{private:int note; //删除标记 1:已删,0:未删int flightnum; //航班号char name[20]; //乘客姓名int ID; //乘客编号int seatnum; //座位号public:Passenger():seatnum(0){}char *getname(){return name;}int getnote() //返回删除标记{return note;}int getID(){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<<"客户姓名"<<" "<<"客户编号"<<" "<<"已定航班号"<<" "<<"座位号"<<endl;cout<<name<<" "<<setw(5)<<ID<<" "<<setw(5)<<flightnum<<" "<<setw(5)<<seatnum<<endl;}};乘客信息库类与飞机信息库类实现的功能原理类似,记录了乘客类的对象数组。

C语言课程设计_飞机订票系统源代码

C语言课程设计_飞机订票系统源代码

#include<stdio.h> //标准输入、输出头文件#include<string.h> //包含字符串函数处理头文件#include<process.h> //包含access函数的头文件#define N 9999 //定义最多的航班数#define PRINT "%d\t\t%s\t\t%s\t\t星期%s\t\t%d\n ",s[i].num,s[i].start,s[i].over,s[i].time,s[i].count //宏定义输出格式struct air //定义结构体数组{int num; //定义航班号char start[20]; //航班起始站char over[20]; //终点站char time[10]; //飞行时间int count; //机票数量}s[N];int i,m=0; //定义全局变量char ii[10];void add(); //函数声明增加航班信息函数void print(); //显示航班信息void search(); //查找航班信息void dingpiao(); //订票业务void tuipiao(); //退票void read(); //读取文件void save(); //保存文件void output(); //输出格式void paixu(); //航班排序void chushihua(); //系统初始化void build(); //建立数据文件void paixu1(); //按航班号从小到大排序void paixu2(); //从大到小void main() //主函数{int j;chushihua(); //系统初始化判断是否存在原始数据文件printf(" 欢迎使用飞机订票系统\n"); //打印出系统主界面do{printf("============================================================ ==================== ");printf("1.增加航班信息\n""\t2.浏览航班信息\n""\t\t3.查找航班信息(按航班号)\t\t╮(╯_╰)╭\n""\t\t\t4.航班排序(按航班号)\n""\t\t\t\t5.订票业务\n""\to(︶︿︶)o\t\t\t6.退票业务\n""\t\t\t\t\t\t0.退出\n");printf("======================================================== ======================== ");printf("请在0-6中选择以回车键结束:");scanf("%d",&j);switch(j){case 1: add(); //调用增加航班函数break;case 2:print(); //调用显示模块break;case 3:search(); //调用查找模块break;case 4:paixu(); //调用排序函数break;case 5:dingpiao(); //调用订票模块break;case 6:tuipiao(); //调用退票模块break;case 0: //退出系统save();printf("谢谢使用,再见!");break;}}while(j!=0); //判断是否调用其他函数}void chushihua() //定义系统初始化函数{if(access("hangban.dat",0)){build();}elseread();}void build() //定义建立数据文件函数{FILE *fp; //定义文件指针if((fp=fopen("hangban.dat","wb"))==NULL) //打开文件并判定是否出错{printf("创建文件失败! "); //打印出错提示getchar();return;}printf("请依次输入航班信息(以回车键结束):\n"); //打印提示信息printf("-------------------------------------------------------------------------- \n");for(i=0;i<N;i++){printf("请输入航班号: ");scanf("%d",&s[i].num); //输入航班号printf("请输入起始站: ");scanf("%s",s[i].start); //输入起始站printf("请输入终点站: ");scanf("%s",s[i].over); //输入终点站printf("请输入时间(星期几): ");scanf("%s",s[i].time); //输入时间printf("请输入机票数: ");scanf("%d",&s[i].count); //输入机票数fwrite(&s[i],sizeof(struct air),1,fp);m++;printf("添加完毕,是否继续添加?请键入y或n以回车键结束:");scanf("%s",ii);if(strcmp(ii,"y")!=0) //判断是否继续添加航班信息{fclose(fp); //关闭文件return;}}}void read() //定义读取文件函数{FILE *fp;if((fp=fopen("hangban.dat","r"))==NULL){printf("创建文件失败! ");getchar();return;}i=0;while(!feof(fp)){fread(&s[i],sizeof(struct air),1,fp); //逐块读取数据i++;m++; //计算存在航班数}m--;fclose(fp);}void save() //定义保存函数{FILE *fp;if((fp=fopen("hangban.dat","wb"))==NULL){printf("创建文件失败! ");getchar();return;}for(i=0;i<m;i++) //逐块保存数据fwrite(&s[i],sizeof(struct air),1,fp);fclose(fp);}void add() //定义增加航班信息函数{do{printf("请依次输入您要增加的航班信息(以回车键结束): \n"); //打印提示信息printf("-------------------------------------------------------------------------- \n");printf("请输入航班号: ");scanf("%d",&s[m].num); //读取航班号printf("请输入起始站: ");scanf("%s",s[m].start); //读取起始站printf("请输入终点站: ");scanf("%s",s[m].over); //读取终点站printf("请输入时间: ");scanf("%s",s[m].time); //读取时间printf("请输入机票数: ");scanf("%d",&s[m].count); //读取机票数m++;printf("添加完毕,是否继续添加?请键入y或n以回车键结束:");scanf("%s",ii);}while(!strcmp(ii,"y")); //判断是否继续添加}void output() //定义输出格式函数{printf("航班号\t\t起始站\t\t终点站\t\t时间\t\t机票数\n"); //信息标题for(i=0;i<m;i++)printf(PRINT);//打印出信息}void print() //定义显示航班信息函数{printf("\n目前我们有如下航班:\n");output(); //调用输出格式函数printf("\n请按回车键返回上层菜单");getchar();getchar();}void search() //定义查询函数{int n;do{printf("\n请输入航班号:");scanf("%d",&n); //输入查询的航班号for(i=0;i<m;i++){if(s[i].num==n) //按航班号判定输出条件{printf("\n您所查找的航班信息为:\n ");printf("航班号\t\t起始站\t\t终点站\t\t时间\t\t机票数\n\n");printf(PRINT); //显示信息printf("\n查询完毕,按回车键继续");getchar();getchar();return;}}printf("\n对不起,没有您需要的信息!\n ");printf("是否重新查找?请键入y或n以回车键结束");scanf("%s",ii);}while(!strcmp(ii,"y"));//判定是否重新查找}void dingpiao() //定义订票业务函数{int n;char a[10]="y";do{search(); //调用查询模块if(!strcmp(ii,"n")){printf("对不起!没有找到您所需要的航班,所以不能订票。

c语言飞机订票系统课程设计

c语言飞机订票系统课程设计

c 语言飞机订票系统课程设计一、课程目标知识目标:1. 学生理解C语言中结构体、数组、函数等基本概念,并能运用这些知识设计飞机订票系统。

2. 学生掌握C语言文件操作,实现对飞机票数据的存储和读取。

3. 学生了解C语言中字符串处理函数,并能够运用字符串操作进行信息输入和输出。

技能目标:1. 学生能够运用结构体和数组创建和管理飞机票数据,实现票务信息的增删改查功能。

2. 学生能够编写C语言程序,实现用户界面交互,包括用户登录、航班查询、购票、退票等功能。

3. 学生能够利用文件操作保存和加载飞机订票系统数据,保证数据的持久性。

情感态度价值观目标:1. 学生培养编程的兴趣,激发学习C语言的积极性,形成自主学习的习惯。

2. 学生通过合作完成课程设计,培养团队协作能力和沟通能力,增强集体荣誉感。

3. 学生了解飞机订票系统的实际应用,认识到编程知识在解决实际问题中的价值,增强学以致用的意识。

课程性质:本课程设计为实践性课程,旨在让学生将所学的C语言知识应用于实际项目中,提高编程能力和解决实际问题的能力。

学生特点:学生已具备C语言基础知识,具有一定的编程能力,但对实际项目的开发尚缺乏经验。

教学要求:教师需引导学生复习相关知识点,提供必要的技术支持,鼓励学生自主探究和团队协作,注重培养学生的实践能力和创新能力。

在教学过程中,关注学生的个体差异,给予个性化指导,确保每位学生都能在课程中取得进步。

通过课程设计,使学生将理论知识与实践相结合,提高综合运用C语言知识解决实际问题的能力。

二、教学内容1. 复习C语言基础知识:结构体、数组、函数、指针、文件操作、字符串处理函数等。

相关教材章节:第一章至第六章- 结构体与数组:理解结构体的定义和用法,掌握结构体数组的操作。

- 函数:掌握函数的定义、调用和参数传递。

- 指针:理解指针的概念和操作,掌握指针在数组、函数中的应用。

- 文件操作:掌握文件的打开、读写、关闭操作。

- 字符串处理函数:熟悉常用的字符串处理函数,如strcpy、strcat等。

航班订票系统c语言课程设计

航班订票系统c语言课程设计

航班订票系统c语言课程设计一、课程目标知识目标:1. 理解C语言中数据类型、变量、运算符的基本概念;2. 掌握C语言控制结构(如顺序、分支、循环)的使用方法;3. 学会使用数组、结构体等数据结构表示航班订票系统的相关信息;4. 了解简单的文件操作,实现航班信息的存储和读取。

技能目标:1. 能够运用所学C语言知识,设计并实现一个简单的航班订票系统;2. 培养学生分析问题、解决问题的能力,通过编写代码解决航班订票过程中的实际问题;3. 提高学生的编程实践能力,使其能够熟练使用C语言进行系统开发;4. 培养学生团队协作能力,共同完成课程设计任务。

情感态度价值观目标:1. 培养学生对计算机编程的兴趣,激发其学习热情;2. 培养学生认真、负责的工作态度,严谨、踏实的编程习惯;3. 增强学生的自信心,使其相信自己有能力解决实际问题;4. 培养学生遵守法律法规,尊重知识产权,养成良好的道德品质。

本课程设计针对高年级学生,在掌握了C语言基础知识的前提下,通过实际项目开发,使学生在实践中巩固和提高所学知识。

课程设计要求学生具备一定的编程基础,能够运用所学知识解决实际问题。

通过课程学习,旨在培养学生具备独立分析和解决实际问题的能力,为今后的学习和工作打下坚实基础。

二、教学内容1. C语言基础知识回顾:数据类型、变量、常量、运算符、表达式;2. 控制结构:顺序结构、分支结构(if-else、switch-case)、循环结构(for、while、do-while);3. 函数:函数定义、调用、参数传递、返回值、递归;4. 数组:一维数组、二维数组、数组操作;5. 指针:指针的概念、指针操作、指针与数组、指针与函数;6. 结构体:结构体的定义、初始化、结构体数组、结构体指针;7. 文件操作:文件打开、关闭、读写、文件定位;8. 航班订票系统设计:需求分析、系统设计、模块划分、功能实现;- 用户登录模块:用户身份验证;- 航班查询模块:查询航班信息;- 订票模块:实现订票功能,处理座位分配;- 取消订票模块:取消已预订的航班;- 信息管理模块:管理航班信息、用户信息等;9. 系统测试与调试:测试各模块功能,确保系统稳定可靠。

C语言航班订票管理系统设计报告

C语言航班订票管理系统设计报告

C语言航班订票管理系统设计报告设计任务书编写一个飞机订票系统的程序,使该系统能够实现对航班信息的录入、浏览、排序、查询以及订票、退票的功能。

小组任务分配:小组负责人:负责总体设计(包括总体设计流程图、模块函数原型接口设计); 负责订票函数模块、退票函数模块编写。

组员:负责文件的输入、文件读取、文件输出函数模块的编写。

组员:负责查询、修改、删除函数模块的编写。

目录1、需求分析 (4)2、功能描述 (4)3、总体设计 (6)4、调试分析 (7)5、测试结果 (7)6、用户使用说明 (12)7、课程设计心得 (12)8、附录(源代码) (13)2需求分析:用数组或链表数据结构完成一个航班信息管理系统,此系统的具体功能要求如下:(1)航班信息录入功能1)用户从键盘输入每次航班的信息:航班号、起始站、终点站、起飞时间、机票数、票价。

2)可添加一个或多个航班信息到当前编辑的数据中。

3) 可修改一个或多个航班信息。

4)可删除一个或多个航班信息。

(2)文件保存功能1)航班信息每一机场存为一个数据文件,数据文件可在程序中打开、编辑和重新保存。

2)用户输入航班信息可随时保存数据文件。

(3)文件打开功能1)程序只能对当前打开的数据文件进行编辑。

(4)查询功能1)浏览所有航班信息;2)按航班号查询航班信息;3)按终点站查询航班信息;4) 按航线查询航班信息;(5)报表输出功能1) 按航班编号输出一个航空公司的航班信息:航班号、起始站、终点站、起飞时间、机票数、票价,到屏幕和文件。

注:以上功能以菜单形式供用户使用,并有一定的容错功能。

一,功能描述模块基本介绍:1. 用户输入模块在此模块中,用户将根据菜单提示结合自己的需求输入一个0~7的值,来实现一定的功能。

2. 航班信息录入模块此模块可以让用户从键盘输入每个航班的信息:航班号、起始站、终点站、起飞时间、机票数、票价。

用户可插入一个或多个航班信息到当前编辑的数据中。

用户可删除一个或多个航班信息。

c语言课程设计--飞机订票系统

c语言课程设计--飞机订票系统

c语言课程设计–飞机订票系统一、教学目标本课程的教学目标是使学生掌握C语言编程的基本知识,能够使用C语言设计并实现一个简单的飞机订票系统。

具体分为以下三个部分:1.知识目标:学生需要掌握C语言的基本语法、数据类型、运算符、控制结构、函数等编程基础。

2.技能目标:学生能够运用C语言进行程序设计,解决实际问题,如设计飞机订票系统的各个功能模块。

3.情感态度价值观目标:培养学生对计算机科学的兴趣,提高学生解决问题的能力,培养学生的团队合作精神。

二、教学内容教学内容主要包括C语言的基本语法、数据类型、运算符、控制结构、函数等编程基础,以及如何使用C语言设计并实现一个简单的飞机订票系统。

具体安排如下:1.C语言基本语法和数据类型2.C语言运算符和控制结构3.C语言函数和数组4.C语言指针和字符串5.飞机订票系统的设计和实现三、教学方法为了达到课程目标,我们将采用以下教学方法:1.讲授法:用于讲解C语言的基本语法、数据类型、运算符、控制结构、函数等编程基础。

2.案例分析法:通过分析实际案例,让学生了解如何使用C语言设计并实现飞机订票系统。

3.实验法:让学生动手编写代码,实现飞机订票系统的各个功能模块。

四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:《C程序设计语言》或《C语言程序设计》2.参考书:《C Primer Plus》或《C和指针》3.多媒体资料:教学PPT、视频教程4.实验设备:计算机、网络环境五、教学评估为了全面、客观地评估学生的学习成果,我们将采用以下评估方式:1.平时表现:通过课堂参与、提问、小组讨论等环节,评估学生的学习态度和积极性。

2.作业:布置课后编程作业,评估学生对C语言知识的掌握程度及编程能力。

3.考试:期末进行闭卷考试,评估学生对C语言编程基础知识的掌握情况。

4.项目实践:要求学生分组设计并实现一个简单的飞机订票系统,评估学生的实际编程能力和团队协作能力。

c语言程序设计报告飞机票预订系统

c语言程序设计报告飞机票预订系统

.. 目录目录 (i)1课程设计的目的 (1)2需求分析 (1)2.1设计一个飞机订票系统,完成以下功能 (1)2.2该系统中用到的数据结构 (1)3概要设计 (2)3.1总体功能模块 (2)3.1.1 基本设计 (2)3.1.2开发平台 (2)3.1.3系统功能图 (2)3.2详细设计 (3)3.2.1主函数的实现 (3)3.2.2打印模块程序 (4)3.2.3保存模块程序 (5)3.2.4从文件读取信息模块 (6)3.2.5打印模块 (7)3.2.8订票模块 (11)3.2.9退票模块 (13)3.2.10修改模块 (13)3.2.11头文件及结构体数组 (16)4 调试与测试结果分析 (17)4.1系统主界面 (17)4.2输入航班信息界面 (18)4.3浏览航班信息界面 (19)4.4修改航班信息界面 (19)4.5查找航班信息界面 (21)4.6删除航班信息界面 (22)4.7订票信息界面 (23)4.8退票信息界面 (24)4.9退出系统 (25)5 使用说明 (26)6总结 (26)参考文献 (28)附录 (29)飞机票预订系统的设计与实现1课程设计的目的(1)学会怎样用c语言做一个完整的系统。

(2)掌握c语言的编辑,链接,运行等环节。

(3)掌握c语言中链表的建立,插入,删除,保存节点。

熟练掌握for while 、do-while 循环语句的使用。

(4)通过程序设计的课程设计,掌握并熟悉一个简单项目的开发过程,本项目利用程序设计中最基础和最重要的部分:单链表。

(5)在整个开发设计过程中掌握程序设计的思想,以及各种操作和实际应用。

并可以将其运用于具体问题的解决之中。

加深对程序设计课程中理论和实践相结合的认识。

(6)掌握并熟练单链表的创建、插入、删除、查找等各种常用算法。

最终设计完成《飞机票预订及查询系统》,将各种算法综合运用于具体的设计任务中。

(7)C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。

C语言课程设计报告(附程序代码--飞机订票系统)

C语言课程设计报告(附程序代码--飞机订票系统)

C语言课程设计报告(附程序代码--飞机订票系统) 12/21/2011 第1页xxxx大学xx学院C语言课程设计题目:飞机订票系统专业: 计算机科学与技术班级:姓名:完成时间:12/21/2011 第2页第一部分:源程序(3-12页)第二部分:函数流程图(13-25页)(1)menu函数流程图(第13页)(2)enter函数流程图(第14页)(3)Order函数流程图(第15页)(4)input函数流程图(第16页)(5)browse函数流程图(第17页)(6)Search_time函数流程图(第18页)(7)Search_end函数流程图(第19页)(8)search函数流程图(第20页)(9)void menu1函数流程图(第21页)(10)book函数流程图(第22页)(11)back函数流程图(第23页)(12)save函数流程图(第24页)(13)load 函数流程图(第25页) 第三部分:心得体会(第26-27页) 12/21/2011 第3页第一部分:源程序#include <stdio.h>#include <string.h> #include <stdlib.h> #define N 1000 typedef struct plane {char ID[10]; /*航班代号*/char BePlace[10];/*飞机起飞地点*/char EnPlace[10];/*飞机降落终点*/char data[15];/*飞机起飞时间*/int max;/*飞机最大乘客人数*/int price;/*飞机票价*/int num;/*飞机已售票数*/}PLANE;PLANE ti[N];int n;/*当前的航班数目*/void menu();void menu1();void input(int i){printf("请输入航班代号:\n");scanf("%s",ti[i].ID);printf("请输入起飞地点:\n");scanf("%s",ti[i].BePlace);printf("请输入降落地点:\n");scanf("%s",ti[i].EnPlace);printf("请输入起飞时间:\n");scanf("%s",ti[i].data);printf("请输入航班的最大载客人数:\n"); scanf("%d",&ti[i].max);printf("请输入航班的票价:\n");scanf("%d",&ti[i].price);ti[i].num=0;}12/21/2011 第4页void enter(){int i;system( "cls" );printf("请输入航班的数目(0-%d)?:",N); scanf("%d",&n); /*要输入的记录个数*/ printf("\n请输入数据\n\n");for(i=0;i<n;i++){printf("\n请输入第 %d 航班记录.\n",i+1);input(i); /*调用输入函数*/}getchar();menu();}void printf_one(int i) /*显示一个记录的函数*/ {printf("%11s %6s %10s %6s %6d %6d %6d",ti[i].ID,ti[i].BePlace,ti[i].EnPlace,ti[i].data,ti[i].price,ti[i].max,ti[i].num);}void browse(){int i;system( "cls" );puts("\n--------------------------------------------------------------------");printf("\n\t航班代号起飞地点降落地点起飞时间票价最大乘客已售票数\n");for(i=0;i<n;i++){printf_one(i);printf("\n");}getchar();getchar();12/21/2011 第5页menu();}void order() /*排序模块(按平均成绩)*/ { int i,j;struct plane s;system( "cls" );for(i=0;i<n;i++) /*冒泡法排序*/{for(j=i+1;j<n;j++)if(strcmp(ti[i].data,ti[j].data)>0) {s=ti[i];ti[i]=ti[j];ti[j]=s;}}browse();}void search_time(){int i,m=0;struct plane s;system( "cls" );printf("\n\nEnter the time:");scanf("%s",s.data); /*输入出发的时间*/puts("\n--------------------------------------------------------------------");printf("\n\t航班代号起飞地点降落地点起飞时间票价最大乘客已售票数\n");for(i=0;i<n;i++){if(strcmp(s.data,ti[i].data)==0){m++;if((m!=0)&&(m%10==0)) /*目的是分屏显示*/{printf("\n\nPress any key to contiune . . .");12/21/2011 第6页getchar();puts("\n\n");}printf_one(i);printf("\n");/*调用显示一个记录的函数*/}}puts("\n--------------------------------------------------------------------");getchar(); /*按任意健*/getchar();menu1();}void serch_end(){int i,m=0;struct plane s;system( "cls" );printf("\n\nEnter the end Place:");scanf("%s",s.EnPlace); /*输入要到达的地方*/puts("\n--------------------------------------------------------------------");printf("\n\t航班代号起飞地点降落地点起飞时间票价最大乘客已售票数\n");for(i=0;i<n;i++){if(strcmp(ti[i].EnPlace,s.EnPlace)==0){m++;if((m!=0)&&(m%10==0)) /*目的是分屏显示*/{printf("\n\nPress any key to contiune . . .");getchar();puts("\n\n");}printf_one(i);printf("\n");/*调用显示一个记录的函数*/}}12/21/2011 第7页puts("\n--------------------------------------------------------------------");getchar(); /*按任意健*/getchar();menu1();}void menu1(){int n,w1;do{system( "cls" ); /*清屏*/puts("\t\t\t\t 飞机售票操作!\n\n");puts("\t\t*********************MENU*********************\n\n"); puts("\t\t\t\t1.按照时间排序");puts("\t\t\t\t2.按照时间查找航班");puts("\t\t\t\t3.按照地点查找航班");puts("\t\t\t\t4.返回主菜单");puts("\n\n\t\t**********************************************\n"); printf("Choice your number(1-4): [ ]\b\b");scanf("%d",&n);if(n<1||n>4) /*对选择的数字作判断*/{w1=1;printf("your choice is not between 1 and 4,Please input again:"); getchar();getchar();}else w1=0;} while(w1==1);/*选择功能*/switch(n){case 1:order();break;case 2:search_time();break;case 3:serch_end();break;case 4:menu();break;}}12/21/2011 第8页int search() /*查找模块*/ {int i,k;struct plane s;k=-1;system( "cls" );printf("\n\n请输入要订票的起飞地点:");scanf("%s",s.BePlace); /*输入要到达的地方*/printf("\n\n请输入要订票的降落地点:");scanf("%s",s.EnPlace);printf("\n\n请输入要订票的起飞时间:");scanf("%s",s.data); /*输入出发的时间*/for(i=0;i<n;i++) /*查找要修改的数据*/{if(strcmp(s.BePlace,ti[i].BePlace)==0&&strcmp(s.EnPlace,ti[i].EnPl ace)==0&&strcmp(s.data,ti[i].data)==0){k=i; /*找到要修改的记录*/printf_one(k);break; /*调用显示一个记录的函数*/ }}if(k==-1){printf("\n\nNO exist!");return -1;}elsereturn k;}void book(){int i;system( "cls" );printf("欢迎进入售票窗口!\n");12/21/2011 第9页i=search();if(i!=-1){if(ti[i].num>=ti[i].max){printf("\n该趟航班票已售完~");}else{ti[i].num++;printf("\n订票成功!\n");}}elseprintf("该航班不存在!\n");getchar();getchar(); /*按任意健*/menu();}void back(){int i,k=-1;struct plane s;system( "cls" );printf("欢迎进入退票窗口!\n");printf("\n\n输入航班代号:");scanf("%s",s.ID); /*输入要到达的地方*/ for(i=0;i<n;i++) /*查找要修改的数据*/ {if(strcmp(s.ID,ti[i].ID)==0){k=i; /*找到要修改的记录*/printf_one(k);break; /*调用显示一个记录的函数*/ }}if(k==-1){printf("\n\nNO exist!");12/21/2011 第10页}else{ti[i].num--;printf("\n退票成功!\n");}getchar(); /*按任意健*/getchar(); /*按任意健*/menu();}void save(){int w=1;FILE *fp;int i;system( "cls" );if((fp=fopen("\\ticket.txt","wt"))==NULL) /*以输出打开方式,在此前的记录被覆盖*/{printf("\nCannot open file\n");return ;}for(i=0;i<n;i++)if(fwrite(&ti[i],sizeof(struct plane),1,fp)!=1){printf("file write error\n");w=0;}if(w==1){printf("file save ok!\n");}fclose(fp);getchar();getchar();menu();}void load()12/21/2011 第11页{FILE*fp;int i,w;w=1;system( "cls" );if((fp=fopen("\\ticket.txt","rt"))==NULL) {printf("\nCannotopen file\n");w=0;return ;}n=0;for(i=0;!feof(fp);i++){fread(&ti[i],sizeof( struct plane),1,fp); n++;}n=n-1;fclose(fp);if(w==1)printf("Load file ok!");getchar();getchar();menu();}void menu(){int n,w1;do{system( "cls" ); /*清屏*/ /*清屏*/puts("\t\t\t\t 飞机售票管理系统!\n\n");puts("\t\t*********************MENU*********************\n\n"); puts("\t\t\t\t1.输入新航班");puts("\t\t\t\t2.浏览 ");puts("\t\t\t\t3.航班操作");puts("\t\t\t\t4.订票");puts("\t\t\t\t5.退票");12/21/2011 第12页puts("\t\t\t\t6.保存");puts("\t\t\t\t7.载入");puts("\t\t\t\t8.退出");puts("\n\n\t\t**********************************************\n"); printf("Choice your number(1-8): [ ]\b\b");scanf("%d",&n);if(n<1||n>8) /*对选择的数字作判断*/{w1=1;printf("your choice is not between 1 and 8,Please input enter to choiceagain:");getchar();getchar();}else w1=0;} while(w1==1);/*选择功能*/switch(n){case 1:enter();break; /*输入模块*/case 2:browse();break; /*浏览模块*/case 3:menu1();break; /*查找模块*/case 4:book();break; /*订票模块*/case 5:back();break; /*退票模块*/case 6:save();break; /*保存模块*/case 7:load();break; /*加载模块*/case 8:exit(0);}}void main(){menu();}12/21/2011 第13页第二部分:函数流程图(1)menu()函数结束NY 退出 n=8 Y Y 开始NY载入 Y n=7 int n,w1YNY保存 Y 清屏(cls) n=6YNY输出目录退票 Y n=5YN输出n Y订票 Y n=4YNNif n<1||n>8 Y航班操作 Y Y n=3 YY NY w1=1 w1=0 Y浏览 Y n=2 YNN Y输入新航班 While(w==1) n=1 Y Y YYY 输出n(1-8)12/21/2011 第14页开始 (2)enter函数int i清屏(cls)请输入航班的数目n请输入数据mi=0N i<nY请输入第n次航班记录调用input()函数i++返回menu()结束12/21/2011 第15页(3)Order函数开始int i,j清屏(cls)i=0N 调用browse() i<n YYY j=i+1结束N i++ j<n YYYNstrcmp(ti[i].data, ti[j].data)>0YYY s=ti[i];ti[i]=ti[j]ti[j]=sj++12/21/2011 第16页开始 (4)input函数请输入航班代号请输入起飞地点请输入降落地点请输入起飞时间请输入航班的最大载客人数请输入航班的票价返回menu()结束12/21/2011 第17页(5)browse函数开始int i清屏(cls)i=0Ni<n i++Y调用printf_one(i)输出返回menu() 结束开始12/21/2011 第18页int i,m (6)Search_time函数清屏(cls)输入时间i=0N 返回menu1() i<nYYN i++ S==ti[i] YYY 结束m++(m!=0)&&(m%10==0)按任意键继续进行回车换行调用函数printf_one()开始12/21/2011 第19页int i,m (7) Search_end函数清屏(cls)输入要到达的地方i=0返回menu () i<nYYN i++ S==ti[i] Y结束Ym++(m!=0)&&(m%10==0)按任意键继续进行回车换行调用函数printf_one(i)12/21/2011 第20页(8)search函数开始int i,kk=-1清屏(cls)输入起飞,降落地点和时间i=0N Y k==-1i<nY Y i++输出“NO exist!”strcmp(s.BePlace,ti[i].BePlN ace)==0&&strcmp(s.EnPlace,ti[i].EnPlace)==0&&strc返回search()=k 返回search()=-1 mp(s.data,ti[i].data)==0Yk=i结束调用printf_one(k)跳出(break)12/21/2011 第21页(9)void menu1函数开始结束int n,w1清屏(cls)Ymenu() n=4Y 输出目录2NY Y n=3 () serch_end 输出n(1-4)Y NNY Ysearch_time() if n<1||n>4 n=2 Y Y YN Y w1=1 w1=0 Y Yorder() n=1 YYN输出n while(w1==1)Y Y12/21/2011 第22页(10)book函数开始int i清屏(cls)输出“欢迎进入售票窗口”i=search()N i!=-1YN ti[i].num>=ti[i].maxY ti[i].num++输出“该航班输出“该趟航不存在!” 班票已售完”输出“订票成功”返回menu()结束12/21/2011 第23页开始 (11)back函数int i,k=-1清屏(cls) 结束输入 menu()“欢迎进入退票窗口”输入输出“退票成功!”“输入航班代号”i=0 ti[i].num--NNk==-1 i<n i++Y Y输出N strcmp(s.ID,ti[i].“NOexist!” ID)==0 Y调用k=iprintf_one(k)12/21/2011 第24页开始(12)save函数结束 int w=1, FILE*fp,i清屏(cls) 输出“Cannotopen file”返回menu()Y (fp=fopen("\\ticket.txt","wt"))==NULLN调用fclose(fp)i=0NN i<n w==1i++Y YN 输出“file save fwrite(&ti[i],sizeof(struct ok!” plane),1,fp)!=1plane),1,fp)!=1Y输出“file writeerror”w=012/21/2011 第25页开始load函数n++(13)FILE*fp int i,w=1fread(&ti[i],sizeof( struct i++ plane),1,fp)Y清屏(cls) N !feof(fp)FILE*fp int i,w i=0n=0 (fp=fopen("\\ticket.txNt","rt"))==NULLY输出“Cannotopen n=n-1 file”(fp=fopen("\\ticket.txt","rtfclose(fp) "))==NULLw=0 N w==1Y返回输出“Load fileok!”返回menu() 结束12/21/2011 第26页第三部分,心得体会通过对C语言课程设计的学习,自己有很大的收获,将<<C语言>>应用得到了实践,将所学的各种语句紧密的联系起来,得到了融汇和贯通,使我对C语言有了更深一步的学习和认识。

c语言课程设计——飞机订票系统

c语言课程设计——飞机订票系统

信息科学与技术学院程序设计基础课程设计报告题目名称:飞机订票系统学生姓名:学号:专业班级:计科2班指导教师:20 年 6 月25 日目录1 课程设计题目与要求.................................................................... -2 - 1.1设计题目:............................................................................... - 2 -1.2设计要求:............................................................................... - 2 -2 总体设计........................................................................................... -3 -3 详细设计........................................................................................... -4 - 3.1结构体设计............................................................................... - 4 -3.2主模块设计............................................................................... - 4 -4 运行结果........................................................................................... - 7 -5 课程设计总结................................................................................ - 10 -1 课程设计题目与要求1.1设计题目:飞机订票系统1.2设计要求:假定民航机场共有n个航班,每个航班有一航班号、确定的航线(起始站、终点站)、确定的飞行时间(星期几)和一定的成员订额。

数据结构课程设计《订票系统(航空)》报告源代码

数据结构课程设计《订票系统(航空)》报告源代码

数据结构课程设计——《订票系统》目录一、设计任务与要求2b5E2RGbCAP1.1 总体目标与任务要求2p1EanqFDPw1.2 题目选择与目地意义2DXDiTa9E3d1.3 所选题目地主要工作2RTCrpUDGiT二、需求分析 25PCzVD7HxA2.1 用户需求分析 2jLBHrnAILg2.2 功能需求分析 3xHAQX74J0X2.3 系统需求分析 3LDAYtRyKfE三、概要设计 4Zzz6ZB2Ltk3.1 各模块地算法设计说明4dvzfvkwMI13.2 存储结构设计说明9rqyn14ZNXI四、详细设计 11EmxvxOtOco五、源代码 12SixE2yXPq5六、运行结果分析236ewMyirQFL七、收获与体会30kavU42VRUs八、主要参考资料30y6v3ALoS89一、设计任务与要求1.1 总体目标与任务要求制作一个订票系统, 通过此系统可以实现如下功能:1)录入:可以录入航班情况<数据可以存储在一个数据文件中, 数据结构、具体数据自定).2)查询:可以查询某个航线地情况<如 , 输入航班号 , 查询起降时间 , 起飞抵达城市 , 航班票价 , 票价折扣 , 确定航班是否满仓);可以输入起飞抵达城市, 查询飞机航班情况.3)订票:可以订票 , 如果该航班已经无票 , 可以提供相关可选择航班 <订票情况可以存在一个数据文件中 , 结构自己设定) .4 )退票:M2ub6vSTnP可退票 , 退票后修改相关数据文件;客户资料有姓名, 证件号 , 订票数量及航班情况 , 订单要有编号 .5 )修改航班信息:0YujCfmUCw当航班信息改变可以修改航班数据文件. 根据以上功能说明, 设计航班信息 ,订票信息地存储结构, 设计程序完成功能 . eUts8ZQVRd1.2 题目选择与目地意义选择这个题目地原因是 , 订票系统在现实生活中应用很广泛 , 通过这个系统可以使订票、退票等变得简便 . 与传统地人工用纸、笔来记录办理订票、退票等相比 , 使用这个系统也会增加工作效率 . 这个题目做出来地系统还是比较实用地 , 所以我选择了订票系统这个题目 . sQsAEJkW5T完成此系统 , 需要综合运用数据结构课程中学到地几种典型数据结构, 以及程序设计语言 <C 语言) , 自行实现一个较为完整地应用系统地设计与开发. 通过课程设计 , 自己通过系统分析、系统设计、编程调试 , 写实验报告等环节 , 进一步掌握应用系统设计地方法和步骤 , 灵活运用并深刻理解典型数据结构在软件开发中地应用 . 学会将知识应用于实际地方法, 提高分析和解决问题地能力, 增加综合能力. GMsIasNXkA1.3 所选题目地主要工作这个题目地主要工作是使订票系统可以录入航班情况, 查询某个航线地情况、办理订票、办理退票、修改航班信息、查询订票信息等. TIrRGchYzg二、需求分析2.1 用户需求分析用户使用此程序所要完成地工作主要为:查询所有航线信息、查看已订票客户信息、查询航线、办理订票业务、办理退票业务. 通过此系统可以方便地进行上述工作 . 7EqZcWLZNX每条航线所涉及地信息有:终点站名、航班号、飞行时间、票价、乘员定额、余票量 .已订票地客户名单信息包括姓名、订票量、舱位等级<1,2 或 3).等候替补地客户名单信息包括姓名、所需票量.查询航线功能可以根据旅客提出地终点站名输出航班号、飞行时间、票价、乘员定额、余票量 .订票业务功能根据客户提出地要求<航班号、订票数额)查询该航班票额情况, 若尚有余票,则为客户办理订票手续,输出座位号;若已满员或余票额少于定票额,则需重新询问客户要求 .若需要 ,可登记排队候补购票 .lzq7IGf02E退票业务功能根据客户提供地情况 <航班号、姓名)为客户办理退票手续 ,然后查询该航班是否有人排队候补 ,首先询问排在第一地客户 ,若所退票额能满足他地要求 ,则为他办理订票手续 ,否则依次询问其他排队候补地客户 .zvpgeqJ1hk2.2 功能需求分析功能需求分析模块图如图 2.2.1功能模块图:图 2.2.1功能模块图2.3 系统需求分析开发环境: PC机Windows XP 系统使用软件:编写实验报告:Microsoft Office Word画图:亿图制作程序:Microsoft Visual C++ 6.0三、概要设计3.1 各模块地算法设计说明1.浏览航线信息功能 , 调用 display 函数进行输出 . 流程图如图 3.1.1 浏览航线信息流程图:图 3.1.1浏览航线信息流程图:其中 display函数地流程图如图 3.1.2 display函数流程图:图3.1.2 display函数流程图2.浏览已订票客户信息功能, 按顺序输出客户信息链表中地信息. 流程图如图 3.1.3浏览已订票客户信息功能流程图:NrpoJac3v1图 3.1.3浏览已订票客户信息功能流程图3.查询航线功能, 根据客户提出地终点站名输出航线信息. 流程图如图3.1.4查询航线流程图:图 3.1.4查询航线流程图4.办理订票业务功能, 根据客户提出地航线信息等进行订票. 流程图如图3.1.5办理订票业务功能流程图:1nowfTG4KI图 3.1.5办理订票业务功能流程图5.办理退票业务功能, 根据客户提出地航线信息等进行退票. 流程图如图3.1.6办理退票业务功能流程图:fjnFLDa5Zo图 3.1.6办理退票业务功能流程图6.主函数流程图如图 3.1.7主函数流程图:图3.1.7主函数流程图3.2 存储结构设计说明typedef struct wat_ros/*单链队列存储等候替补地客户信息*/ {char name[10]。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

沈阳航空航天大学课程设计报告课程设计名称:C语言课程设计课程设计题目:航空公司售票系统院(系):计算机学院专业:计算机科学与技术班级:学号:姓名:指导教师:***完成日期:2013年3月25日目录第1章需求分析 (1)1.1题目的内容与要求 (1)1.1.1课程设计内容 (1)1.2题目分析 (1)第2章概要设计 (3)2.1数据结构的设计 (3)2.2总体结构 (3)第3章详细设计 (5)3.1数据结构设计 (5)3.2输入航班模块 (6)3.3取消航班模块 (6)3.4浏览全部航班信息模块 (7)3.5航班查询模块 (9)3.6订票模块 (11)3.7退票模块 (12)3.8改签模块 (13)3.9浏览已售信息模块 (14)3.10保存文件模块 (14)3.11加载本地文件模块 (15)第4章调试分析 (17)4.1问题一 (17)4.1.1问题描述 (17)4.1.2解决方法 (17)4.2问题二 (18)4.2.1问题描述 (18)4.2.2解决方法 (18)4.3问题三 (18)4.3.1问题描述 (18)4.3.2解决方法 (18)第5章使用说明与执行结果 (19)5.1航空公司售票系统主菜单 (19)5.2输入新航班 (19)5.3取消航班 (20)5.4浏览航班 (21)5.5航班查询 (22)5.6订票 (23)5.7退票 (24)5.8改签 (25)5.9保存文件 (27)5.10加载本地文件模块 (27)参考文献 (29)附录(程序清单) (30)第1章需求分析1.1题目的内容与要求1.1.1课程设计内容(1)通过设计一个航空售票系统,实现查询、购票、改签或退票等功能。

(2)每张机票应包含所属航空公司、起始地、目的地、舱位、价格、起飞时间等信息;(3)用户可查询宠起始地起飞到目的地的所有航空公司的当日航班的机票信息及剩余数量;(4)用户可按规定取消所定机票或改签下一趟航班;(5)可增加某一航线等;(6)有界面友好易于使用的菜单。

1.2 题目分析随着时代的进步,科技的发展。

人们生活水平的不断提高。

因此如今航空行业十分发达,为了满足乘客需求,如果不能快速的办理业务,那么很有可能为公司带来负面影响。

所以开发本程序,方便航空公司,也方便乘客。

本系统实现了添加、修改、查询、删除、订票和退票等航空售票的功能,总体可以快速的了解到想要查的航空信息与相关机票。

本系统的开发与研制是运用C语言进行设计完成的。

根据课程设计任务书,航空公司售票系统需要实时存入和修改航班信息以及订票的用户信息,譬如增加和删除航班以及修改用户信息。

综合任务书及对航空公司售票实际情况的考虑,本系统采用结构体数组。

本系统在开始时建立航班和用户两个结构体,定义了两个结构体数组,方便进行数据的动态修改。

在主页面中运用switch选择语句,通过从键盘输入不同的指令进入各自的程序功能模块。

除了航空公司售票系统所必须具备的航班浏览、查询,订票、退票和改签功能,考虑到本系统需要较高的安全性,因为这里面存的都是重要的信息,所以不能轻易的被别人所盗取。

其次还有稳定性,如果该系统的稳定性不好,总是丢文件,那么信息也会丢失,所以稳定性能一定要过关,特别加入了将信息保存到文件中与加载本地文件中所保存的信息等功能,提高了系统的安全性与稳定性。

从程序设计要求以及用户的体验操作角度考虑,本系统可以分成如下几个功能模块:(1)输入航班模块(2)取消航班模块(3)浏览全部航班模块(4)航班查询模块(5)订票模块(6)退票模块(7)改签模块(8)浏览已售信息模块(9)保存文件模块(10)加载本地文件模块第2章概要设计2.1 数据结构的设计本程序采用结构体数组。

根据课程设计任务书,航空公司售票系统需要实时存入和修改航班信息以及订票的用户信息,譬如增加和删除航班以及修改用户信息。

运用结构体数组,更加方面进行数据的操作。

因此,本系统在开始时建立航班和用户两个结构体,定义了两个结构体数组,方便进行数据的动态修改。

2.2总体结构通过航空售票系统可以快速的构建航空信息服务列表,并且可以对此列表可以进行一些列快速准确的操作,比如删除、修改、订票、退票、保存和载入本地文件等等,使客户与工作人员能够快速熟练的掌握此程序。

综合以上分析,本程序主要分为十个模块(功能模块图见图2.1):输入航班模块、取消航班模块、浏览全部航班模块、航班查询模块、订票模块、退票模块、改签模块、浏览已售信息模块、保存文件模块、加载本地文件模块。

(1)输入航班模块:输入新的航班信息。

(2)取消航班模块:删除某一班航班。

(3)浏览全部航班模块:浏览全部的航班信息。

(4)航班查询模块:按照时间或地点查询指定的航班。

(5)订票模块:用户买票。

(6)退票模块:用户退掉已买的机票。

(7)改签模块:用户根据自己的需求改签所需的航班。

(8)浏览已售信息模块:浏览已经买到票的用户信息及已购买的航班代号。

(9)保存文件模块:将航班及买票的用户信息保存到本地。

(10)加载本地文件模块:在再次使用本系统时,将本地已存的航班及已买票的用户信息读到程序中。

图2.1 系统功能模块图第3章详细设计3.1数据结构设计本次课程设计选用结构体作为主要的数据结构。

建立了plane和user两个结构体。

定义了plane ti[]、user si[]两个结构体数组。

主要用到的数据类型有字符数组和整型。

航空公司、航班代号、飞机起飞地点、降落地点、时间、用户姓名、所买的航班代号均用字符数组存储,分别使用20、10、10、10、15、20、20的最大长度。

舱位、飞机最大乘客人数、票价、已售票数、用户身份证号以整型存储。

建立的结构体如下:struct plane{char Company[20]; //所属航空公司char ID[10]; //航班代号char BePlace[10]; //飞机起飞地点char EnPlace[10]; //飞机降落终点char data[15]; //飞机起飞时间int cangwei; //舱位int max; //飞机最大乘客人数int price; //飞机票价int num; //飞机已售票数}struct user{char name[20]; //用户姓名int number; //身份证号char id[20]; //所买的航班代号}3.2输入航班模块输入要添加的航班数,再进入添加航班子模块中进行输入航班信息操作,输入对应的航班信息。

流程图如图2.2所示。

图2.2 输入航班模块流程图注释:(1)n:航班的数目(2)n1:新增加的航班数目(3)循环输入航班信息3.3取消航班模块根据所输入的航班代号,找到其在数组中所对应的位置,进行删除操作。

同时重新整理ti[]数组。

流程图如图2.3所示。

图2.3 取消航班模块流程图注释:(1) i:控制循环次数(2) ti[i].ID:航班代号3.4浏览全部航班信息模块通过for循环控制语句,循环输出ti[]数组中储存的所有的航班信息。

流程图如图2.4所示。

图2.4 浏览全部航班信息流程图注释:(1)i:控制循环次数3.5航班查询模块航班查询模块分为两个子模块:时间查询模块与终点查询模块。

前者是通过用户输入的飞机起飞时间通过与ti[]中保存的航班信息中的ti[i].data进行比较,找到对应的航班班次,输出该航班的信息。

后者是通过从键盘输入的终点地名与ti[]数组中保存的航班信息中的ti[i].EnPlace进行比较,找到对应的航班并将其输出。

时间查询模块流程图如图2.5.1所示,终点查询模块流程图如2.5.2所示。

图2.5.1 时间查询模块流程图图2.5.2 终点查询模块流程图注释:(1) i:控制循环3.6订票模块输入用户姓名、身份证号,查询要购买的机票,如果有余票则购买,并将该航班的航班代号存入到用户的结构体数组si[i].id,如果没有余票或没有要购买的航班,则返回,不保存用户信息。

流程图如图2.6所示。

图2.6 订票模块流程图3.7退票模块输入用户姓名、身份证号以及已购买的机票的航班代号。

通过输入的航班代号与ti[i].ID和si[i].id比较,找到对应项,执行ti[i].num--,删除该用户信息。

流程图如图2.7所示。

图2.7 退票模块流程图3.8改签模块输入用户姓名、身份证号以及需要改签的航班的代号,先进行退票操作然后进行买票操作,买票成功后修改对应的si[i].id一项。

流程图如图2.8所示。

图2.8 改签模块流程图3.9浏览已售信息模块使用for循环控制语句,顺序输出结构体数组si[]中保存的数据。

流程图如图2.9所示。

图2.9 浏览已售信息模块流程图3.10保存文件模块定义指针变量,用fopen函数打开两个“只写”的文件ticket.txt、sale.txt,成功后将所建立信息区的起始地址赋给指针变量,使用fwrite分别将航班信息与已售的信息存入两个文件中。

流程图如图2.10所示。

图2.10 保存文件模块流程图3.11加载本地文件模块用fopen函数分别打开ticket.txt、sale.txt两个文件,并使用fread分别读入两个文件所保存的信息。

流程图如图2.11所示。

图2.11 加载本地文件模块调试分析第4章调试分析调试是软件开发过程中的一个重要环节,也是最复杂,对软件开发者者来说也是最艰巨的任务。

调试的任务是及时改正测试过程中发现的软件错误。

具体地说,调试过程由两个步骤组成,它从表示程序中存在错误的某迹象开始,首先确定错误的准确位置,也就是找出哪个模块或哪个语句引起的错误。

然后仔细研究推断代码以确定问题的原因,并设法改正。

调试过程主要是运行编制好的程序,然后遇到错误后根据系统的提示,找到相关的问题所在。

本系统调试过程中遇到问题和解决方法如下:4.1问题一4.1.1问题描述在程序第一次检查时,由于自己开始时没有对任务书进行细致的研读,没有结合实际情况分析,程序整体没有加入用户这一模块。

导致整个程序显得非常粗糙、使程序不具备完整性,丢失了用户这一重要信息。

4.1.2解决方法经过考虑和细致的分析,在程序开头又引入了struct user这个结构体,结构体中包含买票者的姓名、身份证号以及所买的航班代号等信息。

结构体如下:struct user{char name[20]; //用户姓名int number; //身份证号char id[20]; //所买的航班代号}同时建立了结构体数组user si[]。

在下面的订票、退票、改签模块加入了增加、删除或修改用户信息的子模块,调试分析同时在保存文件模块与加载本地文件模块同样增加了保存和加载用户信息的子模块。

随后进行了一系列的调试工作使程序正常运行,使重要的信息得以保存,保证了程序的安全性与稳定性。

相关文档
最新文档