飞机订票系统设计
#include
网上订票系统设计 火车订票系统设计报告
网上订票系统设计 火车订票系统设计报告
#include
#include
#include
#include
#include
#include
#define ok 1
typedef struct Yidingkehu
{//单链表
char name[15];//已订票的客户姓名
int dingpiaoshu;//已订票数量
struct Yidingkehu next1;//
}Yidingkehu,Link;
typedef struct Weidingkehu
{//单链队
char name[15];//预订票的客户姓名
int yudingpiao;// 要订票数量
struct Weidingkehu next2;//下一个链队结点指针
}Weidingkehu,Qptr;
typedef struct Hangxian
{//创建一个含有六个信息的结构体
char hangbanhao[15];//航班号-
char feijihao[15];//飞机号
int feixingriqi;//起飞时间
int chenkerenshu;//座位数
int yupiao;//余票
char zhongdianzhai[15];//降落城市
struct Hangxian next;//指向下一个链结点的指针
struct Yidingkehu yiding;//定义一个指向已订票客户的头结点指针
struct Weidingkehu yudingqueue;
}Hangxian,Linklist;
Linklist InitLinklist();//01
int InsertLinklist(Linklist &head1);//02
void hbhchaxun();//通过航班号查询
void mddchaxun();//通过目的地查询
void lurugongneng();//初始化录入功能
void chaxungongnen();//查询功能
void dingpiaogongnen();//订票功能
void tuipiaogongnen();//退票功能
void main()
{int n;
do{ //打印主界面
printf("\t 欢迎使用航空客运订票系统\n");
printf("\t+++++++++++++++++++++++++++++\n");
printf("\t==>1. 录入功能 ==\n");
printf("\t==>2. 查询功能 ==\n");
printf("\t==>3. 订票功能 ==\n");
printf("\t==>4. 退票功能 ==\n");
printf("\t==>5. 退出 ==\n");
printf("\t+++++++++++++++++++++++++++++\n");
printf("\t请选择:");
scanf("%d",&n);printf("\n");
switch(n)
{case 1: lurugongneng();//录入功能
break;
case 2: chaxungongnen();//查询功能
break;
case 3: dingpiaogongnen();//订票功能
break;
case 4:tuipiaogongnen();//退票功能
break;
default :exit(0);//退出
}}while(n==1||n==2||n==3||n==4);
}void lurugongneng()//初始化的单链表录入功能
{Linklist p;
//int m,n;
if(!p) exit(OVERFLOW);
printf("\t请依次输入下面几项内容:\n\n");//这里的输入采用一个个单独输入,避免了乱赋值的现象
printf("航班号\n");
gets(p->hangbanhao);//这里的二个gets主要是因为在回车键的输入,其中的个是来接收上次的回车
gets(p->hangbanhao);
printf("飞机号\n");
gets(p->feijihao);
printf("终点站\n");
gets(p->zhongdianzhai);
printf("飞行日期\n");
scanf("%d",&p->feixingriqi);
printf("乘客总数\n");
scanf("%d",&p->chenkerenshu);
printf("余票数\n");
scanf("%d",&p->yupiao);
}void chaxungongnen()//查询功能
{int n;
printf("\t 查 找 航 线 信 息 \n");
printf("\t+++++++++++++++++++++++++++++\n");
printf("\t==>1. 通过目的地查询 ==\n");
printf("\t==>2. 通过航班号查询 ==\n");
printf("\t+++++++++++++++++++++++++++++\n");
printf("\t请选择:");
scanf("%d",&n);
printf("\n");//格式化
switch(n)
{case 1:mddchaxun();
break;
case 2:hbhchaxun();
break;
default :break;
}}
void mddchaxun()//通过目的地查询
{char c[15];
int m;
Linklist p=L;
printf("\t请输入要查询的目的地:");
gets(c);
gets(c);//原因同上
do{
p=p->next;
if(p)
{m=strcmpi((p).zhongdianzhai,c);//如果==的话则m=0;
if(m==0)
{printf("\t航班信息:\n");
printf("\t航班号:%s\n",p->hangbanhao);
printf("\t飞机号:%s\n",p->feijihao);
printf("\t飞行时间:周%d\n",p->feixingriqi);
printf("\t余票量:%d\n",p->yupiao);
}}
else
{//如果不匹配的话就做
printf("\t对不起没有你要找的目的地:\n\n"); m=0;
}}while(m!=0);
}void hbhchaxun()//通过目的地查询
{char c[15];
int m;
Linklist p=L;
printf("\t请输入要查询的航班号:");
gets(c); gets(c);printf("\n");
do{
p=p->next;
if(p)
{m=strcmpi((p).hangbanhao,c);//如果==的话则m=0;这里的(p).与p->的作用是一样的
if(m==0)
{printf("\t航班信息:\n");
printf("\t航班号:%s\n",p->hangbanhao);
printf("\t飞机号:%s\n",p->feijihao);
printf("\t飞行时间:周%d\n",p->feixingriqi);
printf("\t余票量:%d\n\n",p->yupiao);
}}
else
{//如果不匹配的话就做
printf("\t对不起没有你要找的航班号:\n"); m=0;
}}while(m!=0);
}void dingpiaogongnen()//订票功能
{char c[15];
int m=1,piao,ydpiao=0,yd=0,n;//
gets(c);
printf("请输入终点站名:"); gets(c); printf("\n");
p=L->next;
if(p) {
do{//查找一下,是否有这个航班
if(!p)
{printf("对不起,没有你要找的航班:\n\n");
goto loop1;
}m=strcmpi(p->zhongdianzhai,c);
if(m==0)
{printf("航班信息:\n");
printf("航班号:%s\n",p->hangbanhao);
printf("飞机号:%s\n",p->feijihao);
printf("飞行时间:周%d\n",p->feixingriqi);
printf("余票量:%d\n",p->yupiao);}
else p=p->next;
}while(m!=0);
if(m==0)
{do{
printf("\n请输入你要订的票数:"); scanf("%d",&piao);
if(piao<=p->yupiao)
{h=p->yiding;
if(h)
{h1=h;
h=h->next1;
h=(struct Yidingkehu)malloc(sizeof(Yidingkehu));
printf("请输入你的名字:");
gets(h->name);gets(h->name);
h->dingpiaoshu=piao;
h->next1=h1->next1;
h1->next1=h;
p->yupiao=p->yupiao-piao;
printf("订票成功:\n"); m=2;
}}
else
{printf("余票量:%d\n",p->yupiao);
printf("对不起,余票 %d 张不足,不能完成订票\n\n",p->yupiao);
printf(" 是否要重新订票?\n");
printf("需要请输入1 否则请按2 预订请输入3 : ");
scanf("%d",&m);
printf("\n");
if(m==3) goto loop3;
}}while(m==1);
}}
else if(!p)
{loop3: struct Weidingkehu q3;
printf("对不起,该航班的票已售完\n");
q.front=p->yudingqueue;
if(q.front==q.rear) printf("没有人预订票,是否要预订?\n");
else if(q.front!=q.rear) printf("已有人预订票,是否要预订?\n");
printf("预订请输入1 否则输入2 : ");
scanf("%d",&n);
printf("\n");
if(n==1)
{printf("请输入你的姓名"); gets(q3->name); gets(q3->name);//q3不能指向name???
printf("请输入订票数"); scanf("%d",&q3->yudingpiao);
q3->next2=NULL;
q.rear->next2=q3;
q.rear=q3;
printf(" 你已经预订了 !\n");
}}
loop1:;
}void tuipiaogongnen()//退票功能
{}
以上回答你满意么?
客运售票管理系统开题报告
客运售票管理系统开题报告范文
接地气的大学生活即将结束,大家马上就要开始难熬的毕业设计阶段,一般我们做毕业设计前都会要求先写开题报告,来参考自己需要的开题报告吧!以下是我帮大家整理的客运售票管理系统开题报告范文,仅供参考,欢迎大家阅读。
客运售票管理系统开题报告 篇1 一、选题的背景和意义
在二十一世纪的今天,我们早已步入信息时代。随着计算机技术的高速发展,网络服务已经融入我们生活的方方面面。我国近年来不断发展铁路交通,简单的窗口售票模式已经不能达到方便人们出行的目的。越来越多的人们选择在网络上购买火车票,整合先进的网络技术及计算机管理体系研究出方便快捷的网上订票模式,是发展的必然趋势。 火车票订票系统通过实现票务信息的计算机管理,提高工作效率。我们可以利用数据库将整个火车站的票务情况存入计算机,通过丰富的用户接口,完成数据的访问和管理,以满足用户需求。一个火车站售票信息管理系统应达到的目标是提供及时、广泛的信息服务,加快信息检索的效率,实况灵活的查询,减轻管理人员制作报表和统计分析的负担。但由于铁路火车票务管理的复杂性,本毕业设计与开发也仅是一个尝试性的工作,但它很有启发性,对于研究开发该类程序可以起一个抛砖引玉的作用。
二、研究的基本内容和拟解决的主要问题
火车票订票系统是主要功能是管理车票信息,实现预定车票,退票等功能。该系统分为用户管理和系统管理两个部分,本毕业设计研究的部分是系统管理。
毕业设计主要完成以下内容:
1、系统界面设计 本系统管理员界面采用JSP页面。在连接数据库和处理等部分拟采用JaBeans技术。本项目使用集成开发工具Eclipse ,由于它拥有强大的语法提示及自动纠错等功能,因此可以方便的进行Ja及JSP开发。
2、系统管理模块设计 系统管理模块可分为管理员登录、车次信息管理、订票管理、会员管理、售票情况统计五个部分。 管理员登录子模块:管理员登录后能对网站进行一系列的管理作。用户不能登陆此界面。 车次信息管理子模块:管理员登录后,可以通过填写车辆路线、车次、发车时间、到站时间、座位类型和票价来增加车次信息,也可以修改或删除车次信息。 订票管理子模块:管理员登录后,可以查看用户所提交的预定车票的具体信息、付款情况、会员姓名、订票时间,并且对于已经处理完的订单和无效订单可以予以删除关闭。 用户管理子模块:管理员登录后,可以查看用户名、注册时间、上次登陆时间、上次登陆地点,并且可以选择删除非法、无效用户信息。 销售情况统计子模块:管理员登录后,可以查看售票情况统计。
3、数据库设计 针对火车票订票管理系统,通过对火车车次的查询和网上订票工作的过程、内容以及数据流分析,设计如下数据结构;车次信息包括:列车序号、车辆路线、车次、开车时间、到站时间、座位类型、票价。订票信息包括:车票序号、车辆路线、车次、开车时间、到站时间、座位类型、票、数量、付款情况、订票日期。用户信息包括:ID、用户名、密码、注册时间、用户状态、登录时间、真实姓名,有效证件号、性别、有效。
本毕业设计拟解决的问题如下:
1、熟悉Ja Web编程,熟练使用eclipse开发工具,了解MySQL和Tomcat的使用。
2、对系统管理的各模块进行设计与实现:用户信息管理需要实现对用户的'查找、删除等作;订票信息管理需要实现对订票信息的查找、删除等作;余票信息管理需要进行对余票信息的增加、删除、修改和查找等;意见管理需要实现对用户意见的查看和删除;订票统计功能需要对预订车票的各信息进行统计和查看。
三、研究方法、措施及步骤:
本系统主要是基于Ja语言,采用B/S结构,SSH架构,结合了MySQL数据库,并按照软件工程开发的基本步骤来实现火车票订票管理系统。
开发工具:MyEclipse 数据库环境:MySQL数据库 服务器:TomCat 系统环境:Microsoft Windows7或以上版本。
1、 本系统采用的SSH为框架,SSH是目前较流行的一种Web应用程序开源框架,也是比较适合本研究课题的应用程序开源框架之一。 集成SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。
2、 本系统的结构设计采用B/S模式, 将系统功能实现的核心部分集中到服务器上,起到简化系统开发、维护和使用的作用,同时节约开发成本及时间。
3、 对于数据库的设计,MySQL是个全面的、集成化的数据库。其基本作实质在于对数据库进行添加、删除、查找等简单作,利用它可以为用户提供一个安全、可靠、和高效的平台。
4、 按照软件工程的开发流程对火车票订票管理系统进行开发: 系统分析:进行可行性分析,包括技术可行性。作可行性等; 需求分析:确定待开发软件的功能需求、性能需求和运行环境约束,制定系统需求分析规格说明; 概要设计:根据软件需求规格说明建立软件系统的总体结构和模块间的关系,定义各功能模块的接口,设计全局数据库,规定设计约束,制定组装测试; 详细设计:对概要设计产生的模块逐步细化,形成若干个可编程的程序模块,运用过程设计语言设计程序模块的内部细节,包括算法、数据结构和各程序模块之间详细接口信息,编写详细设计说明书; 系统实现:用Ja对本系统进行开发; 进行系统运行和维护。
四、研究进度安排:
阶段(02.25—03.25):准备阶段。搜索相关资料,学习相关知识,搭建编程环境。
第二阶段(03.25-04.25):设计阶段。开始进行基本模块的编程,逐步实现。进行中期总结。
第三阶段(04.25—05.20):实现阶段。总体编程实现,调试。 第四阶段(05.21-6.14):完成论文撰写,整理资料,准备答辩。
五、主要参考文献:
[1] 张志峰,朱颢东 Ja Web技术整合应用与项目实战.清华大学出版,2013
[2] 张跃平,耿祥义 JSP程序设计.清华大学出版社,2009
[3] 赵真 Eclipse开发技术详解.化学工业出版社,2010
[4] 陈亚辉,缪勇 Struts2+Spring+Hibernate框架技术与项目实战.清华大学出版社,2012
[5]宋坤 数据库系统开发完全手册[M].北京:邮电出版社,2006.
[6]赛奎春 SQL Server数据库开发实例解析[M].北京:机械工业出版社,2004.
[7]Abraham Silberschatz,Henry F.Korth,S.Sudarshan Database System Concepts Fourth Edition[M].Chian Machine Press,2003
[8]肖丁,吴建林,周春燕 软件工程模型与方法[M].北京:北京邮电大学出版社,2008. 指导教师签字
客运售票管理系统开题报告 篇2 实践时间: xx年1月22日——2月20日
实践活动:公交车上售票实践目的;,勤工俭学;第二,锻炼自己与人交往的能力,增加经验实践经历及收获:
这是我高中时代一个长假。身为当代高中生,总不该“日出三竿而起,日落西山而息”我就一口答应了因为是春节家忙着走亲访友,所以车上乘客特别多。做这行的,重要的就是细心,认真,记忆力好。虽说车上上上下下的,又多又乱,很容易出错,但是这也正能考验你能否在慌乱的场面中保持镇定。我利用饭后的时间记了几遍站点以及时间。下午我开始反复检验自己是否记住了。提前说出下一个站点,并不断回忆以经过去的站点。功夫不负有心人,到晚上休息时,我已经能很快地说出任何一个站点的次序。
新的一天又开始了,我要亲自招呼乘客了。我开始在脑海里回想几个注意事项:首先要合理安排座位尽量让老年人坐在中间的几排位置上,因为中间比较平稳;当然更要记住每一位新上车的乘客,因为这样收费时就会少出错;就是在每个站点到达之前提醒乘客下车,让乘客提前做出准备。还好,这一切进行的还算顺利。这时,有一位头发雪白的老奶奶上车了,但车内已经没有座位了。我问其他乘客是否愿意让出一个座位,没想到居然有两个学生模样的年轻人都站了起来。当时,真挺为他们感到自豪的。事情虽小,但却能反映出我们当代学生的道德修养水平。短短的几天很快就过去了,对乘客来说,仍如往常一样的上车下车;但对我来说,这是一次不寻常的经历。当车内比较拥挤时,我会提醒乘客看好自己的物品,以防拿错或丢失;当碰上心急的乘客时,我会提醒他等车停稳了再下车,安全重要。看到乘客们安全下车时,我这个“假”售票员心里就会涌出一股满足感。这几天的经历我深切的感受就是:不论什么事只有亲身的体验过,才会有真实的感受,才能对这件事有比较实在的,深刻的认识;还有一点就是,世上无易事,均须用心去做。
打工只是一种磨练的过程。对于结果,我们应该有这样的胸襟:不以成败论英雄,不一定非要用成功来作为自己的目标和要求。人生需要设计,但是这种设计不是凭空出来的,是需要成本的,失败就是一种成本,有了成本的投入,就预示着的人生的收获即将开始。小草用绿色证明自己,鸟儿用歌声证明自己,我们要用行动证明自己。打一份工,为以后的成功奠基吧!不经风雨,怎见彩虹,没有人能轻轻松松成功。
在中要克服自己胆怯的心态。自己觉得困难挺多的、缺乏经验等种种原因往往使自己觉得自己很渺小,自己懦弱就这样表露出来。所以应该尝试着克服自己内心的恐惧。如有人所说的“在中你要学会厚脸皮,不怕别人的态度如何的恶劣,也要轻松应付,大胆与人对话,工作时间长了你自然就不怕了。”其实有谁一生下来就什么都会的,小时候天不怕地不怕,尝试过吃了亏就害怕,当你克服心理的障碍,那一切都变得容易解决了。战胜自我,只有征服自己才能征服世界。
在实践中,我也深刻地了解到,自己还有许多不足之处,在许多方面还不能做到全面、细致,以致于在实践中出现了许多错误,经过这次实践以后,我将认真做好总结,在以后的学习和生活中,时刻提醒自己,不再出现类似的问题。这次暑期实践,使我的综合素质得到了提高,思想更加成熟,希望以后还有这样的机会,让我得到更好、更全面的锻炼。
在今后的学习生活中,我将摆正心态,正确定位,发奋学习,努力提高自身的综合素质,适应时代对我们的要求,做一个对、对有用的人。这次实践活动的时间虽短,但它留给我们的启迪却是深刻而长远的。我通过积极参加实践活动,认识了,明确了自己的历史使命,激发了自己的学习热情,真正达到了受教育,长才干,作贡献的目的。
一、实践目的:
介绍实践的目的,意义, 实践单位或部门的概况及发展情况, 实践要求等内容。这部分内容通常以前言或引言形式,不单列标题及序号。
二、实践内容:
先介绍实践安排概况,包括时间,内容,地点等,然后按照安排顺序逐项介绍具体实践流程与实践工作内容、专业知识与专业技能在实践过程中的应用。以记叙或白描手法为基调,在完整介绍实践内容基础上,对自己认为有重要意义或需要研究解决的问题重点介绍,其它一般内容则简述。
三、实践结果:
围绕实践目的要求,重点介绍对实践中发现的问题的分析,思考,提出解决问题的对策、建议等。分析讨论及对策建议要有依据,有参考文献,并在正文后附录。分析讨论的内容及推理过程是实践报告的重要内容之一,包括所提出的对策建议,是反映或评价实习报告水平的重要依据。
四、实践总结或体会:
用自己的语言对实践的效果进行评价,着重介绍自己的收获体会,内容较多时可列出小标题,逐一汇报。总结或体会的部分,应针对实践中发现的自身不足之处,简要地提出今后学习,锻炼的努力方向。
;
数据结构航空订票系统数据结构航班订票系统
1、数据结构课程设计——航空订票系统(C语言2、数据结构航空客运订票的业务活动包括3、数据结构实习C语言航空订票系统数据结构课程设计——航空订票系统(C语言
1、任务:航空客运定票的业务活动包括:查询航线、客票预定和办理退票等。试设计一个航空客运定票系统,以使上述业务可以借助计算机来完成。2、功能要求:1录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定2查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓;可以输入起飞抵达城市,查询飞机航班情况;3订票:(订票情况可以存在一个数据文件中,结构自己设定可以订票,如果该航班已经无票,可以提供相关可选择航班;4退票:可退票,退票后修改相关数据文件;5:有姓名,证件号,订票数量及航班情况,订单要有编号;6修改航班信息:当航班信息改变可以修改航班数据文件。3、要有一个好的界面~~~~~~~~~~~~~~~~~~~~~~~~4、需求分析系统需求(系统要求实现的功能的具体情况5、概要设计系统分析(分析系统的功能和具体模块的划分系统流程(系统的流程图程序详细代码:
数据结构航空客运订票的业务活动包括
#includestdio.h
#includestring.h
#includeconio.h
#includectype.h
#includestdlib.h
#includemalloc.h
#includemath.h//overflow
#defineok1
typedefstructYidingkehu{//单链表
charname[15];//已订票的客户姓名
intdingpiaoshu;//已订票数量
structYidingkehunext1;//
}Yidingkehu,Link;
typedefstructWeidingkehu{//单链队
charname[15];//预订票的客户姓名
intyudingpiao;//要订票数量
structWeidingkehunext2;//下一个链队结点指针
}Weidingkehu,Qptr;
typedefstruct{
Qptrfront;//单链队头结点
Qptrrear;//单链队尾结点
}linkQueue;
typedefstructHangxian{//创建一个含有六个信息的结构体
charhangbanhao[15];//航班号-
charfeijihao[15];//飞机号
intfeixingriqi;//起飞时间
intchenkerenshu;//座位数
intyupiao;//余票
charzhongdianzhai[15];//降落城市
structHangxiannext;//指向下一个链结点的指针
structYidingkehuyiding;//定义一个指向已订票客户的头结点指针
structWeidingkehuyudingqueue;
}Hangxian,Linklist;
structHangxianL=NULL;//
structYidingkehuH;//为已订票客户链队来申请空间
linkQueueQ;//linkQueue类型的来申请空间
LinklistInitLinklist(;//01
intInsertLinklist(Linklisthead1;//02
voidhbhchaxun(;//通过航班号查询
voidmddchaxun(;//通过目的地查询
voidlurugongneng(;//初始化录入功能
voidchaxungongnen(;//查询功能
voiddingpiaogongnen(;//订票功能
voidtuipiaogongnen(;//退票功能
voidmain(
{H=(structYidingkehumalloc(sizeof(Yidingkehu;
Q.front=Q.rear=(Qptrmalloc(sizeof(Weidingkehu;
InitLinklist(;
intn;
do{//打印主界面
printf("t欢迎使用航空客运订票系统n";
printf("t+++++++++++++++++++++++++++++n";
printf("t==1.录入功能==n";
printf("t==2.查询功能==n";
printf("t==3.订票功能==n";
printf("t==4.退票功能==n";
printf("t==5.退出==n";
printf("t+++++++++++++++++++++++++++++n";
printf("t请选择:";
scanf("%d",n;printf("n";
switch(n
{case1:lurugongneng(;//录入功能
break;
case2:chaxungongnen(;//查询功能
break;
case3:dingpiaogongnen(;//订票功能
break;
case4:tuipiaogongnen(;//退票功能
break;
default:exit(0;//退出
}}while(n==1||n==2||n==3||n==4;
}voidlurugongneng(//初始化的单链表录入功能
{intj=1,m;
do{
if(!InsertLinklist((LinklistL//向其中加入航班信息
{printf("内存已满n";exit(OVERFLOW;
}//向链表中加一结点
printf("t是否要输入下一个航线记录?n";
printf("t是请输入1n";
printf("t否请输入2nt";
scanf("%d",m;//在这里依靠人来决定是否输入下一条航线记
}while(m==1;
}LinklistInitLinklist({//01
L=(Linklistmalloc(sizeof(Hangxian;
if(!Lexit(OVERFLOW;
L-next=NULL;//建立一个带有头结点的单链表
return(L;
}intInsertLinklist(LinklistL//02向航线链表添加新的结点
{Linklistp;
//intm,n;
p=(Linklistmalloc(sizeof(Hangxian;//为一个新的结点分配空间
if(!pexit(OVERFLOW;
printf("t请依次输入下面几项内容:nn";//这里的输入采用一个个单独输入,避免了乱赋值的现象
printf("航班号n";
gets(p-hangbanhao;//这里的二个gets主要是因为在回车键的输入,其中的个是来接收上次的回车
gets(p-hangbanhao;
printf("飞机号n";
gets(p-feijihao;
printf("终点站n";
gets(p-zhongdianzhai;
printf("飞行日期n";
scanf("%d",p-feixingriqi;
printf("乘客总数n";
scanf("%d",p-chenkerenshu;
printf("余票数n";
scanf("%d",p-yupiao;
p-yiding=(structYidingkehumalloc(sizeof(Yidingkehu;//为它申请空间
p-yudingqueue=Q.front=Q.rear=(Qptrmalloc(sizeof(Weidingkehu;//为它申请空间
p-next=L-next;//
L-next=p;//这二句是链表中的头插法插入一个结点
return(ok;
}voidchaxungongnen(//查询功能
{intn;
printf("t查找航线信息n";
printf("t+++++++++++++++++++++++++++++n";
printf("t==1.通过目的地查询==n";
printf("t==2.通过航班号查询==n";
printf("t+++++++++++++++++++++++++++++n";
printf("t请选择:";
scanf("%d",n;
printf("n";//格式化
switch(n
{case1:mddchaxun(;
break;
case2:hbhchaxun(;
break;
default:break;
}}
voidmddchaxun(//通过目的地查询
{charc[15];
intm;
Linklistp=L;
printf("t请输入要查询的目的地:";
gets(c;
gets(c;//原因同上
do{
p=p-next;
if(p
{m=strcmpi((p.zhongdianzhai,c;//如果==的话则m=0;
if(m==0
{printf("t航班信息:n";
printf("t航班号:%sn",p-hangbanhao;
printf("t飞机号:%sn",p-feijihao;
printf("t飞行时间:周%dn",p-feixingriqi;
printf("t余票量:%dn",p-yupiao;
}}
else
{//如果不匹配的话就做
printf("t对不起没有你要找的目的地:nn";m=0;
}}while(m!=0;
}voidhbhchaxun(//通过目的地查询
{charc[15];
intm;
Linklistp=L;
printf("t请输入要查询的航班号:";
gets(c;gets(c;printf("n";
do{
p=p-next;
if(p
{m=strcmpi((p.hangbanhao,c;//如果==的话则m=0;这里的(p.与p-的作用是一样的
if(m==0
{printf("t航班信息:n";
printf("t航班号:%sn",p-hangbanhao;
printf("t飞机号:%sn",p-feijihao;
printf("t飞行时间:周%dn",p-feixingriqi;
printf("t余票量:%dnn",p-yupiao;
}}
else
{//如果不匹配的话就做
printf("t对不起没有你要找的航班号:n";m=0;
}}while(m!=0;
}voiddingpiaogongnen(//订票功能
{Linklistp=L;//Linklist类型的L来指向链表头
Yidingkehuh=H,h1;//Yidingkehu定义客户的结点,方便插入与删除
linkQueueq=Q;//linkQueue类型的来,方便插入与删除
charc[15];
intm=1,piao,ydpiao=0,yd=0,n;//
gets(c;
printf("请输入终点站名:";gets(c;printf("n";
p=L-next;
if(p{
do{//查找一下,是否有这个航班
if(!p
{printf("对不起,没有你要找的航班:nn";
gotoloop1;
}m=strcmpi(p-zhongdianzhai,c;
if(m==0
{printf("航班信息:n";
printf("航班号:%sn",p-hangbanhao;
printf("飞机号:%sn",p-feijihao;
printf("飞行时间:周%dn",p-feixingriqi;
printf("余票量:%dn",p-yupiao;}
elsep=p-next;
}while(m!=0;
if(m==0
{do{
printf("n请输入你要订的票数:";scanf("%d",piao;
if(piao=p-yupiao
{h=p-yiding;
if(h
{h1=h;
h=h-next1;
h=(structYidingkehumalloc(sizeof(Yidingkehu;
printf("请输入你的名字:";
gets(h-name;gets(h-name;
h-dingpiaoshu=piao;
h-next1=h1-next1;
h1-next1=h;
p-yupiao=p-yupiao-piao;
printf("订票成功:n";m=2;
}}
else
{printf("余票量:%dn",p-yupiao;
printf("对不起,余票%d张不足,不能完成订票nn",p-yupiao;
printf("是否要重新订票?n";
printf("需要请输入1否则请按2预订请输入3:";
scanf("%d",m;
printf("n";
if(m==3gotoloop3;
}}while(m==1;
}}
elseif(!p{
loop3:structWeidingkehuq3;
printf("对不起,该航班的票已售完n";
q.front=p-yudingqueue;
if(q.front==q.rearprintf("没有人预订票,是否要预订?n";
elseif(q.front!=q.rearprintf("已有人预订票,是否要预订?n";
printf("预订请输入1否则输入2:";
scanf("%d",n;
printf("n";
if(n==1
{q3=(Qptrmalloc(sizeof(Weidingkehu;
printf("请输入你的姓名";gets(q3-name;gets(q3-name;//q3不能指向name???
printf("请输入订票数";scanf("%d",q3-yudingpiao;
q3-next2=NULL;
q.rear-next2=q3;
q.rear=q3;
printf("你已经预订了!n";
}}
loop1:;
}voidtuipiaogongnen(//退票功能
{Linklistp=L;
Yidingkehuh=H,h1,h2;
linkQueueq=Q;
charc[15],name1[15];
intm=1,piao,n;//
gets(c;
printf("请输入航班号:";gets(c;
p=L;//-next;
if(p
{do{//使用dowhile来查找是否有此航班
if(!p
{//如果是到了表尾且没有匹配,goto至再输入航班号
printf("n对不起,没有你要找的航班:n";
gotoloop1;
}m=strcmpi(p-hangbanhao,c;//如果匹配的话,m=0
if(m==0
{printf("t航班信息:n";
printf("航班号:%sn",p-hangbanhao;
printf("飞机号:%sn",p-feijihao;
printf("飞行时间:周%dn",p-feixingriqi;
printf("余票量:%dn",p-yupiao;}
elsep=p-next;
}while(m!=0;
if(m==0
{//如果找到了,就来给他退票
do{
h=p-yiding;
if(h
{printf("请输入你的姓名:";
gets(name1;//gets(name1;
printf("请输入你订的票数:";
scanf("%d",piao;
printf("n";
h1=h;
h=h-next1;
if(strcmpi(h-name,name1==0h-dingpiaoshu==piao//如果名字和订的票数相等,则就给他取消订票
{p-yupiao+=h-dingpiaoshu;
h2=h;
h1-next1=h-next1;
free(h2;
printf("你取消订票成功:nn";
structWeidingkehuq3;
q.front=p-yudingqueue;
if(q.front==q.rear{printf("没有人预订票:n";gotoloop1;}
if((p-yupiao=(q.front-next2-yudingpiao
{h2=(structYidingkehumalloc(sizeof(Yidingkehu;
strcpy(h2-name,q.front-next2-name;
h2-dingpiaoshu=q.front-next2-yudingpiao;
n=p-yupiao-q.front-next2-yudingpiao;
p-yupiao=n;
q3=Q.front-next2;//
q.front-next2=q3-next2;//这二语句来删除结点
if(q.rear==q3q.rear=q.front;
free(q3;//释放空间
printf("链队中删除成功n";
h2-next1=h-next1;
h-next1=h2;//为之插入进已订票客户链表中
printf("为预订的客户订票成功n";
}elseprintf("余票数不够,不能为预订客户订票!n";
}else
{//如果没有找到,即系统中没有该人的信息,提示是否来重新查找
printf("对不起,该航班没有人订票或者是你没有订该航班的票n";
printf("是否要重新查找并取消订票?n";
printf("需要请输入1否则请按2";
scanf("%d",m;
printf("n";
}}
}while(m==1;
}}
loop1:;
}数据结构实习C语言航空订票系统
代码如下:(但是不是跟你的要求完全相同,你改改吧!
#includestdio.h
#includestring.h
#includestdlib.h
#defineNAME_MAX100//书的名字的长字数
#defineWRITER_MAX100//作者名字的长
#definePUB_MAX100//出版单位长名字
#defineTIME100//出版时间
typedefstructbooks
{intloading;
charname[NAME_MAX];
charwriter[WRITER_MAX];
intidentify;
charpub[PUB_MAX];
chartime[TIME];
intprice;
structbooksnext;
}book;
//头结点不存储信息
voidInit(bookhead
{head-next=NULL;
}//打印一些欢迎词之类的。。。。。
voidwelcome(
{printf("欢迎使用@@@@图书馆,哈哈n";
printf("nn";
printf("1:图书信息录入功能n";
printf("2:图书信息浏览功能,显示该书的所有信息n";
printf("3:图书信息查询功能:按书名查询与按作者名查询n";
printf("4:图书信息的修改和删除,可对相应数据进行修改和删除n";
}//显示一本书的信息
voidprint_the_book(bookp1
{printf("loadingnumber:%dn",p1-loading;
printf("name:";
puts(p1-name;
printf("n";
printf("writer:";
puts(p1-writer;
printf("n";
printf("identify:%dn",p1-identify;
printf("n";
printf("pub:";
puts(p1-pub;
printf("n";
printf("time:";
puts(p1-time;
printf("n";
printf("price:%dn",p1-price;
}intchongfu(bookhead,bookp
{bookp1=head-next;
inta=0;
while(p1!=NULL
{if(strcmp(p1-name,p-name==0
{if(strcmp(p1-writer,p-writer==0
火车售票系统设计及实现C++
设置一个数组
unsigned
char
ticket[10][一列车的站点总数]={0};
1.卖票系统每卖一张票,将相应的站点,列车赋值为1,
比如:列车1的前3站卖出票,那么把ticket[1][0],ticket[1][1],ticket[1][2]设为1.
2.卖票前先检查要到的站点是否被赋值为1。按照列车对数组进行遍历即可。
c语言程序设计 民航订票系统
//#include
#include
#include
#include
#include
typedef int status;
typedef struct airline
{char flight_num[8]; /航班号/
char plane_num[8]; /飞机号/
char destination[20]; /目的地/
int total; /座位总数/
int left; /剩余座位/
struct airline next; /下一个结点/
}airline;
typedef struct customer
{char name[9]; /顾客名/
char flight_num[8]; /航班号/
int seat_num; /座位号/
struct customer next; /下一个结点/
}customer;
airline init_airline()
{ /初始化链表/
airline l;
l=(airline)malloc(sizeof(airline));
if(l==NULL)
{ exit(0);
}l->next=NULL;
return l;
}customer init_customer()
{ /初始化链表/
customer l;
l=(customer)malloc(sizeof(customer));
if(l==NULL){
exit(0);
}l->next=NULL;
return l;
}status insert_airline(airline p,char flight_num,char plane_num,char destination,int total,int left)
{ /airline链表插入作/
airline q;
q=(airline)malloc(sizeof(airline)); /初始化/
strcpy(q->flight_num , flight_num); /拷贝信息/
strcpy(q->plane_num , plane_num);
strcpy(q->destination , destination);
q->total =total;
q->left =left;
q->next=NULL;
(p)->next=q;
(p)=(p)->next;
return 1;
}status insert_customer(customer p,char name,char flight_num,int seat)
{ /customer信息插入作/
customer q;
q=(customer)malloc(sizeof(customer));
strcpy(q->name , name); /顾客信息拷贝/
strcpy(q->flight_num , flight_num);
q->seat_num =seat;
q->next=NULL;
(p)->next=q;
(p)=(p)->next;
return 1;
}airline modefy_airline(airline l,char flight_num) /修改airline中的数据/
{ airline p;
p=l->next ;
for(;p!=NULL;p=p->next )
{ if(strcmp(flight_num,p->flight_num )==0) /查找/
{ p->left ++;
return l;
}}
printf("No this flight,can't make correction!\n"); /查找失败/
return 0;
}status delete_airline(airline h,char flight_num) /删除航班/
{ airline p,pr;
pr=h;
p=pr->next ;
while(p!=NULL)
{ if(strcmp(flight_num,p->flight_num )==0) /信息匹配/
{ pr->next =p->next ;
printf("Delete %s flight\n",p->flight_num );
return 1;
}pr=pr->next ;
p=pr->next ;
}printf("No this flight,can't delete!\n"); /无该信息/
return 0;
}status delete_customer(customer h,char flight_num) /顾客信息删除/
{ customer p,pr;
pr=h;
p=pr->next ;
while(p!=NULL)
{ if(strcmp(flight_num,p->flight_num )==0) /信息匹配/
{ pr->next =p->next ; }
pr=pr->next ;
p=pr->next ;
}return 1;
}status delete_cus(customer h,airline l,char name) /顾客退票/
{ customer p,pr;
char flight_num[8];
pr=h;
p=pr->next ;
while(p!=NULL)
{ if(strcmp(name,p->name )==0) /找顾客姓名/
{ strcpy(flight_num,p->flight_num ); /找航班号/
l=modefy_airline(l,flight_num); /修改该航班信息/
pr->next =p->next ;
printf("Customer %s return tickets successed!\n",p->name );
return 1;
}pr=pr->next ;
p=pr->next ;
}printf("No this customer,can't return!\n");
return 0;
}status se_airline(airline l) /保存airline.dat/
{ FILE fp_airline;
char ch='#';
airline p=l->next ;
char filename[]="c:\\airline.dat"; /寻找C盘中的航班信息文件/
if((fp_airline=fopen(filename,"wb"))==NULL)
{ printf("can not open file to write:%s\n",filename);
return 0;
}for(;p!=NULL;p=p->next )
{ fprintf(fp_airline,"%s,%s,%s,%d,%d,%c",p->flight_num,p->plane_num,p->destination,p->total,p->left,ch);
fflush(stdin);
}fclose(fp_airline);
return 1;
}status se_customer(customer l) /保存顾客信息 customer.dat/
{ FILE fp_customer;
char ch='#';
customer p=l->next ;
char filename[]="c:\\customer.dat"; /寻找C盘中的顾客信息文件/
if((fp_customer=fopen(filename,"wb"))==NULL)
{ printf("can not open file to write:%s\n",filename);
return 0;
}for(;p!=NULL;p=p->next )
{ fprintf(fp_customer,"%s,%s,%d%c",p->name ,p->flight_num ,p->seat_num ,ch);
}fclose(fp_customer);
return 1;
}int changStrInt(char ch) //把字符串转化为整型
{ int a=1,b=0,c=0,i;
for (i=strlen(ch)-1;i>=0;i--)
{ if (ch[i]<='9'&&ch[i]>='0')
{ b=a(ch[i]-'0');
a=a10;
c=c+b;
}else
{ printf("%c不合法,无法将此字符转化为整形!\n",ch[i]);
return 0;
}}
return c;
}status insert_air(airline l,char flight_num,char plane_num,char destination,int total,int left)
{ /airline链表插入作/
airline q;
q=(airline)malloc(sizeof(airline));
strcpy(q->flight_num , flight_num);
strcpy(q->plane_num , plane_num);
strcpy(q->destination , destination);
q->total =total;
q->left =left;
q->next=l->next ;
l->next=q;
return 1;
}status insert_cus(customer l,char name,char flight_num,int seat)
{ /customer链表插入作/
customer q;
q=(customer)malloc(sizeof(customer));
strcpy(q->name , name);
strcpy(q->flight_num , flight_num);
q->seat_num =seat;
q->next=l->next ;
l->next=q;
return 1;
}status load_airline(airline l) /读入文件中航班信息/
{ FILE fp_airline;
int flag=0,i=0;
char ch;
char flight_num[8]="\0"; /航班号/
char plane_num[8]="\0"; /飞机号/
char destination[20]="\0"; /目的地/
char total_str[5]="\0";
char left_str[5]="\0";
int total; /座位总数/
int left; /剩余座位/
char filename[]="c:\\airline.dat";
if((fp_airline=fopen(filename,"r"))==NULL)
{ printf("can not open file to load:%s\n",filename);
return 0;
}while(!feof(fp_airline))
{ ch=fgetc(fp_airline);
if(ch!='#')
{ if(flag==0&&ch!=',')
{ flight_num[i]=ch; i++; }
else if(flag==1&&ch!=',')
{ plane_num[i]=ch; i++; }
else if(flag==2&&ch!=',')
{ destination[i]=ch; i++; }
else if(flag==3&&ch!=',')
{ total_str[i]=ch; i++; }
else if(flag==4&&ch!=',')
{ left_str[i]=ch; i++; }
else if (ch==',')
{if(flag==0)
flight_num[i]='\0';
else if(flag==1)
plane_num[i]='\0';
else if(flag==2)
destination[i]='\0';
else if(flag==3)
total_str[i]='\0';
else
left_str[i]='\0';
flag++; i=0;
}}
else
{ flag=0; i=0;
total=changStrInt(total_str);
left=changStrInt(left_str);
printf("%8s%8s%8s%9d%9d\n",flight_num ,plane_num ,destination ,total ,left );
fflush(stdin);
////insert_air(l,flight_num,plane_num,destination,total,left);
}}
fclose(fp_airline);
return 1;
}status load_customer(customer l) /从文件读入顾客信息/
{ FILE fp_customer;
int flag=0,i=0;
char ch;
char name[9]="\0";
char flight_num[8]="\0"; /航班号/
char seat_num_str[5]="\0";
int seat_num; /座位/
char filename[50]="c:\\customer.dat";
if((fp_customer=fopen(filename,"r"))==NULL)
{ printf("can not open file to load:%s\n",filename);
return 0;
}while(!feof(fp_customer))
{ ch=fgetc(fp_customer);
if(ch!='#')
{ if(flag==0&&ch!=',')
{ name[i]=ch; i++; }
else if(flag==1&&ch!=',')
{ flight_num[i]=ch; i++; }
else if(flag==2&&ch!=',')
{ seat_num_str[i]=ch; i++; }
else if (ch==',')
{ if(flag==0)
name[i]='\0';
else if(flag==1)
flight_num[i]='\0';
else seat_num_str[i]='\0';
flag++; i=0;
}else
{ printf("ERROR\n"); return 0; }
}else
{ flag=0; i=0;
seat_num=changStrInt(seat_num_str);
printf("%15s %15s %10d\n",name ,flight_num ,seat_num );
fflush(stdin);
////insert_cus(l,name,flight_num,seat_num);
}}
fclose(fp_customer);
return 1;
}status creat_airline(airline l) /创建airline单链表/
{ airline p=l;
int i=0;
char flight_num[3]={"bjnc01","bjsh02","shgz03"};
char plane_num[3]={"plane1","plane2","plane3"};
char destination[3]={"nc","sh","gz"};
int total[3]={100,100,100};
int left[3]={51,50,78};
for (i=0;i<3;i++){
insert_airline(&p,flight_num[i],plane_num[i],destination[i],total[i],left[i]);
}return 1;
}status creat_customer(customer l) /创建customer单链表/
{ customer p=l;
int i=0;
char name[3]={"yuyang","lucy","fanhong"};
char flight_num[3]={"bjnc01","bjsh02","shgz03"};
int seat_num[3]={19,15,10};
for (i=0;i<3;i++){
insert_customer(&p,name[i],flight_num[i],seat_num[i]);
}return 1;
}status increase_air(airline l,char flight_num,char plane_num,char destination,int total) /增加航线/
{ airline p=l->next ;
for(;p->next !=NULL;p=p->next){}
insert_airline(&p,flight_num,plane_num,destination,total,total);
printf("Adding flight %s successed!\n",flight_num);
return 1;
}status book(airline l,char flight_num,customer c,char name) /订票函数/
{ airline p=l;
customer q=c->next ;
p=l->next ;
for(;q->next !=NULL;q=q->next){}
for(;p!=NULL;p=p->next )
{ if(strcmp(flight_num,p->flight_num )==0)
{ if(p->left >0)
{ printf("Congratulations!Tickets booked!\n");
printf("Your seat_number is: %d\n",(p->total -p->left +1));
insert_customer(&q,name,flight_num,p->total -p->left +1);
p->left --;
return 1;
}else printf("Sorry!Seats full!\n");
return 0;
}}
printf("Sorry!No this flight!\n");
return 0;
}status print_airline(airline l) /打印航线信息/
{ airline p=l->next ;
for(;p!=NULL;p=p->next )
{ printf("%8s%8s%8s%9d%9d\n",p->flight_num ,p->plane_num ,p->destination ,p->total ,p->left );
}return 1;
}status print_customer(customer l) /打印顾客信息/
{customer p=l->next ;
for(;p!=NULL;p=p->next )
{ printf("%10s %10s %d\n",p->name ,p->flight_num ,p->seat_num );
}return 1;
}void main()
{ char choice,name[9],flight_num[8];
int t=1,k=1;
airline air=init_airline();
customer cus=init_customer();
printf("Airline Tickets Book System\n");
printf(" \n");
creat_airline(&air);
creat_customer(&cus);
while(t==1)
{ printf("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&\n");
printf("Welcome To Airline Tickets Book System\n");
printf("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&\n");
printf("########################################\n");
printf("----++++++++-------主菜单-----++++++++++-------\n");
printf("# 订票-------0 #\n");
printf("# 退票-------1 #\n");
printf("#查询-------2 #\n");
printf("#信息载入---3 #\n");
printf("#退出------4 #\n");
printf("###################################\n");
if(k) { printf("请选择相应作: \n"); k=0; }
else printf("请选择相应作:\n");
choice = getch();
printf("%c\n",choice);
if(choice=='0')
{ printf("Please input your flight number: ");
scanf( "%s",flight_num);
printf("Please input your name: ");
scanf( "%s",name);
book(air,flight_num,cus,name);
se_airline(air);
se_customer(cus);
}else if(choice=='1')
{ printf("\nPlease input your name: ");
scanf( "%s",name);
delete_cus(cus,air,name);
se_airline(air);
se_customer(cus);
}else if(choice=='2')
{ printf("\n flight_number plane_number destination total tickets_num left tickets_num\n");
print_airline(air);
printf(" name flight_number seat_number\n");
print_customer(cus);
}else if(choice=='3')
{ printf("flight_num plane_num destination total left\n" );
load_airline(air);
printf("\t name \t\tflight_num\tseat_num \n");
load_customer(cus);
}else if(choice=='4')
{ printf("Good bye!Please enjoy your trel!");
t=0;
}else
{ printf("Input error!\n");
}}
getch();
}代码全给你了,课设自己写,呵呵
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至836084111@qq.com 举报,一经查实,本站将立刻删除。