基于UML的网上订票系统课程设计报告.doc

上传人:wj 文档编号:1948054 上传时间:2023-05-02 格式:DOC 页数:26 大小:2.38MB
下载 相关 举报
基于UML的网上订票系统课程设计报告.doc_第1页
第1页 / 共26页
基于UML的网上订票系统课程设计报告.doc_第2页
第2页 / 共26页
基于UML的网上订票系统课程设计报告.doc_第3页
第3页 / 共26页
基于UML的网上订票系统课程设计报告.doc_第4页
第4页 / 共26页
基于UML的网上订票系统课程设计报告.doc_第5页
第5页 / 共26页
基于UML的网上订票系统课程设计报告.doc_第6页
第6页 / 共26页
基于UML的网上订票系统课程设计报告.doc_第7页
第7页 / 共26页
基于UML的网上订票系统课程设计报告.doc_第8页
第8页 / 共26页
基于UML的网上订票系统课程设计报告.doc_第9页
第9页 / 共26页
基于UML的网上订票系统课程设计报告.doc_第10页
第10页 / 共26页
基于UML的网上订票系统课程设计报告.doc_第11页
第11页 / 共26页
基于UML的网上订票系统课程设计报告.doc_第12页
第12页 / 共26页
基于UML的网上订票系统课程设计报告.doc_第13页
第13页 / 共26页
基于UML的网上订票系统课程设计报告.doc_第14页
第14页 / 共26页
基于UML的网上订票系统课程设计报告.doc_第15页
第15页 / 共26页
基于UML的网上订票系统课程设计报告.doc_第16页
第16页 / 共26页
基于UML的网上订票系统课程设计报告.doc_第17页
第17页 / 共26页
基于UML的网上订票系统课程设计报告.doc_第18页
第18页 / 共26页
基于UML的网上订票系统课程设计报告.doc_第19页
第19页 / 共26页
基于UML的网上订票系统课程设计报告.doc_第20页
第20页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于UML的网上订票系统课程设计报告.doc

《基于UML的网上订票系统课程设计报告.doc》由会员分享,可在线阅读,更多相关《基于UML的网上订票系统课程设计报告.doc(26页珍藏版)》请在冰点文库上搜索。

基于UML的网上订票系统课程设计报告.doc

学号:

0121110340335

课程设计

题目

基于UML的网上订票管

理系统设计

学院

计算机科学与技术学院

专业

计算机科学与技术专业

班级

计科1103班

姓名

闫敏

指导教师

杜薇

2014

6

25

武汉理工大学《计算机软件综合设计》课程设计说明书

课程设计任务书

学生姓名:

闫敏专业班级:

计科1103班

指导教师:

杜薇工作单位:

计算机科学与技术学院

题目:

基于UML的网上订票管理系统设计

初始条件:

理论:

学完UML及软件体系结构课程,掌握一种计算机高级语言的使用。

实践:

计算机实验中心提供计算机及软件开发环境。

要求完成的主要任务:

(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)

(1)系统分析(包括系统描述(问题域描述)、用例模型、分析类图)。

(2)系统设计(包括系统的逻辑模型如设计类图、顺序图、状态图及组件图等)。

(3)系统实施(包括信息代码设计、数据库设计、输入设计、输出设计、用户界面设计和处理过程的设计以及最终的程序设计)。

(4)编制好程序后,设计若干测试用例,上机测试并通过所设计的程序系统。

(5)设计报告格式按附件要求书写。

课程设计报告书正文的内容应包括:

1.问题描述;

2.用例模型及分析类图的描述;

3.设计类图、核心用例的顺序图与状态图、组件图等的描述;

4.信息代码设计、数据库设计、输入设计、输出设计的描述;

5.用户界面设计和处理过程的设计的描述;

6.给出软件的测试方法和测试结果。

7.设计的特点、不足、收获与体会。

时间安排:

第18周周一至周二:

完成系统分析。

第18周周三至周五:

完成系统静态模型设计及部分动态模型设计。

第19周周一:

完成系统动态模型设计。

第19周周二至周三:

完成系统实施及测试。

第19周周四至周五:

验收及撰写课程设计报告。

设计验收安排:

第19周的星期四第1-8节课到实验中心进行上机验收。

设计报告书收取时间:

第19周的周五下午16:

00。

指导教师签名:

2014年6月2日

系主任(或责任教师)签名:

年月日

目录

1.问题描述与需求分析 1

1.1概述 1

1.2功能需求 1

1.3性能需求 1

1.4数据流图 2

2.模型设计 2

2.1用例图及其描述 2

2.2类图及其描述 3

2.3顺序图及其描述 4

2.4状态图及其描述 5

3.详细设计 6

3.1背景 6

3.2数据库设计 7

3.2.1数据库概述 7

