C语言课程设计(飞机订票系统说明书)_第1页
C语言课程设计(飞机订票系统说明书)_第2页
C语言课程设计(飞机订票系统说明书)_第3页
C语言课程设计(飞机订票系统说明书)_第4页
C语言课程设计(飞机订票系统说明书)_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录TOC\o"1-5"\h\z设计目的1总体设计1详细设计3调试与测试4源程序代码4程序运行截图16仍存在的问题18心得体会18设计进度表19参考文献20一、正文(一)设计目的:假定民航机场共有n个航班,每个航班有一航班号、确定的航线(起始站、终点站)、确定的飞行时间(星期几)和一定的成员订额。设计一飞机订票系统,使之能提供下列服务:1、航班信息录入功能(航班信息用文件保存)包扌舌航班号、起始站、终点站、机票总数、已售机票数;2、航班信息浏览功能3、查询航线:按航班号查询、按终点站查询、按航线查询4、承办订票和退票业务(可选项)5、修改航班信息6、删除航班信息(二)总体设计:编写一个飞机订票系统的程序,使该系统能够实现对航班信息的录入、浏览、查询、修改、删除以及订票、退票的功能。根据题目要求,首先要制作一个主菜单显示出各个操作的提示可供用户选择,进而一步步地深入操作。根据主菜单的内容再进一步编制具体操作的函数,各个功能均用专门编制的函数来完成。这就是看到题目后的最初的思路。因为飞机票管理系统含有各航班的各项信息,如航班号、航线、飞行时间、机票数目等必要信息,综合考虑决定用结构体数组比较合适,根据题目要求定义如卜结构体类型:头文件包含、全局变量定义和结构体定义源代码:#include<stdio.h>//标准输入、输出头文件#include<string.h>//包含字符串函数处理头文件#include<stdlib.h>幷defineN1000〃定义最多的航班数#defiiiePRT"%-d%12s%12s%10s%12d%12d\n,,,s[i].num,s[i].start,s[i].over,s[i].tiine,s[i].count,s[i].selled〃定义输出格式defineLB”航班号起始站终点站时间机票总数已曹票数5”〃定义打印列表格式stmctail-{mtnum;chaistart[20];chaiovei[20];chaitune[10];mtcount;〃机票总数mtselled;//已预定机票总数}s[N];mtliii=0;〃定义全局变量,记录下航班信息的数量charii[10];〃用来选择是否继续的变量人概思路就是这样!详细设计(定义的每个函数均作介绍):1)初始化界面函数(face函数)在程序开始执行时调用该函数,在屏幕上打印出初始界面!并选择要执行的操作!2)信息输入函数(input函数)该函数里面调用for循环控制,该函数中用到一个全局变量k,用来控制该函数被再次调用时可以在已存放信息结构体后面继续输入数据,每当一个完整的航班信息输入完毕后,会提示是否输入下一个信息!按”0”j结束输入!然后调用卜•面要介绍的信息保存函数(save函数)!保存完毕后退回到主菜单!3)信息保存函数(save函数)由于本程序设计时当输入机票总数不是正数时就会结束保存航班信息,所以进入save函数时首先判断机票总数是否人于0,人于0时候开始进入主体部分执行!主要过程是先打开文件,文件打开成功后调用文件格式输出函数(®nnf函数)将信息保存到文件中区!4)文件读取函数(read函数)该函数首先打开保存飞机票信息的文件,然后将保存的信息写到飞机信息的结构体数组里面去(调用格式输入函数fscanf),并将航班信息输出到屏幕上!输入完毕后关闭文件!5)信息打印函数(pnnt函数)该函数只是负责把调用read函数,并打印出航班信息输出事的一些辅助信息!6)航班信息查找函数本函数用do.....wlule循环控制结构,进入函数后选择查询方式(可以按航班号、终点站、航线查询),方式选择后用switch语句飞机的航班号(或者起始站、终点站)!从switch语句出来后,首先调用文件读取函数(read函数),输出所有航班信息到屏幕上,然后在if语句中判断刚才所输入飞机的航班号(或者起始站、终点站)与数组中那个航班信息符合,找到后打印出来!循坏结束后,输入“yes”(“no”),while判断输入的条件继续(终止查找)!选择终止查找后返回主菜单!7)航班信息删除函数(Delete)航班删除模块与查找函数类似,也是用的do.....while循环控制结构,不同时要先输入密码才能进入函数!进入函数后要选择删除方式(按航班号、航线)删除,输入要删除的航班号(航线)后,比如说选择按航班号删除,找到要删除的航班数组下标1后,用for(intj=ij<m;j++){s[j]=s|j+l];}方式实现删除,删除完毕后打印出删除过的航班信息列表,然后选择“no”结束该函数,返回到主菜单!8)订票函数(Eook函数)首先调用查询函数(search函数),找到要预订机票的航班,然后输入要顶的机票数目,根据输入的机票书修改已售机票书数值!然后保存信息!9)退票函数(Refimd(j函数与订票函数类似,首先调用查询函数(search函数),找到要预订机票的航班,然后输入要退的机票数目,根据输入的机票书修改已售机票书数值!然后保存信息!10)修改函数(Modify函数)该函数与输入函数类似,把数组里面的信息重新输入一遍达到修改航班信息的功能!11)main函数输入密码后进入main函数,然后main函数负贯调用以上程序就行了!

