




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、内蒙古科技大学课程设计说明书内蒙古科技大学本科生课程设计说明书题 目:C语言课程设计 飞机订票系统学生姓名:罗晓蓉学 号:1367159140专 业:软件班 级:2013-1指导教师:丁雨内蒙古科技大学课程设计任务书课程名称C语言课程设计设计题目飞机订票系统指导教师丁雨 时间2013.12.302014.1.3一、教学要求1. 巩固和加深学生对C语言课程的基本知识的理解和掌握2. 掌握C语言编程和程序调试的基本技能3. 利用C语言进行基本的软件设计4. 掌握书写程序设计说明文档的能力5. 提高运用C语言解决实际问题的能力二、设计资料及参数每个学生在教师提供的课程设计题目中任意选择一题,独立完成
2、,题目选定后不可更换。飞机订票系统设计假定民航机场共有n个航班,每个航班有一航班号、确定的航线(起始站、终点站)、确定的飞行时间(星期几)和一定的成员订额。试设计一民航订票系统,使之能提供下列服务:v 航班信息录入功能(航班信息用文件保存)输入v 航班信息浏览功能输出v 查询航线:(至少两种查询方式)算法按航班号查询 按终点站查询v 承办订票和退票业务三、设计要求及成果1. 分析课程设计题目的功能需求(可选用数组或链表实现,可多人(最多3人)协作完成一个题目)2. 写出详细设计说明(至少包括功能实现分析和模块流程图)3. 编写程序代码,调试程序使其能正确运行(代码书写要规范,标示符要见名知意,
3、要有必要的注释,每人至少3个函数,每人至少200行代码,不包括注释和花括号)4. 设计完成的软件要便于操作和使用5. 设计完成后提交课程设计报告(请严格按照模板进行排版)四、进度安排第一天 选择课程设计题目,分析课题的要求第二天 编程第三天 编程及调试第四天 写课程设计报告第五天 提交课程设计报告(打印稿及电子稿)五、评分标准1. 根据平时上机考勤、表现和进度,教师将每天点名和检查2. 根据课程设计完成情况,必须有可运行的软件。3. 根据课程设计报告的质量,如有雷同,则所有雷同的所有人均判为不及格。六、建议参考资料1C语言程序设计,谭
4、浩强,清华大学出版社2C语言程序设计课程设计,刘振安,机械工业出版社I目 录目 录II第一章 需求分析41.1 任务概述4第二章 概要设计52.1 总体设计52.2 接口设计 /函数声明6第三章 详细设计83.1 定义系统初始化函数83.2 定义建立新数据文件的函数83.3 定义读取文件内航班信息的函数93.4 定义保存函数93.5 定义订票业务函数93.6 定义退票业务函数:93.7 定义主函数9第四章 测试分析104.1 测试程序执行情况104.2 出现的问题和解决的方法10第五章 执行结果与截图115.1 第一次运行(菜单界面):115.2 增加航班信息:125.3 浏览航班信息:125
5、.4 查找航班信息:135.5 订票业务:145.6 退票业务:14第六章 课程设计总结156.1 仍存在的问题156.2 心得体会15附录:程序代码16参考文献24致谢25 第一章 需求分析1.1 任务概述飞机订票系统设计假定民航机场共有n个航班,每个航班有一航班号、确定的航线(起始站、终点站)、确定的飞行时间(星期几)和一定的成员订额。试设计一民航订票系统,使之能提供下列服务:1、航班信息录入功能(航班信息用文件保存)输入2、航班信息浏览功能输出3、查询航线算法(按航班号查询) 4、承办订票和退票业务 第二章 概要设计2.1 总体设计编写一个飞机订票系统的程序,使该系统能够实现对航班信息的
6、录入、浏览、排序、查询以及订票、退票的功能。根据题目要求,首先要制作一个主菜单显示出各个操作的提示可供用户选择,进而一步步地深入操作。根据主菜单的内容再进一步编制具体操作的函数,各个功能均用专门编制的函数来完成。这就是看到题目后的最初的思路。在这附上总体模块设计图:因为飞机订票系统含有各航班的各项信息,如航班号、航线、飞行时间、机票数目等必要信息,所以就决定用刚学不久的结构体数组来存放航班的各项信息,根据题目要求定义如下结构体类型:头文件包含、全局变量定义和结构体定义源代码:#include<stdio.h>/标准输入、输出头文件#include<string.h>/包
7、含字符串函数处理头文件#include<process.h>/包含access函数的头文件#define N 1000 /定义最多的航班数#define PRINT "%dtt%stt%stt星期%stt%dn ",si.num,si.start,si.over,si.time,si.count /宏定义输出格式struct air /定义结构体数组 int num;/定义航班号 char start20;/航班起始站 char over20;/航班终点站 char time10;/飞行时间 int count;/机票数量sN;int i,m=0;/定义全局变量
8、,记录下航班信息的数量char ii10;/用来选择是否继续的变量以上就是我的总体设计思路。2.2 接口设计 /函数声明函数名函数格式 /即函数首部函数功能addvoid函数声明增加航班信息函数printvoid显示航班信息searchvoid查找航班信息dingpiaovoid订票业务tuipiaovoid退票业务 readvoid读取文件savevoid保存文件outputvoid输出格式chushihuavoid系统初始化buildvoid建立数据文件 第三章 详细设计 在本次的课程设计中我负责编制的是初始化、建立数据文件、数据文件读取、数据文件保存、增加航班信息、订票、退票业务函数的编
9、写。以下是我的负责部分的详细设计内容:3.1 定义系统初始化函数模块功能:设立一个初始化函数来得到航班信息。具体设计是第一次运数据文件是否存在输入航班信息并建立新数据文件保存下来从已有的数据文件读取已有的航班信息Y初始化结束N行程序时自动生成保存航班信息的文件,并输入初始航班信息,待第二次开始就可以直接读取该文件获得已有的航班信息并可直接使用。运用了access函数判断文件是否存在。该函数源代码为:void chushihua()/初始化函数if(access("hangban.dat",0)build();elseread();3.2 定义建立新数据文件的函数系统初始化后
10、,没有寻找到数据文件,则进行新建数据文件,此函数的作用就是进行新建文件数据的录入。运用到了文件指针的定义FILE *fp,文件的打开fopen和关闭fclose、成块读写函数中的fwrite;运用for循环进行各组数据的输入,用m+记录下输入的航班数量,并运用if语句判断是否输入下一条航班信息,若不继续则返回主界面。3.3 定义读取文件内航班信息的函数系统初始化之后,若原始数据文件存在,则进行文件内航班信息的读取,以供接下来程序中的各个函数来使用。在该函数中同样运用到了文件指针FILE *fp、文件的打开fopen和关闭fclose、成块读写函数中的fread、文件结束检测函数feof同时配合
11、while语句控制文件的读取;m+记录下读取到的航班数量等。3.4 定义保存函数因为在飞机订票系统中涉及到飞机的订票和退票业务,还有按航班号的排序功能,所以我就定义了这个保存函数来保存下每次运行系统后对整个订票系统涉及到的资料的修改。为了简便程序,我就准备将此函数放在整个系统得推出选项中,这样就只在每次退出系统的时候进行一次保存,将此次对文件修改的所有新信息都一次保存下来。这样就实现了整个系统运行时进行一次读取,推出时一次保存的设计,大大简便了文件的调用和读取。保存函数运用到的知识点与读取函数大致相同。有关文件读取、写入和保存的函数定义完了就开始设计与题目要求直接相关的函数了。3.5 定义订票
12、业务函数在这个函数中首先调用了search函数查找需要订票的航班。运用if语句实现订票时的多种情况:订票数输入不正确、飞机票数不足等情况。订票成功时运用si.count=si.count-n;将已被订的机票数减去,以显示新的即时航班信息3.6 定义退票业务函数:与订票函数相类似,只做稍稍修改就行退票成功是用si.count=si.count+n; 将航班的剩余票数加上去以显示即时航班信息。3.7 定义主函数主函数主要就是提供系统的主菜单界面供用户选择。运行主函数时首先调用chushihua函数判定数据文件是否存在、是否要进行初始航班信息输入;若已存在则进入主界面菜单供用户选择,运用swich语
13、句对用户的不同选择来调用各功能的函数。并用dowhile语句循环实现能够让用户进行多次的选择。8 第四章 测试分析4.1 测试程序执行情况调试过程中曾经遇到过很多问题,但在修改了多次后,调试成功。4.2 出现的问题和解决的方法遇到过:订票或退票的时候不能将剩余的票数加上和减去。后来经过详细的检查与对照课本知识点找出了相应的错误点,经过修改加入票数加减语句,再经过与保存函数的配合后实现了题目要求的功能。调试成功。 第五章 执行结果与截图程序最终运行情况如所贴图表:5.1 第一次运行(菜单界面):5.2 增加航班信息:5.3 浏览航班信息:5.4 查找航班信息:5.5 订票业务:5.6 退票业务:
14、 第六章 课程设计总结6.1 仍存在的问题 系统只是按照题目的要求做的,虽然是很好地完成了题目要求的所有模块,但是在整个编程过程中我们也曾尝试增加我们感兴趣的功能,但是失败了。6.2 心得体会 经过此次的课程设计,可以很明确的了解到自己哪些知识点掌握的比较好,哪些知识点运用的还不够熟练。通过此次课程设计也学会综合运用理论知识来分析和解决实际问题的能力、养成严谨的科学态度和良好的程序设计习惯,实现由知识向智能的初步转化;学会遵循软件开发过程的基本规范,运用结构化程序设计的方法,按照课程设计的题目要求,并与同组成员共同完成设计、编写、调试和测试应用程序及编写文档的任务。14附录:程序代码#incl
15、ude<stdio.h>#include<string.h>#include<process.h>#define N 1000#define PRINT "%dtt%stt%stt星期%stt%dn",si.num,si.start,si.over,si.time,si.countstruct air int num; char start20; char over20; char time10; int count; sN;int i,m=0;char ii10;void add();void print();void search()
16、;void dingpiao();void tuipiao();void read();void save();void output();void chushihua();void build();int main() int j; chushihua(); printf(" 0(_)0欢迎使用科大飞机订票系统0(_)0n"); do printf("= "); printf("1.增加航班信息n" "t2.浏览航班信息n" "tt3.查找航班信息ttn" "ttt4.订票业务n&q
17、uot; "tt0(_)0tt5.退票业务n" "ttttt0.退出n"); printf("= "); printf("请在05中选择以回车键结束:"); scanf("%d",&j); system("cls"); switch(j) case 1: add(); break; case 2: print(); break; case 3: search(); break; case 4: dingpiao(); break; case 5: tuipiao();
18、 break; case 0: save(); return 0; while(j!=0); return 0;void chushihua() if(access("hangban.dat",0) build(); else read(); system("cls");void build() FILE *fp; if(fp=fopen("hangban.dat","wb")=NULL) print("创建文件失败!"); getchar(); return; printf("请依次
19、输入航班信息(以回车键结束):n"); printf("-n"); for(i=0; i<N; i+) printf("请输入航班号:"); scanf("%d",&si.num); printf("请输入起始站:"); scanf("%s",si.start); printf("请输入终点站:"); scanf("%s",si.over); printf("请输入时间(星期几):"); scanf("
20、%s",si.time); printf("请输入机票数:"); scanf("%d",&si.count); fwrite(&si,sizeof(struct air),1,fp); m+; printf("添加完毕,是否继续添加?请键入y或n以回车键结束:"); scanf("%s",ii); if(strcmp(ii,"y")!=0) fclose(fp); return ; void read() FILE *fp; if(fp=fopen("hang
21、ban.dat","r")=NULL) printf("创建文件失败!"); getchar(); return; i=0; while(!feof(fp) fread(&si,sizeof(struct air),1,fp); i+; m+; m-; fclose(fp);void save() FILE *fp; if(fp=fopen("hangban.dat","wb")=NULL) print("创建文件失败!"); getchar(); return; for(i=
22、0; i<m; i+) fwrite(&si,sizeof(struct air),1,fp); fclose(fp);void add() system("cls"); do printf("请依次输入您要增加加的航班信息(以回车键结束):n"); printf("- n"); printf("请输入航班号:"); scanf("%d",&sm.num); printf("请输入起始站:"); scanf("%s",sm.start
23、); printf("请输入终点站:"); scanf("%s",sm.over); printf("请输入时间:"); scanf("%s",sm.time); printf("请输入机票数:"); scanf("%d",&sm.count); m+; printf("添加完毕,是否继续添加?请键入y或n以回车键结束:"); scanf("%s",ii); system("cls"); while(!str
24、cmp(ii,"y");void output() printf("航班号tt起始站tt终点站tt时间tt机票数n"); for(i=0; i<m; i+) printf(PRINT);void print() printf("n目前我们有如下航班:n"); output(); printf("n请按回车键返回上层菜单 "); getchar(); getchar(); system("cls");void search() int n; do printf("n请输入航班号:&
25、quot;); scanf("%d",&n); for(i=0; i<m; i+) if(si.num=n) printf("n您所查找的航班信息为:n"); printf("航班号tt起始站tt终点站tt时间tt机票数nn"); printf(PRINT); printf("n查询完毕,按回车键继续"); getchar(); getchar(); system("cls"); return; printf("n对不起,没有找到您需要的信息!n"); prin
26、tf("是否继续查找?请键入y或n以回车键结束:"); scanf("%s",ii);system("cls"); while(!strcmp(ii,"y"); system("cls");void dingpiao() int n; char a10="y" printf("输入航班号:"); scanf("%d",&n); do /search(); if(!strcmp(ii,"n")=0) print
27、f("对不起!没有找到您所需要的航班,所以不能订票。n"); printf("n请按回车键返回上层菜单 "); getchar(); getchar(); strcpy(ii,"n"); break; else do printf("请输入您要定的机票是(以回车键结束):"); scanf("%d",&n); if(n<=0) printf("输入错误!至少续订一张机票。n"); else if(sm-1.count=0) printf("对不起,你所选择的航班的机票已售完!n"); break; else if(sm-1.count!=0&&sm-1.count>=n) sm-1.count=sm-1.count-n; printf("订票成功!"); break; else if(sm-1.count<n) printf("对不起,你所
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 辽宁省沈阳市重点高中联合体2023-2024学年高二上学期期中考试地理试题(解析版)
- 江苏省常州市2023-2024学年高三上学期期末考试地理试题(解析版)
- 2025年贵州电子科技职业学院单招职业倾向性测试题库参考答案
- 2025至2030年中国摩托车前刹拉索数据监测研究报告
- 2025年非油炸食品项目发展计划
- 大型仪器服务平台升级改造功能需求分析
- 2025年哈尔滨职业技术学院单招职业倾向性测试题库含答案
- 2025年度科技创新经典实习期劳动合同模板
- 2025年度环保产业借款合同印花税税率调整与绿色金融发展
- 2025年幼儿园大班语言公开课标准教案《萝卜兔》含反思
- 氩气安全技术说明书MSDS
- 汽车运行材料ppt课件(完整版)
- 四年级数学下册教案-练习一-北师大版
- GB∕T 1732-2020 漆膜耐冲击测定法
- 2022《化工装置安全试车工作规范》精选ppt课件
- Q∕GDW 12067-2020 高压电缆及通道防火技术规范
- 汽车系统动力学-轮胎动力学
- 《经济研究方法论》课程教学大纲
- 10T每天生活污水处理设计方案
- 中国民航国内航空汇编航路314系列航线
- 山西特色文化简介(课堂PPT)
评论
0/150
提交评论