飞机订票系统报告样本.doc_第1页
飞机订票系统报告样本.doc_第2页
飞机订票系统报告样本.doc_第3页
飞机订票系统报告样本.doc_第4页
飞机订票系统报告样本.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

华 北 科 技 学 院课程设计说明书技能训练类(一)班级: 信管B113班 姓名: 赵超 学号 201107034207 设计题目:_ 飞机订票系统设计_ _设计时间: 2013-2-25 至 2013-3-7 指导教师:_闫文忠_评 语:_评阅成绩:_评阅教师:_目 录 一、训练项目2二、训练目的2三、设计分析2四、设计方案2五、实训详细设计3六、使用说明4七、运行调试4八、训练心得4九、参考文献4一、训练项目飞机订票系统设计问题描述:本飞机共有80个坐位,分20排,每排4个位子。编号为A,B,C,D。如10D表示10排D座。A和D靠窗,19到20排为吸烟区。本系统可让乘客自己选座号和区域,直到乘客满意为止,无法满足的话,只能改乘另一个航班。定上票的乘客需给出姓名和身份证号,最后要打印出乘客清单。要求1、用C语言及数据结构实现程序设计;2、利用结构体数组实现信息的数据结构设计;3、系统的各个功能模块要求用函数的形式实现;4、界面友好(良好的人机交互),程序加必要的注释。技能实训实验报告要求:1、预习报告:题目、技能实训任务、数据结构、程序的总体设计(算法)、模块划分 。2、实验总结报告:流程图、主要源程序代码(需打印)、测试情况及调试中问题与解决方案、小结等。二、训练目的通过本次训练,能够进一步巩固、掌握程序设计基础和数据结构课程的基本知识、基本技能。运用算法分析与程序设计的一般方法进行实际项目的开发。本项目需要具备熟练的数组和线性表知识,具备程序编写、调试的基本能力,具有一定的文字表达和报告撰写能力,具备办公软件使用能力。三、设计分析例如,二分法查找演示用户在键盘上输入的是中缀表达式时,即两个操作数和中间一个运算符,如:3*(2+6)/4。计算时遵循“从左向右计算,先乘除后加减,先括号内后括号外”规则。因此中缀表达式的计算需要考虑括号、运算符优先级等因素,比较麻烦。为此先将中缀表达式转换为后缀表达式再进行运算,因为后缀表达式已经考虑了运算符优先级,消除了括号,运算时只需要处理操作数和运算符即可。四、设计方案例如:飞机订票系统设计分步实施:1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;2、完成最低要求:建立一个小系统,包括5排座位,两个区域,能供乘客选择;3、进一步要求:完成全部功能的系统。time,si.count /定义输出格式void input(); /输入航班信息void print(); /输出航班信息void save(); /保存航班信息 void read(); /读取航班信息void search(); /查找航班信息void shanchu(); /删除航班信息void dingpiao(); /订票信息void tuipiao(); /退票信息void xiugai(); /修改信息void main()case 2:fun2(); break;/ 计算个人总分、平均分,班级总分、平均分case 3:fun3(); break; /排序case 4:fun4(); break; /查询case 5:fun5(); break; /修改case 6:fun6();break; /删除case 7:fun7();break; /插入五、详细设计例如,表达式求值源程序代码如下:include /标准输入、输出头文件#include /包含字符串函数处理头文件#include /包含动态存储与释放函数头文件#define N 10000 struct air /定义结构体数组 int num; char start20; char over20; char time10; int count;sN;int i; case 2:print();/调用打印模块 break; case 3:xiugai();/调用修改模块 break; case 4:search();/调用查找模块 break; case 5:shanchu(); /调用删除模块 break; case 6:dingpiao();/调用订票模块六、使用说明例如,表达式求值本程序在turboc 2.0环境下运行通过。运行后,根据提示输入数据即可。可以输入由运算符+、-、*、/、()所构成的算术表达式。表达式输入结束时按回车键。在屏幕上输出后缀表达式,并输出计算结果。七、运行调试例如,表达式求值运行可执行文件00.exe或在turboc2.0下同时按住ctrl+F9运行00.c文件即可。图1 不等式测试数据二:源程序如下:#include /包含字符串函数处理头文件#include /包含动态存储与释放函数头文件#define N 10000 struct air /定义结构体数组include /标准输入、输出头文件 int num; char start20; char over20; char time10; int count;sN;int i;int m=0;#define PRINT %-d%12s%12s%10s%12dn,si.num,si.start,si.over,si.time,si.count /定义输出格式void input(); /输入航班信息void print(); /输出航班信息void save(); /保存航班信息 void read(); /读取航班信息void search(); /查找航班信息void shanchu(); /删除航班信息void dingpiao(); /订票信息void tuipiao(); /退票信息void xiugai(); /修改信息void main() int j; printf( -您好,欢迎进入中国民航管理系统!-n); printf(=n); do printf( - 1.输入航班信息 - nn - 2.浏览航班信息 - nn - 3.修改航班信息 - nn - 4.查找航班信息 - nn - 5.删除航班信息 - nn - 6.订票信息 - nn - 7.退票信息 - nn - 0.退出 - nn); printf(=n); printf(请在0-7中选择以回车键结束:nn); scanf(%d,&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();/调用退票模块 break; case 0:; break; while(j!=0); /判断结束 printf(谢谢使用,再见!n);/主函数结束void input()/打印模块程序 char f=xiaoayong; /设置密码 int y; printf(请输入密码并以回车键结束:nn); scanf(%s,f); /读取密码 if(strcmp(f,xiaoayong)=0) printf(请依次输入航班信息(机票数位0结束输入):nn 完成输入信息请键入w以回车键结束nn); /打印提示信息 printf(-n); for(i=0;iN;i+) printf(请输入航班号:n); scanf(%d,&si.num); /读取航班号 printf(请输入起始站:n); scanf(%s,si.start);/读取起始站 printf(请输入终点站:n); scanf(%s,si.over);/读取终点站 printf(请输入时间:n); scanf(%s,si.time);/读取时间 printf(请输入机票数(机票数为0结束输入):n,m); scanf(%d,&si.count);/读取机票数 m+; printf(第%d个信息已经输完是否继续?按任意键继续,按 0结束,m); scanf(%d,&y); if(y=0) save();/将结构体信息存盘 print();/输出输入的航班信息 break; else printf(输入密码错误!请检查您的密码是否正确!谢谢!再见!nn);void save()/保存模块程序 FILE *fp,*fp1;/定义文件指针 if(fp=fopen(chen.dat,wb)=NULL)/打开文件并判断是否出错 printf(创建文件失败!nn);/打印出错提示 getchar(); return; if(fp1=fopen(hao.dat,wb)=NULL)/打开文件并判断是否出错 printf(创建文件失败!nn);/打印出错提示 getchar(); return; for(i=0;im;i+) if(fwrite(&si,sizeof(struct air),1,fp)=0)/向文件写入数据,并判断是否出错 printf(向文件输入数据失败!nn); fprintf(fp1,%d,m); fclose(fp);/关闭文件 fclose(fp1);/关闭文件void read()/从文件读取信息模块 FILE *fp,*fp1;/定义文件指针 if(fp=fopen(chen.dat,rb)=NULL)/打开文件,并判断是否出错 printf(出错,请检查文件是否存在,按任意键返回住菜单);/打印出错提示 getchar(); if(fp1=fopen(hao.dat,rb)=NULL)/打开文件并判断是否出错 printf(创建文件失败!nn);/打印出错提示 getchar(); return; fscanf(fp1,%d,&m); fclose(fp1);/关闭文件 for(i=0;im;i+) fread(&si,sizeof(struct air),1,fp);/从文件中读取信息 fclose(fp);/关闭文件void print()/打印模块 char w10; read();/调用读取文件函数 printf(航班号 起始站 终点站 时间 机票数n); for(i=0;im;i+) printf(PRINT);/打印信息 printf(请按任意键回车键结束返回上层菜单以:n); scanf(%s,w); void search()/查询模块 char name120; char name220; char ii10; int n,no;do printf(请选择查找方式:nn);/打印查询方式菜单 printf(1.按航班号查找nn 2.按终点站查找nn 3.按航线查找nn 0.返回nn); printf(请在0-3中选择:nn 按其他键以回车键结束返回主菜单:nn); scanf(%d,&n);/读取查找方式 if(n=0) break; switch(n) case 1: printf(请输入航班号:n); scanf(%d,&no);/航班号 break; case 2: printf(请输入终点站名称:n); scanf(%s,name2);/读取终点站 break; case 3: printf(请输入起始站名称:n); scanf(%s,name1);/读取起始站 printf(请输入终点站名称:n); scanf(%s,name2);/终点站 break; read();/调用读取函数 for(i=0;im;i+) if(strcmp(si.over,name1)=0|strcmp(si.over,name2)=0)/按终点站起始站判断输出条件 printf(n查找航班信息成功!n); printf(航班号 起始站 终点站 时间 机票数n); printf(PRINT);/打印信息 break; if(si.num=no)/按航班号判断输出条件 printf(n查找航班信息成功!n); printf(航班号 起始站 终点站 时间 机票数n); printf(PRINT);/打印信息 break; no=0;/将航班号赋值为0 printf(没有您需要的信息或查找完毕:nn 是否继续查找?请键入yes或no以回车键结束n); scanf(%s,ii);while(strcmp(ii,yes)=0);/判断结束void shanchu()/删除模块 char name120; char name220; char ii10; char f=xiaoayong;/设置密码 int no,n; printf(请输入密码并以回车键结束:nn); scanf(%s,f);/读取密码 if(strcmp(f,xiaoayong)=0) /判断密码是否正确 do printf(请选择删除以方式回车键结束:nn);/打印删除方式菜单 printf(*1.按航班号删除nn *2.按航线删除nn *0.返回nn); printf(请在0-2中选择以回车键结束:n); scanf(%d,&n);/读取删除方式 if(n=0) break; /跳出循环 switch(n) case 1: printf(请输入航班号:n); scanf(%d,&no);/读取航班号 read();/调用读取函数 break;/跳出循环 case 2: printf(请输入起始站 名称:n); scanf(%s,name1);/读取起始站 printf(请输入终点站名称:n); scanf(%s,name2);/读取终点站 read();/调用读取函数 break;/跳出循环 for(i=0;im;i+) if(si.num=no|strcmp(si.start,name1)=0&strcmp(si.over,name2)=0)/判断输入信息是否存在 si=sm-1; m-; printf(查找完毕或没有这个信息nn); printf(是否继续删除n); printf(请键入yes或no以回车键结束n); scanf(%s,ii); /读取是否继续信息 save(); /调用读取函数 if(!strcmp(ii,yes) /判断是否继续删除 printf(请按任意键以回车键结束返回上层菜单:n); break; while(n!=1&n!=2&n!=3&n!=4&n!=0); /判断结束 else printf(对不起密码错误!您不是管理员,不能使用此项功能!谢谢!再见!nn); void dingpiao()/订票模块 int n; char a10; do search();/调用查询模块 printf(请输入您要订的机票数以回车键结束:n); scanf(%d,&n);/读取所订机票数 if(n=n)/判断是否出错 si.count=si.count-n; save();/调用保存函数 printf(订票成功!nn); break; if(si.countn)/判断是否出错 printf(请输入有效的机票数:n); break; printf(是否继续? 请输入yes或no以回车键结束:n);/判断是否继续订票 scanf(%s,a); while(!strcmp(a,yes);/判断结束 void tuipiao()/退票模块 int n; char a10; do search();/调用查询模块 printf(请输入您要退的机票数目:n); scanf(%d,&n);/输入所退票数 if(n0) /判断票数是否有效 printf(请输入有效的机票数!n); si.count=si.count+n; save(); /调用保存模块 printf(退票成功!nn); printf(是否继续? 请键入yes或no以回车键结束:nn);/判断是否继续退票 scanf(%s,a); while(!strcmp(a,yes);/判断并跳出循环 getchar();void xiugai() /修改模块 struct xiu /定义结构体 int no; char name120; char name220; char time20; int count; x1; char j10; char f=xiaoayong;/设置密码 int n; printf(请输入密码并以回车键结束:nn); scanf(%s,f);/读取密码 if(strcmp(f,xiaoayong)=0)/判断是否出错 read();/调用读取模块 do printf( 请选择修改方式:nn *1,按航班号修改:nn *2,按航线修改: nn); printf(请在1-2中修改以回车键结束:nn); scanf(%d,&n);/读取修改方式 switch(n) case 1:printf(请输入航班号:n); scanf(%d,&x0.no);/读取航班号 break; case 2:printf(请输入起始站:n); scanf(%s,1);/读取起始站 printf(请输入终点站:n); scanf(%s,2);/读取终点站 break; for(i=0;im;i+) if(strcmp(si.over,1)=0&strcmp(si.over,2)=0)/判断输出条件 printf(航班号 起始站 终点站 时间 机票数n); printf(PRINT); break; if(si.num=x0.no)/判断输出条件 printf(航班号 起始站 终点站 时间 机票数n); printf(PRINT); break; x0.no=0; /将结构体中的号为零 printf(请输入新航班号、起始站、终点站、时间(星期几)、机票数:n); scanf(%d%s%s%s%d,&x0.no,1,2,x0.time,&x0.count);/定义输入格式 si.n

温馨提示

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

评论

0/150

提交评论