基于C语言的航空订票系统的设计与实现
- 格式:doc
- 大小:172.14 KB
- 文档页数:17
数据结构课程设计实验报告设计题目__________________________________________________________________ 设计者__________________________________________________________________ 指导老师__________________________________________________________________ 班级___________________________________________________________________ 学号____________________________________________________________________一、设计要求任务通过此系统可以实现如下功能:1.录入航班信息:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据定)2.查询航班:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,确定航班是否满仓);3.订票:(订票情况可以存在一个数据文件中,结构自己设定);4.退票:可退票,退票后修改相关数据文件;5.修改航班信息6.退出程序客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。
修改航班信息:当航班信息改变可以修改航班数据文件要求:根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能;二、设计概要主界面选择操作项目1.录入航班信息通过单链表这种数据结构,设置了剩余票数,航班号,出发地点,到达地点,起飞日期,出发时间,到达时间,票价。
2.订票输入旅客的姓名,证件号,航班号,和订票张数。
程序中自动查询输入要定的航班号,如果没有则叫其重新输入,有则执行:票数足够则订票成功,票数不充足叫其选择其它航班。
此也采用单链表的数据结构。
航空订票系统c语言课程设计一、课程目标知识目标:1. 让学生掌握C语言中结构体、数组、函数等基本知识点的综合运用,特别是在航空订票系统中的应用。
2. 让学生了解并掌握航空订票系统的基本业务流程,如航班查询、预订、取消预订等功能。
3. 使学生能够通过C语言实现简单的航空订票系统,并了解其背后的数据结构和算法。
技能目标:1. 培养学生运用C语言进行问题分析、程序设计和调试的能力。
2. 培养学生独立思考和团队协作的能力,通过项目实践,提高解决实际问题的能力。
3. 培养学生具备良好的编程习惯,编写出结构清晰、可读性强的代码。
情感态度价值观目标:1. 培养学生对计算机编程的兴趣和热情,激发他们主动探索新知识的精神。
2. 培养学生面对困难和挑战时,保持积极乐观的心态,勇于克服困难,不断进步。
3. 通过航空订票系统课程设计,使学生认识到编程在实际生活中的应用价值,提高他们对社会责任的认识。
课程性质:本课程为C语言程序设计课程的实践环节,以项目为导向,注重培养学生的动手能力和实际应用能力。
学生特点:学生已经掌握了C语言的基本语法和编程技巧,具有一定的编程基础,但缺乏实际项目经验。
教学要求:结合学生特点和课程性质,采用案例教学、任务驱动等方法,引导学生通过实践掌握课程内容,提高编程能力。
在教学过程中,注重启发式教学,鼓励学生提问、讨论,培养他们的问题解决能力和团队协作精神。
最终达到课程目标,使学生能够独立完成航空订票系统课程设计。
二、教学内容1. C语言基础知识回顾:结构体、数组、函数、指针、文件操作等。
2. 航空订票系统业务流程分析:航班查询、预订、取消预订、显示航班信息等。
3. 数据结构和算法:链表、排序算法、查找算法等在航空订票系统中的应用。
4. 编程规范和调试技巧:代码规范、调试方法、性能优化等。
5. 项目实践:根据业务流程,设计并实现航空订票系统各功能模块。
教学内容安排和进度:1. 第一周:C语言基础知识回顾,重点讲解结构体、数组和函数。
一、设计内容与设计要求一、设计内容:飞机订票系统1.1问题描述:假设某航空公司只有M架N个座位的飞机,每架飞机每天飞行一趟。
通过该系统来实现机票的订购问题。
1.2功能要求:1)、本系统采用一个包含N个数据的结构体数组,每个数据的结构应当包括:起飞地、目的地航班号、座次号码、座次订出与否标记、订座者的姓名和订座者的身份证号码。
2)、本系统显示这样的菜单:(1)输入航班信息(2)输出航班信息(3)查找航班信息a.显示空座的数量b.显示空座的信息c.显示已订座的信息d.起飞时间(4)订票预约(5)删除定票预约(6)退出系统1、本系统成功执行菜单的每个信息,选项4)和5)将要求额外的输入,并且它们都允许用户收回其输入。
2、查找航班信息既可按线路查,也可按目的地查。
4、在两次运行之间,数据被保存于一个文件里,当本程序重新开始的时候,它首先从该文件读入数据1.3 算法提示:1、数据结构:结构体类型数组2、数据库结构:下表构成该系统的基本数据库。
1.4测试数据:每架飞机的座位N=12,M=51.5 其它:对该系统有兴趣的同学可以在实现系统基本功能后,完善系统的其它功能。
二、设计要求1).设计正确,方案合理。
2).界面友好,使用方便。
3).程序精炼,结构清晰。
4).设计报告5000字以上,含程序设计说明,用户使用说明,源程序清单及程序框图。
5).上机演示。
二、进度安排第 18 周星期一上午课题讲解查阅资料星期一下午系统需求分析模块设计星期二上午算法、数据结构设计主程序设计星期二下午各功能模块程序设计修改完善程序星期五下午各功能模块程序设计修改完善程序第 19 周时间待定星期五下午答辩目录一、需求分析 (4)1、程序的功能 (4)2、输入输出的要求 (6)二、概要设计 (9)三、详细设计 (11)1、数据类型 (11)2、模块分析 (12)3、函数的调用关系 (12)四、调试分析以及设计体会 (13)1、测试数据 (13)2、调试分析 (13)3、心得体会 (14)五、使用说明 (15)六、附录 (17)1、参考书目 (17)2、源程序清单(带注释) (17)七、计算机科学与技术系课程设计评分表 (40)一、需求分析1.1 系统功能需求1.1.1程序的功能1.系统管理员功能:1)录入和修改航班和机票的信息:输入航班号,输入起飞港,途径港,到达港,录入起飞时间,到达时间,飞行总共用时,可随时修改航班信息2)输出航班的信息:输入航班号便可输出之前输入的航班信息2.客户需要的功能:1)查找航班信息:a.显示空座的数量b.显示空座的信息c.显示已订座的信息d.起飞时间2)订票预约:查询航班信息后,提前订票预约需要的飞机票,3)删除定票预约4)退出系统1.1.2 主要模块流程图1.1.3 功能描述1.1.4各功能模块的功能描述(1)显示菜单函数:FLIGHT fltlist[5]; PASSENGER psglist[5][12]; ReadFlight(fltlist);PASSENGER* k;k=(PASSENGER*) psglist; ReadPassenger(k);用户可以根据菜单提示,选择相关菜单。
基于C语言的航空订票系统的设计与实现航空订票系统是通过计算机技术对航空公司的航班信息和乘客信息进行管理和处理的系统。
本文将介绍基于C语言的航空订票系统的设计与实现。
具体包括系统的需求分析、系统的设计与架构、系统的实现和功能特点等方面。
一、系统的需求分析在设计和实现航空订票系统之前,需要明确系统的需求,包括基本功能和用户需求等。
基本功能包括航班查询、座位预订、票价计算、乘客信息管理等。
用户需求包括操作简便、查询快速、信息准确等。
二、系统的设计与架构1.系统架构设计航空订票系统采用客户端/服务器(Client/Server)架构设计。
客户端负责与用户进行交互,接收用户的输入并向服务器发送请求。
服务器负责处理客户端的请求,访问数据库获取相应的数据并返回给客户端。
2.数据库设计三、系统的实现1.用户界面设计在客户端实现用户界面,提供菜单和命令行交互的方式供用户操作。
菜单包括航班查询、座位预订、票价计算、乘客信息管理等功能选项。
2.功能实现(1)航班查询功能用户输入出发地和目的地,系统从数据库中查询符合条件的航班信息,并显示在用户界面上。
用户可以选择其中一条航班进行预订。
(2)座位预订功能用户选择一条航班后,系统显示该航班的座位信息,并提示用户选择座位号。
用户选择座位后,系统生成一个订单号,并将订单信息保存到数据库中。
(3)票价计算功能用户选择一条航班后,系统显示该航班的票价信息,并提示用户输入乘客人数和票价类型。
系统根据输入的信息计算总票价并显示给用户。
(4)乘客信息管理功能用户可以添加、修改和删除乘客信息。
当用户进行座位预订时,系统要求用户输入乘客信息,可以选择已有的乘客信息或新添加乘客信息。
四、系统的功能特点1.操作简便:用户可以通过菜单方式选择需要的功能,操作简单快捷。
2.查询快速:系统利用数据库索引技术,提高了查询速度,用户可以快速获取所需信息。
3.信息准确:系统通过数据库管理相关信息,并通过数据校验保证数据的准确性。
C语言课程设计题目:飞机订票系统专业:。
学号:。
:。
任课教师:。
C语言课程设计报告一、课程设计报告正文(1)课程设计题目的原文;假定民航机场共有n个航班:航班号、起始站、终点站、飞机号、飞机时间、乘员定额、余票量。
试设计一民航订票系统,使之能提供下列服务:航班信息录入功能(文件保存)完成航班信息浏览功能;查询航线(至少一种查询方式)。
(2)题目的分析(需求分析);任务:通过此系统可以实现如下功能:录入:可以录入航班情况(数据可以存储在一个数据文件中)浏览:航班信息浏览功能需要提供显示操作;查询:可提供按照航班号、起点站、终点站、飞行时间、查询,可以查询某个航线的情况(如,输入航班号,起飞抵达城市,确定航班是否满仓);另外要提供键盘式选择菜单以实现功能选择。
要求:根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能。
可以建立航班结构体,结构体成员包括航班号、起点站、终点站、飞行时间、预售票总数、已售票数。
(3)整体设计与模块划分;根据需求分析,该程序可分为以下四大模块:(4)代码设计;包括——各功能模块的流程图;重要模块中关键部分的代码分析;关键函数的算法设计和分析等等;二、航班基本信息输入模块航班信息录入函数:航班信息浏览函数:[流程图]显示信息查询模块:分析:基本信息的查询按查询可供选择的方式比较丰富,可按航班号查询。
在查询小模块中采用了直接查找的方法。
本模块可以通过多种查询方式进行完善。
这是本程序没有做的地方。
[流程图](一)核心源程序清单和执行结果:a)源程序清单:#include<stdio.h>#include<stdlib.h>#include<io.h>#include<math.h> //标准输入、输出头文件#include<string.h> //包含字符串函数处理头文件#include<process.h> //包含access函数的头文件#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 read(); //读取文件void save(); //保存文件void output(); //输出格式void chushihua(); //系统初始化void build(); //建立数据文件void main() //主函数{int j;chushihua(); //系统初始化判断是否存在原始数据文件printf(" O(^_^)O欢迎使用飞机订票系统O(^_^)O \n"); //打印出系统主界面do{printf("===================================================================== =========== ");printf(" 1.增加航班信息\n"" 2.浏览航班信息\n"" 3.查找航班信息(按航班号)\t\t\n"" 0.退出\n");printf("================================================================================ ");printf("请在0-3中选择以回车键结束:");scanf("%d",&j);switch(j){case 1: add(); //调用增加航班函数break;case 2:print(); //调用显示模块break;case 3:search(); //调用查找模块break;case 0: //退出系统save();printf("使用,再见!( ^_^ )/~~ \n ");break;}}while(j!=0); //判断是否调用其他函数}void chushihua() //定义系统初始化函数{if(access("hangban.dat",0)){build();}elseread();}void build() //定义建立数据文件函数{FILE *fp; //定义文件指针if((fp=fopen("hangban.dat","wb"))==NULL) //打开文件并判定是否出错{printf("创建文件失败! "); //打印出错提示getchar();return;}printf("请依次输入航班信息(以回车键结束):\n"); //打印提示信息printf("-------------------------------------------------------------------------- \n");for(i=0;i<N;i++){printf("请输入航班号: ");scanf("%d",&s[i].num); //输入航班号printf("请输入起始站: ");scanf("%s",s[i].start); //输入起始站printf("请输入终点站: ");scanf("%s",s[i].over); //输入终点站printf("请输入时间(星期几): ");scanf("%s",s[i].time); //输入时间printf("请输入机票数: ");scanf("%d",&s[i].count); //输入机票数fwrite(&s[i],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("hangban.dat","r"))==NULL){printf("创建文件失败! ");getchar();return;}i=0;while(!feof(fp)){fread(&s[i],sizeof(struct air),1,fp); //逐块读取数据i++;m++; //计算存在航班数}m--;fclose(fp);}void save() //定义保存函数{FILE *fp;if((fp=fopen("hangban.dat","wb"))==NULL){printf("创建文件失败! ");getchar();return;}for(i=0;i<m;i++) //逐块保存数据fwrite(&s[i],sizeof(struct air),1,fp);fclose(fp);}void add() //定义增加航班信息函数{do{printf("请依次输入您要增加的航班信息(以回车键结束): \n"); //打印提示信息printf("-------------------------------------------------------------------------- \n");printf("请输入航班号: ");scanf("%d",&s[m].num); //读取航班号printf("请输入起始站: ");scanf("%s",s[m].start); //读取起始站printf("请输入终点站: ");scanf("%s",s[m].over); //读取终点站printf("请输入时间: ");scanf("%s",s[m].time); //读取时间printf("请输入机票数: ");scanf("%d",&s[m].count); //读取机票数m++;printf("添加完毕,是否继续添加?请键入y或n以回车键结束:");scanf("%s",ii);}while(!strcmp(ii,"y")); //判断是否继续添加}void output() //定义输出格式函数{printf("航班号\t\t起始站\t\t终点站\t\t时间\t\t机票数\n"); //信息标题for(i=0;i<m;i++)printf(PRINT);//打印出信息}void print() //定义显示航班信息函数{printf("\n目前我们有如下航班:\n");output(); //调用输出格式函数printf("\n请按回车键返回上层菜单");getchar();getchar();}void search() //定义查询函数{int n;do{printf("\n请输入航班号:");scanf("%d",&n); //输入查询的航班号for(i=0;i<m;i++){if(s[i].num==n) //按航班号判定输出条件{printf("\n您所查找的航班信息为:\n ");printf("航班号\t\t起始站\t\t终点站\t\t时间\t\t机票数\n\n");printf(PRINT); //显示信息printf("\n查询完毕,按回车键继续");getchar();getchar();return;}}printf("\n对不起,没有您需要的信息!\n ");printf("是否重新查找?请键入y或n以回车键结束");scanf("%s",ii);}while(!strcmp(ii,"y"));//判定是否重新查找}1)第一次运行程序(输入初始数据)界面提示输入原始数据:请输入航班号→请输入起始站→请输入终点站→请输入飞行时间→请输入机票数。
c语言民航订票系统课程设计一、课程目标知识目标:1. 让学生掌握C语言中数组、结构体、函数等基本概念及其应用;2. 让学生了解民航订票系统的基本业务流程,理解系统设计的基本原则;3. 使学生能够运用C语言实现简单的民航订票系统功能,如用户注册、航班查询、购票、退票等。
技能目标:1. 培养学生运用C语言进行程序设计的能力,特别是针对民航订票系统这种实际问题的解决能力;2. 提高学生分析问题、设计算法、编写程序、调试程序的能力;3. 培养学生团队协作能力,通过小组合作完成课程设计。
情感态度价值观目标:1. 激发学生对计算机编程的兴趣,培养他们主动探索新知识的热情;2. 培养学生面对实际问题时,具备积极解决问题的态度,树立正确的价值观;3. 通过课程设计,使学生认识到编程对于解决现实问题的意义,提高社会责任感。
分析课程性质、学生特点和教学要求,本课程目标旨在让学生在掌握C语言基础知识的基础上,通过实际项目的设计与实现,提高编程能力和解决实际问题的能力。
同时,注重培养学生团队协作精神,提高他们的情感态度价值观,为将来的职业发展打下坚实基础。
通过本课程的学习,学生将能够独立或协作完成一个简单的民航订票系统,并在实践中不断提高自己的编程技能和综合素质。
二、教学内容1. C语言基础知识回顾:数组、结构体、函数、指针等基本概念及其应用。
2. 民航订票系统需求分析:介绍系统业务流程,分析用户需求,明确系统功能模块。
3. 系统设计:讲解如何运用C语言进行系统设计,包括模块划分、数据结构设计、接口设计等。
4. 编程实现:- 用户注册与登录模块:实现用户注册、登录、修改密码等功能;- 航班查询模块:实现按航班号、出发地、目的地等条件查询航班信息;- 购票模块:实现用户购票、选择座位、支付等功能;- 退票模块:实现用户退票、退款等功能;- 管理员模块:实现航班信息管理、用户管理、订单管理等功能。
5. 系统测试与调试:教授学生如何进行系统测试,找出并修复程序中的错误。
C语言飞机订票系统设计摘要飞机订票系统已经成为了现代交通运输中的重要组成部分。
本文将介绍一种基于C语言的飞机订票系统的设计,包括该系统的功能特点、设计思路、实现细节和未来可扩展性。
功能特点该飞机订票系统包含以下功能特点:1.浏览航班信息:用户可以查看所有航班信息,包括起飞时间、起降地点、机型以及票价等。
2.登录账户:用户需要登录才能进行购票,系统保存用户的个人信息以供后续使用。
3.购票:用户可以选择不同的航班进行购票,购票之后系统会自动扣除用户的账户余额,并发送购票信息给乘务员。
4.退票:用户可以在一定时间内取消已购买的机票,并获得一定程度的退款。
5.修改个人信息:用户可以随时更新自己的个人信息,例如联系方式和地址等。
6.管理员权限:管理员可以更新航班信息,添加或删除航班以及查看所有用户的购票信息。
设计思路系统架构该系统采用传统的三层架构方式进行设计,包括数据访问层、业务逻辑层以及表示层。
其中:1.数据访问层:主要负责与数据库进行交互,包括添加航班、修改航班、查询航班、添加用户、修改用户信息等。
2.业务逻辑层:主要负责系统的业务逻辑处理,例如用户进行登陆、选择航班购票等。
3.表示层:用户可以通过控制台进行操作,管理员也可以通过控制台或者后台管理员管理航班信息和用户信息。
数据库设计该系统的数据库采用MySQL进行设计,包括以下表:1.航班信息表:包含航班号、起降地点、起飞时间、机型以及票价等信息。
2.用户信息表:包含用户ID、用户名、密码、账户余额、联系方式和地址等信息。
3.购票信息表:包含购买者ID,航班号、座位号以及购买时间等信息。
实现细节在实现该系统的过程中,你需要注意以下细节问题:1.输入验证:所有输入信息都需要进行验证,特别是登陆认证和支付验证。
2.防止SQL注入:为了防止SQL注入攻击,你需要使用参数化查询等技术。
3.消息通知:为了提供更好的用户体验,你需要增加相应的消息通知,例如购票成功或退票成功。
飞机订票系统 c语言课程设计一、课程目标知识目标:1. 理解C语言在开发飞机订票系统中的应用,掌握相关数据结构(如结构体、数组、链表)的使用;2. 学会使用C语言进行文件操作,实现数据的存储和读取;3. 掌握C语言中的模块化编程思想,将系统功能划分为多个函数并实现协同工作。
技能目标:1. 能够运用所学知识,独立设计和实现一个飞机订票系统,包括用户注册、查询航班、预订机票、取消预订等功能;2. 提高问题分析能力,针对实际需求,运用C语言编写合适的算法和程序;3. 培养良好的编程习惯,编写规范、易读、高效的代码。
情感态度价值观目标:1. 培养学生面对复杂问题时,保持积极、主动、合作的态度,勇于克服困难;2. 增强学生的团队协作意识,学会在团队中发挥个人优势,共同完成任务;3. 通过课程学习,让学生认识到编程在实际生活中的应用价值,激发对计算机科学的兴趣。
本课程针对高年级学生,课程性质为实践性较强的课程设计。
在教学过程中,要求学生具备一定的C语言基础,能独立完成程序编写和调试。
课程目标的设定旨在让学生在掌握C语言知识的基础上,进一步提高编程实践能力,培养实际项目开发中的团队协作和问题解决能力。
通过课程学习,使学生能够将所学知识应用于实际项目中,达到学以致用的目的。
二、教学内容1. C语言基础知识复习:数据类型、运算符、控制语句、函数等基本概念;教材章节:第一章至第四章。
2. 数据结构:结构体、数组、链表等;教材章节:第六章、第七章。
3. 文件操作:文件打开、读取、写入、关闭等;教材章节:第十章。
4. 模块化编程:函数定义、调用、参数传递、作用域等;教材章节:第五章、第八章。
5. 飞机订票系统功能设计:- 用户注册、登录功能;- 航班查询、预订、取消预订功能;- 数据存储与读取功能;教材章节:综合应用实例。
6. 编程规范与调试技巧:代码风格、调试方法、性能优化等;教材章节:第十二章。
教学内容安排与进度:第一周:C语言基础知识复习;第二周:数据结构学习;第三周:文件操作学习;第四周:模块化编程;第五周:飞机订票系统功能设计与实现;第六周:编程规范与调试技巧,项目完善与优化。
c 语言飞机订票系统课程设计一、课程目标知识目标:1. 学生理解C语言中结构体、数组、函数等基本概念,并能运用这些知识设计飞机订票系统。
2. 学生掌握C语言文件操作,实现对飞机票数据的存储和读取。
3. 学生了解C语言中字符串处理函数,并能够运用字符串操作进行信息输入和输出。
技能目标:1. 学生能够运用结构体和数组创建和管理飞机票数据,实现票务信息的增删改查功能。
2. 学生能够编写C语言程序,实现用户界面交互,包括用户登录、航班查询、购票、退票等功能。
3. 学生能够利用文件操作保存和加载飞机订票系统数据,保证数据的持久性。
情感态度价值观目标:1. 学生培养编程的兴趣,激发学习C语言的积极性,形成自主学习的习惯。
2. 学生通过合作完成课程设计,培养团队协作能力和沟通能力,增强集体荣誉感。
3. 学生了解飞机订票系统的实际应用,认识到编程知识在解决实际问题中的价值,增强学以致用的意识。
课程性质:本课程设计为实践性课程,旨在让学生将所学的C语言知识应用于实际项目中,提高编程能力和解决实际问题的能力。
学生特点:学生已具备C语言基础知识,具有一定的编程能力,但对实际项目的开发尚缺乏经验。
教学要求:教师需引导学生复习相关知识点,提供必要的技术支持,鼓励学生自主探究和团队协作,注重培养学生的实践能力和创新能力。
在教学过程中,关注学生的个体差异,给予个性化指导,确保每位学生都能在课程中取得进步。
通过课程设计,使学生将理论知识与实践相结合,提高综合运用C语言知识解决实际问题的能力。
二、教学内容1. 复习C语言基础知识:结构体、数组、函数、指针、文件操作、字符串处理函数等。
相关教材章节:第一章至第六章- 结构体与数组:理解结构体的定义和用法,掌握结构体数组的操作。
- 函数:掌握函数的定义、调用和参数传递。
- 指针:理解指针的概念和操作,掌握指针在数组、函数中的应用。
- 文件操作:掌握文件的打开、读写、关闭操作。
- 字符串处理函数:熟悉常用的字符串处理函数,如strcpy、strcat等。
精选文档课程设计课程:数据构造专业班级: xx 软件工程 xx 班姓名: xx学号: xxx姓名: xxx学号: xxx设计时间: xxx指导老师: xxx课程设计题:飞机订票系统一、设计目的1.掌握构造体数组的表示和储存。
2.掌握链表的储存和操作。
3.掌握文件的操作。
二、设计内容和要求1.任务:经过此系统能够实现以下功能:录入:能够录入航班状况(数据能够储存在一个数据文件中,数据构造、详细数据自定)查问:能够查问某个航线的状况(如,输入航班号,查问起降时间,腾飞到达城市,航班票价,票价折扣,确立航班能否满仓);能够输入腾飞到达城市,查问飞机航班状况;订票:订票状况能够存在一个数据文件中,构造自己设定。
能够订票,假如该航班已经无票,能够供给有关可选择航班;退票:可退票,退票后改正有关数据文件;客户资料有姓名,证件号,订票数目及航班状况,订单要有编号。
改正航班信息:当航班信息改变能够改正航班数据文件。
要求:依据以上功能说明,设计航班信息,订票信息的储存结构,设计程序达成功能设计思想:管理操作系统,主要考虑的是信息的录入,这里利用文件的读写达成该功能;输出,查问以及删除,利用构造数组储存航班与客户信息,挨次对订票,退票,查问及有关操作编写成子程序,而后再主程序中调用,这样程序看起来相当精练,并且易读懂;算法设计剖析:(次系统运转环境为VC6.0)1.txtbeijing shanghai11120111806 1002shanghai wuhang2 2 1202 2 14 02 1101wuhang chibi3 3 1303 3 1401 502(此文件是程序履行航班信息录入时自动生成,在信息读取时需要调用)第一是航班于客户信息的储存,构造数组的利用很好的解决该问题;其次是文件的操作,在主函数中利用文件的读与写;下边介绍订票退票以及查问操作的实现。
1订票:第一输入出发地与目的地,查找能否有相应的航班信息,在航2班票数足够的状况下,录入客户信息,提示操作成功;不然失败。
武汉理工大学华夏学院课程设计课程名称数据结构题目基于C语言的航空订票系统的设计与实现 ----订票模块专业软件工程班级软件1111班姓名.成绩指导教师黄启荃2012 年6月18日至2012年6月21日课程设计任务书设计题目:基于C语言的航空订票系统的设计与实现----订票模块设计目的1.学会分析研究数据对象的特性;2.学会数据的组织方法;3.选择合适的数据的逻辑结构和存储结构以及相应操作,把现实世界中的问题转换为计算机内部的表示和处理;4.提高学生的程序设计能力、提高算法设计质量与程序设计素质;设计任务(在规定的时间内完成下列任务)本项目旨在通过一个简化的航空订票系统项目,使学生在完成对C程序设计语言和基本数据结构与算法课程的学习后,综合运用所学到的语法和算法知识,构建一个接近实际应用场景的软件系统,以达到复习和巩固前期课程内容并为后续课程奠定基础的目的。
本系统要求实现订票功能模块,订票功能模块通过航班号普通用户可以在输入自己姓名和身份证号后,完成订票操作。
(订票情况可以存在一个数据文件中,结构自己设定)如果该航班已经无票,可以提供相关可选择航班;具体要完成的任务是:A.编制完成上述问题的C语言程序、进行程序调试并能得出正确的运行结果。
B.写出规范的课程设计说明书;时间安排(第19周—6.18至6.25)第一天布置课程设计任务,讲授VC安装,程序结构、数组、函数、文件;第二天查阅资料,讲授排序,查询算法实现;了解航空售票管理系统的需求;第三天讲授快速排序、最短路径问题、哈希查找的算法实现,准备程序第四天完成订票模块的设计与实现,上机调试程序,教师验收;第五天提交课程设计报告,下午4点前提交课程设计报告及文档至综合楼712。
具体要求课程设计报告按统一通用格式书写,具体内容包括:①设计任务与要求②总体方案与说明③软件主要模块的流程图④源程序清单与注释⑤问题分析与解决方案⑥小结与体会附录:①源程序(必须有简单注释)②使用说明③参考资料指导教师签名:2012 年6月15日教研室主任(或责任教师)签名:2012 年6月16日数据结构课程设计报告1.设计任务与要求1.1设计任务全面熟悉、掌握C语言和数据结构基本知识。
掌握C程序设计中的一系列问题,把C语言与数据结构和实际结合起来,增强对不同问题的一些处理。
掌握分析结果的若干有效方法,进一步提高上机动手能力这次设计任务是通过一个简化的航空订票系统项目,使学生在完成对C程序设计语言和基本数据结构与算法课程的学习后,综合运用所学到的语法和算法知识,构建一个接近实际应用场景的软件系统,以达到复习和巩固前期课程内容并为后续课程奠定基础的目的。
1.2设计要求这设计要求实现订票功能模块,订票功能模块通过航班号普通用户可以在输入自己姓名和身份证号后,完成订票操作。
(订票情况可以存在一个数据文件中,结构自己设定)如果该航班已经无票,可以提供相关可选择航班。
编制完C语言程序后进行程序调试并能得出正确的运行结果且写出规范的课程设计明书。
2.总体方案填写具体内容在这次课设中,我们需要运用到很多函数,包括文件的打开,结构体的运用,函数与函数之间的互相调用,并且,还涉及到基本的输入输出,另外,还涉及到的一个显示界面问题,这是就需要运用printf这个标准输出函数,为我们的乘客设计一个选择界面和提示,在这个整体中,大多数的函数都是我们用户自定义的函数,所以,在运用时需要先定义后使用。
我们总体的设计方案(仅仅对于订票系统而言)是当用户输入航班号订票,当订票成功时,则将该用户的信息存储到原来的订票记录中,并将该航班的剩余票数时,系统会自动检查此航班,如果存在此航班,则再次检查该航班是否还有票,如果没有该航班,则显示一个提示信息“本航班还未开通,请选择其他航班”,如果有票,则输入身份证号和姓名,并把此次订票的记录记录在一个文本文件(即pass.dat)里,如果没有票了,则显示“没票了,是否需要其他航班(y/n)”当点击“y”时,继续上述操作,直到结束减一即可,这样就完成了订票了。
3.详细设计撰写具体内容(详细设计包括主要模块的流程图)3.1其实,对于程序的主要设计,在方案中已经做了具体说明了,这里只需对做一个简单的陈述。
(1)输入航班号(2)判断航班号是否存在,并做相应操作(3)判断是否还有剩票,并作相应的操作(4)输入身份证号和姓名(5)记录用户的订票信息3.1.6退出订票系统3.2部分程序流程图如图1所示图1航空订票系统订票模块流程图4.源程序清单与注释/*******************************/#include<stdio.h>******/订票系统:航班和用户信息**********************************#ifndef _INFOR_H#define _INFOR_H//机票信息typedef struct{int m_planeID;//航班号char m_from[10];//出发城市char m_to[10];//到达城市char m_date[10];//出发日期int m_left;//剩余票数int m_capacity;//容量float m_price;//价格int m_rebate;//打折}AirPlane;//用户信息typedef struct{char m_ID[20];//身份证号char m_name[20];//姓名int m_planeID;//航班号char m_ticketnum[15];//票号int m_isFlog;//0确认订票,1取消订票 }Passenger;#endif //_INFOR_Hint main(){menu();}void menu(){int c;while(1){printf("\n--MENU-------------------\n"); printf("\t[1]航班查询\n");printf("\t[2]机票查询\n");printf("\t[3]订票\n");printf("\t[4]退票\n");printf("\t[0]退出\n");printf("-------------------------\n"); printf("\t[5]管理员操作\n");printf("-------------------------\n"); printf("请输入:");scanf(" %d",&c);switch(c){case 1:plane_check();break;case 2:user_check();break;case 3:book_ticket();break;case 4:return_ticket();break;case 5:{char name[20]={0};char passwd[20]={0};printf("\n 请输入管理员用户名和密码:\n");printf("测试:admin 1234");scanf(" %s %s",name,passwd);if(strcmp(name,ADMIN)==0&&strcmp(passwd,PASSWD)==0)else{printf("没有权限\n");}}break;case 0:return ;}}}void book_ticket()//订票系统{int id=0;char c;AirPlane plane={0};Passenger pass={0};printf("\n--订票-----------------------\n");while(1){printf("请输入航班号:(0退出订票)\n");scanf(" %d",&id);if(0==id) break;plane=plane_check_id(id,0);if(plane.m_planeID==0){printf("航班不存在\n");continue;}if(plane.m_left==0){printf("无票,是否定其它航班(y/n)\n");scanf(" %c",&c);if(c!='y'&&c!='Y')break;else continue;}printf("请输入你的身份证号\n");scanf(" %s",pass.m_ID);printf("请输入你的姓名:\n");scanf(" %s",pass.m_name);showticket(&plane,&pass);printf("是否确定(y/n)\n");scanf(" %c",&c);if(c=='y'||c=='Y')if(c=='y'||c=='Y'){ticket(pass.m_ticketnum);printf("%s\n",pass.m_ticketnum);pass.m_planeID=plane.m_planeID;showAllUser();}break;}printf("--订票结束---------------------\n");}void showAllUser()//显示所有用户{int r=0;FILE* fd=fopen(USERDAT,"r");Passenger pass={0};if(NULL==fd){printf("%s OPEN ERROR!\n",USERDAT);return ;}printf("\nUSER:\n");printf("|%10s|%20s|PlaneID|%20s\n","NAME","ID","TicketNum");while(1){r=fread(&pass,sizeof(pass),1,fd);if(r<=0)break;printf("|%10s|%20s|%7d|%20s\n",pass.m_name,pass.m_ID,pass.m_planeID,pass.m_ticketnum);break;}fclose(fd);}5.问题分析与解决方案首先,我当时遇到的第一个问题就是如何在“窗体”上显示乘客的选择和一些提示信息,然而,我遇到的第二个问题就是不知道如何存储乘客信息和如何打印出航班信息,作为航班的订票系统来说,很大一部分内容就是保存乘客订票成功后的信息,对于这两个问题,后来在老师的讲解下,我搞懂了,对于如何在“窗体”上显示一些信息,解决方案是用printf这个标准函数在“窗体”上输出即可,而对于第二个问题,我们则用到了文件的打开和存储(因为我在学c的时候老师基本没讲,所以不知道怎么做了),打开用到了fopen函数,而存储则用到了fread和fwrite 等用于存储的函数,在编程时遇到了一个难点就是函数的调用,因为这里面涉及到很多自定义函数的定义和声明,所以,运用起来很不熟,后来这个问题在老师的带领下也得到了很好的解决。