3.2.2E-R图 7

3.2.3表的设计 8

3.2.4数据库中已录入的信息 9

3.3输入输出设计 10

3.4主要功能模块实现 10

3.4.1注册 10

3.4.2站站查询 11

3.4.3订单查询 13

4.人机交互设计 13

4.1注册登录界面 13

4.2订票信息界面 15

4.3确认订票界面 15

4.4订单查询界面 15

5.软件测试 16

5.1注册登录测试 16

5.1.1测试用例 16

5.1.2测试结果及分析 17

5.2订票测试 17

5.2.1测试用例 17

5.2.2测试结果与分析 17

5.3订单查询测试 21

6.系统设计的不足 21

7.总结 22

1.问题描述与需求分析

1.1概述

现如今以是信息化时代,各种服务和信息的提供都来自互联网,同样火车票的订票系统也开始实现了网上订票、买票等一系列网上服务,通过互联网订票不仅可以方便用户的操作节约了用户的时间,也能使提供的信息更加准确。

同时可以降低工作人员的工作量提高工作人员的工作效率。

1.2功能需求

注册:

将用户名和密码录入数据库。

登录:

连接数据库验证用户名和密码并进行登录操作。

订票:

输入出发地和目的地后显示火车票信息,点击执行订票操作。

订单查询:

查询所登录用户的订票信息。

退出:

退出到登录界面。

1.3性能需求

准确性和及时性:

系统处理的准确性和及时性是系统的必要性能。

系统应能及时而且准确的根据用户权限及所输入的信息做出响应。

由于本系统的查询功能对于整个系统的功能和性能完成举足轻重。

作为系统的很多数据来源,而车票的数量和时间又影响用户的决策活动,其准确性和及时性很大程度上决定了系统的成败。

在系统开发过程中,必须采用一定的方法保证系统的准确性和及时性。

易用性:

本系统是直接面对用户的而用户往往对计算机并不是非常熟悉。

这就要求系统能够提供良好的用户接口。

易用的人机交互界面。

要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息的界面,从而保证系统的易用性。

高并发性:

节假日,客流量较大,用户需求量大。

为了保证系统的稳定性,设计系统时高并发性是比不可少的性能需求。

可靠性:

系统建成后预计将有大量的用户在此查询火车票信息并进行大量的预订操作因此对系统的稳定性也有比较高的要求。

一旦系统不能正常工作会给用户群带来巨大的损失也将导致失去用户对系统的信任。

1.4数据流图

如图1所示,主要描述了数据在整个系统中的流程,为该系统的数据流图。

图1

2.模型设计

2.1用例图及其描述

如图2所示,为该系统的用例图,它主要包含注册、登录、订票、订单查询、退出和数据库信息这几个用例,其中数据库信息和其他几个用例进行通信。

图2用例图

2.2类图及其描述

如图3所示为类图,该系统主要包含train、station、order、searchresult四个类,它们之间的关系如图3所示。

图3类图

2.3顺序图及其描述

如图4所示,为该系统的顺序图,用户可以顺序执行注册、登录、查询车次、订票、订单查询以及退出的操作。

图4顺序图

2.4状态图及其描述

如图5所示为该系统的状态图,初始状态登录后可以直接订票也可以查询订单信息,如果成功后退出,如果失败返回初始界面重新操作。

图5状态图

3.详细设计

3.1背景

本项目采用B-S结构。

其中服务器端为客户及客户所使用的浏览器软,Server端为航空公司或专门的订票公司,所负责维护运营的Web服务器、订票系统服务器和数据库服务器,其之间关系如下:

本系统是基于Web的火车票订票系统。

客户只要在浏览器上就可以执行相关操作进行查询。

订票改签退票等操作。

采用统一建模语言UML(UnifiedModelingLanguage)对用户操作的过程进行建模。

实现查询、订票等功能。

该系统用php语言编写,主要实现了订票和查询的功能。

3.2数据库设计

3.2.1数据库概述

该系统中用的数据库是SQLite,SQLite是遵守ACID的关系数据库管理系统,它包含在一个相对小的C库中。

它是D.RichardHipp创建的公有领域项目。

不像常见的客户端/服务器结构范例,SQLite引擎不是个程序与之通信的独立进程,而是连接到程序中成为它的一个主要部分。

所以主要的通信协议是在编程语言内的直接API调用。

这在消耗总量、延迟时间和整体简单性上有积极的作用。

整个数据库(定义、表、索引和数据本身)都在宿主主机上存储在一个单一的文件中。

它的简单的设计是通过在开始一个事务的时候锁定整个数据文件而完成的。

3.2.2E-R图

数据库中共有四个表分别为user、order、train、station。

其中用户订票可以得到订单信息,用户和订单之间的E-R图如图6所示

图6E-R图

