1、内蒙古科技大学本科生课程设计说明书题 目:C 语言课程设计 飞机订票系统学生姓名:马如意学 号:1567159120专 业:软件工程班 级:15 级 1 班指导教师:褚燕华老师日 期:2016 年 1 月 3 日内蒙古科技大学课程设计说明书内蒙古科技大学课程设计任务书课程名称 C 语言课程设计设计题目 飞机订票系统指导教师 褚燕华 时间 2016.1.32016.1.9一、教学要求1. 巩固和加深学生对 C 语言课程的基本知识的理解和掌握2. 掌握 C 语言编程和程序调试的基本技能3. 利用 C 语言进行基本的软件设计4. 掌握书写程序设计说明文档的能力5. 提高运用 C 语言解决实际问题的能
2、力二、设计资料及参数每个学生在教师提供的课程设计题目中任意选择一题,独立完成,题目选定后不可更换。飞机订票系统设计假定民航机场共有 n 个航班,每个航班有一航班号、确定的航线(起始站、终点站) 、确定的飞行时间(星期几)和一定的成员订额。试设计一民航订票系统,使之能提供下列服务: 航班信息录入功能(航班信息用文件保存)输入 航班信息浏览功能输出 查询航线:(至少两种查询方式)算法按航班号查询 按终点站查询 承办订票和退票业务三、设计要求及成果1. 分析课程设计题目的功能需求(可选用数组或链表实现,可多人(最多 3 人)协作完成一个题目)2. 写出详细设计说明(至少包括功能实现分析和模块流程图)
3、3. 编写程序代码,调试程序使其能正确运行(代码书写要规范,标示符要见名知意,要有必要的注释,每人至少 500 行代码,不包括注释和花括号)4. 设计完成的软件要便于操作和使用5. 设计完成后提交课程设计报告(请严格按照模板进行排版)四、进度安排第一天 选择课程设计题目,分析课题的要求第二天 编程第三天 编程及调试第四天 写课程设计报告第五天 提交课程设计报告(打印稿及电子稿)五、评分标准1. 根据平时上机考勤、表现和进度,教师将每天点名和检查2. 根据课程设计完成情况,必须有可运行的软件。3. 根据课程设计报告的质量,如有雷同,则所有雷同的所有人均判为不及格。六、建议参考资料1 C 语言程序
4、设计 ,谭浩强,清华大学出版社2 C 语言程序设计课程设计 ,刘振安,机械工业出版社内蒙古科技大学课程设计说明书I目 录内蒙古科技大学课程设计任务书 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 浏览航班信息
5、124.3 按两种方式查询: .134.4 办理订票系统 .134.5 浏览客户信息 .144.6 办理退票系统 .15第五章 用户手册 155.1 使用说明 .15第六章 课程设计总结 15附 录:程序代码 17致谢 30内蒙古科技大学课程设计说明书2第 1 章 需求分析1.1 引言随着经济越来越发达,世界经济全球化的到来也是的我们越来越多的乘坐飞机,我们乘坐飞机旅行前,都需要在网上或者去机场买机票,自然就会涉及到机票的订票和退票以及查询等等。应对这些必须要一个程序能执行多种功能,可以依据乘客的需要来做出相应的解答。而且在乘客订票和退票后还能自动管理票数,还能根据乘客的需要完成预定机票和等待
6、其他乘客退票等活动,实现机票的无人化管理。1.2 任务概述每个学生在教师提供的课程设计题目中任意选择一题,独立完成,题目选定后不可更换。飞机订票系统设计假定民航机场共有 n 个航班,每个航班有一航班号、确定的航线(起始站、终点站) 、确定的飞行时间(星期几)和一定的成员订额。试设计一民航订票系统,使之能提供下列服务: 航班信息录入功能(航班信息用文件保存) 航班信息浏览功能输出 查询航线:(至少两种查询方式)按航班号查询 按终点站查询 承办订票和退票业务。1.3 功能需求根据要求用户需要设计一个关于售票处服务系统程序,使航空公司可以通内蒙古科技大学课程设计说明书3过的乘客简单地输入个人部分信息
7、,便可方便的管理机票。该程序还要实现以下功能:(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、天
8、写课程设计报告第 11 天 提交课程设计报告(打印稿及电子稿)内蒙古科技大学课程设计说明书4第 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 save void 保存void xiugai() void 修改内蒙
9、古科技大学课程设计说明书52.3 运行界面设计服务系统欢迎界面运行界面 输入航班查询航线订票,退票删除航班信息浏览航线图 2-2 系统结构示意图第三章 详细设计3.1 输入模块设计主要功能是对航班信息的查找。在系统存在航班信息前提下,使用该功能进行浏览航班信息。浏览过后自动返回主菜单。选择功能内蒙古科技大学课程设计说明书6void input()/打印模块程序char f=“2008china“; /设置密码int y;printf(“请输入密码并以回车键结束:nn“);scanf(“%s“,f); /读取密码getchar();if(strcmp(f,“2008china“)=0)print
10、f(“请依次输入航班信息(机票数位 0 结束输入):nn“完成输入信息请键入 w 以回车键结束nn“); /打印提示信息printf(“-n“);for(i=0;i=n)/判断是否出错si.count=si.count-n;save();/调用保存函数printf(“订票成功!nn“);break;if(si.count /标准输入、输出头文件#include /包含字符串函数处理头文件#include /包含动态存储与释放函数头文件#define N 10000struct air /定义结构体数组int num;char start20;char over20;char time10;in
11、t count;sN;int i;int m=0;#define PRINT “%-内蒙古科技大学课程设计说明书16d%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
12、 xiugai(); /修改信息void main()int j;system(“COLOR 3f“);printf(“ 您好,欢迎进入马如意的飞机订票系统!n“);printf(“=n“);doprintf(“ 1.输入航班信息 - nn“ 2.浏览航班信息 - nn“ 3.修改航班信息 - nn“ 4.查找航班信息 - nn“内蒙古科技大学课程设计说明书17“ 5.删除航班信息 - nn“ 6.订票信息 - nn“ 7.退票信息 - nn“ 0.退出 - nn“);printf(“=n“);printf(“请在 0-7 中选择以回车键结束:nn“);scanf(“%d“,switch(j)
13、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); /判断结束内蒙古科技大学课程设计说明书18printf(“谢谢使用,再见!n“);/主函数结束void input()/打印模块程序
14、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;i=n)/判断是否出错si.count=si.count-n;save();/调用保存函数printf(“订票成功!nn“);break;if(si.countn)/判断是否出错printf(“请输入
15、有效的机票数:n“);break;内蒙古科技大学课程设计说明书27printf(“是否继续? 请输入 yes 或 no 以回车键结束:n“);/判断是否继续订票scanf(“%s“,a);while(!strcmp(a,“yes“);/判断结束void tuipiao()/退票模块int n;char a10;dosearch();/调用查询模块printf(“请输入您要退的机票数目:n“);scanf(“%d“,/输入所退票数getchar();if(n0) /判断票数是否有效printf(“请输入有效的机票数!n“);si.count=si.count+n;save(); /调用保存模块p
16、rintf(“退票成功!nn“);printf(“是否继续? 请键入 yes 或 no 以回车键结束 :nn“);/判断是否继续退票scanf(“%s“,a);getchar();while(!strcmp(a,“yes“);/判断并跳出循环getchar();内蒙古科技大学课程设计说明书28void xiugai() /修改模块struct xiu /定义结构体int no;char name120;char name220;char time20;int count;x1;char j10;char f=“2008china“;/设置密码int n;printf(“请输入密码并以回车键结束:nn“);scanf(“%s“,f);/读取密码if(strcmp(f,“2008china“)=0)/判断是否出错read();/调用读取模块doprintf( “请选择修改方式:nn“*1,按航班号修改 :nn“*2,按航线修改 : nn“);printf(“请在 1-2 中修改以回车键结束:nn“);scanf(“%d“,/读取修改方式getchar();switch(n)case 1:printf(“请输入航班号:n“);