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

下载本文档

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

文档简介

1、目录设计目的 1总体设计 1详细设计 3调试与测试4源程序代码4程序运行截图 1.6.仍存在的问题1.8.心得体会 1.8.设计进度表1.9.参考文献 2.0.一、正文(一)设计目的 :假定民航机场共有n 个航班,每个航班有一航班号、确定的航线(起始站、终点站)、确定的飞行时间(星 期几)和一定的成员订额。设计一飞机订票系统,使之能提供下列服务:1 、 航班信息录入功能(航班信息用文件保存)包才舌航班号、起始站、终点站、机票总数、已售机票数;2 、 航班信息浏览功能3 、 查询航线:按航班号查询、按终点站查询、按航线查询4 、 承办订票和退票业务(可选项)5 、 修改航班信息6 、 删除航班信

2、息(二)总体设计:编写一个飞机订票系统的程序,使该系统能够实现对航班信息的录入、浏览、查询、修改、删除以及订 票、退票的功能。根据题目要求,首先要制作一个主菜单显示出各个操作的提示可供用户选择,进而一步步 地深入操作。是看到题目后的最初根据主菜单的内容再进一步编制具体操作的函数,各个功能均用专门编制的函数来完成。这就 的思路因为飞机票管理系统含有各航班的各项信息,如航班号、航线、飞行时间、机票数目等必要信息,综合考虑决定用结构体数组比较合适,根据题目要求定义如下结构体类型:头文件包含、全局变量定义和结构体定义源代码:#include<stdio.h> 标准输入、输出头文件#incl

3、ude<string.h>/含字符串函数处理头文件#include<stdlib.h>并define N 1000定义最多的航班数PRT#defiiie"%-d%12s %12s %10s %12d %12dn,si.num,si.start,si.over,si.tiine,si.count,si.selled 定义输 出格式#defiiie LB ”航班号起始站终点站时间 机票总数 已曹票数 5 ”定义打印列表格式stmct ail -mt num;chai start20;chai ovei 20;chai tune 10;mt count;/ 机票总数

4、mt selled;/ 已预定机票总数sN;mti,m=0;定义全局变量,记录下航班信息的数量charii10;用来选择是否继续的变量人概思路就是这样!详细设计(定义的每个函数均作介绍):1 ) 初始化界面函数( face 函数)在程序开始执行时调用该函数,在屏幕上打印出初始界面!并选择要执行的操作!2 ) 信息输入函数( input 函数)该函数里面调用for循环控制,该函数中用到一个全局变量k,用来控制该函数被再次调用时可以在已存放信息结构体后面继续输入数据,每当一个完整的航班信息输入完毕后,会提示是否输入下一个信息! 按 ” 0 ”j 结束输入!然后调用卜 ?面要介绍的信息保存函数(sa

5、ve 函数)!保存完毕后退回到主菜单!3 ) 信息保存函数( save 函数)由于本程序设计时当输入机票总数不是正数时就会结束保存航班信息,所以进入 save 函数时首先判断机票总 数是否人于 0,人于 0 时候开始进入主体部分执行!主要过程是先打开文件,文件打开成功后调用文件格式 输出函数(俎nnf 函数)将信息保存到文件中区!4 ) 文件读取函数( read 函数)入函该函数首先打开保存飞机票信息的文件,然后将保存的信息写到飞机信息的结构体数组里面去(调用格式输数 fscanf ) ,并将航班信息输出到屏幕上!输入完毕后关闭文件!5)信息打印函数(pnnt函数)该函数只是负责把调用 rea

6、d函数,并打印由航班信息输生事的一些辅助信息!6)航班信息查找函数本函数用dowlule循环控制结构,进入函数后选择查询方式(可以按航班号、终点站、航线查询),方式选择后用switch语句飞机的航班号(或者起始站、终点站)!从 switch语句由来后,首先调用文件读取函数(read函数),输由所有航班信息到屏幕上, 然后在if语句中判断刚才所输入飞机的航班号 (或者起始站、终点站) 与数组中那个航班信息符合,找到后打印由来!循坏结束后,输入 “yes ”( “ no”)while判断输入的 条件继续(终 止查找)!选择终止查找后返回主菜单!7)航班信息删除函数 (Delete )航班删除模块与

