还剩25页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
课程设计论文任务书软件学 院 交通运输 专 业1班
一、课程设计论文题目 火车售票系统的设计与实现
二、课程设计论文工作自2014年1月6日起至2014年1月10日止
三、课程设计论文地点:创新大楼机房
四、课程设计论文内容要求1.课程设计的目的为了配合《数据结构》课程的教学,使学生能更深刻的领会《数据结构》课程的重要性,特开设此课程设计;编写一些在特定数据结构上的算法,通过上机调试,更好的掌握各种数据结构及其特点,培养学生综合运用所学理论知识解决复杂实际问题的实践能力、研究性学习能力和团队合作能力2.课程设计的任务及要求1)基本要求
(1)课程设计前必须选定课程设计题目,并认真进行需求分析与系统设计;
(2)上机调试之前要认真准备实验程序及调试时所需的测试数据;
(3)独立思考,独立完成,严禁抄袭,调试过程要规范,认真记录调试结果;
(4)上机结束后认真规范撰写课设报告,对设计进行总结和讨论2)课程设计论文编写要求
(1)要按照书稿的规格撰写打印课设论文
(2)论文包括任务书、目录、绪论、正文、总结、参考文献、附录等
(3)正文中要有问题描述、抽象数据类型的定义、数据的存储结构、设计的求解算法、算法的实现、调试分析与测试结果
(4)课设论文装订按学校的统一要求完成3)课设考核从以下几方面来考查
(1)考勤和态度;
(2)任务的难易程度及设计思路;
(3)动手调试能力;
(4)论文撰写的水平、格式的规范性4)参考文献
[1]严蔚敏吴伟民.数据结构(C语言版)[M].北京清华大学出版社2007年.
[2]严蔚敏吴伟民.数据结构题集(C语言版)[M].北京清华大学出版社2007年.
[3]谭浩强.C语言程序设计[M].北京清华大学出版社,2006年.5)课程设计进度安排内容天数 地点构思及收集资料1 图书馆程序设计与调试3 计算机房撰写论文1 图书馆6)任务及具体要求通过此系统可以实现不同地点间车次的查询(按照票价从低到高的顺序显示不同的车次)、售票、退票、车票剩余情况查询等功能每张车票包含车次、座位、姓名等信息学生签名________________年月日课程设计论文评审意见
(1)考勤和态度优( )、良( )、中( )、一般( )、差( )
(2)任务难易及设计思路 优( )、良( )、中( )、一般( )、差( )
(3)动手调试能力评价 优( )、良( )、中( )、一般( )、差( )
(4)论文撰写水平及规范性评价优( )、良( )、中( )、一般( )、差( )评阅人____________职称_____讲师_____年月日目录一.绪论
41.1概述
41.2意义4二.系统的可行性研究与需求分析
42.1可行性研究
42.
1.1经济可行性
42.
1.2技术可行性
52.
1.3操作可行性
52.2需求分析
52.
2.1功能需求
52.
2.2数据需求
52.
2.3性能需求5三.系统概述
63.1功能简介
63.2设计思路6四.系统的主流程图7五.系统的实现与调试8六.总结与心得12七.参考文献13附录·程序代码13一.绪论
1.1概述目前火车站售票的状况是大多是靠手工操作,以现有的工作人员很难应付车票订购高峰时刻的大量数据处理问题同时还会出现由此带来的大量记录存放和管理所带来的问题本次设计拟开发一个火车站网上订票系统,可以降低工作人员的工作量,提高工作人员的工作效率,同时方便顾客订票
1.2意义火车站市场的管理和规范问题,是困扰我们多年的一个老问题,也是政府管理中的一个难点,订票是客运业务中的一个最基本的业务,表面上看,它只是火车站业务的一个简单的部分,但是它涉及到管理与客户服务等多方面,因此,过去传统的售票方式已经不能满足现代客运业务流量剧增的客观要求,这就要求一种全新的订票方式——网上订票,来缓解订票高峰时期的客运压力,并为用户提供方便快捷的订票服务本次设计便是利用开发工具vs005和SQLServer2008数据库共同开发的一个火车站网上订票系统,它能方便快捷地运用在火车站订票业务的营运之中二.系统的可行性研究与需求分析
2.1可行性研究该阶段通过对系统目标的初步调研和分析,提出可行性方案并进行论证我们在这里主要从技术可行性、经济可行性和操作可行性三方面进行分析
2.
1.1经济可行性本系统其他应用软件、硬件系统也易于获得.因此开发成本较低而引进使用本系统后,与传统方式相比,具有高效率、低成本、高质量的特点,可以节省不少人力、物力及财力所以,从经济的角度来看,该系统可行
2.
1.2技术可行性系统实现依靠相对熟悉的c语言和SQLServer2008数据库系统,其基本操作实质还是对数据库进行添加、删除、查找等操作
2.
1.3操作可行性系统采用菜单式,实现用户与数据库的交互,界面简洁友好,操作方便
2.2需求分析需求分析是软件设计的一个重要的环节本阶段对订票系统的应用情况作全面调查,以确定系统目标,并对系统所需要的基础数据以及数据处理要求进行分析,从而确定用户的需求用户对系统的需求我们从以下几方面进行分析
2.
2.1功能需求
1.管理人员对车次信息的输入1)车次信息包括起始城市终点城市发车时间到达时间票价余票2)以一个特定的符号结束车次信息的输入如”#”;”0”等等2订票3修改车次信息4查询1)按车次的查询且车次信息包括车次号;起始城市;终点城市;发车时间;到达时间;票价;余票2)按终点城市的查询5显示全部车次信息6管理员所增加车票的输入0退出售票系统
2.
2.2数据需求信息需求,即在系统中需要处理哪些数据根据对火车站网上订票系统的分析
2.
2.3性能需求为了保证系统能够长期、安全、稳定、可靠、高效的运行,本系统应该满足以下的性能需求准确性和及时性系统处理的准确性和及时性是系统的必要性能系统应能及时而且准确的根据用户权限及所输入的信息做出响应由于本系统的查询功能对于整个系统的功能和性能完成举足轻重作为系统的很多数据来源,而车票的数量和时间又影响用户的决策活动,其准确性和及时性很大程度上决定了系统的成败在系统开发过程中,必须采用一定的方法保证系统的准确性和及时性易用性本系统是直接面对用户的,而用户往往对计算机并不是非常熟悉这就要求系统能够提供良好的用户接口,易用的人机交互界面要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息的界面,从而保证系统的易用性三.系统概述
3.1功能简介本软件是一个简单的火车票订票管理系统火车票订票管理信息管理系统的功能主要是实现火车票订票的信息化管理通过火车票订票管理系统,火车站管理人员可以实现对火车票信息的输入、订票、查找、修改、增加数据和查询等操作本系统最大的优点就是操作简便快捷等
3.2设计思路将火车票信息定义为一个ticket类,在类中包含私有数据成员intnum;stringorigin;stringdestination;stringstart;stringend;intprice;intcount;分别表示车次号、出发城市、起始城市、终点时间、到达时间、票价、余票公有成员函数包括setbooksearchchangeadddisplay分别用来实现对学生信息的数据初始录入、订购火车票、查询数据、修改数据、增加数据,显示所有数据功能然后定义了一个menu菜单函数,使功能菜单显示在运行窗口以提示用户如何进行操作主函数是一个程序必不可少的,在主函数中,使用一个switch语句来选择调用主菜单中的各个功能函数四.系统的主流程图火车票售票系统按车次查询按终点城市查询Pressanykeytocontinue0退出售票系统以“#”结束输入车次信息起始城市,终点城市,发车时间,到达时间,票价,余票6增加车票5显示全部车次信息4查询车次信息2订票购票成功3修改车次信息1输入车次的信息你想修改第几个数据,请输入车次号车次信息起始城市,终点城市,发车时间,到达时间,票价,余票以“#”结束输入终点城市若输入1,票价递增排列若不存在已有车次号若存在已有车次号若存在已有终点城市若不存在终点城市请输入新的数据输入订购车次对不起,该车次不存在对不起,该车次不存在购买票数输入id号输入姓名数据包括起始城市,终点城市,发车时间,到达时间,票价,余票已修改成功已购票成功图
4.1系统流程图五.系统的实现与调试图
5.
1.1系统的主界面图
5.
2.1车次信息的输入图
5.
2.2车次信息的输入图
5.
3.1订票功能的实现方式一图
5.
3.2订票功能的实现方式一图
5.
3.3订票功能的实现方式二(按1,车票将以票价从小到大排列)图
5.
3.4订票功能的实现方式二(按1,车票将以票价从小到大排列)图
5.
4.1车次信息的修改图
5.
4.2车次信息的修改图
5.
5.1车次信息的查询按车次查询图
5.
5.2车次信息的查询按终点城市查询图
5.
6.1全部车次信息的显示图
5.
7.1增加车票图
5.
7.2增加车票图
5.
8.1售票系统的退出六.总结与心得1:在这次的设计中,,让我更深刻的认识到作为一名编程工程师的辛苦;而且要成为一名优秀的编程工程师,需要具有团队精神、认真、仔细、负责和完美主义的做事态度;一个功能完整的程序,不仅可以提高工作人员的办公效率,还可以为人民提供方便、快捷的生活环境2:在不久的将来,我相信火车票预定与管理系统功能将更加多元化,系统将更加集中,电子车票的出现将使火车票信息系统的架构发生巨大变化,原来分散的,独立的基于客户机/服务器的结构将转换为浏览器/服务器结构,并且一个主机系统可以服务全国的乘客订票需求同时因为上百万的用户的在线使用,对火车票预定与管理系统的功能提出一个新的挑战对系统的可靠性,可用性,性能要求发生质的变化3简而言之,这次火车票订票系统的开发让我更加深刻的领悟到了计算机软件开发的不易,并且通过自主实践的手段切身体会领悟到了很多课堂上所讲过的内容对上课时一些讲过的概念、要点有了自己的见解,确实是受益匪浅七.参考文献
[1]严蔚敏吴伟民.数据结构(C语言版)[M].北京清华大学出版社2007年.
[2]严蔚敏吴伟民.数据结构题集(C语言版)[M].北京清华大学出版社2007年.
[3]谭浩强.C语言程序设计[M].北京清华大学出版社,2006年.
[4]滕国文.数据结构课程设计[M].北京:清华大学出版社2010年.
[5]李业丽,郑良斌.数据结构(c)实验教程[M].北京理工大学出版社,2005年.
[6]谭浩强.C++程序设计[M].北京清华大学出版社,2004年.
[7]C++大学基础教程[M].北京人民邮电出版社,2005年.附录·程序代码#includeiostream#includefstream#includestring#includeiomanipusingnamespacestd;#defineM1000//可以存信息总量intN=0;//车次总量classticket{public:ticket;voidset;//初始化信息,第一次对信息的录入voidchange;//修改某车次的所有信息voidsearch;//查询某车次的所有信息voiddisplay;//显示功能voidbook;//订票功能voidadd;//增加车票功能voidX;//新增初始化N值函数private:staticintnum;intcountprice;stringorigindestinationstartend;};intticket::num=110;//车次号ticket::ticket{}voidticket::set//录入功能{intisetcountsetprice;stringsetoriginsetdestinationsetstartsetend;ofstreamoutfile;outfile.openf
1.txtios::out;//----打开文件----if!outfile{cerropenerrorendl;exit1;}fori=0;iM;i++//----依次录入相应车次的信息----{cout当出发城市输入为#时,请停止输入!!!endl;cout请输入起始城市endl;cinsetorigin;origin=setorigin;ifsetorigin==#break;ifsetorigin!=#{N++;num++;outfilenum;outfilesetorigin;cout请输入终点城市endl;cinsetdestination;destination=setdestination;outfilesetdestination;cout请输入发车时间endl;cinsetstart;start=setstart;outfilesetstart;cout请输入到达时间endl;cinsetend;end=setend;outfilesetend;cout请输入票价endl;cinsetprice;price=setprice;outfilesetprice;cout请输入票数endl;cinsetcount;count=setcount;outfilesetcountendl;}}outfile.close;//----关闭文件--}voidticket::book//订票功能{intinw=0a[M]
[3]searchnumnum[M]count[M]j=-1kmind[M]
[3]tlpprice[M];charch;stringsearchdestinationdestination[M]origin[M]start[M]end[M]qb[M]
[4]c[M]
[4];ticket::X;ifstreaminfilef
1.txtios::in;if!infile{cerropenerrorendl;exit1;}fori=0;iN;i++{infilenum[i];a[i]
[0]=num[i];infileorigin[i];b[i]
[0]=origin[i];infiledestination[i];b[i]
[1]=destination[i];infilestart[i];b[i]
[2]=start[i];infileend[i];b[i]
[3]=end[i];infileprice[i];a[i]
[1]=price[i];infilecount[i];a[i]
[2]=count[i];}cout终点城市endl;cinsearchdestination;cout车次起始城市终点城市发车时间到达时间票价余票endl;fori=0;iN;i++ifdestination[i]==searchdestination{j++;w=1;couta[i]
[0];coutsetw9b[i]
[0];coutsetw12b[i]
[1];coutsetw12b[i]
[2];coutsetw12b[i]
[3];coutsetw10a[i]
[1];coutsetw9a[i]
[2]endl;d[j]
[0]=a[i]
[0];c[j]
[0]=b[i]
[0];c[j]
[1]=b[i]
[1];c[j]
[2]=b[i]
[2];c[j]
[3]=b[i]
[3];d[j]
[1]=a[i]
[1];d[j]
[2]=a[i]
[2];}l=j+1;ifw==0cout无此终点城市!endl;else{charname[M];intid;ifstreaminfilef
1.txtios::in;if!infile{cerropenerrorendl;exit1;}fori=0;iN;i++{infilenum[i];infileorigin[i];infiledestination[i];infilestart[i];infileend[i];infileprice[i];infilecount[i];}infile.close;ofstreamoutfilef
1.txtios::out;if!outfile{cerropenerrorendl;exit1;}cout请输入订购的车次;若想车票价格从小到大排序请按1endl;cink;switchk{case1:{fori=0;il-1;i++//有N个数需进行N-1趟{min=i;forj=i+1;jl;j++ifd[j]
[1]d[min]
[1]min=j;//找最小数下标ifmin!=i{forp=0;p3;p++{t=d[i][p];d[i][p]=d[min][p];d[min][p]=t;}forp=0;p4;p++{q=c[i][p];c[i][p]=c[min][p];c[min][p]=q;}}}cout车次起始城市终点城市发车时间到达时间票价余票endl;fori=0;il;i++{coutd[i]
[0];forp=0;p4;p++coutsetw12c[i][p];forp=1;p3;p++coutsetw9d[i][p];coutendl;}cout请输入订购的车次endl;cink;};break;default:;break;}forj=0;k!=num[j];{j++;ifjN-1break;}ifk!=num[j]{cout对不起,该车次不存在endl;fori=0;iN;i++{outfilenum[i];outfileorigin[i];outfiledestination[i];outfilestart[i];outfileend[i];outfileprice[i];outfilecount[i]endl;}outfile.close;}else{cout请输入你的姓名endl;cinname;cout请输入你的id号endl;cinid;cout请输入购买票数endl;cinl;count[j]=count[j]-l;fori=0;iN;i++{outfilenum[i];outfileorigin[i];outfiledestination[i];outfilestart[i];outfileend[i];outfileprice[i];outfilecount[i]endl;}outfile.close;coutnameidendl;cout您已订票成功!endl;}}}voidticket::add//增加功能{stringaddoriginadddestinationaddstartaddend;intiaddcountaddprice;//----以追加的方式录入信息,直接将信息追加到以前文件的末尾----ticket::X;num=num+N;ofstreamoutfilef
1.txtios::app;if!outfile{cerropenerrorendl;exit1;}fori=0;iM;i++//----依次录入相应车次的信息----{cout当出发城市输入为#时,请停止输入!!!endl;cout请输入您要添加的数据endl;cout请输入起始城市endl;cinaddorigin;origin=addorigin;ifaddorigin==#{cout没有添加endl;break;}ifaddorigin!=#{N=N+1;//----依次输入相应的数据,并且追加到之前的文件中去----num++;outfilenum;outfileaddorigin;cout请输入终点城市endl;cinadddestination;destination=adddestination;outfileadddestination;cout请输入发车时间endl;cinaddstart;start=addstart;outfileaddstart;cout请输入到达时间endl;cinaddend;end=addend;outfileaddend;cout请输入票价endl;cinaddprice;price=addprice;outfileaddprice;cout请输入余票endl;cinaddcount;count=addcount;outfileaddcountendl;cout已添加成功!endl;}}outfile.close;}voidticket::change//修改功能{intikj;intnum[M]count[M]price[M];stringorigin[M]destination[M]start[M]end[M];ticket::X;ifstreaminfilef
1.txtios::in;if!infile{cerropenerrorendl;exit1;}cout车次起始城市终点城市发车时间到达时间票价余票endl;fori=0;iN;i++{infilenum[i];coutnum[i];infileorigin[i];coutsetw9origin[i];infiledestination[i];coutsetw12destination[i];infilestart[i];coutsetw12start[i];infileend[i];coutsetw13end[i];infileprice[i];coutsetw9price[i];infilecount[i];coutsetw9count[i]endl;}infile.close;ofstreamoutfilef
1.txtios::out;if!outfile{cerropenerrorendl;exit1;}cout您想修改第几个数据请输入车次号endl;cink;forj=0;k!=num[j];{j++;ifjN-1break;}ifk!=num[j]{cout对不起,该车次不存在endl;fori=0;iN;i++{outfilenum[i];outfileorigin[i];outfiledestination[i];outfilestart[i];outfileend[i];outfileprice[i];outfilecount[i]endl;}outfile.close;}else{cout请输入新的数据endl;cout请输入起始城市endl;cinorigin[j];cout请输入终点城市endl;cindestination[j];cout请输入发车时间endl;cinstart[j];cout请输入到达时间endl;cinend[j];cout请输入票价endl;cinprice[j];cout请输入余票endl;cincount[j];fori=0;iN;i++{outfilenum[i];outfileorigin[i];outfiledestination[i];outfilestart[i];outfileend[i];outfileprice[i];outfilecount[i]endl;}outfile.close;cout已修改成功!endl;}}voidticket::search//查找功能{intinw=0a[M]
[3]searchnumnum[M]count[M]price[M];charch;stringsearchdestinationdestination[M]origin[M]start[M]end[M]b[M]
[4];ticket::X;couta.按车次查找b.按终点城市查找endl;ifstreaminfilef
1.txtios::in;if!infile{cerropenerrorendl;exit1;}fori=0;iN;i++{infilenum[i];a[i]
[0]=num[i];//就是将num[i]中的内容存到a[M]
[0]中infileorigin[i];b[i]
[0]=origin[i];infiledestination[i];b[i]
[1]=destination[i];infilestart[i];b[i]
[2]=start[i];infileend[i];b[i]
[3]=end[i];infileprice[i];a[i]
[1]=price[i];infilecount[i];a[i]
[2]=count[i];}cout请输入a或者b!endl;cinch;ifch==a{cout请输入车次!endl;cinn;fori=0;iN;i++ifa[i]
[0]==n{w=1;//用来判断正确与否的cout车次起始城市终点城市发车时间到达时间票价余票endl;couta[i]
[0];coutsetw9b[i]
[0];coutsetw12b[i]
[1];coutsetw12b[i]
[2];coutsetw12b[i]
[3];coutsetw10a[i]
[1];coutsetw9a[i]
[2]endl;}ifw==0cout对不起,无此车次信息!endl;}elseifch==b{cout请输入终点城市!endl;cinsearchdestination;fori=0;iN;i++ifdestination[i]==searchdestination{w=1;cout车次起始城市终点城市发车时间到达时间票价余票endl;couta[i]
[0];coutsetw9b[i]
[0];coutsetw12b[i]
[1];coutsetw12b[i]
[2];coutsetw12b[i]
[3];coutsetw10a[i]
[1];coutsetw9a[i]
[2]endl;}ifw==0cout对不起,无此出发城市!endl;}elsecout没有此选项!endl;}voidticket::X{intmany=0;chars
[100];ifstreaminff
1.txt;if!inf{coutcantopen!endl;abort;}while!inf.eof{inf.getlinessizeofs;many++;}N=many-1;num=110;}voidticket::display//显示全部信息功能{intknumcountprice;stringorigindestinationstartend;ticket::X;ifstreaminfilef
1.txtios::in;if!infile{cerropenerrorendl;exit1;}cout车次起始城市终点城市发车时间到达时间金额余票endl;fork=0;kN;k++{infilenum;coutsetw4num;infileorigin;coutsetw9origin;infiledestination;coutsetw12destination;infilestart;coutsetw12start;infileend;coutsetw9end;infileprice;coutsetw13price;infilecount;coutsetw6countendl;}infile.close;}tickettic;//子函数,若没有,则上面的程序不能运行voidmain{charch;voidmenu;menu;cinch;whilech!=0{systemcls;switchch{case1:tic.set;break;case2:tic.book;break;case3:tic.change;break;case4:tic.search;break;case5:tic.display;break;case6:tic.add;break;case0:cout退出系统!;break;default:cout没有此选项!endl;break;}menu;cinch;}}voidmenu{cout欢迎进入火车票售票信息管理系统:endl;cout~~~~~~~~~~~~~~~~~~~~~~~~~~~~endl;cout@
1.输入车次信息@endl;cout@
2.订票@endl;cout@
3.修改车次信息@endl;cout@
4.查询车次信息@endl;cout@
5.显示全部车次信息@endl;cout@
6.增加车票@endl;cout@
0.退出售票系统@endl;cout~~~~~~~~~~~~~~~~~~~~~~~~~~~~endl;cout请选择您所需要的功能:endl;。