C语言课程设计飞机订票系统.doc_第1页
C语言课程设计飞机订票系统.doc_第2页
C语言课程设计飞机订票系统.doc_第3页
C语言课程设计飞机订票系统.doc_第4页
C语言课程设计飞机订票系统.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

计算机程序设计(C语言) 课程设计报告题目:飞机订票系统学院:专业:班级:姓名:指导教师:答辩日期:2012年7月7日一、 设计背景介绍本课程设计主要围绕设计一个初步的飞机票订票系统,包括管理员和客户的两套操作界面,管理员进入系统需输入密码,然后由管理员输入可以预定的机票信息。客户进入订票界面可以按时间和地点查询所需要的管理员输入的机票信息。管理员操作界面由f1()函数调用输入和查询模块函数实现,客户操作界面由f2()函数调用各个模块函数实现;各个模块函数由for循环和ifelse选择结构为主要框架构成。二、 任务概述和主体部分主体部分:首先在程序的开始,引入标准输入输出函数和字符串处理函数的头文件:#include stdio.h和#include string.h,这样就能在程序中调用输入输出函数和字符串处理函数。接着用类型转换符typedef定义一个结构体变量tiN,用来存放机票航班信息,供接下来各个函数模块进行数据的操作。再将程序中所用到的所有函数进行函数声明,定义f1()函数调用输入函数enter()和查询函数browse()构成管理员操作界面,并根据ifelse选择结构进入相应的操作。同样定义f2()函数调用按时间查询的函数search_time()、按地点查询的函数serch_end()、订票函数book()、退票函数back()和主菜单函数menu()来构成客户订票操作的界面,并根据ifelse选择结构选择进入相应的操作。任务概述:用for循环实现依次输入航班的信息和按条件查找航班信息,用while循环和ifelse选择结构来选择判断是否进入相应的操作,用swichcase开关语句执行菜单选择功能,标准输入输出函数来执行语句的输入输出。三、 设计流程 为实现系统设计要求,我定义了11个自定义函数。主函数从调用menu开始。(1) 首先用函数menu实现登录界面和判断用户的选择,框图如下: 开始定义变量a,i让用户输入一个数a,让用户输入一个数 a!=1a!=2显示出错a=1让用户输入一个数ii!=8888提示出错运行函数f1()运行函数f2()(2) 定义函数f1()为管理员界面,以下是f1()函数程序流程图:j!=1j!=2请用户输入一个数j定义变量j开始 提示出错j=1运行函数enter()运行函数browse()(2) 定义函数f2()为客户操作界面,以下是f2()函数程序具体实现流程图:运行函数menu()J=5运行函数back()J=4运行函数book()j=3运行函数serch_end()J=2运行函数search_time()J=1开始 定义一个变量j让客户输入数jj!=1j!=2j!=3j!=4j!=5提示出错四、 程序代码清单#includestdio.h /*输入输出函数的头文件*/#include string.h#define N 1000typedef struct plane char ID10; /*航班代号*/ char BePlace10; /*飞机起飞地点*/ char EnPlace10; /*飞机降落终点*/ char data15; /*飞机起飞时间*/ int max; /*飞机最大乘客人数*/ int price; /*飞机票价*/ int num; /*飞机已售票数*/PLANE;PLANE tiN;int n; /*当前的航班数目*/void menu(); /*函数声明*/void f1(); /*函数声明*/void f2(); /*函数声明*/void book(); /*函数声明*/void back(); /*函数声明*/void enter(); /*函数声明*/void browse(); /*函数声明*/void serach(); /*函数声明*/void menu() int a,i;system( cls ); puts(tttt 欢迎进入飞机订票系统!nn); puts(tt*MENU*nn); printf(管理员进入请按1,客户进入请按2:n);printf(请您选择(1-2): n); puts(nntt*n); scanf(%d,a); while(a=1) if(a!=1a!=2) printf(输入错误,请重新输入); menu(); else break; if(a=1) printf(请输入密码并以回车键结束:); scanf(%d,i); if(i!=8888) printf(密码错误!n请重新选择:); menu(); f1(); else f2();void input(int i)printf(请输入航班代号:n);scanf(%s,tii.ID);printf(请输入起飞地点:n);scanf(%s,tii.BePlace);printf(请输入降落地点:n);scanf(%s,tii.EnPlace);printf(请输入起飞时间:n);scanf(%s,tii.data);printf(请输入航班的最大载客人数:n);scanf(%d,tii.max);printf(请输入航班的票价:n);scanf(%d,tii.price);tii.num=0;void enter()int i; system( cls ); printf(请输入航班的数目(0-%d)?:,N);scanf(%d,n); /*要输入的记录个数*/printf(n请输入数据nn);for(i=0;in;i+) printf(n请输入第 %d 航班记录.n,i+1); input(i); /*调用输入函数*/ getchar(); f1();void printf_one(int i) /*显示一个记录的函数*/printf(%11s %6s %10s %6s %6d %6d %6d,tii.ID,tii.BePlace,tii.EnPlace,tii.data,tii.price,tii.max,tii.num);void browse()int i;system( cls ); puts(n-);printf(nt航班代号 起飞地点 降落地点 起飞时间 票价 最大乘客 已售票数n);for(i=0;in;i+)printf_one(i);printf(n);getchar();getchar();menu();main() /*主函数*/ menu(); void f1() int j;system( cls ); printf(_请管理员操作!_nn);puts(nntt*n);printf( 1 输入航班信息n);printf( 2 查询航班n);printf(请选择按键1-2:); scanf(%d,j);if(j!=1j!=2) printf(您输入的选项不存在,请重新输入:);else switch(j) case 1:enter(); f1();break; case 2: browse(); f1();break; void search_time()int i,m=0;struct plane s;system( cls ); printf(nn请输入时间:);scanf(%s,s.data); /*输入出发的时间*/puts(n-);printf(nt航班代号 起飞地点 降落地点 起飞时间 票价 最大乘客 已售票数n);for(i=0;in;i+)if(strcmp(s.data,tii.data)=0)m+; if(m!=0)(m%10=0) /*目的是分屏显示*/ printf(nnPress any key to contiune . . .);getchar();puts(nn); printf_one(i); printf(n);/*调用显示一个记录的函数*/puts(n-);getchar(); /*按任意健*/getchar(); f2();void serch_end()int i,m=0;struct plane s;system( cls ); printf(nn请输入要到达的地点:);scanf(%s,s.EnPlace); /*输入要到达的地方*/puts(n-);printf(nt航班代号 起飞地点 降落地点 起飞时间 票价 最大乘客 已售票数n);for(i=0;in;i+)if(strcmp(tii.EnPlace,s.EnPlace)=0)m+; if(m!=0)(m%10=0) /*目的是分屏显示*/ printf(nnPress any key to contiune . . .);getchar();puts(nn); printf_one(i); printf(n);/*调用显示一个记录的函数*/puts(n-);getchar(); /*按任意健*/getchar(); f2();int search() /*查找模块*/int i,k;struct plane s;k=-1;system( cls ); printf(nn请输入要订票的起飞地点:);scanf(%s,s.BePlace); /*输入要到达的地方*/printf(nn请输入要订票的降落地点:);scanf(%s,s.EnPlace); printf(nn请输入要订票的起飞时间:);scanf(%s,s.data); /*输入出发的时间*/for(i=0;in;i+) /*查找要修改的数据*/if(strcmp(s.BePlace,tii.BePlace)=0strcmp(s.EnPlace,tii.EnPlace)=0strcmp(s.data,tii.data)=0)k=i; /*找到要修改的记录*/printf_one(k);break; /*调用显示一个记录的函数*/if(k=-1) printf(nnNO exist!); return -1;elsereturn k;void book() int i;system( cls ); printf(欢迎进入订票窗口!n); i=search();if(i!=-1)if(tii.num=tii.max)printf(n该趟航班票已售完!); elsetii.num+;printf(n订票成功!n);elseprintf(该航班不存在!n);getchar(); getchar(); /*按任意健*/menu();void back()int i,k=-1;struct plane s;system( cls ); printf(欢迎进入退票窗口!n);printf(nn输入航班代号:);scanf(%s,s.ID); /*输入要到达的地方*/ for(i=0;in;i+) /*查找要修改的数据*/if(strcmp(s.ID,tii.ID)=0)k=i; /*找到要修改的记录*/printf_one(k);break; /*调用显示一个记录的函数*/if(k=-1) printf(nnNO exist!);else tii.num-; printf(n退票成功!n);getchar(); /*按任意健*/getchar(); /*按任意健*/menu();void f2() int j;system( cls ); printf(_欢迎客户订票,我们将为您提供优质服务!_n); puts(nntt*n);printf( 1 按时间查询航班信息n); printf( 2 按地点查询航班信息n); printf( 3 预定机票n);printf( 4 退订机票n); printf( 5 返回主界面n); printf(请选择按键1-4:);scanf(%d,j); if(j!=1j!=2j!=3j!=4j!=5) printf(您输入的选项不存在,请重新输入:); f2();else switch(j) case 1:search_time(); f2();break; case 2:serch_end(); f2();break; case 3: book(); f2();break; case 4: back(); f2();break; case 5: menu(); break; 五、 遇见问题及解决方案 在定义客户订票操作的界面函数f2()时,开始只是设了四个菜单选择项,第一个是查询航班信息,引用的是search()函数,但是由于这个函数的返回值是被book()和back()函数使用的,不能显示查询信息,所以后来将这个菜单项一分为二,为按时间查询和按到达地点查询,分别引用search_time()函数和serch_end()函数,使得问题加以解决。还有,开始没有加清屏函数,使得操作有些冗繁,后来加了清屏函数system( cls ),也使界面更加程序化。六、 设计完成情况及需进一步完善的地方本程序的使用for、while循环,开关语句switchcase,选择结构ifelse,字符串处理函数等完成各个模块函数的定义,并通过嵌套调用

温馨提示

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

评论

0/150

提交评论