源程序代码:#include<stdio.h>#include<strmg.h>#include<stdlib.h>井defineN200stmctair{mtnum;chaistart[20];chaiovei[20];chaidm亡[10];mtcount;//机票总数mtselled;//已预定机票总数}s[N];#defiiiePRTH%-d%12s%12s%10s%12d%12d\nH,s[i].num5s[i].start,s[i].over5s[i].time,s[i].count,s[i].selled//定义输出格式defineLB-航班号起始站终点站时间机票总数己售票数\n”〃定义打印列表格式voidface();voidmput();voidprintQ;voidsearch();voidDeleteQ;voidBookrngQ;voidModify();voidRefiind();voidsave();voidread();mti、m=0,k=0;^l\^l\^l\^l\^l\^l\^l\p\^l\^l\^l\p\ssssssssssssssstttttttttttttttuuuuuuuuuuuuuuuppppppppppppppp★********************************************************★“)・★*你可以选择下面的操作:★*^l\^l\^l\^l\^l\^l\^l\p\^l\^l\^l\p\ssssssssssssssstttttttttttttttuuuuuuuuuuuuuuuppppppppppppppp★********************************************************★“)・★*你可以选择下面的操作:★*1•输入航班信息**n);★*2•浏览航班信息**n);★*3•查询航班信息**n);★*4•删除航班信息**n);★*5•订票信息**n);★*6•修改信息*★「;★*7•退票信息**n);★*0•退出*★「;★********************************************************★")・★*制作人:#####学号:111111111111T);★*飞机票管理系统欢迎您★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★”);voidinam(){//delay(lOOO);system(McoloraOH);//设置背景和字体颜色//system(Hcolor100M);//yaiisemtj;chaifI]=HllllllllllH;〃设置密码uity;pnntf(-飞机票管理系统WE);while(l){请输入密码进入系统An”);pnntf(请输入密码进入系统An”);scaiifV%s”,f);〃读取密码if(sticnip(f,HllllllllUn)==O){while(l){svstem(nclsM);face。;printf(-请在0-7中选择以回车键结束:”);scaiifC%cT;&j);system(Mclsn);switch(j){case1:mput();//调用输入模块break;case2:prmtQ;//调用打印模块break;case3:search();//调用查询模块break;case4:Delete();//调用删除模块break;case5:Booking();//调用订票模块break;case6:Modifv();//调用修改模块break;case7:Refund();//调用退票模块break;case0:gotoend;}prmtfC*\ii按任意键继续……”);}}else{mtyy;pnmf(”输入密码错误!请检查您的密码是否正确!W);pnntf(”是否继续输密码?按任意键继续,0结束!scanf(・%cT&y);//在此需输入任意一个整数值数值,程序才能继续执行if(y==0)break;}}end:prmtf(n(=八欢迎再次回来A=)\nM);pnntff任意键退出系统!\n”);mthp2;scanf(H%d,\&hp2);}voidmput(){system(Mcolor8f*);‘pnntfC请依次输入航班信息(机票总数为0结束输入):-”完成输入信息请键入w以回车键结束\1T);//打印提示信息pnntff\nM);intv;foi(i=k;i<N;i++)pnmf(”请输入航班号小);scaiif(M%dH,&s[i].num);〃读取航班号pnmf("请输入起始站:”);scanf(H%s,\s[1].start);//i^取起始站prirnff请输入终点站小);scanf(”%s”,s[i]・o\©);〃读取终点站prirnff请输入时间(星期)「);scanf(”%s”,s[i]・time);〃读取时河pnmf(“请输入总机票数(0结束):”);scanf(H%d,\&s[i].count);//i^取机票数primfC请输入己售机票数:”);scanf(”%cT;&s[i]・selled);〃读取机票数m++;//飞机信息录入计数k++;pnmf("第%€1个信息已经输完是否继续?按任意键继续(0结束scanfC%cT&y);//在此需输入任意一个整数值数值,程序才能继续执行if(y==0){saveQ;//保持输入数据break;}}}voidsave()〃保存模块程序{if(s[0].count>0){system(Mcolor78”);FILE*fp;//定义文件指针if((fp=fopen("D:\\飞机票系统数据保存・txtTw+O==NULL)〃打开文件并判断是否出错{一pnntf(”文件打开失败「);//打印出错提示}else{fprintfi(fp,LB);fpnntf(fp/=====—==============—===—=========aiM);for(i=0;i<m&&s[i].count>0;i++){fprintf(fp.PRT);}}fclose(fp);//关闭文件inthp;pnntf(-信息保存到文件成功!任意键返回主菜单!31T);scanf(”%d”,&hp);}else{intk;pnntff飞机票总数为零!输入结束!\n”);prmtf(n任意键返回主菜单!5\iT);scanf(”%d役&k);voidread()//从文件读取信息模块system(McolorEO”);FILE%;〃定义文件指针if((fp=fopen(^D://飞机票系统数据保存・tx匚T))=NULL)〃打开文件,并判断是否出错pnntf(”创建文件失败!”);//打印出错提示elsefdr(i=0;i<m;i++){fscanf(fp,M%-d%12s%12s%1Os%12d%12d\iis[i].num,s[i].starLs[i].ovei;s[i].tiine.&s[i].count&s[i].selled);pnntf(PRT);}fclose(fp);//关闭文件}voidpiiiit()//打印模块{system(Mcolor97”);charw[10];pnntf(^\n所有航班信息如下\iT);printf(LB);i-eadQ;//调用读取文件函数pnntf("\n\ii按任意键回车键结束返回上层菜单:\n\ii");scanff%s”,w);}voidsearch()//查询模块{system(Mcolor5En);charname1[20];charname2[20];charii[10];intn,no,flag=0;do{pmitff请选择查找方式:\11”);〃打印查询方式菜单pmitffl•按航班号查找\n””2•按终点站查找血”•3按航线查找\n””0•返回\iT);pnntf(H请在0・3审选择:\iiHAn\n按其他键以回车键结束返回主菜单An”);scanfC%d”,&n);〃读取查找方式if(n=0)break;switch(n){case1:pnmf(”请输入航班号:n);scanf(”%cf;&no);〃航班号break;case2:pnmf(”请输入终点站名称:”);scanff%sFame2);//读取终点站break;case3:pnntf(”请输入起始站名称:");scaiif(M%sH4iame1);//读取起始站pirntfC1请输入终点站名称:”);scaiif(M%sn4iame2);//终点站break;default:break;}pnntf(^\n已经存在的航班如.KW);printf^LB);read();//i^用读取函数{if(strcmp(s[i].1)=0&&sticmp(s[i].ovei\name2)=0)//按终点站起始站判断输出条件{//pnntfC'n查找航班信息成功!\n\iT);pnmf(”\n下面是你要查找的航班信息\n\ii“);flag=l;printf(LB);printf(PRT)^/打印信息break:}if(strcmp(s[i].ovei;name2)=0){pnmf(”\n下面是你要查找的航班信息\n\ii“);flag=l;printf(LB);printf(PRT)^/打印信息break:}if(s[i].num==no)//按航班号判断输出条件{printf(-\n卞面是你要查找的航班信息\n\n”);flag=l;printf(LB);printf(PRT)^/打印信息break;}}no=0;〃将航班号赋值为0if(flag){pnntfCS您需要的信息查找完毕:5n是否继续查找?请键入yes或no以回车键结束\n}else{prmtf(n\ii没有您需要的信息:\iiH是否继续查找?请键入yes或no以回车键结束\n}}while(strcmp(ii/,yesH)==O);//判断结束while(strcmp(ii/,non)=0)break;}voidDeleteQ//删除模块{system(McolorIE”);charname1[20];

