航空售票系统c课程设计源代码(修复的)

合集下载

c语言 航空订票系统代码

c语言 航空订票系统代码
return q;
}
void order()
/*办理订票业务*/
{ struct airline *info;
int amount,grade;
char name[10];
info=start;
if(!(info=find())) return;/*根据客户提供的航班号进行查询,如为空,退出该模块*/
#include "malloc.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
}
void list()/*打印全部航线信息*/
{ struct airline *info;
int i=0;
info=start;
printf("终点站名\t航班号\t飞机号\t飞行日期\t乘员定额\t余票量\n");
while(i<MAXSIZE)
{
display(info);
char date[7];/*飞行日期(星期几)*/
int tkt_amt;/*乘员定额*/
int tkt_sur;/*余票量*/
linklist *order;/*乘员名单域,指向乘员名单链表的头指针*/
linkqueue wait;/*等候替补的客户名单域,分别指向排队等候名单队头队尾的指针*/
{ printf("\n请输入您的姓名(排队订票客户):");

航空售票系统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.订票输入旅客的姓名,证件号,航班号,和订票张数。

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

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

(完整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语言飞机订票系统课程设计一、课程目标知识目标:1. 让学生掌握C语言的基本语法和程序结构,特别是数组、结构体和函数的应用。

2. 使学生了解飞机订票系统的基本原理和功能需求,掌握相关数据结构和算法。

3. 帮助学生理解文件操作在飞机订票系统中的应用,学会读写数据文件。

技能目标:1. 培养学生运用C语言设计小型系统的能力,特别是模块化编程和代码组织能力。

2. 提高学生分析问题、解决问题的能力,学会运用所学知识解决实际订票问题。

3. 培养学生的团队协作能力,通过分组合作完成课程设计。

情感态度价值观目标:1. 激发学生对编程的兴趣,培养计算机编程的思维习惯。

2. 培养学生认真负责、严谨细致的学习态度,注重代码规范和程序调试。

3. 使学生认识到计算机技术在生活中的应用,增强对信息技术的认识和尊重。

课程性质:本课程设计属于实践性课程,以项目为导向,注重培养学生的实际操作能力和团队协作能力。

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

教学要求:教师需引导学生掌握飞机订票系统的基本原理,注重培养学生的编程实践能力,关注学生在课程设计过程中的情感态度变化,及时给予指导和鼓励。

在教学过程中,将课程目标分解为具体的学习成果,便于后续的教学设计和评估。

二、教学内容1. C语言基础回顾:复习数组、结构体、函数等基本概念和用法,确保学生具备扎实的编程基础。

相关教材章节:第3章 数组,第4章 结构体和联合,第6章 函数。

2. 飞机订票系统需求分析:讲解飞机订票系统的基本功能需求,如用户注册、航班查询、订票、退票等。

相关教材章节:第12章 项目设计。

3. 数据结构和算法设计:介绍飞机订票系统中涉及的数据结构(如链表、树等)和算法(如排序、查找等)。

相关教材章节:第7章 数据结构,第8章 算法。

4. C语言编程实践:指导学生运用所学知识编写飞机订票系统的各个功能模块。

相关教材章节:第9章 指针,第10章 文件操作。

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语言课程设计--飞机订票系统

⼤⼀C语⾔课程设计--飞机订票系统#include#include#includestruct airplane{int num;char begin[20];char end[20];char time[20];double fee;int count;}plane[2014];void home();void input();void del();void scan();void book();void change();void quit();void sou();void save();void read();void home(){int a,i,j;printf("\n\n *****************************欢迎进⼊飞机票务系统*****************************\n\n");printf("==========您好,现在要确认您的⾝份!票务⼈员请按 1 ,旅客请按 0 ===========");scanf("%d",&a);if(a==1)do{printf("\n\t\t^o^o^o^o^o^o^o^o^ 1.输⼊航班信息 ^o^o^o^o^o^o^o^o^\n");printf("\t\t^o^o^o^o^o^o^o^o^ 2.删除航班信息 ^o^o^o^o^o^o^o^o^\n");printf("\t\t^o^o^o^o^o^o^o^o^ 3.浏览航班信息 ^o^o^o^o^o^o^o^o^\n");printf("\t\t^o^o^o^o^o^o^o^o^ 0.退出 ^o^o^o^o^o^o^o^o^\n\n");printf("请在0~3之间选择您要进⾏的操作 ");scanf("%d",&i);if(i>=0&&i<=3)switch(i){case 0: break;case 1:input(); break;case 2: del(); break;case 3:scan(); break;}else{printf("\n输⼊错误!!\n\n\n");continue;}printf("\n\n **************************以⾼度负责的态度做好春运⼯作**************************\n\n");} while(i!=0);if(a==0)do{printf("\n\t\t<><><><><><><><><><> 1.订票 <><><><><><><><><><>\n");printf("\t\t<><><><><><><><><><> 2.改签 <><><><><><><><><><>\n");printf("\t\t<><><><><><><><><><> 3.退票 <><><><><><><><><><>\n");printf("\t\t<><><><><><><><><><> 4.浏览航班信息 <><><><><><>\n");printf("\t\t<><><><><><><><><><> 5.查询 <><><><><><><><><><>\n");printf("\t\t<><><><><><><><><><> 0.退出 <><><><><><><><><><>\n\n");printf("请在0~5之间选择您要进⾏的操作");scanf("%d\n\n",&j);if(j>=0&&j<=5)switch(j){case 0: break;case 1:book(); break;case 2:change(); break;case 3:quit(); break;case 4:scan(); break;}else{printf("\n输⼊错误!!\n\n\n");continue;}printf("\n\n *******************春节即将到来,提前祝您春节快乐,出⾏平安********************\n\n"); } while(j!=0);}void input() // 输⼊航班{char sysm[]="jim007";char youm[20];int i,m;printf("请输⼊密码: ");scanf("%s",youm);if(strcmp(sysm,youm)!=0){printf("输⼊密码错误!请确认您是否是票务⼈员,如不是,请按任意键返回菜单重新选择" ); getchar();getchar();home();}else{system("cls");printf("请问要输⼊⼏个航班信息: ");scanf("%d",&m);printf("\n\n******************************************************************\n\n");for(i=0;i{printf("请输⼊航班号:\n");scanf("%d",&plane[i].num);printf("请输⼊起飞地点:\n");scanf("%s",plane[i].begin);printf("请输⼊降落地点:\n");scanf("%s",plane[i].end);printf("请输⼊起飞时间:\n");scanf("%s",plane[i].time);printf("请输⼊票价:\n");scanf("%lf",&plane[i].fee);printf("请输⼊机票数:\n");scanf("%d",&plane[i].count);}getchar();home();}}void del() //删除模块{char be[20];char en[20];char sysm[]="jim007";char youm[20];int i,w,p,q,k=0;printf("请输⼊密码: ");scanf("%s",youm) ;if(strcmp(sysm,youm)!=0){printf("输⼊密码错误!请确认您是否是票务⼈员,如不是,请按任意键返回菜单重新选择" );getchar();getchar();home();}elseprintf("1.按航班号删除 \n");printf("2.按航线删除 \n");printf("请在1-2中选择删除⽅式: ");scanf("%d",&q);switch(q){case 1:printf("请输⼊航班号: ");scanf("%d",&p);break;case 2:printf("请输⼊起飞地点: ");scanf("%s",be);printf("请输⼊降落地点: ");scanf("%s",en);break;}printf("\n\n航班号\t起飞地点\t降落地点\t起飞时间\t票价\t机票数 \n\n");for(i=0;i{if(q==1&&plane[i].num==p){k++;printf("\n\n%d\t%s\t%s\t%s\t%lf\t%d\n",plane[i].num,plane[i].begin,plane[i].end,plane[i].time,plane[i].fee,plane[i].count); }if(q==2&&strcmp(plane[i].begin,be)==0&&strcmp(plane[i].end,en)==0){k++;printf("\n\n%d\t%s\t%s\t%s\t%lf\t%d\n",plane[i].num,plane[i].begin,plane[i].end,plane[i].time,plane[i].fee,plane[i].count); }}if(k=0)printf("没有找到此航班,⽆法删除!");elseprintf("确定删除请按 1 否则请按 0:\n\n");scanf("%d",&w);if(w==1)for(i=0;i{plane[i].num=0;strcpy(plane[i].begin,"0");strcpy(plane[i].end,"0");strcpy(plane[i].time,"0");plane[i].fee=0;plane[i].count=0;}getchar();getchar();home();}void scan() //浏览{if(m==0)printf("\n\n⽆航班信息\n\n");else{printf("\n\n航班号\t起飞地点\t降落地点\t起飞时间\t票价\t机票数 \n\n");for(i=0;iprintf("\n\n%d\t%s\t%s\t%s\t%lf\t%d\n",plane[i].num,plane[i].begin,plane[i].end,plane[i].time,plane[i].fee,plane[i].count); }getchar();home();}void book() //订票模块{int i,a;struct airplane d;system( "cls" );do{sou();printf("请输⼊您要订的航班号: ");scanf("%d",&d.num);printf("请输⼊您要订的机票数: ");scanf("%d",&d.count);for(i=0;iif(result[i].num==d.num){if(result[i].count!=0&&result[i].count>= d.count){result[i].count=result[i].count- d.count;printf("恭喜您订票成功!祝您旅途愉快!\n");break;}if(result[i].count{printf("此航班只剩下%d张票,订票失败",result [i].count);break;}}printf("\n\n继续订票请按 1 ,退出请按 0 ");scanf("%d",&a);}while(a==1);void change() //改签模块{int i,num1,num2;system( "cls" );do{sou();printf("请输⼊您改签前的航班号: ");scanf("%d",&num1);printf("请输⼊您改签后的航班号: ");scanf("%d",&num2);for(i=0;iif(result[i].num==num1)result[i].count=result[i].count+1;for(i=0;iif(result[i].num==num2)result[i].count=result[i].count-1;printf("恭喜您改签成功!祝您旅途愉快!\n");break;printf("\n\n继续改签请按 1 ,退出请按 0 ");scanf("%d",&a);}while(a==1);void quit() //退票模块{int i,a;struct airplane f;system( "cls" );do{sou();printf("请输⼊您要退订的航班号: ");scanf("%d",&f.num);printf("请输⼊您要退订的机票数: ");scanf("%d",&f.count);if(d.count<0){printf("您输⼊的票数有误,请重新输⼊\n");break;}for(i=0;iif(result[i].num==f.num){result[i].count=result[i].count+ f.count;printf("恭喜您退票成功! \n");break;}elseprintf("抱歉,您输⼊的航班号有误!");printf("\n\n继续订票请按 1 ,退出请按 0 ");scanf("%d",&a);}while(a==1);}void sou() //查询模块{int i,c,d,e,t,j=0;struct airplane a;struct airplane result[20];system( "cls" );printf("\n\n请输⼊起飞时间:");scanf("%s",a.time);printf("\n\n请输⼊起飞地点:");scanf("%s",a.begin);printf("\n\n请输⼊降落地点:");scanf("%s",a.end);printf("请选择排序⽅式( 1:按航班号升序;2:按票价升序)")scanf("%d",&c);printf("\n\n航班号\t起飞地点\t降落地点\t起飞时间\t票价\t机票数 \n\n");for(i=0;i{if(plane[i].time==a.time&&strcmp(plane[i].begin,a.begin)==0&&strcmp(plane[i].end,a.end)==0) result[j]=plane[i]j++;}if(j==0)printf("抱歉,暂时没有该条件的航班!");if(j>0&&c==1){for(d=0;dfor(e=d+1;eif(result[e].num{t= result[e];result[e]= result[e-1];result[e-1]=t;}}if(j>0&&c==0){for(d=0;dfor(e=d+1;eif(result[e].fee{t= result[e];result[e]= result[e-1];result[e-1]=t;}}for(i=0;iprintf("\n\n%d\t%s\t%s\t%s\t%lf\t%d\n", result[i].num, result[i].begin, result [i].end, result[i].time, result[i].fee, result[i].count); }void save() //保存模块{FILE *fp;int i,w=1;system( "cls" );if((fp=fopen("C:\\Users\\Administrator\\Desktop\\plane.txt","w"))==NULL){printf("打开⽂件错误\n");exit(0);}for(i=0;iif(fwrite(fp,sizeof(struct airplane),1, &plane[i])==0){printf("⽂件保存错误!\n");exit(0);w=0;}if(w==1)printf("⽂件保存成功!\n");fclose(fp);getchar();getchar();home();}void read() //读取模块{int i;FILE *fp;if(fp=fopen("C:\\Users\\Administrator\\Desktop\\plane.txt","r")==NULL){printf("⽂件打开失败\n");exit(0);}else{while(!feof(fp))for(i=0;ifread(plane[i],sizeof(struct airplane),1,fp)}getchar();getchar();home();}。

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语言课程设计–飞机订票系统一、教学目标本课程的教学目标是使学生掌握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语言课程设计报告(附程序代码--飞机订票系统)

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语言实现-航空订票系统(飞机订票系统)

C语⾔实现-航空订票系统(飞机订票系统)开发环境:CodeBlocks开发语⾔:C实现功能:登录,订票,退票数据存储:⽂本读写涉及⽂件:相关⽂件下载:码云: GitHub:相关图⽚(仅供参考):程序是没有涉及旅⾏社的ER图:数据库:类图:⽤例图:订票顺序图:订票状态图:登录活动图:以上图⽚仅供参考,请⾃⾏斟酌程序主界⾯:源码如下:1 #include <stdio.h>2 #include <stdlib.h>3 #include <string.h>4 #include <stdbool.h>5//#include "getch.h"6 #include <conio.h>7#define MAX_Flight 508#define MAX_Passenger 209#define MAX_Order 501011 typedef struct Flight12{13char fid[20]; //航班号14char fname[20]; //航班名称15char start[10]; //起点16char end[10]; //终点17int fnum; //票数18}Flight;1920 typedef struct Passenger21{22char pid[20]; //⾝份证23char pname[10]; //姓名24char password[20]; //密码25char tell[20]; //电话26}Passenger;2728 typedef struct Order29{30char pid[20]; //⾝份证31char fid[20]; //航班号32int num; //票数33}Order;3435 Flight *FLI;36 Passenger *PAS;37 Order *ORD;3839char start[10]; //起点40char end[10]; //终点41char search_fid[50][20]; //符合条件的航班号42int search_fnum[50]; //符合条件的航班票数43int online = 0; //是否登录的变量44char online_pid[20]; //在线⽤户的⾝份证45int search_num = 0; //符合条件的航班数4647void init_sys(void); // 系统初始化48void show_flight(void); // 显⽰航班表49void start_sys(void); // 系统开始运⾏50void exit_sys(void); // 退出系统51void menu(void); // ⽣成主菜单52void login(void); // 登录53void logout(void); //⽤户登出54void passenger_info(void); //查询旅客信息55bool change_pas_info(void); //修改旅客信息56void search_start(void); // ⽣成查询页⾯57bool search(void); // 查询航班58void order_list(void); // ⽣成订单表59void del_order(void); // 退票60void clear_stdin(void); // 清除输⼊缓冲区61char* get_str(char* str,size_t len); // 获取字符串62char get_cmd(char start,char end); // 获取cmd命令 6364int main()65{66 init_sys();67 start_sys();68 exit_sys();69return0;70}7172// 系统初始化73void init_sys(void)74{75// 申请堆内存、加载数据76 FLI = calloc(MAX_Flight,sizeof(Flight));77 PAS = calloc(MAX_Passenger,sizeof(Passenger));78 ORD = calloc(MAX_Order,sizeof(Order));79 printf("system_init...\n");8081 FILE* ofrp = fopen("order.txt","r");82int i=0;83for(i=0; i<MAX_Order; i++) //读取⽂本中的数据到内存84 { int num = 0;85 num = fscanf(ofrp,"%s %s %d\n",ORD[i].pid,ORD[i].fid,&ORD[i].num);86 }8788 FILE* ffrp = fopen("flight.txt","r");89for(i=0; i<MAX_Flight; i++)90 {91int num = 0;92 num = fscanf(ffrp,"%s %s %s %s %d\n",FLI[i].fid,FLI[i].fname,FLI[i].start,FLI[i].end,&FLI[i].fnum);93 }9495 FILE* pfrp = fopen("passenger.txt","r");96for(i=0; i<MAX_Passenger; i++)97 {98int num = 0;99 num = fscanf(pfrp,"%s %s %s %s\n",PAS[i].pid,PAS[i].pname,PAS[i].password,PAS[i].tell);100 }101}102103// 显⽰航班表104void show_flight(void)105{106int i = 0;107for(i=0; i<MAX_Flight; i++)108 {109if(strlen(FLI[i].fid) != 0)110 {111 printf("id:%s name:%s start:%s end:%s fnum:%d\n",FLI[i].fid,FLI[i].fname,FLI[i].start,FLI[i].end,FLI[i].fnum); 112 }113 }114}115116// 系统开始运⾏117void start_sys(void)118{119// 进⼊系统的业务流程控制120//printf("系统开始运⾏...\n");121//show_flight();122while(true)123 {124 menu();125switch(get_cmd('0','7'))126 {127case'1': search_start(); break;128case'2': order_list(); break;129case'3': del_order(); break;130case'4': passenger_info(); break;131case'5': change_pas_info(); break;132case'6': login(); break;133case'7': logout(); break;134case'0': return;135 }136 }137}138139// 系统结束140void exit_sys(void)141{142 printf("data insert...\n");143 FILE* ofwp = fopen("order.txt","w");144 printf("ready insert order.txt\n");145int i= 0;146for(i=0; i<MAX_Order; i++) //数据存储回本地147 {148int num = 0;149if(strlen(ORD[i].pid) != 0)150 {151 num = fprintf(ofwp,"%s %s %d\n",ORD[i].pid,ORD[i].fid,ORD[i].num);152//printf("insert order.txt success\n");153 }154 }155156 FILE* ffwp = fopen("flight.txt","w");157 printf("insert flight.txt\n");158for(i=0; i<MAX_Flight; i++)159 {160int num = 0;161if(strlen(FLI[i].fid) != 0)162 {163 num = fprintf(ffwp,"%s %s %s %s %d\n",FLI[i].fid,FLI[i].fname,FLI[i].start,FLI[i].end,FLI[i].fnum); 164//printf("insert flight.txt success\n");165 }166 }167168 FILE* pfwp = fopen("passenger.txt","w");169 printf("insert passenger.txt\n");170for(i=0; i<MAX_Passenger; i++)171 {172int num = 0;173if(strlen(PAS[i].pid) != 0)174 {175 num = fprintf(pfwp,"%s %s %s %s\n",PAS[i].pid,PAS[i].pname,PAS[i].password,PAS[i].tell); 176//printf("insert passenger.txt success\n");177 }178 }179// 释放内存、保存数据180free(FLI);181free(PAS);182free(ORD);183 printf("exit...\n");184}185186// ⽣成主菜单187void menu(void)188{189 printf("\n");190 printf("********************************\n");191 printf("| |\n");192 printf("| flight order system |\n");193 printf("* 1.search_flight *\n"); //查询航班194 printf("| 2.order_list |\n"); //查询订票信息195 printf("* 3.del_order *\n"); //退订196 printf("| 4.passenger_info |\n"); //查询旅客信息197 printf("* 5.change_pas_info *\n"); //修改旅客信息198 printf("| 6.login |\n"); //⽤户登录199 printf("* 7.logout *\n"); //⽤户登出200 printf("| 0.exit_sys |\n"); //退出系统201 printf("| |\n");202 printf("********************************\n");203//printf("\n");204}205206// 登录207void login(void)208{209if(online == 0) //如果没有登录210 {211int i=0;212int time = 0;213while(time<3)215char entry_pid[20]; //临时变量⾝份证216char entry_pw[20]; //临时变量密码217 printf("please login!\n");218 printf("please entry pid:");219 get_str(entry_pid,20);220 printf("please entry password:");221 get_str(entry_pw,20);222for(i=0; i<MAX_Passenger; i++)223 {224if(strlen(entry_pid)==0 || strlen(entry_pw)==0)225 {226 printf("pid or password can't be empty\n");227 time++;228break;229 }230else if(strcmp(PAS[i].pid,entry_pid) == 0 && strcmp(PAS[i].password,entry_pw) == 0) 231 {232 printf("login success!\n");233 strcpy(online_pid,entry_pid);234 online = 1;235return;236 }237else if(i==MAX_Passenger-1)238 {239 printf("pid or password error\n");240 time++;241 }242 }243 }244 online = -1;245 printf("you have been locked,you can use this system now\n");246 }247else if(online ==1)248 {249 printf("you have been login\n");250 }251else252 {253 printf("you have been locked,you can use this system now\n");254 }255256}257258// ⽤户登出259void logout(void)260{261if(online == 1) //如果已经登录262 {263 online = 0;264 printf("logout success\n");265 }266else if(online == -1)267 {268 printf("you have been locked,you can use this system now\n");269 }270else271 {272 printf("you have not login\n");273 }274}275276// 查询旅客信息277void passenger_info(void)278{279if(online == 1) //如果已经登录280 {281//printf("online_pid:");282//puts(online_pid);283int i = 0;284for(i=0; i<MAX_Passenger; i++)286if(strcmp(online_pid,PAS[i].pid)==0)287 {288 printf("pid:%s, pname:%s, password:%s, tell:%s\n",PAS[i].pid,PAS[i].pname,PAS[i].password,PAS[i].tell); 289break;290 }291 }292 }293else if(online == -1)294 {295 printf("you have been locked,you can use this system now\n");296 }297else298 {299 printf("you have not login\n");300 }301}302303//修改旅客信息304bool change_pas_info(void)305{306if(online == 1) //如果已经登录307 {308 printf("your old info:\n");309int i = 0;310for(i=0; i<MAX_Passenger; i++)311 {312if(strcmp(online_pid,ORD[i].pid)==0)313 {314 printf("pid:%s, pname:%s\npassword:%s, tell:%s\n",PAS[i].pid,PAS[i].pname,PAS[i].password,PAS[i].tell); 315break;316 }317 }318char new_pid[20];319char new_pname[10];320char new_password[20];321char new_tell[20];322 printf("please entry new pid:");323 get_str(new_pid,20);324 printf("please entry new pname:");325 get_str(new_pname,10);326 printf("please entry new password:");327 get_str(new_password,20);328 printf("please entry new tell:");329 get_str(new_tell,20);330 strcpy(PAS[i].pid,new_pid);331 strcpy(PAS[i].pname,new_pname);332 strcpy(PAS[i].password,new_password);333 strcpy(PAS[i].tell,new_tell);334 printf("change success\n");335 }336else if(online == -1)337 {338 printf("you have been locked,you can use this system now\n");339 }340else341 {342 printf("you have not login\n");343 }344}345346// 开始查询航班347void search_start(void)348{349if(search())350 {351 printf("1.order\n");352 printf("0.back\n");353char cmd = get_cmd('0','1');354if(cmd == '0')355 {356return;357//start_sys();358 }359else360 {361char fid[20]; // 选择的航班号362if(online == 1) // 如果已经登录363 {364 printf("please entry fid:");365 get_str(fid,20);366if(0 == strlen(fid))367 {368 printf("fid is empty\n");369 }370int i = 0;371for(i=0; i<search_num; i++)372 {373//printf("fid:%s s_fid:%s num:%d\n",fid,search_fid[i],search_fnum[i]); 374if(strcmp(fid,search_fid[i])==0 && search_fnum[i]>0) //查询到对应航班375 {376 printf("order success\n");377int j=0;378for(j=0; j<MAX_Flight; j++) // 遍历航班表379 {380if(strcmp(fid,FLI[j].fid)==0)381 {382 FLI[j].fnum--; //票数减1383break;384 }385 }386int k=0;387for(k=0; k<MAX_Order; k++) // 遍历订票表388 {389//printf("ready insert...\n");390if(strlen(ORD[k].pid) == 0) // 在空位置插⼊数据391 {392 strcpy(ORD[k].pid,online_pid); // 插⼊当前⽤户⾝份证393 strcpy(ORD[k].fid,search_fid[i]); // 插⼊当前选择的航班号394 ORD[k].num = 1;395 printf("insert_to_order success\n");396break;397 }398 }399return;400 }401else if(strcmp(fid,search_fid[i])==0 && search_fnum[i] == 0)402 {403 printf("no ticket\n");404 search_start();405 }406else if(i==MAX_Flight-1)407 {408 printf("don't have this fid\n");409 search_start();410 }411 }412 }413else if(online == -1)414 {415 printf("you have been locked,you can use this system now\n");416 }417else418 {419 login();420 }421 }422 }423}424425// 查询航班426bool search(void)427{428 printf("start: \n");429 get_str(start,10);430 printf("end: \n");431 get_str(end,10);432int i=0;433 search_num = 0;434for(i=0; i<MAX_Flight; i++)435 {436if(strlen(start) == 0 || strlen(end) == 0)437 {438 printf("start or end can't be empty\n");439return false;440 }441if(strcmp(FLI[i].start,start)==0 && strcmp(FLI[i].end,end)==0)442 {443 printf("fid:%s, ticket_num:%d\n",FLI[i].fid,FLI[i].fnum);444 strcpy(search_fid[search_num],FLI[i].fid);445 search_fnum[search_num] = FLI[i].fnum;446//printf("search_fid[%d]:%s, search_fun[%d]:%d\n",search_num,search_fid[search_num],search_num,search_fnum[search_num]); 447 ++search_num;448 }449if(0 == search_num && i == MAX_Flight-1)450 {451 printf("no flight\n");452return false;453 }454if(search_num > 0 && i == MAX_Flight-1)455 {456//show_flight();457return true;458 }459 }460}461462// 输出订单信息463void order_list(void)464{465if(online == 1)466 {467int i=0;468for(i=0; i<MAX_Order; i++)469 {470if(strcmp(online_pid,ORD[i].pid)==0)471 {472//printf("online_pid:%s\n",online_pid);473 printf("fid:%s, pid:%s, ticket:%d\n",ORD[i].fid,ORD[i].pid,ORD[i].num);474 }475 }476 }477else if(online == -1)478 {479 printf("you have been locked,you can use this system now\n");480 }481else482 {483 login();484 }485}486487// 删除订单488void del_order(void)489{490if(online == 1)491 {492char fid[20];493 printf("order_list:\n");494 order_list();495 printf("please entry del_order fid:");496 get_str(fid,20);497int i=0;498for(i=0; i<MAX_Order; i++)499 {500if(strlen(fid)==0) //判空501 {502 printf("del_order fid can't be empty\n");503return;504 }505if(strcmp(fid,ORD[i].fid)==0)506 {507 memset(ORD[i].pid,'\0',sizeof(ORD[i].pid));508int j=0;509for(j=0; j<MAX_Flight; j++)510 {511if(strcmp(fid,FLI[j].fid)==0)512 {513 FLI[j].fnum++; // 返还飞机票514break;515 }516 }517 printf("delete success\n");518return;519 }520 }521 }522else if(online == -1)523 {524 printf("you have been locked,you can use this system now\n"); 525 }526else527 {528 login();529 }530531}532533// 清理输⼊缓冲区534/*void clear_stdin(void)535{536 stdin->_IO_read_ptr = stdin->_IO_read_end;//清理输⼊缓冲区537}538*/539540// 读取输⼊字符串541char* get_str(char* str,size_t len)542{543if(NULL == str)544 {545 puts("empty ptr!");546return NULL;547 }548549char *in=fgets(str,len,stdin);550551 size_t cnt = strlen(str);552if('\n' == str[cnt-1])553 {554 str[cnt-1] = '\0';555 }556else557 {558 scanf("%*[^\n]");559 scanf("%*c");560 }561562//clear_stdin();563564return str;565}566567// 获取cmd命令568char get_cmd(char start,char end)569{570//clear_stdin();571572 printf("please entry cmd:"); 573while(true)574 {575char val = getch();576if(val >= start && val <= end) 577 {578 printf("%c\n",val);579return val;580 }581 }582 }。

基于C语言的飞机订票系统_毕业设计

基于C语言的飞机订票系统_毕业设计

基于C语言的飞机订票系统一、需求分析1、本程序中,输入为字符串小写大写字符和整形;2、以字符串输出;3、本订票系统要能够实现航班情况的录入功能、航班的查询功能、订票功能、退票功能以及管理本系统的功能,具体为:(1)录入功能可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)(2)查询功能可以查询某个航线的情况(如,航班号,查询起降时间,起飞抵达城市,航班票价,确定航班是否满仓);(3)订票功能可以订票,如果该航班不存在,则订票失败;(4)退票功能可以退票并且记录乘客的相关信息以及退票信息;如客户资料:有姓名,证件号,订票航班情况,订单要有编号。

4、测试数据:订票正确输入航班号‘f2009’订票人姓名‘yangyating’ID‘0841919204’管理员正确密码“5566”错误密码“1234”二、概要设计1、程序包含以下模块:每个模块的算法设计说明如下:(1)录入模块:查找单链表的链尾,在链尾插入一个“航班信息”的新结点。

(2)查询模块:提供两种查方式:按航号和按航线查询,1代表按航号查询,2代表按航线查询。

0则表示退出查询。

顺着单链表查找,如果与航班号(航线)一致,输出相关信息,否则,查询不成功。

(3)订票模块:查找乘客要订的航班号,判断此航班是否有空位,有则输入乘客有关信息,订票成功,否则失败。

(4)退票模块:输入要退票的乘客姓名以及证件号码,查找乘客资料的链表中是否有这位乘客,有则删去此结点,并在空位加上1,无则退票失败。

(5)修改模块:输入密码,确认是否有权限对航班信息进行修改,有则在航班信息链表中查找要修改的结点,进行修改,否则不能修改。

流程图主函数流程图三、详细设计1、航班的信息类型:为了便于查找和修改,航班的情况存储结构采用单链表,每个元素表示一个航班的情况,包括航班号、起飞达到的时间、空座和目的的、票价以及限座七个数据项:单链表如下:每个结点包括数据域和指针域: C 语言描述如下:typedef struct flightnode{ char air_num[10]; /*航班号*/ char start_time[15]; /*起飞时间*/ char end_time[15];/*到达时间*/ char end_place[30]; /*目的地*/ int total;/*限座*/ int left; /*空座*/ int price; /*票价*/struct flightnode *next; /*指向个结点*/ }flightnode;基本操作:int CreatFlight(flightnode **l); //生成航班信息链表int InsertFlight(flightnode **p,char *air_num,char *start_time,char *end_place,int total,int left,int price); //插入航班信息的结点flightnode *modefy_airline(flightnode *l,char *air_num); //修改航班信息的函数int BookTicket(flightnode*a,char *air_num,passengernode *c,char *name,char *ID_num); //订票函数int CancelTicket(passengernode *c,flightnode*l,char *name,char *ID_num); //退票函数int SearchFlight(flightnode*head); //查询航班信息函数2、乘客信息类型:为了便于插入、删除和修改,其采用单链表存储结构,每个数据元素包括姓名、证件号码、航班号和座位号四个数据项:每个结点包括数据域和指针域:C语言描述如下:typedef struct passengernode{ /*定义乘客资料结点*/char name[20];char ID_num[20];char air_num[20];int seat_num;struct passengernode *next;}passengernode;基本操作:int CreatPassenger(passengernode **l); //生成乘客资料链表int InsertPassenger(passengernode **p,char *name,char *ID_num,char *air_num,int seat_num); //插入乘客资料的结点3、主函数和其他函数的伪码算法void main() //主函数{while (){ printf(/*主菜单界面*/)switch(ch=getchar()){case’1’:BookTicket;break;case’2’:CanclelTicket;break;case’3’:if(){SearchFlight;}else if(){SearchPassenger;};break;case’4’:exit;break;}}}flightnode *head_flight(){ //生成航班头结点}passengernode *head_passengernode(){ //生成乘客资料头结点}int CreatFlight(flightnode **l) //生成航班信息链表{ //初始化航班信息InsertFlight()//插入航班信息}// CreatFlightint CreatPassenger(passengernode **l) //生成乘客资料链表{ //初始化乘客资料InsertPassenger()//插入乘客资料}// CreatPassengerint InsertFlight()//插入航班信息新结点{ //定义指针,动态分配,复制信息流,赋值,next返回指针,循环//航班信息链的尾插} //InsertFlightint InsertPassenger()//插入乘客资料新结点{ //定义指针,动态分配,复制信息流,赋值,next返回指针,循环//乘客信息链的尾插} //InsertPassengerflightnode *modefy_airline(flightnode *l,char *air_num) {} //修改航班信息int BookTicket() //订票{ …InsertPassenger()}// BookTicketint CancelTicket() //退票{ …l=modefy_airline(l,air_num);}//CancelTicketint SearchFlight(flightnode *head) //查询航班{ //输出航班信息}// SearchFlightint SearchPassenger(passengernode *head) //查询乘客{ //输出乘客信息}// SearchPassenger四、调试分析1、调试结果:(1)系统主菜单界面:(2)进入订票的界面:(3)查询信息的界面:选择1,查询航班信息的界面:选择2,输入密码,查询乘客的信息的界面:新增乘客,查询乘客信息:密码错误时:(4)进入退票的界面:名字或者证件错误时:2、时间复杂度分析:本程序运行所耗费的时间主要在于循环语句,for和while语句,其时间复杂度应该为O(n)。

C语言课程设计——航空售票系统

C语言课程设计——航空售票系统

masses for Divi sion, and masse s he art, with mas ses wit h di scussi on ev eryone care of problem, liste ning t hey of call s, understand they of mood, feel t hey of s uffering, s ummary they of exper ience, conce ntra ted they of wisdom, es pecia lly on masses most hope, and most urgent, a nd m ost worrie s, and most complained of hot, a nd difficulties and focus pr oblem, m ore to a ctive resear ch, caug ht not put. Dare to i nnovate, in our w ork, often remain "the old way doesn't w ork, the ne w approa ch w oul d not" situation, the reas on, t he key is that many pe opl e know that copyi ng ot her people's i deas, mechani cally, usi ng s omeone els e's ol d ways . To change this pre dicame nt, requires us to break the shackle s of traditional conce pts to overcome conservative, conformist, good at finding new probl ems and to a ccept new thi ngs, summarize new experience, new id eas, developing new

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

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

数据结构课程设计——《订票系统》目录一、设计任务与要求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]。

航空售票系统 C语言课程设计

航空售票系统 C语言课程设计

《C语言程序设计》课程设计报告-----航空售票系统目录第1章功能需求描述 (1)1.1 需求分析 (1)1.2 功能列表与说明 (2)1.3 操作界面及操作说明 (3)第2章设计描述 (6)2.1 任务分解说明 (6)2.2 数据结构设计说明 (6)2.3 函数接口即函数调用关系 (8)第3章算法描述 (9)3.2 按航班号查询函数 (10)3.3 按飞机号查询函数 (11)3.4 按飞行日期查询函数 (12)3.5 按航班终点查询函数 (13)3.7 显示航班客户信息函数 (16)3.8 管理员操作函数 (18)3.9 订票系统函数 (19)3.10排队订票系统函数 (21)3.11 退票系统函数 (22)3.12 航班查询函数 (24)第4章开发过程描述 (26)4.1 源代码 (26)4.2 编译过程错误分析 (40)4.3 调试错误分析 (41)4.4运行结果及说明 (41)第5章设计心得体会 (44)第1章功能需求描述1.1 需求分析随着科技的发展和人们生活水平的日益提高,人们在不断追求更加快捷的交通方式以满足人们快节奏的生活方式,航空系统在交通系统中已扮演着一个越来越重要的角色。

然而,交通的快捷离不开信息的快捷。

随着计算机的发展和普及,人们的生活方式发生了巨大的改变,计算机在代替和延伸脑力劳动方面发挥着越来越重要的作用。

在交通系统中,有大量的数据需要被处理,而这些工作有人来完成几乎是不可能的,而交给计算机处理,就可以很好地满足我们的需求。

航空售票管理系统可以根据乘客和管理人员的要求,进行方便快速的查询、购票、退票和管理等工作。

1.2 功能列表与说明系统共设有5个功能并以菜单方式工作,上图为功能列表图。

功能分别包括以下5个方面:(1)每条航线所涉及的信息有:终点站名、航班号、飞机号、飞行日期(星期几)、乘员定额、余票量、已订票的客户名单(包括姓名、订票量、舱位等级1,2或3)以及等候替补的客户名单(包括姓名、所需票量);(2)查询航线:根据旅客提出的终点站名输出下列信息:航班号、飞机号、星期几飞行、最近一天航班的日期和余票额;(3)订票业务:根据客户提出的要求(航班号、订票数额)查询该航班票额情况,若有余票,则为客户班里订票手续,输出作为好;若已满或者余票少于订票额,则需要重新询问客户要求。

民航售票管理系统(课程设计、C)

民航售票管理系统(课程设计、C)
t.fly.minute=p->fly.minute;
nd.hour=p->land.hour;
nd.minute=p->land.minute;
t.man=p->man;
t.amount=p->amount;
r=p->infor;
fwrite(&t,sizeof(struct news),1,fp);
5.1.2设计要求
①建立两个二进制文件:其中之一,用来存放航班信息;另一个用来存放客户订票信息。
②结构体采用动态链表形式,用动态链表存放数据,及实现数据的存储与读取。
③在两个动态链表间,用指针连接起来。
④设计一个漂亮的欢迎界面和友好的系统界面。
⑤要求系统能够根据系统菜单相应的功能执行相应的部分。
⑥要求能够实现录入、查询等相应的功能。
printf("\n请输入终点站:");scanf("%s",t->finish);
printf("\t\t5.增添信息\t6.修改信息\n\t\t7.删除信息\t8.订票\n");
printf("\t\t9.退票\t10.保存航班信息\n\t\t11.保存退订票信息\t12.查看订票情况\n");
printf("\t\t13.统计订票信息\t14.退出\n");
printf("***********************************菜*单***********************************\n");
3. 浏览航班信息功能。
4. 航班信息查询功能。根据航班号、终点站、飞行时间等条件查询。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档