7、查找函数类似,也是用的dowhile循环控制结构,不同时要先输入密码才能进入函数!进 入函数后要选择删除方式(按航班号、航线)删除,输入要删除的航班号(航线)后,比如说选择按航班号删除,找到要删除的航班数组下标1后,用for (intj=ij<m;j+ ) sj=s|j+l ;方式实现删除,删除完毕后打印由删除过的航班信息列表,然后选择“no”结束该函数,返回到主菜单!8)订票函数(Eook函数)首先调用查询函数(search函数),找到要预订机票的航班,然后输入要顶的机票数目,根据输入的机票书修改已售机票书数值!然后保存信息!9)退票函数(Rdbnd (J函数与订票函数类似,首先调用查

8、询函数(search函数),找到要预订机票的航班,然后输入要退的机票数目,根 据输入的机票书修改已售机票书数值!然后保存信息!10)修改函数(Modify函数)该函数与输入函数类似,把数组里面的信息重新输入一遍达到修改航班信息的功能!11) m ain 函数输入密码后进入 main函数,然后main函数负贯调用以上程序就行了!源程序代码:#include<stdio.h>#include<strmg.h> #mclude<stdlib.h>井 define N 200stnict air mt num;chai stait20;chai ovei20;cha

9、i dm 亡10;PRT定义输己售票数);mt count;/ 机票总数iiit selled;/已预定机票总数 sN;rFdefiiieH%-d%12s %12s%10s%12dstart,si.over ?si.tune,si.count,si.selled由格式#defiiie LB H航班号起始站终点站时间机票总数n” 定义打印列表格式void face(); void mput(); void print(); void search。; void DeleteQ; void BookiiigQ; void Modify。: void Refiind(); void save();

10、void read();mt 1411=0,k=0;void face() systeni( Hcoloi 0E M);puts( H”puts( H火飞机票管理系统欢迎您*n);puts( HA, * )?puts( H"你可以选择下面的操作:puts( puts( puts( puts( puts( puts( puts( puts( puts( puts( puts( ?输入航班信息 ?浏览航班信息 ?查询航班信息 ?删除航班信息 ?订票信息?修改信息 ?退票信息?退由););););* *”* 0 ;*”* 0 ; “)?文制作人:#学号:111111111111);void

11、 main()/delay(lOOO);system ( " coloi a0”设置背景和字体颜色system( Hcolor 100 H);/yaiiseintj; chaTf=Tlllllllir; 设置密码Ult y;pnntf(-飞机票管理系统WE);wlule(l)pnntf( H请输入密码进入系统An" );scaufC%s ” ,f); 读取密码if(strcnip(f, H 11111111H n)=O)while(l)system( HclsM);face o ;pnntf(-请在0-7中选择以回车键结束:"scan)C%cT ; &j)

12、;system( MclsH); switch(j)case 1: mput();/调用输入模块break;case 2:prmtQ;调用打印模块break;case 3:search();/ 调用查询模块 break;case 4:De1ete();/调用删除模块 break;case 5:Booking();/调用订票模块break;case 6:Modifv();/ 调用修改模块 break;case 7:RefundQ;调用退票模块break;case 0:goto end;prmtfC*ii按任意键继续”);elsenit vy ;pnntf( ”输入密码错误!请检查您的密码是否正确

13、 ! W);pnntf( ”是否继续输密码?按任意键继续,0 结束 !scanff% 出 &y); 在此需输入任意一个整数值数值,程序才能继续执行if(y=0)break;end:prmtf( n 欢迎再 次回来A=)n M);pnntfC*任意键退出系统! n” ) ;int hp2;scanff%d ” ,&hp2);void mput()system( M coloi 8f*);“ pnntfC 请依次输入航班信息 (机票总数为 0 结束输入 ):-”完成输入信息请键入w 以回车键结束n” ) ;/ 打印提示信息pnntff iiM);int v;for(i=k;i<

14、;N;i+)prints 请输入航班号:J;scaiif ( M%d ,&si.num) ; 读取航班号pirntfC* 请输入起始站: ”);scanf (" s M s 1. start ); 读取起始站pnntf (” 请输入终点站小);scanf (" % s> si? ovei ); 读取终点站pnntf ("请输入时间(星期)小); scanf (" s篇si ? time ); 读取时间pnntf (“ 请输入总机票数( 0 结束) : ”) ;scanf (H%dH,&si.count ) ;/iA 取机票数 pri