charname2[20];charii[10];charf[]=M2010146104H;//设置密码intno,n,flag=0;pmitff请输入密码并以回车键结束:\nj;scaiifV%s”,f);〃读取密码if(strcnip(f/2010146104H)==0)〃判断密码是否正确do\n”);〃打印删除方式菜单请在0-2中选择以回车键结束:\『);pnntff\n”);〃打印删除方式菜单请在0-2中选择以回车键结束:\『);H*2•按航线删除\n””*0•返回\n”);scanfT%cT:&n);//读取删除方式if(n==0)break;〃跳出循环switch(n)case1:pnntfC请输入航班号:”);case1:pnntfC请输入航班号:”);scanfC%cT,&iio);//读取航班号pnntf(M\nreadQ;//调用读取函数beak;//跳出循环case2:pnntf(”请输入起始站名称:Jscaiif(H%sH,name1);〃读取起始站printf("请输入终点站名称:”);scaiif(H%sr\name2);//读取终点站printf(n\Qread();//调用读取函数break;//跳出循环}pnntf(M\nfbr(i=0:i<m;i++)已经存在的航班如l、An\n”);已经存在的航班如l、An\n”);删除后的航班如卜・\n\ir);//if(s[i].num==no)//按航班号删除pruitf^LB);flag=l;s[j]=s[j+l];}fbr(iiiti=0;i<m;i++)pnntf(PRT);}

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论