另外,用户也可以通过查询station和train两个表得到目标车次,如图7所示

图7E-R图

3.2.3表的设计

数据库中共建了四个表分别为station、train、user、order,表中的对象以及参数设置如下:

DROPTABLEIFEXISTS`station`;

CREATETABLE`station`(

`sid`INTEGERPRIMARYKEYAUTOINCREMENT,

`sname`VARCHAR(20),

`stpass`TEXT

);

DROPTABLEIFEXISTS`train`;

CREATETABLE`train`(

`tid`INTEGERPRIMARYKEYAUTOINCREMENT,

`tname`VARCHAR(20),

`troute`TEXT

);

DROPTABLEIFEXISTS`user`;

CREATETABLE`user`(

`uid`INTEGERPRIMARYKEYAUTOINCREMENT,

`uname`VARCHAR(20),

`upass`VARCHAR(40)

);

DROPTABLEIFEXISTS`orders`;

CREATETABLE`orders`(

`oid`INTEGERPRIMARYKEYAUTOINCREMENT,

`ouname`INTEGER,

`ocontent`TEXT,

`otime`CHAR(20)

);

3.2.4数据库中已录入的信息

数据库中存有三个车次分别为K001、K992、K003,还有从A到Q共17个火车站,每个车次经过的站如下:

K001:

A-B-C-D-E-F-G-H-I-J

K002:

K-C-L-M-N-O

K003:

P-Q-H-I-J

3.3输入输出设计

注册:

需要输入用户名和密码,并再次确认密码。

登录:

输入数据库中已经存在的用户名和密码,点击登录。

订票信息:

输入出发地和目的地,点击查询后显示符合条件的火车票信息,用户从中选出自己合适的车次后点击购买。

确认订票:

为了使系统更加完善,需要用户在此确认一下是否订票,确认后界面显示订票成功。

订单查询:

登录后,可以查询该用户的订单信息,订单信息中包括车次、时间、路径、票价。

3.4主要功能模块实现

3.4.1注册

用户如果想要注册,则按要求输入信息,包括用户名,密码,确认密码,这里密码的存放用了散列函数进行加密。

输入完后点击“注册”,将信息存入数据库后,系统自动转入登陆界面。

实现的代码如下:

if(isset($_POST["user_name"])&&isset($_POST["user_pw"])){

$con_db=connect();

$sql="SELECTunameFROMuserWHEREuname=?

";

$stmt=$con_db->prepare($sql);

$stmt->bindParam(1,$_POST["user_name"],SQLITE3_TEXT);

$result=$stmt->execute();

if(!

empty($result->fetchArray())){

echo"";

echo"该用户已被注册";

exit;

}

$sql="INSERTINTOuserVALUES(NULL,?

?

)";

$stmt=$con_db->prepare($sql);

$stmt->bindParam(1,$_POST["user_name"],SQLITE3_TEXT);

$stmt->bindParam(2,sha1($_POST["user_pw"]),SQLITE3_TEXT);

$result=$stmt->execute();

setcookie("name",$_POST["user_name"],time()+3600);

echo"";

echo"注册成功";

}

3.4.2站站查询

用户输入出发站和目的站后,可以点击“查询”,系统会显示符合要求的车次以及该车次的运行时间、票价、余票数。

其中查询车次时通过计算经过两个站点的交集得到,然后通过车次的id进行余票减一的操作。

实现的代码如下所示:

$con_db=connect();

