飞机订票系统完整版_第1页
飞机订票系统完整版_第2页
飞机订票系统完整版_第3页
飞机订票系统完整版_第4页
飞机订票系统完整版_第5页
免费预览已结束,剩余35页可下载查看

下载本文档

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

文档简介

1、飞机订票系统标准化管理处编码BBX968T-XBB8968-NNJ668-MM9N商学院课程设计报告课程名称C语言程序设计题目名称飞机订票系统学生学院 商学院专业班级信息管理与信息系统学 号 学生姓名 _ 完成日期2014年 月 日目录1 .设计目的与要求31.1 题目与设计要求31.2 本程序涉及的知识点32 .功能设计33 . 1总体设计34 . 2详细设计33.程序实现43.1 程序实现时应考虑的问题45 . 2模块代码46 .测试分析146.1 测试结果及分析147 .总结16参考文献161 .设计目的与要求1.1 题目与设计要求题目:飞机订票系统设计设计要求:本程序首先输入机票信息,

2、管理员在保存功能中通过密码验证输入机票信 息,可以对机票信息进行查询;修改;删除等功能。一般用户可以使用订票;显示;退 票等功能,在订票时用户输入密码在退票时通过验证后成功退票。假定民航机场共有n个航班,每个航班有一航班号、确定的航线(起始站、终点站)、 确定的飞行时间(星期儿)和一定的成员订额。设计一个飞机订票系统,使之能提供下 列服务:1、航班信息录入功能(航班信息用文件保存)包括航班号、起始站、重点站、机票数等;2、航班信息浏览功能4、查询航线:按航班号查询1. 2本程序涉及的知识点运用了 access函数判断文件是否存在。系统初始化后,没有寻找到数据文件,则进行 新建数据文件,此函数的

3、作用就是进行新建文件数据的录入。运用到了文件指针的定义 FILE *fp,文件的打开fopen和关闭fclose、成块读写函数中的fwrite;运用for循 环进行各组数据的输入,用m+记录下输入的航班数量,并运用if语句判断是否输入下 一条航班信息,若不继续则返回主界面。系统初始化之后,若原始数据文件存在,则进 行文件内航班信息的读取,以供接下来程序中的各个函数来使用。在该函数中同样运用 到了文件指针FILE *fp、文件的打开fopen和关闭fclose、成块读写函数中的fread、 文件结束检测函数feof同时配合while语句控制文件的读取;m+记录下读取到的航班 数量等。2.功能设计

