软件工程订单_第1页
软件工程订单_第2页
软件工程订单_第3页
软件工程订单_第4页
软件工程订单_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程名称:软件工程课程设计设计题目:指导教师:火车订票系统一订单信息管理计算机计算机科学与技术(0901)2013.1.06毋星闫霞谢天2013.1.12郭咏梅 1 1 1 1 1 1第二章火车订票系统需求分析 22.1数据分析 22.2功能分析 22.3其它需求 42.3.1数据的完整性、准确性及安全性 第三章火车订票系统总体设计 5第四章火车订票系统详细设计 54.1数据库设计 54.2主要界面设计 64.3订单信息管理模块详细设计 74.3.1订单信息管理模块的功能 4.3.2订单信息管理模块算法描述 第五章数据管理模块的主要源代码及测试 5.1订票模块主要源代码 5.2退票模块主要源代码 5.3订票模块的测试 6.1开发过程归纳总结 6.2遇到的问题以及解决办法 6.3对于进一步开发的说明 6.4本次课程设计的收获和体会 第一章问题描述火车是目前客流量最大的运输工具,未来很长一段时间中也会延续这种现状而传统的人工售票,每逢客流高峰期就会出现旅客排队购票困难的情况。为了提高售票效率,方便旅客订票,产生了面向此课题的研究。结合以前所学的CC++以及本学期所学的软件工程的理论知识,开发一个简单的火车订票系统,方便管理员管理车次信息、用户订票与退票。开发工具:kate编辑器、g++编译器、gdb调试工具;开发语言:C++;本系统主要实现以下功能:3、实现订票与退票的功能。1第二章火车订票系统需求分析本系统中存在的实体有:用户、车次、火车票(在系统中是以订单的形式出现),各实体都有自己相应的属性,其中“用户”实体和“火车票”实体之间存在“购买”联系,这种联系为一对多的,即一名用户可购买多张火车票(但同一车次的火车票不能被同一用户购买多张);“火车票”实体和“车次”实体存在“包含”联系,这种联系为多对一的,即一个车次可以对应多张火车票,而一张火车票只能对应于一个车次。为了减少数据冗余,便于数据的统计和查询,本系统的主要数据项设计如下:用户信息,包括数据有:身份证号、用户名、姓名、性别、联系电话。车次信息,包括数据有:车次编号、发站、到站、发时、到时、票数、票价订单信息,包括数据有:订单号、车次号、用户名、座位号。管理员向火车订票系统录入用户信息(也可以自己注册用户)、车次信息,旅23客登录系统后可以查询管理员录入的车次信息,顶层还可以查看自己的资料,系统的本系统主要需要设计六个类,链表类模板、文件类模板、窗口类、用户类、车次类以及订单类,链表类模板与文件类模板主要是进行数据管理,而窗口类主要用于将用户类、车次类以及订单类的一些服务组织起来,实现用户与后台数据的交互。所以呈现给用户的主要有以下几个功能。登录:用户需要输入自己的用户名和密码方可进入系统,非管员的操作界面,而管理员可以进入旅客的操作界面。注册:只有经过注册的用户才可以登录订票系统用户信息管理:这部分功能主要是通过设计用户类中的一些服务来实现的。管理员可以用户的信息进行增加、删除、修改、查询、统计操作,普通旅客只能够查询自己的车次信息管理:这部分功能主要是通过设计车次类中的一些服务来实现的。管理员可以对车次的信息进行增加、删除、修改、查询、统计操作,普通旅客可以查询车次信息订单信息管理:这部分功能主要是通过设计订单类的一些服务来实现的。管理员可以统计系统中存在的订单,旅客可以通过该系统进行订票和退票。4录录S仁诜抒;;匕诜抒;;匕bn删伙毎讥f杵训车补:亿息订单管理模块主要实现订票与退票的功能,这就要求类中的不同服务以实现订票、退票以及统计订单的功能。(1)拥有用户、密码模块管理用户权限(2)可根据各种条件进行查询该软件在软硬件环境均未发生重大改变和提高的情况下,在正确使用和适当维护的条件下,可以长久使用,各项功能可以正常实现,可靠性较好。5丄统讣文件数据丄统讣文件数据第三章火车订票系统总体设计火车订票系统分为四个大模块,即用尸信息管理模块、车次信息管理模块、订单信息管理模块以及数据处理模块,前三个模块每个模块下面又分为若干个子模块,数据处理模块是辅助前三个模块正常处理数据的。订单信息管理模块主要分为订票、退票以及订单统计,旅客在登录系统后可以根据自己的需要进行订票,当用户订票完毕后系统会随机生成一个订单号和座位号呈现给用户;当用户因为某种原因想取消订单的时候,可以进行退票操作,当然必须是用户在此之前已经订过票。管理员可以将所有旅客所下订单信息进行统计,系统的层次结构图如图删加除忙乍次次-统计-丄生找文卅数据丄第四章火车订票系统详细设计6和用户名在表中是唯一确定的,且订单号长度必须为5位,车次与用户名的长度设计分别在车次信息表与用户信息表当中有说明。该系统全部由C、C++来实现,虽然订单号长度设计为5位,但为了防止数组越界可能产生的错误,将它在结构体当中的定义扩大,其它比如车次、用户名等也是如何。548根据需求,设计如下一些界面:的操作,界面如下图所示。7*****玄戏迎您登录火车订票系统•请很据提看选择您所需要进行的操作快***W1査询列车信息当用户选择订票操作的时候会要求用户输入乘车区间,界面如请输入乘车区间发站:太原到站:武昌■系统会根据用户的要求呈现给用户所有满足条件的车次,的需要进行选择,设计的界面如图所示车次乘车区间发时到时余票数票价K320太原一武昌03:0023:19300旅客可以根据自己请选宦您所需要乘釦I勺车次:K90S是否确认购买该车次的车J1、订票模块:当旅客登录系统后选择订票,会要求用户输入自己的乘车区间,若乘车区间不存在,系统会给出相应的提示,若乘车区间存在,系统会显示出所有满足要求的车次,当用户订票完毕之后系统会随机生成一个订单号和座位号呈现给用户。2、退票模块:旅客可以根据自己的要求进行退票操作。3、订单统计模块:管理员可以执行订单统计操作,可以查看到所有用户的订单信8订单信息管理模块中各个子模块的功能上面已经介绍,这里就订票与退票模块进行算法描述,其中流程图分别如图4-4和图4-5示所示。9第五章数据管理模块的主要源代码及测试//订票voidOrder::order_ticket(constchar*a,boolb,string&s){system("clear");strcpy(,s.c_str());while(1){if(!t.ticket_quary2({cout<<"请选择您所需要乘坐的车次:";strcpy(o.tnum,s1.c_str());if(fo.fo(s.c_str(),s1.c_str()))〃判断该用户是否已经订过该车次的车票{cout<<"一个用户只能订购同一车次的一张车票}cout<<"是否确认购买该车次的车票(y/n):";charch;{随机产生座位号strcpy(o.num,s3.c_str());strcpy(o.snum,s4.c_str());{lo.read_to_list("order.dat");lo.insert_back(o//订单生成后到列车信息表当中将余票数减1t.ticket_cha_cou1(s1.c_str(),s,-1);system("clear");*****************************cout<<II*请在发车前两小时到车站点凭身份证领取您的纸质车票!*\n";*****************************}}}cout<<"您是否需要购买其它车次的车票(y/n):";charch;w.login_tra(ss.c_str(),b,s);}//退票(删除相关订单信息,并使余票数加1)voidOrder::return_ticket(constchar*{a,boolb,string&s){//查看订单当中是否有与自己相关的订单if(!fo.if_has_exits1(s.c_str())){system("clear");cout<<"您当前没有订单,无须进行退票操作!\n";cout<<"回车{返回一级\n";}fo.cat_from_file2(s.c_str());}cout<<"是否需要继续取消订单(y/n):";charch;cout<<"请输入您所想取消的订单号:";strings1;//检测该用户是否存在此订单号if(!fo.if_has_exits1(s.c_str(),s1.c_str{{cout<<"回车返回上一级!\n";"是否确认退票(y/n):";{{t.ticket_cha_cou1(on.tnum,s,1);}}这里仅列订票模块的测试过程,其它子模块里没有一一列出。这里采用路径覆盖的方法进行测试,图5-1为输出某车次信息的算法流程图。其白盒测试结果如表所示。第六章总结本课程设计完成了一个简单的火车订票系统,管理员可以登录系统对用户、车次以设计的开发过程大致涉及到以下知识点:3、数据结构中单链表的知识;4、如何通过软件工程的相关知识点合理地进行软件的设计。(1)在设计系统的初期目的不明确,几乎没有进行任何的系统分析就开始进行代码的编写,导致越做越乱,最后暂时中止了程序的编写。以及在自己的能力范围之内可以实现什么功能,然后进行面向对象的分析,确定系统需要实现每个类中的服务,最后再逐个的进行细化。(2)测试系统的时候,有时候发现一组数据测试的结果正确,可是再次登录系统的时候发现另外一组数据测试的结果就出现问题了。程中白盒测试的方法,再结合gdb调试工具,确定出现问题的地方逐个进行改正。(1)本系统对于一些数据信息的处理都是通过文件来进行的,而文件只适合保存少(2)本系统是模仿12306网站进行设计,由于时间问题,很多功能都不够完善,后期将会继续添加一些功能,比如付款功能,当然本系统不能从真正意义上实现付款功能,只是模拟这个功能。之所以需要这个功能,是因为只有经过付款后的订单才是真正意义上有效的,下单并不代表已经购票成功。我们小组所做的课程设计题目是火车订票系类,实现对订单基本信息的管理。经过数天的研究学习之后,在经过小组成员的通力合作知道了软件工程这门课的重要性以及其广泛地应用性。外由于本次课程设计我们小组是用C++来进行编程的。所以在经过本次课程设计后对C++也有了进一步更深刻理解和熟悉掌握,知道应该如何正确有效的进行面向对象编程,即如何设计一些类并将它们有效的组织起来。通过本次课程设计实现了理论与实际相结合让我能够把平时在课堂上学到的理论知识应用到实际生活中。通过自己所学改善自己的生最大的收获是通过本次课程设计让我知道我自己还存在很多的不足,尤其是对软件工程中的一些理论知识理解的还不是很透彻,还有就是对

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论