机票预定系统数据流程图
- 格式:doc
- 大小:32.50 KB
- 文档页数:4


课程设计(论文)课程名称:信息系统开发方法与工具题目:航空订票管理系统院(系):管理学院专业班级:信管 0901姓名:学号:指导教师:2012 年 6 月 14 日课程设计(论文)任务书专业班级:信息管理与信息系统学生姓名:指导教师(签名):一、课程设计(论文)题目航空订票管理系统二、本次课程设计(论文)应达到的目的1.针对一个实际航空订票管理系统的开发,使学生深刻理解和掌握管理信息系统系统分析、系统设计和系统实施的理论和方法;2.巩固和加深理解所学编程语言、开发工具,提高综合应用能力;掌握系统 UML建模、界面设计、数据库设计、程序代码设计,提高实践能力;3.初步了解学术研究的基本方法与步骤,并通过设计报告(论文)的撰写,了解学术报告(论文)的写作方法。
三、本次课程设计(论文)任务的主要内容和要求(包括原始数据、技术参数、设计要求等)1、设计内容:开发出一套航空订票软件管理系统。
保证航空订票的各个环节顺利工作,并为用户提供一个友好的界面,使订票业务和管理工作相对轻松。
2、设计过程:按照系统设计目的、系统需求、系统功能分析与设计、用户界面设计、源程序设计、使用说明等环节整理课程设计的成果,形成设计报告,设计报告应包括的内容:系统需求分析:需求描述、系统 UML 主要用例、主要类图、主要活动图、状态及部署图(如果必要)、业务流程图、数据流图、数据字典附必要的文字说明系统设计:功能结构设计、 I/O 设计、代码设计、界面设计、数据库设计、网络环境。
撰写设计总结报告。
3.设计成果提交: A. 设计报告; B. 源程序。
报告要符合学校格式规范要求。
四、应收集的资料及主要参考文献:[1] 慕静等管理信息系统开发方法、工具与应用北京:清华大学出版社2010[2]商恩福网上订票系统分析与设计天津工业大学计算机科学与软件学院[3]张晓燕飞机订 /售票管理系统开发浙江工贸职业技术学院[4] 张园基于 B/S 结构的航空预订票系统的设计与实现广东海洋大学五、审核批准意见教研室主任(签字)需求说明当前航空市场的不断扩大,并且随着人们的生活水平的提高,越来越多的认选择飞机作为出行的交通工具,因此对航空公司的服务要求也就越来越高,因此为了适应这样一个快速的发展需求,管理大量数据,并有效的稳定和管理航空公司,实行现代化信息管理,无疑成为一个好的选择方式。
目录第一部分源程序---------------------------------------------------3第二部分函数流程图--------------------------------------------11 menu()-----------------------------------------------------12 enter()-----------------------------------------------------13 input()-----------------------------------------------------14 browse()---------------------------------------------------15 menu1()---------------------------------------------------16 order()-----------------------------------------------------17 search_time()---------------------------------------------18 search_end()----------------------------------------------19 search()----------------------------------------------------20 book()------------------------------------------------------21 back()------------------------------------------------------22 save()------------------------------------------------------23 load()------------------------------------------------------24 第三部分心得体会------------------------------------------------25第一部分:源程序#include <stdio.h>#include <string.h>#include <stdlib.h>#define N 1000typedef struct plane{char ID[10]; /*航班代号*/char BePlace[10];/*飞机起飞地点*/char EnPlace[10];/*飞机降落终点*/char data[15];/*飞机起飞时间*/int max;/*飞机最大乘客人数*/int price;/*飞机票价*/int num;/*飞机已售票数*/}PLANE;PLANE ti[N];int n;/*当前的航班数目*/void menu();void menu1();void input(int i){printf("请输入航班代号:\n");scanf("%s",ti[i].ID);printf("请输入起飞地点:\n");scanf("%s",ti[i].BePlace);printf("请输入降落地点:\n");scanf("%s",ti[i].EnPlace);printf("请输入起飞时间:\n");scanf("%s",ti[i].data);printf("请输入航班的最大载客人数:\n");scanf("%d",&ti[i].max);printf("请输入航班的票价:\n");scanf("%d",&ti[i].price);ti[i].num=0;}void enter(){int i;system( "cls" );printf("请输入航班的数目(0-%d)?:",N);scanf("%d",&n); /*要输入的记录个数*/printf("\n请输入数据\n\n");for(i=0;i<n;i++){printf("\n请输入第%d 航班记录.\n",i+1);input(i); /*调用输入函数*/}getchar();menu();}void printf_one(int i) /*显示一个记录的函数*/{printf("%11s %6s %10s %6s %6d %6d %6d",ti[i].ID,ti[i].BePlace,ti[i].EnPlace ,ti[i].data,ti[i].price,ti[i].max,ti[i].num);}void browse(){int i;system( "cls" );puts("\n--------------------------------------------------------------------");printf("\n\t航班代号起飞地点降落地点起飞时间票价最大乘客已售票数\n");for(i=0;i<n;i++){printf_one(i);printf("\n");}getchar();getchar();menu();}void order() /*排序模块(按平均成绩)*/{int i,j;struct plane s;system( "cls" );for(i=0;i<n;i++) /*冒泡法排序*/{for(j=i+1;j<n;j++)if(strcmp(ti[i].data,ti[j].data)>0){s=ti[i];ti[i]=ti[j];ti[j]=s;}}browse();}void search_time(){int i,m=0;struct plane s;system( "cls" );printf("\n\nEnter the time:");scanf("%s",s.data); /*输入出发的时间*/puts("\n--------------------------------------------------------------------");printf("\n\t航班代号起飞地点降落地点起飞时间票价最大乘客已售票数\n");for(i=0;i<n;i++){if(strcmp(s.data,ti[i].data)==0){m++;if((m!=0)&&(m%10==0)) /*目的是分屏显示*/{printf("\n\nPress any key to contiune . . .");getchar();puts("\n\n");}printf_one(i);printf("\n");/*调用显示一个记录的函数*/}}puts("\n--------------------------------------------------------------------");getchar(); /*按任意健*/getchar();menu1();}void serch_end(){int i,m=0;struct plane s;system( "cls" );printf("\n\nEnter the end Place:");scanf("%s",s.EnPlace); /*输入要到达的地方*/puts("\n--------------------------------------------------------------------");printf("\n\t航班代号起飞地点降落地点起飞时间票价最大乘客已售票数\n");for(i=0;i<n;i++){if(strcmp(ti[i].EnPlace,s.EnPlace)==0){m++;if((m!=0)&&(m%10==0)) /*目的是分屏显示*/{printf("\n\nPress any key to contiune . . .");getchar();puts("\n\n");}printf_one(i);printf("\n");/*调用显示一个记录的函数*/}}puts("\n--------------------------------------------------------------------");getchar(); /*按任意健*/getchar();menu1();}void menu1(){int n,w1;do{system( "cls" ); /*清屏*/puts("\t\t\t\t 飞机售票操作!\n\n");puts("\t\t*********************MENU*********************\n\n");puts("\t\t\t\t1.按照时间排序");puts("\t\t\t\t2.按照时间查找航班");puts("\t\t\t\t3.按照地点查找航班");puts("\t\t\t\t4.返回主菜单");puts("\n\n\t\t**********************************************\n");printf("Choice your number(1-4): [ ]\b\b");scanf("%d",&n);if(n<1||n>4) /*对选择的数字作判断*/{w1=1;printf("your choice is not between 1 and 4,Please input again:");getchar();getchar();}else w1=0;} while(w1==1);/*选择功能*/switch(n){case 1:order();break;case 2:search_time();break;case 3:serch_end();break;case 4:menu();break;}}int search() /*查找模块*/{int i,k;struct plane s;k=-1;system( "cls" );printf("\n\n请输入要订票的起飞地点:");scanf("%s",s.BePlace); /*输入要到达的地方*/printf("\n\n请输入要订票的降落地点:");scanf("%s",s.EnPlace);printf("\n\n请输入要订票的起飞时间:");scanf("%s",s.data); /*输入出发的时间*/for(i=0;i<n;i++) /*查找要修改的数据*/{if(strcmp(s.BePlace,ti[i].BePlace)==0&&strcmp(s.EnPlace,ti[i].EnPlace)==0&&strcmp(s.dat a,ti[i].data)==0){k=i; /*找到要修改的记录*/printf_one(k);break; /*调用显示一个记录的函数*/}}if(k==-1){printf("\n\nNO exist!");return -1;}elsereturn k;}void book(){int i;system( "cls" );printf("欢迎进入售票窗口!\n");i=search();if(i!=-1){if(ti[i].num>=ti[i].max){printf("\n该趟航班票已售完!");}else{ti[i].num++;printf("\n订票成功!\n");}}elseprintf("该航班不存在!\n");getchar();getchar(); /*按任意健*/menu();}void back(){int i,k=-1;struct plane s;system( "cls" );printf("欢迎进入退票窗口!\n");printf("\n\n输入航班代号:");scanf("%s",s.ID); /*输入要到达的地方*/for(i=0;i<n;i++) /*查找要修改的数据*/{if(strcmp(s.ID,ti[i].ID)==0){k=i; /*找到要修改的记录*/printf_one(k);break; /*调用显示一个记录的函数*/}}if(k==-1){printf("\n\nNO exist!");}else{ti[i].num--;printf("\n退票成功!\n");}getchar(); /*按任意健*/getchar(); /*按任意健*/menu();}void save(){int w=1;FILE *fp;int i;system( "cls" );if((fp=fopen("D:\\我的文档\\桌面\\ticket.txt","wt"))==NULL) /*以输出打开方式,在此前的记录被覆盖*/{printf("\nCannot open file\n");return ;}for(i=0;i<n;i++)if(fwrite(&ti[i],sizeof(struct plane),1,fp)!=1){printf(" error\n");w=0;}if(w==1){printf(" ok!\n");}fclose(fp);getchar();getchar();menu();}void load(){FILE *fp;int i,w;w=1;system( "cls" );if((fp=fopen("D:\\我的文档\\桌面\\ticket.txt","rt"))==NULL){printf("\nCan not open file\n");w=0;return;}n=0;for(i=0;!feof(fp);i++){fread(&ti[i],sizeof(struct plane),1,fp);n++;}n=n-1;fclose(fp);if(w==1)printf("Load !");getchar();getchar();menu();}void menu(){int n,w1;do{system( "cls" ); /*清屏*/ /*清屏*/puts("\t\t\t\t 飞机售票管理系统!\n\n");puts("\t\t*********************MENU*********************\n\n");puts("\t\t\t\t1.输入新航班");puts("\t\t\t\t2.浏览");puts("\t\t\t\t3.航班操作");puts("\t\t\t\t4.订票");puts("\t\t\t\t5.退票");puts("\t\t\t\t6.保存");puts("\t\t\t\t7.载入");puts("\t\t\t\t8.退出");puts("\n\n\t\t**********************************************\n");printf("Choice your number(1-8): [ ]\b\b");scanf("%d",&n);if(n<1||n>8) /*对选择的数字作判断*/{w1=1;printf("your choice is not between 1 and 8,Please input enter to choice again:");getchar();getchar();}else w1=0;} while(w1==1);/*选择功能*/switch(n){case 1:enter();break; /*输入模块*/case 2:browse();break; /*浏览模块*/case 3:menu1();break; /*查找模块*/case 4:book();break; /*订票模块*/case 5:back();break; /*退票模块*/case 6:save();break; /*保存模块*/case 7:load();break; /*加载模块*/case 8:exit(0);}}void main(){menu();}第二部分:函数流程图(2)enter函数流程图第三部分:心得体会(1)开始对c语言只是一种零散的认识,作为一个c语言的初学者对编程没有明确的概念,只是对语句的格式与编程规定有了一个初步了解。
目录第一章机票预定系统的前景和范围1.1 业务需求1.2 项目远景1.3 范围和局限性第二章机票预订系统项目需求分析说明2.1 任务概述软件主要组成及功能要完成的功能2.2 功能需求2.3 外部接口需求2.4 性能需求2.5 软件属性需求2.6 数据描述2.6.1 E—R图2.6.2 机票预定系统的数据需求2.6.3 系统数据流图2.6.4 机票预定系统的分析模型2.6.5 机票预定系统的数据字典第三章机票预定系统概要设计3.1 引言3.1.1 编写目的3.1.2 项目背景3.2 任务概述3.2.1. 运行环境3.2.2. 需求概述3.3 总体设计3.3.1 . 处理流程3.1.2 总体结构和模块外部设计3.1.3 功能分配3.4 外部接口3.5 数据结构设计3.5.1 . 数据库数据结构设计3.5.2 物理数据结构设计第四章机票预定系统的测试计划4.1引言4.2.计划4.2.1 方法与原则4.2.2 测试内容4.3测试计划说明4.4评价准则第一章机票预定系统的前景和范围机票预定系统的总目标是:在计算机网络,数据库和先进的开发平台上,利用现有的软件,配置一定的硬件,开发一个具有开放体系结构的、易扩充的、易维护的、具有良好人机交互界面的机票预定系统,实现航空公司的机票销售的自动化的计算机系统,为企业的决策层提供准确、精细、迅速的机票销售信息。
总之,这个系统要求能够实现实时,高效,便捷,完善,安全性好等特点。
今后随着计算机技术以及网络技术的迅速发展,电子商务正逐渐成为Internet 应用的一个重要领域。
电子商务也必然对航空公司和旅行社的机票销售模式产生深远的影响,所以将来的机票预订系统必然与网络相结合,产生基于WEB的机票预订系统。
另外将机票预订呼叫中心与订票系统的结合也可以为客户提供更加人性化的服务。
1.1 业务需求(1)背景随着中国经济的高速发展,我国航空业迅速发张,对机票预定系统的需求也越来越高。
案例:机票预定系统一、可行性分析1 引言1。
1 编写目的:可行性研究的目的是为了对问题进行研究,以最小的代价在最短的时间内确定问题是否可解经过对此项目进行详细调查研究,初拟系统实现报告,对软件开发中将要面临的问题及其解决方案进行初步设计及合理安排。
明确开发风险及其所带来的经济效益。
本报告经审核后,交软件经理审查。
1。
2 项目背景:开发软件名称:机票预订系统.项目任务提出者:中国民航及中国国际旅游开发公司。
项目开发者:浙江大学IMK开发小组。
用户:中国民航及中国国际旅游开发公司.实现软件单位:中国国际旅游开发公司及浙江大学项目与其他软件,系统的关系:本项目采用客户机/服务器原理,客户端的程序是建立在Windows NT 系统上以Microsoft Visual C++为开发软件的应用程序,服务器端采用Linux 为操作系统的工作站,是采用Oracle 8的为开发软件的数据库服务程序.2.可行性研究的前提2。
1要求主要功能:为游客提供机票预定服务,方便旅游局的售票工作,提高旅游局的服务质量和服务效率性能要求:机场提供的信息必须及时的反映在旅游局的工作平台上。
售票系统的定单必须无差错的存储在机场的主服务器上。
对服务器上的数据必须进行及时正确的刷新.输出要求:数据完整,详实。
输出要求:简捷,快速,实时.安全与保密要求:服务器的管理员享有对机场航班信息库及机票信息库和定票信息库的管理与修改。
售票员只享有对订票信息库的部分修改(写入与读出)。
完成期限:预计六个月,即截止2000年2月8日。
2.2目标:系统实现后,大大提高旅游局的机票预定服务效率。
降低售票服务中的错误发生率,减少信息交流的烦琐过程及其带来的开销.2.3条件,假定和限制建议软件寿命:5年。
经费来源:中国国际旅游开发公司。
硬件条件:服务器sun工作站,终端为pc机。
运行环境:Linux数据库:Oracle8投入运行最迟时间:2000/04/042.4可行性研究方法2.5决定可行性的主要因素成本/效益分析结果,效益〉成本.技术可行,现有技术可完全承担开发任务。