$stmt=$con_db->prepare("SELECTstpassFROMstationWHEREsname=?

");

$stmt->bindParam(1,$src,SQLITE3_TEXT);

$result=$stmt->execute();

$src_stpass=unserialize($result->fetchArray()["stpass"]);

$stmt->reset();

$stmt=$con_db->prepare("SELECTstpassFROMstationWHEREsname=?

");

$stmt->bindParam(1,$dst,SQLITE3_TEXT);

$result=$stmt->execute();

$dst_stpass=unserialize($result->fetchArray()["stpass"]);

$stmt->close();

?

>

phpprintf("%s->%s",$src,$dst);?

>


php

$trains=findTrain($src_stpass,$dst_stpass);

if(empty($trains)){

echo"

没找到站名

";

return;

}

foreach($trainsas$_tname){

$stmt=$con_db->prepare("SELECTtrouteFROMtrainWHEREtname=?

");

$stmt->bindParam(1,$_tname,SQLITE3_TEXT);

$result=$stmt->execute();

$_troute=unserialize($result->fetchArray()["troute"]);

$stmt->reset();

$_list=getList($_troute,$src,$dst);

$_list->tname=$_tname;

array_push($routeList,$_list);

}

3.4.3订单查询

用户在登录以后,可以查询该用户的订单信息,订单信息包括车次、路径、时间。

实现的代码如下:

php

$con_db=connect();

$sql="SELECTotime,ocontentFROMordersWHEREouname=?

ORDERBYotimeDESC";

$stmt=$con_db->prepare($sql);

$stmt->bindParam(1,$_COOKIE["name"],SQLITE3_TEXT);

$result=$stmt->execute();

while($row=$result->fetchArray()){

$time=$row["otime"];

$ocontent=unserialize($row["ocontent"]);

$tname=$ocontent["tname"];

$src=$ocontent["src"];

$dst=$ocontent["dst"];

echo<<

$time$tname$src->$dst

EOT;}

4.人机交互设计

4.1注册登录界面

如图8所示为注册登录界面,从上往下依次为用户名、密码、确认密码,并且可以通过我有账号按钮,直接登录。

图8

如图9所示为登录界面,从上往下依次为用户名、密码、登录、注册。

图9

4.2订票信息界面

如图10所示为订票信息界面设计,从上往下依次为用户名、退出、出发站、目的站、查找以及火车票相关信息

图10

4.3确认订票界面

如图11所示,为确认订票界面,从上往下依次为用户名、退出、再买一张。

图11

4.4订单查询界面

如图12所示,为订单查询界面,从上往下依次为用户名、退出以及所有订单的时间、车次、路径。

图12

5.软件测试

5.1注册登录测试

5.1.1测试用例

在登录和注册中,需要满足用户名和密码都不为空,并且用户名长度不小于3为,密码长度不小于8位,所以采用边界值测试,测试用例如表1所示。

序号

用户名

密码

说明

1

yanmin

12345678

正确输入

2

1

12345678

用户名长度错误

3

12345678

用户名为空

4

yanmin

123

密码长度错误

5

yanmin

密码为空

6

yanmin

123abcdef

输入正确,输入为数字和字母都有的字符串

表1

5.1.2测试结果及分析

由于运行注册登录界面时,弹出信息后会自动跳转,难以截图,在此用文字说明。

用例1:

符合程序中要求用户名长度不小于三位,密码长度不小于八位,所以系统弹出注册成功后自动登录。

用例2:

用户名长度不符合要求,会提示重新输入

用例3:

提示用户名不能为空

用例4:

密码长度不符合要求,会提示重新输入

用例5:

提示密码不能为空

用例6:

注册成功

5.2订票测试

5.2.1测试用例

在订票过程中,需要做到根据输入的出发站和到达站,查找到正确的车次,所以采用黑盒测试测试该功能是否实现。

测试用例如表2所示。

出发站

到达站

说明

A

J

只有一个车次可供选择

H

J

有两个车次可供选择

J

A

车次的路线是有方向的

a

j

输入字符不存在

表2

5.2.2测试结果与分析

1.输入A-J后,显示一个车次,并且需要选择该车次,如果没有选择车次,则不能完成订票,并且会给出提示。

如图13、图13所示

图13

图14

2.输入H-J后,显示两个车次,选择k001车次,余票数为96,如图15所示,当再次选择该车次时,会发现余票数减一变为95,如图16所示

图15

图16

3.输入J-A后,因为没有该路线的车次,所以没有显示任何车次,如图17所示

图17

4.输入a-j后,因为该站名没有存放在数据库内,所以会显示没有找到站名。

如图18所示

图18

5.确认订票后,会显示“订票成功,返回首页”,如图19所示

图19

5.3订单查询测试

用户登录后可以查询到该订单曾经订过的所有订单信息,为了测试该功能是否实现,采用黑盒测试,测试结果如图20所示

图20

6.系统设计的不足

该系统主要是面向用户的火车票订票系统,主要实现了用户的注册、登录、车次查询、订单查询和退出的功能,相比较完善的12306订票网站还存在以下缺陷:

1.注册后的用户名和密码不能修改。

2.在数据库中存放的车次信息不全,没有包括席别、发车时间和到达时间。

3.没有退票和修改订单的功能。

7.总结

课程设计是一门专业课,给我很多的专业知识,同时也是一门思辨课,让我对抽象的理论有了具体的认识。

跟以前做过的一些课设相比,这次的任务相对复杂一些,关系到界面的设计,数据库的设计与连接。

但是课设中仍然会存在一些缺陷和不足,特别是在功能方面不是很完善,与现实已经在经济社会领域投入使用的系统相比还有很大的缺陷与不足,但我们会在今后的学习过程中不断修改,使系统更加完善。

尽管本系统存在着一些不足之处,但其基本功能比较全面、代码清晰明了易懂,易于日后程序更新、数据库加密保护用户信息、管理容易、界面美观友好、操作方便、效率高、安全性好等优点是本系统所必需的。

相信本火车站网上订票系统在网络信息交流销售中是一套非常有用的系

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高中教育 > 理化生

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2