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

下载本文档

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

文档简介

内蒙古科技大学课程设计说明书内蒙古科技大学本科生课程设计说明书题 目:C语言课程设计 飞机订票系统学生姓名:马如意学 号:1567159120专 业:软件工程班 级:15级1班指导教师:褚燕华老师日 期:2016 年 1月 3日30内蒙古科技大学课程设计任务书课程名称C语言课程设计设计题目飞机订票系统指导教师 褚燕华时间2016.1.32016.1.9一、教学要求1. 巩固和加深学生对C语言课程的基本知识的理解和掌握2. 掌握C语言编程和程序调试的基本技能3. 利用C语言进行基本的软件设计4. 掌握书写程序设计说明文档的能力5. 提高运用C语言解决实际问题的能力二、设计资料及参数每个学生在教师提供的课程设计题目中任意选择一题,独立完成,题目选定后不可更换。飞机订票系统设计假定民航机场共有n个航班,每个航班有一航班号、确定的航线(起始站、终点站)、确定的飞行时间(星期几)和一定的成员订额。试设计一民航订票系统,使之能提供下列服务:v 航班信息录入功能(航班信息用文件保存)输入v 航班信息浏览功能输出v 查询航线:(至少两种查询方式)算法按航班号查询 按终点站查询v 承办订票和退票业务三、设计要求及成果1. 分析课程设计题目的功能需求(可选用数组或链表实现,可多人(最多3人)协作完成一个题目)2. 写出详细设计说明(至少包括功能实现分析和模块流程图)3. 编写程序代码,调试程序使其能正确运行(代码书写要规范,标示符要见名知意,要有必要的注释,每人至少500行代码,不包括注释和花括号)4. 设计完成的软件要便于操作和使用5. 设计完成后提交课程设计报告(请严格按照模板进行排版)四、进度安排第一天 选择课程设计题目,分析课题的要求第二天 编程第三天 编程及调试第四天 写课程设计报告第五天 提交课程设计报告(打印稿及电子稿)五、评分标准1. 根据平时上机考勤、表现和进度,教师将每天点名和检查2. 根据课程设计完成情况,必须有可运行的软件。3. 根据课程设计报告的质量,如有雷同,则所有雷同的所有人均判为不及格。六、建议参考资料1C语言程序设计,谭浩强,清华大学出版社2C语言程序设计课程设计,刘振安,机械工业出版社目 录内蒙古科技大学课程设计任务书I目 录II第一章 需求分析31.1引言31.2任务概述31.3功能需求31.4任务计划4第二章 概要设计42.1航空类的定义42.2接口设计52.3运行界面设计5第三章 详细设计63.1浏览航线信息63.2浏览客户信息63.3 查询航线信息73.4 订票系统83.5 退票系统93.6 查看余额11第四章 测试分析124.1 程序的选择页面(主菜单)124.2 浏览航班信息124.3按两种方式查询:134.4办理订票系统134.5浏览客户信息144.6办理退票系统15第五章 用户手册155.1使用说明15第六章 课程设计总结15附 录:程序代码17致谢30第1章 需求分析1.1引言随着经济越来越发达,世界经济全球化的到来也是的我们越来越多的乘坐飞机,我们乘坐飞机旅行前,都需要在网上或者去机场买机票,自然就会涉及到机票的订票和退票以及查询等等。应对这些必须要一个程序能执行多种功能,可以依据乘客的需要来做出相应的解答。而且在乘客订票和退票后还能自动管理票数,还能根据乘客的需要完成预定机票和等待其他乘客退票等活动,实现机票的无人化管理。1.2任务概述每个学生在教师提供的课程设计题目中任意选择一题,独立完成,题目选定后不可更换。飞机订票系统设计假定民航机场共有n个航班,每个航班有一航班号、确定的航线(起始站、终点站)、确定的飞行时间(星期几)和一定的成员订额。试设计一民航订票系统,使之能提供下列服务:v 航班信息录入功能(航班信息用文件保存)v 航班信息浏览功能输出v 查询航线:(至少两种查询方式) 按航班号查询 按终点站查询v 承办订票和退票业务。1.3功能需求根据要求用户需要设计一个关于售票处服务系统程序,使航空公司可以通过的乘客简单地输入个人部分信息,便可方便的管理机票。该程序还要实现以下功能:(1) 能够对航空航线进行查询;(2) 能够自主的承办订票业务(3) 能够自主的承办退票业务1.4性能需求 1用户界面屏幕格式:(1)要求有菜单及工具栏以方便操作(2)各数据库信息可在屏幕上直接修改(3)各数据统计结果可在屏幕上显示(4)进行系统分析后的结果在另一窗口中显示2硬件环境普通的计算机3软件环境支持的操作系统包括Windows98/XP/7/8/10中文版及以上版本要用到的编译语言vc+6.01.5任务计划 第1天 选择课程设计题目,分析课题的要求 第2、3、4、5、6天 编程 第7天 编程及调试 第8、9、10、天 写课程设计报告 第11天 提交课程设计报告(打印稿及电子稿)第2章 概要设计2.1航空类的定义struct air /定义结构体数组int num;char start20;char over20;char time10;int count;sN;2.2 接口设计表2.1:函数列表函数名函数格式/即函数首部函数功能void main()void 菜单void tuipiao() void 退票void dingpiao()void 订票search()void 查询void savevoid 保存void xiugai()void 修改2.3运行界面设计服务系统欢迎界面选择功能 运行界面输入航班查询航线订票,退票删除航班信息浏览航线图2-2 系统结构示意图第三章 详细设计3.1输入模块设计主要功能是对航班信息的查找。在系统存在航班信息前提下,使用该功能进行浏览航班信息。浏览过后自动返回主菜单。void input()/打印模块程序char f=2008china; /设置密码int y;printf(请输入密码并以回车键结束:nn);scanf(%s,f); /读取密码getchar();if(strcmp(f,2008china)=0)printf(请依次输入航班信息(机票数位0结束输入):nn完成输入信息请键入w以回车键结束nn); /打印提示信息printf(-n);for(i=0;iN;i+)printf(请输入航班号:n);scanf(%d,&si.num); /读取航班号getchar();printf(请输入起始站:n);scanf(%s,si.start);/读取起始站 getchar();printf(请输入终点站:n);scanf(%s,si.over);/读取终点站getchar();printf(请输入时间:n);scanf(%s,si.time);/读取时间getchar();printf(请输入机票数(机票数为0结束输入):n,m);scanf(%d,&si.count);/读取机票数getchar();m+;printf(第%d个信息已经输完是否继续?按任意键继续,按 0结束,m);scanf(%d,&y);getchar();if(y=0)save();/将结构体信息存盘print();/输出输入的航班信息break;elseprintf(输入密码错误!请检查您的密码是否正确!谢谢!再见!nn);3.2查询模块设计具体语句为:void search()/查询模块char name120;char name220;char ii10;int n,no;doprintf(请选择查找方式:nn);/打印查询方式菜单printf(1.按航班号查找nn2.按终点站查找nn3.按航线查找nn0.返回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;/将航班号赋值为0printf(没有您需要的信息或查找完毕:nn是否继续查找?请键入yes或no以回车键结束n);scanf(%s,ii);while(strcmp(ii,yes)=0);/判断结束3.3 保存及读取模块设计void dingpiao()/订票模块int n;char a10;dosearch();/调用查询模块printf(请输入您要订的机票数以回车键结束:n);scanf(%d,&n);/读取所订机票数getchar();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);/判断结束第四章 测试分析4.1 程序的选择页面(主菜单) 图4-1 主菜单4.2 浏览航班信息买票之前可以先浏览一下航线信息,以决定是否有符合你出行的航班,具体操作结果如下图: 4.3按多种方式查询: 4.4浏览客户信息 浏览客户信息时需要输入航班号,浏览完毕按任意键返回主菜单,具体运行结果如下图 4.6 办理退票系统 订票后若由于一些原因想要取消订票,则需要选择办理退票业务,然后一次输入航班号及姓名进行退票操作,运行结果如下: 图4-5 退票信息第五章 用户手册5.1使用说明用户进入系统后,就会看到飞机订票系统的主菜单页面。系统总共有7个模块,分别由0到6表示,主菜单页面只能输入0到6,输入其他字符无效,如果用户输入无效字符,系统仍留在主菜单页面。第6章 课程设计总结我当年报考的时候,脑子一抽!报了软件工程!之后我慢慢地了解到,原来我就是传说中的程序员!就是人傻钱多死得早的那个神奇的职业!上了大学我学习了C语言!感觉整个世界都不好了!好难理解!Hello world 我都学了好几天!每次试验都脑子大!对着题目发呆!后来书看得多了!终于找到一点门道!还好老师风趣幽默!总是变着法子的鼓励我们!让我们没有丧失学习c语言的信心!他告诉我们,每一个程序员在成长过程中,都有过类似的经历与感受,使我克服了畏难与自卑心理;他还告诉我们,掌握编程需要累积薄发,需要多动手实验,在实验中去感悟,终会有水滴石穿、云开日出、豁然开朗的那一刻;“不抛弃,不放弃”,让我们坚持到对编程“开窍”的那一天。老师为了让我们练好编程,为我们开设了许多练习编程的实验课,让我们不断地磨砺自已的意志品质与思维灵犀,借他山之石,攻已之玉。这次课程设计,是我第一次完成较大的程序编写,开始时,我们心里根本没底,想都不敢想自已能写出一点东西来,并真正地解决这一实际问题。但随着工作的逐渐深入,对问题的理解越来越透彻,想写的东西越来越多,信心越来越足,程序越编越大,系统的功能越做越强。当我们洋洋洒洒地撰写完千余行代码,将一个又一个功能模块实现出来,并将它们调试通过之后,那种喜悦感、幸福感、成就感让我感到兴奋。我终于等到了所谓“开窍”的这一刻,原来它是这样的一种感觉。此时此刻,回想一年来学习编程的经历,我明白了这样一个道理:此时的喜悦感、幸福感、成就感,不正好是过去的沮丧、痛苦、自卑所带来的馈赠吗!其实,这种道理对我们这个年龄段的青年人,谁人不知又谁人不晓呢,它所应证的不就是那几句老名言吗?不经一番寒彻骨;哪得梅花扑鼻香;看着手机,电脑的一个个优秀app!我充满着骄傲!我为自己是程序员骄傲!当然我也会努力!成为一名优秀的程序员! 航空飞机订票系统已开发完成了,它基本上实现了我们在需求分析中所提出的功能,但革命尚未成功,同志仍需努力。附录:程序代码#include /标准输入、输出头文件#include /包含字符串函数处理头文件#include /包含动态存储与释放函数头文件#define N 10000struct air /定义结构体数组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;system(COLOR 3f);printf( 您好,欢迎进入马如意的飞机订票系统!n);printf(=n);doprintf( 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=2008china; /设置密码int y;printf(请输入密码并以回车键结束:nn);scanf(%s,f); /读取密码getchar();if(strcmp(f,2008china)=0)printf(请依次输入航班信息(机票数位0结束输入):nn完成输入信息请键入w以回车键结束nn); /打印提示信息printf(-n);for(i=0;iN;i+)printf(请输入航班号:n);scanf(%d,&si.num); /读取航班号getchar();printf(请输入起始站:n);scanf(%s,si.start);/读取起始站 getchar();printf(请输入终点站:n);scanf(%s,si.over);/读取终点站getchar();printf(请输入时间:n);scanf(%s,si.time);/读取时间getchar();printf(请输入机票数(机票数为0结束输入):n,m);scanf(%d,&si.count);/读取机票数getchar();m+;printf(第%d个信息已经输完是否继续?按任意键继续,按 0结束,m);scanf(%d,&y);getchar();if(y=0)save();/将结构体信息存盘print();/输出输入的航班信息break;elseprintf(输入密码错误!请检查您的密码是否正确!谢谢!再见!nn);void save()/保存模块程序FILE *fp,*fp1;/定义文件指针if(fp=fopen(chen.txt,wb)=NULL)/打开文件并判断是否出错printf(创建文件失败!nn);/打印出错提示getchar();return;if(fp1=fopen(hao.txt,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.txt,rb)=NULL)/打开文件,并判断是否出错printf(出错,请检查文件是否存在,按任意键返回住菜单);/打印出错提示getchar();if(fp1=fopen(hao.txt,rb)=NULL)/打开文件并判断是否出错printf(创建文件失败!nn);/打印出错提示getchar();return;fscanf(fp1,%d,&m);fclose(fp1);/关闭文件for(i=0;im;i+)fread(&si,sizeof(air),1,fp);/从文件中读取信息fclose(fp);/关闭文件void print()/打印模块char w10;read();/调用读取文件函数printf(航班号 起始站 终点站 时间 机票数n);for(i=0;im;i+)printf(PRINT);/打印信息printf(请按任意键回车键结束返回上层菜单:n);scanf(%s,w);getchar();void search()/查询模块char name120;char name220;char ii10;int n,no;doprintf(请选择查找方式:nn);/打印查询方式菜单printf(1.按航班号查找nn2.按终点站查找nn3.按航线查找nn0.返回nn);printf(请在0-3中选择:nn按其他键以回车键结束返回主菜单:nn);scanf(%d,&n);/读取查找方式getchar();if(n=0)break;switch(n)case 1:printf(请输入航班号:n);scanf(%d,&no);/航班号getchar();break;case 2:printf(请输入终点站名称:n);scanf(%s,name2);/读取终点站getchar();break;case 3:printf(请输入起始站名称:n);scanf(%s,name1);/读取起始站getchar();printf(请输入终点站名称:n);scanf(%s,name2);/终点站getchar();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;/将航班号赋值为0printf(没有您需要的信息或查找完毕:nn是否继续查找?请键入yes或no以回车键结束n);scanf(%s,ii);while(strcmp(ii,yes)=0);/判断结束void shanchu()/删除模块char name120;char name220;char ii10;char f=2008china;/设置密码int no,n;printf(请输入密码并以回车键结束:nn);scanf(%s,f);/读取密码if(strcmp(f,2008china)=0) /判断密码是否正确doprintf(请选择删除以方式回车键结束: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);/读取航班号getchar();read();/调用读取函数break;/跳出循环case 2:printf(请输入起始站 名称:n);scanf(%s,name1);/读取起始站printf(请输入终点站名称:n);scanf(%s,name2);/读取终点站getchar();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); /读取是否继续信息getchar();save(); /调用读取函数if(!strcmp(ii,yes) /判断是否继续删除printf(请按任意键以回车键结束返回上层菜单:n);break;while(n!=1&n!=2&n!=3&n!=4&n!=0); /判断结束elseprintf(对不起密码错误!您不是管理员,不能使用此项功能!谢谢!再见!nn);void dingpiao()/订票模块int n;char a10;dosearch();/调用查询模块printf(请输入您要订的机票数以回车键结束:n);scanf(%d,&n);/读取所订机票数getchar();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;dosearch();/调用查询模块printf(请输入您要退的机票数目:n);scanf(%d,&n);/输入所退票数getchar();if(n0) /判断票数是否有效printf(请输入有效的机票数!n);si.count=si.count+n;save(); /调用保存模块printf(退票成功!nn);printf(是否继续? 请键入yes或no以回车键结束:nn);/判断是否继续退票scanf(%s,a);getchar();while(!strcmp(a,yes);/判断并跳出循环getchar();void xiugai() /修

温馨提示

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

评论

0/150

提交评论