15、nts 请输入已售机票数:”)scanf ( H%d H .&si.selled ) ;/ 读取机票数m+;/ 飞机信息录入计数 k+;pnntf ( "第: 1 个信息已经输完是否继续?按任意键继续( 0 结束scanff%d役&y); 在此需输入任意一个整数值数值,程序才能继续执行if (y=0 )saveQ ; / 保持输入数据break; void save() 保存模块程序if(s0.count>0)system( M color 78 ” ) ;FILE % ;定义文件指针打开文件并判断是否由错if(?=fop “ WD飞机票系统数据保存?txtTw

16、+O=NULL)pnntf(文件打开失败);打印由错提示 elsefpiintf( fp ± B);fpnntf( fp/ = aiM); for(i=0;i<m&&si.coimt>0;i+)fpiintf(fp.PRT); fclose(fp);/ 关闭文件int hp;pnntf(-信息保存到文件成功!任意键返回主菜单!31TJ;scanf( " % d“,&hp); else int k;pnntfC飞机票总数为零!输入结束!n”);prmtf( n任意键返回主菜单 T);scanf( " d 役 &k);voi

17、d read()/从文件读取信息模块pnntf(system( Mcolor E0 H);FILE %;定义文件指针if(fp=fopen("D:/飞机票系统数据保存?tx匚T)尸NULL) 打开文件,并判断是否由错创建文件失败! ”);/ 打印由错提示elsefdr(i=0;i<m;i+) fscanf(fp, M %-d% 12s% 12s% 1 Os% 12d% 12d'Ji 役& si.num,si.start.si.ovei;si.tiine.&si.count&si.selled ); pnntf(PRT);fclose(fp);/

18、关闭文件 void piiiit()/ 打印模块system( M color 97" ); char w 10;所有航班信息如下iTJ;printf( Hn pnntfALB);readQ;/调用读取文件函数按任意键回车键结束返回上层菜单:I111");pnntf( nnii scanf( ,%s,w); void search()/ 查询模块system( Mcolor 5E n);char name 1 20;char name220;char ii10;int n,no,flag=0;dopmitfc 请选择查找方式:11 ” ) ;/ 打印查询方式菜单pnntf(

19、Al.按航班号查找n”2 ?按终点站查找血-” 3.按航线查找n ”0 ?返回 iT);pnntf( H 请在 0? 3 审选择: ii H?iiii 按其他键以回车键结束返回主菜单An ” ) ;scanfC%d ",&n);读取查找方式if(n=0)break;switch(n)case 1:pnntff 请输入航班号: n) ;scanf( " d 役 &no); 航班号 break;case 2:pnmf ( ” 请输入终点站名称 : ” ) ;scaiif( M %sH4iame2);/ 读取终点站 break;case 3:pnntf ( ” 请

20、输入起始站名称 :'*) ;scaiif( ,%sn4iame 1);/ 读取起始站piuitfC* 请输入终点站名称:” ) ;scaiif( M%sH4iame2);/终点站break;default:break;pnntf(An 已经存在的航班如下 niT);pnntfALB);lead。;/用读取函数if(strcmp(si . 1 )=0&&sticmp(si .oveiname2)=0)/按终点站起始站判断输出条件/prmtfC*n 查找航班信息成功 !niT) ;pnmf( ” n 下面是你要查找的航班信息 nn ” ) ; flag=l

21、 ;printfALB);printf(PRT)A/ 打印信息 break;if(strcmp(si .2)=0)pnmf( ” n 下面是你要查找的航班信息 nn ” ) ; flag=l ;printfALB);printf(PRT)A/ 打印信息 break;if(si.num=no)/ 按航班号判断输出条件pnntfOn卞面是你要查找的航班信息 nn ” )flag=l ;printfLB);printf(PRT/打印信息break;no=0; 将航班号赋值为if(flag)pnntfCS是否继续查找您需要的信息查找完毕: n n?请键入yes 或 no 以回车键结束

22、n scaiif(M %s*ii);elseprmtf( nii是否继续查找没有您需要的信息: ii H?请键入yes 或 no 以回车键结束n scaiif(M %s*ii);,yes H)=O);/,no n)=0)判断结束while(strcinp(ii/ while(strcmp(ii/ break;void DeleteQ/删除模块 system( M color IE);char name 1 20;char name220;char ii10;char fI= H2010146104 H;/ 设置密码: n “ ) ; scaufC%s ” ,f); 读取密码 判断密码是否正确i

23、nt no,n,flag=0;pmitfC 请输入密码并以回车键结束if(strcnip(f, H2010146104 H)=0)pnntfC 请选择删除以方式回车键结束: pnntf(F ?按航班号删除n”H *2 ? 按航线删除n ” *0 ? 返回 n ” ) ;iT);););请在 0? 2 中选择以回车键结束:scanff%dj&n);/ 读取删除方式 if(n=O)break; 跳出循环switch(n)case 1:printf( H 请输入航班号:H) ;scanfC%d &iio);/ 读取航班号printf( ,n已经存在的航班如 l 、 nread();/

24、 调用读取函数break;/ 跳出循环case 2:pnntf(”请输入起始站名称:JscanfC%s ” ame 1 ); 读取起始站prrntfC' 请输入终点站名称:” );scanf( ” s ” 4iame2); 读取终点站printf( HQ已经存在的航班如 l 、 nread();/ 调用读取函数 break;/ 跳出循环 printf( Mnfbr(i=0;i<m;i+)删除后的航班如 FW);/if(si.num=no)/ 按航班号删除printf(LB);flag=l;for(iiit j=ij<m;j+)sj=sj+l ;for(iiit i=O;i<m;i-H

温馨提示

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

评论

0/150

提交评论