4、2. 1总体设计航班结构体包含三大模块,分别是:航班信息输入模块、航班信息浏览模块、航线查询模块3. 2详细设计数据结构采用结构体数组,设计航班结构体如下:Struct(Char flightNo10;航班号Char start 10;起始站Char end10;终点站Float day;飞行时间Int totalTicket;预售票总数Int sellTicket;已售票总数FlightN; 航班结构体(1)航班信息输入模块采用fwrite或fprintf把航班信息写入航班信息文件。(2)航班信息浏览模块分屏显示航班信息,每屏10条记录,按任意键显示下一屏。读文件(采用fread 或fsca

5、nf)然后显示即可。(3)航线查询模块通过菜单选择查询方式,提供按照航班号、起点站、终点站和飞行时间查询。采用 基本查找算法即可。3.程序实现3.1 程序实现时应考虑的问题 因为在飞机订票系统中涉及到匕机的订票和退票业务,还有按航班号的排序功能,所以 定义了这个保存函数来保存下每次运行系统后对整个订票系统涉及到的资料的修改。为 了简便程序,准备将此函数放在整个系统得推出选项中,这样就只在每次退出系统的时 候进行一次保存,将此次对文件修改的所有新信息都一次保存下来。这样就实现了整个 系统运行时进行一次读取,推出时一次保存的设计,大大简便了文件的调用和读取。4. 2模块代码#include<

6、stdio. h>标准输入、输出头文件#include<string. h>包含字符串函数处理头文件#include<stdlib. h>包含动态存储与释放函数头文件#define N 10000struct flight定义结构体数组int num;航班号char start 20; 起始站char end20;终点站char time10;飞行时间int count;机票总数flightN;int i;int m=0;ttdefine PRINT *%-d%12s%12s%10s%12dn,, flighti. num, flighti. start, fli

7、ghti. end, flightLiZ. time, flighti. count定义输出格式void input ();输入航班信息void print ();输出航班信息void save();保存航班信息void search();查找航班信息void shanchu(); 删除航班信息void dingpiaoO : 订票信息void tuipiao(); 退票信息void xiugai (); 修改信息void main()(int j;printf ( *您好,欢迎使用 匕机ij 票系统*n);printf = n,z);do(printf C1.输入航班信息n”2.浏览航班信息

8、n3 ,修改航班信息4.查找航班信息n5.删除航班信息n6.订票信息n”7.退票信息n0.退出n);printfC=nz,);printf Cn,z);scanf &j);switch (j)(case 1 : input (); 调用输入模块 break;case 2:print ();调用打印模块break;case 3:xiugai();调川修改模块break;case 4: search ();调用查找模块 break;case 5: shanchu(); 调用删除模块 break;case 6:dingpiao(); 调用订票模块 break;case 7:tuipiao()

9、;调用退票模块break;case 0:;break;while(j!=0); 判断结束printf ("谢谢使用,再见! n); 主函数结束void input ()打印模块程序char f =”123456;设置密码int y;printf (请输入密码:);scanf (s", f);读取密码if (strcmp(f, ”123456")=。)(printf(请依次输入航班信息:); 打印提示信息printf("n);for(i=0;i<N;i+)(printf (请输入航班号:);scanf (,/%d,, &flight i. n

10、um);读取航班号printf (请输入起始站:);scanf ("%s,flightiL start);读取起始站printf (请输入终点站:);scanfflighti. end);读取终点站printf (“请输入时间:);scanfflighti. time);读取时间printf (请输入机票数:,m);scanf ("%d”, &flight i. count);读取机票数m+;printf (笫加个信息已经输完是否继续?按任意键继续,按0结束",m);scanf&y);if (y=0)(save。;将结构体信息存盘print ();

11、 输出输入的航班信息break;)elseprintf (输入密码错误!请检查您的密码是否正确! n);void save ()保存模块程序(FILE定义文件指针if(fp=fopen(,/chen. dat,wb") )=NULL)打开文件并判断是否出错(printf ("创建文件失败! n); 打印出错提示getchar ();return;)if (fpl=fopenfhao. dat,衲)=NULL)打开文件并判断是否出错(printf (创建文件失败八n); 打印出错提示getchar ();return;)for(i=0;i<m;i+)if (fwrite

12、(&flighti, sizeof (struct flight), 1, fp)=0)向文件写入数据,并判 断是否出错printf (向文件输入数据失败! n);fprintf(fpl, "%d, m);fclose(fp);关闭文件fclose(fpl);关闭文件void read ()从文件读取信息模块FILE *fp,*fpl;定义文件指针if(fp=fopen(,/chen. dat,rb)=NULL)打开文件,并判断是否出错(printf(出错,请检查文件是否存在,按任意键返回住菜单);打印出错提示 getchar ();if (fpl二fopen(hao. da

13、t,rb)=NULL)打开文件并判断是否出错(printf (创建文件失败! n);打印出错提示getchar ();return;fscanf (fpl, "%d,&m);fclose(fpl);关闭文件for (i=0; i<m; i+)(fread(&flighti, sizeof (struct flight), 1, fp);从文件中读取信息fclose(fp);关闭文件void print ()打印模块(char w10;read。;调用读取文件函数printf (航班号起始站 终点站 时间 机票数n);for (i=0; i<m; i+)pr

14、intf (PRINT);打印信息)printf (请按任意键返回上层菜单:);scanf ('%s”, w);)void search ()查询模块(char namel20;char name220;char ii LIO;int n,no;do(printf (请选择查找方式:);打印查询方式菜单printf ("1.按航班号查找n"”2.按终点站查找n3.按时间查找n0,返回 n);scanf (d”, &n); 读取查找方式if (n=0)break;switch(n)case 1:printf("请输入航班号:);scanf (&quo

15、t;%d", &no) ; /航班号break;case 2:printf(“请输入终点站名称:);scanf name2); 读取终点站break;case 3:printf (请输入时间:");scanf (s”, namel);读取时间break;read。;调用读取函数for(i=0;i<m;i+)if (strcmp (flight i. end, namel) =0 I strcmp (flight i. end, name2) =0) 按终点 站起始站判断输出条件(printf ("n查找航班信息成功! n");printf

16、(航班号起始站 终点站 时间 机票数n);printf (PRINT) ;/打印信息break;if (flight i. num=no)按航班号判断输出条件(printf (n查找航班信息成功! n");printf (航班号起始站 终点站 时间机票数n);printf (PRINT) ;/打印信息break;no=0;将航班号赋值为0printf (没有您需要的信息或查找完毕,是否继续查找?请按yes或no继续n);scanfii);while(strcmp(ii, z,yes,)=0);判断结束 vo i d shanchu () 删除模块char name120;char n

17、ame220;char ii 10;char f =”123456;设置密码int no, n;printf (请输入密码:);scanf(%s,f); 读取密码if (strcmp(f, 123456)=0)判断密码是否正确(do(printf (请选择删除以方式回车键结束:n);打印删除方式菜单printf (1.按航班号删除n2.按航线删除n0.返回 n);printf (请选择:);scanf (d,&n); 读取删除方式if (n-0)break; 跳出循环switch(n)(case 1:printf (请输入航班号:);scanf &no); 读取航班号read。

18、;调用读取函数break; 跳出循环case 2:printf (请输入起始站名称:);scanf namel); 读取起始站printf(请输入终点站名称:);scanf ("%s”, name2); 读取终点站read。;调用读取函数break;/跳出循环for(i=0;i<m;i+)(if (flight i. num 二二 no I strcmp (flight i. start, name 1) -0&&s tr cmp (f 1 i ght _ i j. end,name2)=0)判断输入信息是否存在(flighti=flightm-lj;m;dop

19、rintf (没有您需要的信息或查找完毕,是否继续查找?请按yes或no继续n);scanf (%s,ii);读取是否继续信息save(); 调用读取函数if(!strcmp(ii/yes,z) 判断是否继续删除printf (请按任意键返回上层菜单:n);break;while(n! =l&&n! =2&&n! =3&&n! =4&&n! =0); 判断结束)elseprintf (对不起密码错误!请检查您的密码是否正确!n);)void dingpiao()订票模块int n;char a10_;search。;调用查询模块p

20、rintf(请输入您要订的机票数:);scanf (%d, &n); 读取所订机票数if(n<0)(printf (请输入有效的机票数:);判断机票数是否出错 break;)if (flighti. count!=0&&flighti. count>=n)判断是否出错(flighti. count=flighti_. count-n;save。;调用保存函数printf (订票成功! n);break;if (flight i. countn) 判断是否出错(printf(请输入有效的机票数:);break;printf (是否继续 请输入yes或no继续:

21、n); 判断是否继续订票 scanf(%s, a);while(!strcmp(a, "yes");判断结束)void tuipiao()退票模块int n;char a10_;dosearch。;调用查询模块printf(请输入您要退的机票数目:);scanf (%d, &n); 输入所退票数if(n<0) 判断票数是否有效printf(请输入有效的机票数:);flighti. count=flighti_. count+n;save(); 调用保存模块printf (退票成功! n);printf (是否继续?请键入yes或no继续:n);判断是否继续退票

22、 scanfa);while (!strcmp(a, yes);判断并跳出循环getchar ();void xiugai () 修改模块struct xiu定义结构体(int no;char namel20;char name220;char time20;int count;char j10;char f =”123456;设置密码 int n;printf (请输入密码:);scanf(s,f); 读取密码if (strcmp(f, 123456)=0)判断是否出错read。;调用读取模块do(printf (请选择修改方式:n”1,按航班号修改n"2,按航线修改n);prin

23、tf ("请选择:");scanf &n); 读取修改方式switch(n)(case l:printf(请输入航班号:”);scanf (%d”, &x 0. no); 读取航班号break;case 2:printf(请输入起始站:);scanf (s", x0. namel); 读取起始站printf(请输入终点站:);scanf x0. name2); 读取终点站break;for(i=0;i<m;i+)if (strcmp(flight Li. end, x0. namel)-0&&strcmp(flighti. e

24、nd, x0. name2) =0)判断输出条件(printf (航班号 起始站 终点站 时间机票数n);printf(PRINT);break;if (flight i. num =二 x0. no) 判断输出条件(printf (航班号起始站 终点站 时间 机票数n);printf(PRINT);break;x0.no=0;将结构体中的号为零printf (请输入新航班号、起始站、终点站、时间(星期儿)、机票数:n);scanf (/%d%s%s%s%d, &xOJ. no, xOJ. namel, x0. name2, x0. time, &x0. count) ;/ 定义输入格式flighti. num=x0. no;替换航班号 strcpy (flight lij. start, x0. namel);替换其始站strcpy (flight lij. end, x0. name2

温馨提示

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

最新文档

评论

0/150

提交评论