C语言课程设计——飞机订票系统说明书(第一个人)
目 录
设计目的 1 总体设计 1 详细设计 3 调试与测试 5 核心源程序清单和执行结果 5 源程序代码 5 截图 13 仍存在的问题 15 心得体会 15 设计进度表 16 参考文献 17
一、正文
(一)设计目的:
假定民航机场共有n个航班,每个航班有一航班号、确定的航线(起始站、终点站)、确定的飞行时间(星期几)和一定的成员订额。设计一飞机订票系统,使之能提供下列服务:
1、航班信息录入功能(航班信息用文件保存) 包括航班号、起始站、重点站、机票数等; 2、航班信息浏览功能 3、按航班号排序
4、查询航线:按航班号查询 5、承办订票和退票业务(可选项)
(二) 总体设计:
编写一个飞机订票系统的程序,使该系统能够实现对航班信息的录入、浏览、排序、查询以及订票、退票的功能。根据题目要求,首先要制作一个主菜单显示出各个操作的提示可供用户选择,进而一步步地深入操作。根据主菜单的内容再进一步编制具体操作的函数,各个功能均用专门编制的函数来完成。这就是看到题目后的最初的思路。 在这附上总体模块设计图:
因为飞机订票系统含有各航班的各项信息,如航班号、航线、飞行时间、机票数目等必要信息,所以就决定用刚学不久的结构体数组来存放航班的各项信息,根据题目要求定义如下结构体类型:
头文件包含、全局变量定义和结构体定义源代码: #include<stdio.h> #include<string.h> #include<process.h> #define N 1000
//标准输入、输出头文件 //包含字符串函数处理头文件
//包含access函数的头文件
//定义最多的航班数
#define PRINT "%d\t\t%s\t\t%s\t\t星期%s\t\t%d\n ",s[i].num,s[i].start,s[i].over,s[i].time,s[i].count //宏定义输出格式
struct air //定义结构体数组
{ int num;
//定义航班号 char start[20]; //航班起始站 char over[20]; //航班终点站 char time[10]; //飞行时间 int count;
//机票数量 }s[N]; int i,m=0; //定义全局变量,记录下航班信息的数量char ii[10];
//用来选择是否继续的变量
以上就是我的总体设计思路。
(三) 详细设计:
在本次的课程设计中我负责编制的是初始化、建立数据文件、数据文件读取、数据文件保存、增加航班信息、订票、退票业务函数的编写。以下是我的负责部分的详细设计内容: 1) 定义系统初始化函数
模块功能:设立一个初始化函数来得到航班信息。具体设计是第一次运行程序时自动生成保存航班信息的文件,并输入初始航班信息,待第二次开始就可以直接读取该文件获得已有的航班信息并可直接使用。运用了access函数判断文件是否存在。该函数源代码为:
void chushihua() { }
2) 定义建立新数据文件的函数
系统初始化后,没有寻找到数据文件,则进行新建数据文件,此函数的作用就是进行新建文件数据的录入。运用到了文件指针的定义FILE *fp,文件的打开fopen和关闭fclose、成块读写函数中的fwrite;运用for循环进行各组数据的输入,用m++记录下输入的航班数量,并运用if语句判断是否输入下一条航班信息,若不继续则返回主界面。该函数的源代码为:
3) 定义读取文件内航班信息的函数
系统初始化之后,若原始数据文件存在,则进行文件内航班信息的读取,以供接下来程序中的各个函数来使用。在该函数中同样运用到了文件指针FILE *fp、文件的打开fopen和关闭fclose、成块读写函数中的fread、文件结束检测函数feof同时配合while语句控制文件的读取;m++记录下读取到的航班数量等。
4) 定义保存函数
因为在飞机订票系统中涉及到飞机的订票和退票业务,还有按航班号的排序功能,所以我就定义了这个保存函数来保存下每次运行系统后对整个订票系统涉及到的资料的修改。为了简便程序,我就准备将此函数放在整个系统得推出选项中,这样就只在每次退出系统的时候进行一次保存,将此次对文件修改的所有新信息都一次保存下来。这样就实现了整个系统运行时进行一次读取,推出时一次保存的设计,大大简便了文件的调用和读取。保存函数运用到的知识点与读取函数大致相同。此函数的源代码为:
有关文件读取、写入和保存的函数定义完了就开始设计与题目要求直接相关的函数了。
//初始化函数
if(access("hangban.dat",0))
build(); read();
else
5) 定义订票业务函数
在这个函数中首先调用了search函数查找需要订票的航班。运用if语句实现订票时的多种情况:订票数输入不正确、飞机票数不足等情况。订票成功时运用s[i].count=s[i].count-n;将已被订的机票数减去,以显示新的即时航班信息
6) 定义退票业务函数:
与订票函数相类似,只做稍稍修改就行退票成功是用s[i].count=s[i].count+n; 将航班的剩余票数加上去以显示即时航班信息。
7) 定义主函数
主函数主要就是提供系统的主菜单界面供用户选择。运行主函数时首先调用chushihua函数判定数据文件是否存在、是否要进行初始航班信息输入;若已存在则进入主界面菜单供用户选择,运用swich语句对用户的不同选择来调用各功能的函数。并用do…while语句循环实现能够让用户进行多次的选择。
(四) 调试与测试
调试过程中曾经遇到过一些问题,但是也不多,遇到过:订票或退票的时候不能将剩余的票数加上和减去。后来经过详细的检查与对照课本知识点找出了相应的错误点,经过修改加入票数加减语句,再经过与保存函数的配合后实现了题目要求的功能。调试成功。
(五)核心源程序清单和执行结果:
a) 源程序清单: #include<stdio.h> //标准输入、输出头文件 #include<string.h> //包含字符串函数处理头文件 #define N 1000 //定义最多的航班数
#define PRINT "%d\t\t%s\t\t%s\t\t星期%s\t\t%d\n ",s[i].num,s[i].start,s[i].over,s[i].time,s[i].count 出格式
struct air //定义结构体数组 { int num; //定义航班号 char start[20]; //航班起始站 char over[20]; //终点站 char time[10]; //飞行时间 int count; //机票数量 }s[N];
int i,m=0; //定义全局变量 char ii[10];
void add(); //函数声明增加航班信息函数 void print(); //显示航班信息 void search(); //查找航班信息 void dingpiao(); //订票业务 void tuipiao(); //退票 void read(); //读取文件 void save(); //保存文件 void output(); //输出格式 void paixu(); //航班排序 void chushihua(); //系统初始化 void build(); //建立数据文件 void paixu1(); //按航班号从小到大排序 void paixu2(); //从大到小
void main() //主函数 { int j; chushihua(); //系统初始化判断是否存在原始数据文件 printf(" 欢迎使用天鑫飞机订票系\n"); //打印出系统主界面 do //宏定义输
printf("===================================== …… 此处隐藏:3012字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [资格考试]石油钻采专业设备项目可行性研究报告编
- [资格考试]2012-2013学年度第二学期麻风病防治知
- [资格考试]道路勘测设计 绪论
- [资格考试]控烟戒烟知识培训资料
- [资格考试]建设工程安全生产管理(三类人员安全员
- [资格考试]photoshop制作茶叶包装盒步骤平面效果
- [资格考试]授课进度计划表封面(09-10下施工)
- [资格考试]麦肯锡卓越工作方法读后感
- [资格考试]2007年广西区农村信用社招聘考试试题
- [资格考试]软件实施工程师笔试题
- [资格考试]2014年初三数学复习专练第一章 数与式(
- [资格考试]中国糯玉米汁饮料市场发展概况及投资战
- [资格考试]塑钢门窗安装((专项方案)15)
- [资格考试]初中数学答题卡模板2
- [资格考试]2015-2020年中国效率手册行业市场调查
- [资格考试]华北电力大学学习实践活动领导小组办公
- [资格考试]溃疡性结肠炎研究的新进展
- [资格考试]人教版高中语文1—5册(必修)背诵篇目名
- [资格考试]ISO9001-2018质量管理体系最新版标准
- [资格考试]论文之希尔顿酒店集团进入中国的战略研
- 全国中小学生转学申请表
- 《奇迹暖暖》17-支2文学少女小满(9)公
- 2019-2020学年八年级地理下册 第六章
- 2005年高考试题——英语(天津卷)
- 无纺布耐磨测试方法及标准
- 建筑工程施工劳动力安排计划
- (目录)中国中央空调行业市场深度调研分
- 中国期货价格期限结构模型实证分析
- AutoCAD 2016基础教程第2章 AutoCAD基
- 2014-2015学年西城初三期末数学试题及
- 机械加工工艺基础(完整版)
- 归因理论在管理中的应用[1]0
- 突破瓶颈 实现医院可持续发展
- 2014年南京师范大学商学院决策学招生目
- 现浇箱梁支架预压报告
- Excel_2010函数图表入门与实战
- 人教版新课标初中数学 13.1 轴对称 (
- Visual Basic 6.0程序设计教程电子教案
- 2010北京助理工程师考试复习《建筑施工
- 国外5大医疗互联网模式分析




