课程设计说明书
课程名称 | : | 软件工程导论 |
课程代码 | : |
|
题 目 | : | 火车站网上订票系统 |
年级/专业/班 | : |
|
学生姓名 | : |
|
学 号 | : |
|
指导老师 | : |
|
开题时间 | : |
|
完成时间 | : | 2011年6月30日 |
2011年6月30日
课程设计任务书及成绩评定
课程名称 | : | 软件工程导论 |
完成者 | : |
|
1、设计的目的与要求
1)加强学生的实践能力;
2)理解小型系统开发的基本步骤;
3)本系统的功能包括:火车票信息查询,预订火车票,退订火车票。
2、设计进度及完成情况
日 期 | 内 容 |
6.6-6.7 | 项目开发计划书 |
6.8-6.10 | 系统可行性研究 |
6.11-6.15 | 系统需求分析 |
6.16-6.23 | 系统设计 |
6.24-6.27 | 系统测试 |
6.28-6.30 | 项目的递交 |
3、成绩评定
设计成绩: (教师填写)
指导老师: (签 字)
2011年 月 日
此项目开发计划书的编写主要是为了给开发《火车站网上订票系统》做主要的规划和整合,在开发过程中起到引导作用,以及给使用者提供简要的说明。
火车站市场的管理和规范问题,是困扰我们多年的一个老问题,也是政府管理中的一个难点,订票是客运业务中的一个最基本的业务,表面上看,它只是火车站业务的一个简单的部分,但是它涉及到管理与客户服务等多方面,因此,过去传统的售票方式已经不能满足现代客运业务流量剧增的客观要求,这就要求一种全新的订票方式——网上订票,来缓解订票高峰时期的客运压力,并为用户提供方便快捷的订票服务。
目前火车站售票的状况是仅靠手工操作,以现有的工作人员很难应付车票订购高峰时刻的大量数据处理问题。同时还会出现由此带来的大量记录存放和管理所带来的问题。本次设计拟开发一个火车站网上订票系统,可以降低工作人员的工作量,提高工作人员的工作效率,同时方便顾客订票。
《火车站网上订票系统》针对的用户是需要查询火车票信息、预订火车票以及退订火车票的人;
该系统需要实现如下主要功能以及相关说明:
火车票信息查询:站与站的火车票信息查询、火车车次的查询以及用户已订票的信息查询。
火车票预订:在规定的有效时间段内,预订火车票,但要收取一定的手续费。
火车票退订:在车票的有效期之内,能够对所预订的火车票进行退订,对于退还的金额有一定比例的扣除。
组长:张鹏
组员:蔡珀瑛 伍佳 钟佳 尹唐文
1、系统开发计划书
2、系统需求说明书
3、系统设计说明书
4、测试计划
5、一个能正确运行的可执行程序,源程序清单
安装、维护和运行支持从使用该系统开始,维护期限为一年。
各个功能均能正常使用,满足用户的需求。
批准者:颜富强
批准日期:2011年6月6日
张鹏 任务:(1)系统总的开发计划书(2)系统的总体设计
(3)组织小组讨论 (4)项目开发进度的管理
(5)团队的组织和协调
蔡珀瑛 任务:系统的可行性分析
钟佳 任务: 系统的需求分析
伍佳 任务:数据库的设计以及系统的开发
尹唐文 任务:系统测试
系统规划阶段: 项目标志性事件 开始到完成
开发阶段: 项目开发计划书的完成 6.6-6.7
需求分析阶段: 系统需求说明书完成 6.8-6.10
设计阶段: 系统设计说明书 6.11-6.15
编码实现: 项目的形成 6.16-6.23
测试阶段: 测试计划 6.24-6.27
移交阶段: 项目的递交 6.28-6.30
操作系统需要 windows 2000以上;
操作系统环境:windows xp/windows 7;
数据库需要Microsoft Access 95;
数据库驱动:Microsoft公司的sqljdbc驱动;
前台开发工具:Visual Basic 6.0;
前台界面类型:windows 窗体应用程序。
(1)主要功能:为游客提供火车票信息查询以及订票服务,方便火车站的售票工作,提高火车站的服务质量和服务效率
(2)性能要求:游客提供的信息必须及时的反映在火车站的工作平台上。售票系统的订单必须无差错的存储在火车站的主服务器上。对服务器上的数据必须进行及时正确的刷新。
(3)输出要求:数据完整,详实。
(4)输出要求:简捷,快速,实时。
(5)安全与保密要求:服务器的管理员享有对火车车次信息库及火车票票信息库和售票票信息库的管理与修改。售票员只享有对订票信息库的部分修改(写入与读出)。
(6)完成期限:预计六个月。
系统实现后,大大提高火车站的火车票售票服务效率。降低售票服务中的错误发生率,减少信息交流的烦琐过程及其带来的开销。
技术可行,现有技术可完全承担开发任务。
操作可行,软件能被原有工作人员快速接受
在火车站中的终端是安装了Windows XP的PC机,主要目的是向火车站的服务器传递数据。当顾客在火车站进行咨询时,终端向服务器发出查询请求,服务器根据火车信息库的实时数据,向终端发送数据,显示在终端的屏幕上。当顾客向售票员售票时,终端向服务器发出发出查询售票请求,服务器核对后,存入售票票信息库,并修改售票信息库,核对后,传送机票确认表单,终端打印出机票。
图1 系统流程图
本系统其他应用软件、硬件系统也易于获得.因此,开发成本较低。而引进使用本系统后,与传统方式相比,具有高效率、低成本、高质量的特点,可以节省不少人力、物力及财力。所以,从经济的角度来看,该系统可行。
系统采用菜单式,实现用户与数据库的交互,界面简洁友好,操作方便。
开发工具:Visual Basic 6.0
数据库环境:Microsoft Access 95
系统环境:Microsoft Windows XP/ Microsoft Windows 7
系统实现依靠相对熟悉的VB语言和Microsoft Access 95数据库系统,其基本操作实质还是对数据库进行添加、删除、查找等操作。
综上所述,火车售票系统在技术非常成熟,主客观条件都具备,且具有良好的效益,因此开发此系统是可行的。为了提高售票效率,方便人们查找火车票信息,建议立即开发。
目前火车站售票的状况是仅靠手工操作,以现有的工作人员很难应付车票订购高峰时刻的大量数据处理问题。同时还会出现由此带来的大量记录存放和管理所带来的问题。本次设计拟开发一个火车站网上订票系统,可以降低工作人员的工作量,提高工作人员的工作效率,同时方便顾客订票。
本系统的目标使用人群是广大的火车乘客,建成后将有助于缓解火车票售票人员的工作量。
因此本系统首先需要实现用户对火车票的查询的查询功能,包括查询火车的票价和座位号等,查询到所需车票的用户还可以进行预订,预订时需填写用户的必要信息包括姓名、身份证号、收票地址等。预订好车票的用户因某些因素需要退票的,在火车发车前的规定时间内,还可以进行退票。
对于想利用本系统进行火车票查询的用户,首先需要注册成为系统的用户方能进行查询操作,系统保存用户的注册信息,在注册用户时仅需要输入由用户自定义的用户名称和密码,注册成功后页面随即转入主页(登录界面)。
用于用户的登录,对于已经在本系统注册的用户可以根据注册时所用的用户名和密码登录到本系统,但是用户名和密码必须正确,若是不正确的用户名和密码,系统便进行错误提示。系统确认用户名和密码后便跳转到查询界面。
查询分为站站查询,车次查询以及已订车票的信息查询。所有上网用户都可以使用本系统的查询功能,对车票信息有个基本的了解。用户在查询界面输入框输入所要查询的出发站和目的站,或者是火车车次,系统则会根据输入的信息进行搜索,并给出搜索结果,用户还可点击搜索结果查看火车票的详细信息。
用户在查询界面查询到自己所满意的车票时,可以进行网上订票操作,所订车票将自动添加到用户的个人信息当中,方便用户日后进行管理。
只有登录后的用户才可以管理自己的信息,在个人信息框中可以查看到用户已订的车票和用户注册时所填的个人信息。用户由于某些个人因素需要退票的还可以进行退票操作。
本系统的潜在用户群具有的身份、背景可能会有较大的差异,因此对本系统的可操作性和易用性都提出了很高的要求。过于复杂的操作将不可避免的损失大量的用户,本系统应能让任何用户都不必借助任何操作手册或相关的系统帮助就能顺利地进行各种操作。
系统建成后预计将有大量的用户在此查询火车票信息并进行大量的预订操作,因此对系统的稳定性也有比较高的要求。一旦系统不能正常工作,会给用户群带来巨大的损失也将导致失去用户对系统的信任。
通过系统需求分析,对网上订票系统编制数据字典如下:
各主要数据流的定义如表1至表4所示:
表1
表2
表 3
表4
根据需求分析,可以画出系统E-R图如下:
图2 火车站网上订票系统E-R图
本系统的目标一方面为减少火车站售票人员在售票高峰期的工作压力,另一方面为用户提供一个查询火车票信息和预定火车票的平台。因此,本系统需要实现火车票信息的查询功能,火车票预定和火车票退订的功能。而为了让用户不丢失或者及时的修改信息,用户需要在系统进行简单的注册,登录,即系统还需实现用户的注册、登录功能。
根据系统需求分析和系统功能模块结构图来看,该系统应具备如下基本功能:
● 列车信息查询
● 已预订火车票信息查询
● 预订火车票
● 退订火车票
本火车站网上订票系统可划分为信息查询、网上订票、取消订票三个部分。其中信息查询又可分为车次查询和订单查询两个部分。其层次图如图3.1所示。
其功能模块结构图如下:
图3 程序功能模块图
图4 站站查询系统流程图
图5 车次信息查询系统流程图
图6 订票系统流程图
图7 退票系统流程图
本系统主界面为用户设计了三个功能操作以供选择:查询,订票,退票。另外,为方便用户,还将“退出系统”也单另列了出来,用户可以根据需要触发不同事件。其处理流程如图4.1所示。
1. 系统管理员以及系统用户操作处理流程
图8 系统管理员及系统用户操作流程图
2.列车信息查询流程
图9 列车信息查询流程图
3.退票处理流程
图10 退票处理流程图
数据库文件名:db_train
(1) 列车信息表结构(db_info)
列名 | 数据类型 | 允许Null值 |
发车站 | 文本 | 否 |
到达站 | 文本 | 否 |
车次 | 文本 | 否 |
车型 | 文本 | 否 |
运行时间 | 文本 | 否 |
里程 | 文本 | 否 |
参考票价 | Long | 否 |
余票信息 | Long | 否 |
发车-到达 | 文本 | 否 |
主键为:没有主键
(2)注册用户表结构(login)
列名 | 数据类型 | 允许Null值 | 描述 |
Usr | 文本 | 否 | 用户名 |
Pwd | 文本 | 否 | 用户密码 |
真实姓名 | 文本 | 否 | 真实姓名 |
身份证号码 | 文本 | 否 | 身份证号码 |
电话 | 文本 | 否 | 电话 |
取票地址 | 文本 | 否 | 取票地址 |
发车站 | 文本 | 是 | 发车站 |
到达站 | 文本 | 是 | 到达站 |
车次 | 文本 | 是 | 车次 |
票价 | Long | 是 | 票价 |
发车-到时 | 文本 | 是 | 发车-到时 |
主键为:没有主键
(2)管理员登陆表结构(masterlogin)
列名 | 数据类型 | 允许Null值 | 描述 |
Usr | 文本 | 否 | 用户名 |
Pwd | 文本 | 否 | 密码 |
主键为:没有主键
程序各个模块都要与数据库系统联系。物理数据结构主要用于各模块之间函数的信息传递。接口传递的信息将是以数据结构封装了的数据,以参数传递或返回值的形式在各模块间传输。
用户如果想要注册,则按要求输入信息,包括用户名,密码,确认密码。还要进行身份信息验证,包括真实姓名,身份证号,联系手机,收票地址。输入完后点击“注册”,则系统自动转入登陆界面。注册界面如下:
图11 注册界面
具体方法代码实现如下:
Private Sub Command1_Click()
If Not Text1.Text = "" And Not Text2.Text = "" And Not Text3.Text = "" And Not Text4.Text = "" And Not Text5.Text = "" And Not Text6.Text = "" And Not Text7.Text = "" And Text2.Text = Text3.Text Then
Data1.RecordSource = "select * from login where usr='" & Text1.Text & "'"
Data1.Refresh
If Not Data1.Recordset.EOF Then
MsgBox "对不起用户名已经被占用!重新输入", vbOKOnly + vbInformation, "提示"
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
End If
If Data1.Recordset.EOF Then
Data1.Recordset.addnew
Data1.Recordset.Fields(0) = Text1.Text
Data1.Recordset.Fields(1) = Text2.Text
Data1.Recordset.Fields(2) = Text4.Text
Data1.Recordset.Fields(3) = Text5.Text
Data1.Recordset.Fields(4) = Text6.Text
Data1.Recordset.Fields(5) = Text7.Text
Data1.Recordset.Fields(6) = ""
Data1.Recordset.Fields(7) = ""
Data1.Recordset.Fields(8) = ""
Data1.Recordset.Fields(9) = 0
Data1.Recordset.Fields(10) = ""
Data1.UpdateRecord
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text5.Text = ""
Text6.Text = ""
Text7.Text = ""
MsgBox "恭喜,注册成功!", vbOKOnly + vbInformation, "提示"
Me.Hide
Form_Unload (0)
End If
Else
MsgBox "您输入或者提供的信息不正确,请您重新输入!", vbOKOnly + vbInformation, "提示"
End If
End Sub
Private Sub Form_Load()
Data1.DatabaseName = App.Path & "\db_train.mdb"
End Sub
Private Sub Form_Unload(Cancel As Integer)
Train_ts.Show
End Sub
Private Sub Timer1_Timer()
If Check1.Value = 1 Then
Command1.Enabled = True
End If
If Check1.Value = 0 Then
Command1.Enabled = False
End If
End Sub
Private Sub Timer2_Timer()
If Not Text1.Text = "" Then
Label21.Caption = "√"
Else
Label21.Caption = ""
End If
If Not Text2.Text = "" Then
Label22.Caption = "√"
Else
Label22.Caption = ""
End If
If Text3.Text = Text2.Text And Not Text3.Text = "" Then
Label23.Caption = "√"
Else
Label23.Caption = ""
End If
If Not Text4.Text = "" Then
Label12.Caption = "√"
Else
Label12.Caption = ""
End If
If Not Text5.Text = "" Then
Label14.Caption = "√"
Else
Label14.Caption = ""
End If
If Not Text6.Text = "" Then
Label15.Caption = "√"
Else
Label15.Caption = ""
End If
If Not Text7.Text = "" Then
Label16.Caption = "√"
Else
Label16.Caption = ""
End If
End Sub
站站查询是用户在界面输入框输入想要查询的列车起始终点站城市名,即可查询相应的列车信息。
具体实现如下:
图12
代码:
If Not Text1.Text = "" And Not Text2.Text = "" And Text3.Text = "" Then
ListView1.ListItems.Clear
On Error Resume Next
Data1.Recordset.MoveFirst
Data1.RecordSource = "select * from tb_info where 发车站='" & Text1.Text & "'and 到达站='" & Text2.Text & "'"
Data1.Refresh
sign = 0
Do While Not Data1.Recordset.EOF
Set itmX = ListView1.ListItems.Add()
If Data1.Recordset.RecordCount > 0 Then
itmX.Text = Data1.Recordset.Fields(0)
itmX.SubItems(1) = Data1.Recordset.Fields(1)
itmX.SubItems(2) = Data1.Recordset.Fields(2)
itmX.SubItems(3) = Data1.Recordset.Fields(3)
itmX.SubItems(4) = Data1.Recordset.Fields(4)
itmX.SubItems(5) = Data1.Recordset.Fields(5)
itmX.SubItems(6) = Data1.Recordset.Fields(6)
itmX.SubItems(7) = Data1.Recordset.Fields(7)
itmX.SubItems(8) = Data1.Recordset.Fields(8)
Data1.Recordset.MoveNext
sign = 1
End If
Loop
If sign = 0 Then
MsgBox "抱歉,没有查询到从" & Text1.Text & "到" & Text2.Text & "的列车信息!", vbOKOnly + vbInformation, "提示"
End If
End If
单独的车次查询是在没有输入列车起始终点站城市名情况下,输入列车车次,点击查询即可显示所有该次列车的详细信息。
具体实现如下:
图13
代码如下:
If Text1.Text = "" And Text2.Text = "" And Not Text3.Text = "" Then
ListView1.ListItems.Clear
sign = 0
On Error Resume Next
Data1.Recordset.MoveFirst
Data1.RecordSource = "select * from tb_info where 车次='" & Text3.Text & "'"
Data1.Refresh
Do While Not Data1.Recordset.EOF
Set itmX = ListView1.ListItems.Add()
If Data1.Recordset.RecordCount > 0 Then
itmX.Text = Data1.Recordset.Fields(0)
itmX.SubItems(1) = Data1.Recordset.Fields(1)
itmX.SubItems(2) = Data1.Recordset.Fields(2)
itmX.SubItems(3) = Data1.Recordset.Fields(3)
itmX.SubItems(4) = Data1.Recordset.Fields(4)
itmX.SubItems(5) = Data1.Recordset.Fields(5)
itmX.SubItems(6) = Data1.Recordset.Fields(6)
itmX.SubItems(7) = Data1.Recordset.Fields(7)
itmX.SubItems(8) = Data1.Recordset.Fields(8)
Data1.Recordset.MoveNext
sign = 1
End If
Loop
If sign = 0 Then
MsgBox "抱歉,没有查询到车次为" & Text3.Text & "的列车信息!", vbOKOnly + vbInformation, "提示"
End If
End If
站站+车次查询是在精确输入列车起始终点站城市名和列车车次的情况下,点击查询即可显示所有该次列车的详细信息。
具体实现如下:
图14
代码如下:
If Not Text1.Text = "" And Not Text2.Text = "" And Not Text3.Text = "" Then
ListView1.ListItems.Clear
sign = 0
On Error Resume Next
Data1.Recordset.MoveFirst
Data1.RecordSource = "select * from tb_info where 发车站='" & Text1.Text & "'and 到达站='" & Text2.Text & "'and 车次='" & Text3.Text & "'"
Data1.Refresh
Do While Not Data1.Recordset.EOF
Set itmX = ListView1.ListItems.Add()
If Data1.Recordset.RecordCount > 0 Then
itmX.Text = Data1.Recordset.Fields(0)
itmX.SubItems(1) = Data1.Recordset.Fields(1)
itmX.SubItems(2) = Data1.Recordset.Fields(2)
itmX.SubItems(3) = Data1.Recordset.Fields(3)
itmX.SubItems(4) = Data1.Recordset.Fields(4)
itmX.SubItems(5) = Data1.Recordset.Fields(5)
itmX.SubItems(6) = Data1.Recordset.Fields(6)
itmX.SubItems(7) = Data1.Recordset.Fields(7)
itmX.SubItems(8) = Data1.Recordset.Fields(8)
Data1.Recordset.MoveNext
sign = 1
End If
Loop
If sign = 0 Then
MsgBox "抱歉,没有查询到从" & Text1.Text & "到" & Text2.Text & " 车次为" & Text3.Text & "的列车信息!", vbOKOnly + vbInformation, "提示"
End If
End If
以上面的三种方式查询列车信息,程序搜索数据库,如果查询到相关信息便显示在listview 框中,便于购票(退票)者查询阅读。
具体实现如下:
图15
代码如下:
Data1.Recordset.MoveFirst
Data1.RecordSource = "select * from tb_info where 发车站='" & Text1.Text & "'and 到达站='" & Text2.Text & "'and 车次='" & Text3.Text & "'"
Data1.Refresh
Do While Not Data1.Recordset.EOF
Set itmX = ListView1.ListItems.Add()
If Data1.Recordset.RecordCount > 0 Then
itmX.Text = Data1.Recordset.Fields(0)
itmX.SubItems(1) = Data1.Recordset.Fields(1)
itmX.SubItems(2) = Data1.Recordset.Fields(2)
itmX.SubItems(3) = Data1.Recordset.Fields(3)
itmX.SubItems(4) = Data1.Recordset.Fields(4)
itmX.SubItems(5) = Data1.Recordset.Fields(5)
itmX.SubItems(6) = Data1.Recordset.Fields(6)
itmX.SubItems(7) = Data1.Recordset.Fields(7)
itmX.SubItems(8) = Data1.Recordset.Fields(8)
Data1.Recordset.MoveNext
End If
Loop
当售票工作人员把售票信息列表显示出来后,乘客可以选择购票,如果余票足够多,乘客可以买到有座票,本系统没有详细设计车票打印程序,只以消息框的形式显示。购买成功,text11.text-1,并且更新数据库Data1.UpdateRecord。
图16
如果余票不足,乘客购买无座票
图17
具体代码如下:
If Text11.Text > 0 Then
Text11.Text = Text11.Text - 1
Else
MsgBox "座票已经售完!当前您购买无座票", vbOKOnly + vbInformation, "提示"
End If
Data1.RecordSource = "select * from tb_info where 发车站='" & Text4.Text & "'and 到达站='" & Text5.Text & "'and 车次='" & Text6.Text & "'"
Data1.Refresh
Data1.Recordset.Edit
Data1.Recordset.Fields(7) = Text11.Text
Data1.UpdateRecord
ListView1.ListItems.Clear
On Error Resume Next
Data1.Recordset.MoveFirst
Data1.RecordSource = "select * from tb_info where 发车站='" & Text4.Text & "'and 到达站='" & Text5.Text & "'"
Data1.Refresh
Do While Not Data1.Recordset.EOF
Set itmX = ListView1.ListItems.Add()
If Data1.Recordset.RecordCount > 0 Then
itmX.Text = Data1.Recordset.Fields(0)
itmX.SubItems(1) = Data1.Recordset.Fields(1)
itmX.SubItems(2) = Data1.Recordset.Fields(2)
itmX.SubItems(3) = Data1.Recordset.Fields(3)
itmX.SubItems(4) = Data1.Recordset.Fields(4)
itmX.SubItems(5) = Data1.Recordset.Fields(5)
itmX.SubItems(6) = Data1.Recordset.Fields(6)
itmX.SubItems(7) = Data1.Recordset.Fields(7)
itmX.SubItems(8) = Data1.Recordset.Fields(8)
Data1.Recordset.MoveNext
End If
Loop
Data1.RecordSource = "select * from login where usr='" & Label5.Caption & "'"
Data1.Refresh
Data1.Recordset.Edit
Data1.Recordset.Fields(6) = Text4.Text
Data1.Recordset.Fields(7) = Text5.Text
Data1.Recordset.Fields(8) = Text6.Text
Data1.Recordset.Fields(9) = Text10.Text
Data1.Recordset.Fields(10) = Text12.Text
Data1.UpdateRecord
Text4.Text = ""
Text5.Text = ""
Text6.Text = ""
Text7.Text = ""
Text8.Text = ""
Text9.Text = ""
Text10.Text = ""
Text11.Text = ""
Text12.Text = ""
MsgBox "订票成功!请您尽快去支付平台付款!", vbOKOnly + vbInformation, "成功购买"
End Sub
退票的实现和买票类似,乘客首先查询需要退票的列车信息,点击退票,如果退票成功,text11.text+1,并且更新数据库。
图19
具体代码:
On Error Resume Next
Dim iii As Integer
iii = MsgBox("确认退票?", vbYesNo + vbInformation, "提示")
If iii = 6 Then
Data1.RecordSource = "select * from tb_info where 发车站='" & Text8.Text & "'and 到达站='" & Text9.Text & "'and 车次='" & Text10.Text & "'"
Data1.Refresh
Data1.Recordset.Edit
Data1.Recordset.Fields(7) = Data1.Recordset.Fields(7) + 1
Data1.UpdateRecord
MsgBox "退票成功,系统退您 " & Text11.Text & "元!", vbOKOnly + vbInformation, "提示"
Data1.RecordSource = "select * from login where usr='" & Text1.Text & "'"
Data1.Refresh
Data1.Recordset.Edit
Data1.Recordset.Fields(6) = ""
Data1.Recordset.Fields(7) = ""
Data1.Recordset.Fields(8) = ""
Data1.Recordset.Fields(9) = ""
Data1.Recordset.Fields(10) = ""
Data1.UpdateRecord
Text8.Text = ""
Text9.Text = ""
Text10.Text = ""
Text11.Text = ""
Text12.Text = ""
End If
系统测试是管理信息系统的开发周期中的一个十分重要环节。尽管在系统开发周期的各个阶段均采取了严格的技术审查,但依然难免会留下错误,如果没有在投入运行前的系统测试阶段被发现并纠正,问题迟早会在运行中暴露出来,到那时要纠正错误将会付出更大的代价。系统测试占用的时间、花费的人力和成本占软件开发的很大比例。统计表明,开发较大规模的系统,系统测试的工作量大约占整个软件开发工作量的40%-50%。而对于一些特别重要的大系统,测试的工作量和成本更大,甚至超过系统开发其他各阶段的总和的若干倍。因此做好系统交付前的系统测试的目的就是在系统在投入生产性运行之前,尽可能多的发现系统的潜在错误,这是保证系统质量的关键,也是减少系统后期维护投入的最佳方法。
本次测试主要是对系统进行黑盒测试。由未参与系统编程的组员参与。通过设计不同的等价输入类对系统的各项功能进行反复运行,观察系统的返回结果来判断系统的各项功能的实现情况。
1 软件的正常运行、关闭及退出时保存记录情况。
2 用户界面是否友好,可操作性及安全性能是否良好。
3 数据库的可维护性好,数据的录入、删除及更改是否能顺利完成。
5 各模块的共能是否能达到预期要求。
6 系统的稳定性是够良好。
经过测试,用户能在本系统进行正常的注册和登录,并在用户输入不存在的用户名或错误的密码后能给出提示。说明本系统的注册和登录模块的各项功能都圆满实现了。
图20 新用户注册页面
图21 登录成功后的界面
图22 输入错误的用户名或密码后系统的提示界面
在本系统的搜索框中输入不同类容进行搜索时系统都能返回准确的结果。例如下图是在搜索站站查询中输入“北京”—›“上海”,或在车次查询中输入“K933”点击“查询”,如有需要进行“订票”或“退票”。从系统返回的结果,可看出本系统的搜索、订票和退票功能正常运行,即说明本系统的查询、订票和退票模块的各项功能都能良好实现。
图23 站站查询搜索结果
图24 站站查询搜索结果
图25 订票成功界面
图26 退票成功界面
用户登录后查看个人的相关信息,也可修改个人的相关信息,然后提交进行更新。
通过在本系统修改用户个人信息和系统返回的结果观察,可知本系统的信息修改和删除等各项功能均运行良好。
图27 用户个人信息修改界面
图28 信息修改成功后的界面
经过反复测试,系统完成后运行用户注册、登录、管理个人信息等功能均正常,发布1.0版。虽然此系统仍存在许多缺陷,但是通过该系统设计达到了系统设计目的意义,基本掌握了软件开发的主要步骤,了解了各环节在开发时要注意的问题,从方便用户的角度出发,去考虑开发出好的软件。另外,在设计过程中也逐渐提高了软件开发技能和编程技能。因此本设计虽然较粗糙,但是从学习的角度上看,非常有意义。
在本系统的开发过程中,使我们更清楚的了解了利用Visual Basic开发系统的流程, 但由于是第一次把 VB 语言应用于系统建设, 因此系统必然会存在一些缺陷和不足,特别是在功能方面不是很完善,与现实已经在经济社会领域投入使用的系统相比还有很大的缺陷与不足,但我们会在今后的学习过程中不断修改,使系统更加完善。尽管本系统存在着一些不足之处,但其基本功能比较全面、代码清晰明了易懂,易于日后程序更新、数据库加密保护用户信息、管理容易、界面美观友好、操作方便、效率高、安全性好等优点是本系统所必需的。相信本火车站网上订票系统在网络信息交流销售中是一套非常有用的系统,能给人们带来很大的帮助,缓解火车站售票的压力。在本次课程设计中,我们受益匪浅,这对于我以后的工作和学习都有一种巨大的帮助。在此,感谢颜富强老师耐心的辅导。另外,在系统开发过程中通过组员之间的密切合作,大家互相帮助,勇于向实际困难挑战,基本完成此次设计,极大增强了团队合作意识。
【1】 张海藩著,软件工程导论(第五版),清华大学出版社,2008年
【2】 刘彬彬著,Visual Basic程序设计标准教程,人民邮电出版社,2009年
【3】 刘白林著,Visual Basic数据库程序设计,西安交通大学出版社,2009年
【4】 刘瑞新著,Visual Basic程序设计教程,电子工业出版社,2007年
¥29.8
¥9.9
¥59.8