赞
踩
摘 要
本文主要阐述软件工程课程设计管理系统案例库中案例的建设过程。所选项目“机票预订系统”和“教务管理系统之子系统——系内课程安排”都具有典型的信息管理系统的特征。论文从软件工程的角度介绍了这两个案例的开发过程,包括可行性分析和需求分析,系统设计,文件和数据库设计,系统编码实现,测试。本系统采用了Asp,Access等技术。整篇论文,作者着重对“机票预订系统”进行了系统分析,开发,并对“教务管理系统之子系统——系内课程安排”进行了初步的分析。设计结果可作为软件工程课程设计训练的一个参考。
关键词:软件开发 数据流程 数据字典 案例
根据航空公司的需要,系统应当包含基本的功能有:用户注册、用户登录和管理员登录,航班查看等。用户则划分为基本乘客和管理员两大类,管理员还兼具有管理职能
当旅客需要订票时,旅行社把旅客的信息做一个备份,再把旅客的订票信息传给航空公司,航空公司则帮旅客安排航班,然后把安排好了的航班机票信息传回给旅行社,旅行社再通过对旅客订票记录的核实,产生取票通知,然后把取票通知发给旅客。具体流程如图2.2所示。
当旅客获得取票通知后,就可以拿着取票通知到航空公司去取票。但首先航空公司会对旅客的信息进行查询,其中会用到旅客的订票清单。当系统检测到已售出机票的信息后,就会打印机票给旅客。具体流程如图2.3所示。
在客户端的功能要求实现上,可以分为以下几个部分:
[1]旅客信息的输入和统计
旅行社把旅客要求订票的信息由专人负责输入。这部分功能是客户端子系统的基本部分,这个功能是以后各个部分的基础。系统要求做到即能够从其它子系统中共享一部分信息,又有方便的操作界面手工输入旅客信息。这部分要求对输入的数据进行简单的统计,供航空公司进行查询和宏观调控。
[2]旅客信息的存储:
将旅客的信息存储到旅行社的客户端系统中,以备以后的取票确认以及查询。
[3]机票信息的传递及接收:
将旅客所须的机票信息由旅行社客户端由网络传到航空公司的服务器上,并且接受航空公司返回的航班信息,然后存储起来。
[4]取票通知及账单的生成和打印:
把已存储的从航空公司返回的航班机票信息打印出来,并且生成账单打印出来一起交给旅客。印出机票给已经订票的旅客:根据旅客的取票通知及账单,经过确认无误后,接受旅客的付款后把机票印出来交给旅客。
[5]机票销售情况的核算
这一功能是在上一功能的基础上,对机票销售额进行单项核算,得到该旅行社的销售情况并把核算结果作为企业报表输出。
通过计算机网络将客户端与服务器的数据库相连,将从客户端得到的信息进行处理,实现航班查询,机票生成,销售统计,综合信息查询等子系统。以计算机成本核算为中心,实现销售业务的计算机自动化,为航空公司降低成本、提高销售额、经营决策提供及时精确的依据。
在客户端系统的功能实现上,可以分为以下几个部分:
[1]接收由旅行社客户端发回的所需机票信息:
通过网络接收机票信息并存入到服务器的数据库中。
[2]生成航班信息:
根据所需机票信息(时间,地点),在数据库中查询并得到正确的航班的信息(价格,时间,等级),分配所需的机票数并在数据库中做出已售出的标记。
[3]传递航班信息到客户端(旅行社):
把得到的航班信息通过网络传递到旅行社。
[4]接收旅行社的反馈信息:
对旅行社的反馈信息进行分析,把已经售出的机票进行统计,对被旅客所退掉的机票要进行数据库的恢复。
[5]印出机票给已经订票的旅客:
根据旅客的取票通知及账单,经过确认无误后,接受旅客的付款后把机票印出来交给旅客。
[6]销售额的分析和管理
这一步骤的功能要求包括对销售的机票进行分析,这一工作是在前面的基础上,以计算机为工具,对机票预定系统的功能和目标进行扩充。它以财务管理学为理论基础,以辅助决策为目标,以机票销售数据为中心,广泛采用统计学、运筹学的分析方法,对销售信息进行深层加工,建立反映不同航班需求的模型,提供管理上所需的各种辅助决策信息和财务信息。这一要求是机票预订系统的最高目标,将通过系统运行后获得的大量销售历史数据基础上,实现这一目标。
“机票预定系统”的系统设计,主要包括系统构架设计、详细页面设计和文件、数据库设计。
在对机票预定系统进行系统设计的时候,第一步先对机票预订系统逻辑模加以设计。本系统应该最少包括3个实体,包括:旅客,旅行社和航空公司。其中旅客包括:姓名、性别、旅行时间、旅行地点、工作单位、身份证号码这些属性。旅行社包括:订票旅客信息、售出机票信息和可售机票这些属性。而航空公司的属性主要是航班机票信息。而航班机票又包括:价格、时间、等级这些属性。具体设计如图2.4所示。
分析了逻辑模块图后,就应该来设计系统结构图来描述机票预订系统的软件总体结构。而本系统的结构图又要从两部分进行设计,先是客户端是结构图。客户端最基本的功能应该有接收输入数据、输出数据和联络服务器。框内注明了模块的名字;方框之间的直线表示模块的调用关系。具体设计如图2.5所示。
然后是本系统的服务器端结构图,作为系统的服务器端就应该要会接收数据,发送数据和数据处理、查询。具体设计如图2.6所示。
在分析了本系统的逻辑模型图和结构图后,我们就应该对本系统的具体功能流程图进行分析,首先是功能的总体描述。如图2.7所示。
然后是乘客预订机票的流程图。乘客把自己的身份证号输入到系统中,系统开始识别,发现身份证号不正确,那么就进入不了系统,当通过识别后,系统开始打印出取票通知,乘客去取票,系统如果发现此取票通知是无效的,那么系统将不再进行进一步运行,如果有效,继续审查交款发票,如果无效,同样也不能打印机票,如果系统通过,那么系统将打印出机票。这其中要查询乘客信息表,如图2.8所示。
当旅行社把乘客的信息输入到这个系统中,系统开始查询乘客是否已经订票,其中这里要查询订票文档,如果乘客已经订票,那么系统将退出,如果还没有订票,那么系统将为乘客进行注册,如图2.9所示。
乘客信息进入系统后,开始订票,系统就开始查询航班人数,如果乘客要订航班人数已经满员了,那么系统会提示乘客,航班已满,希望乘客另做安排。如果航班没有满,那么系统为乘客安排航班,如果航班有紧急问题,那么系统将另做安排,如图2.10所示。
支付订金后,乘客信息进入了系统,当乘客需要取票通知和账单的时候,系统会对相关信息进行查询,通过对机票文档的查询,系统会看信息是否符合,如果不符合,那么系统将不会打印取票通知和账单,如果信息符合,那么系统会打印取票通知和账单给乘客,如图2.11所示。
本身这个系统主要包括两个登录窗口:一个乘客登录窗口,一个管理员登录窗口。
当一个乘客访问这个页面的时候,他首先可看到,航班的线路,对航程有个初步的认识,并可以了解航线的价格。主页面上有3个基本功能:查看航线,乘客订票,乘客注册。查看航线是用户不需要进行登录就可以查看航线,价格的一个功能。乘客订票是需要乘客进行注册后才能拥有的功能,而第3个功能就是乘客订票,它需要乘客填写自己的信息后,进行申请,申请通过后,乘客才拥有了自己的订票权利。管理员登录窗口,我们设为初始值,管理员登录后拥有航线的添加,删改的功能。
下面作者分别对主页面,查看航线,乘客订票,乘客注册进行了代码设计。
主页面的设计:
图2.18 主页面
其实现代码为:
<% @Language="VBScript" CodePage=936%>
<!--#include File="conn.asp"-->
<%
dim rds
set rds=conn.Execute("Select * From HangXian")
%>
<html>
<head>
<meta http-equiv="Content-Language" content="zh-cn">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body>
<center>
<table border="1" width="762" id="table1" cellspacing="1" style="border-collapse: collapse" bordercolor="#000000" height="513">
<tr>
<td width="531" height="88" align="center" bgcolor="#00FFFF"><a href="HangBanXinxi.asp">查看航线</a>
<a href="SelectHX.asp">乘客订票</a>
<a href="UserReg.htm">乘客注册</a></td>
<td width="221" height="88" bgcolor="#FF00FF"> </td>
</tr>
<tr>
<td width="531" valign="top" bordercolor="#000000" bgcolor="#FFFFFF">
<table border="1" width="100%" cellspacing="1" style="border-collapse: collapse" bordercolor="#0000FF" id="table2">
<tr>
<td>起点</td>
<td>终点</td>
<td>价格</td>
</tr>
<%
if rds.bof and rds.eof then
%>
<tr>
<td colspan="3">目前没有航线信息!</td>
</tr>
<%
else
rds.MoveFirst
do
%>
<tr>
<td><%=rds("BeginPlace")%></td>
<td><%=rds("EndPlace")%></td>
<td>¥<%=rds("Price")%></td>
</tr>
<%
rds.MoveNext
loop until rds.eof
rds.close
end if
set rds=nothing
conn.close
set conn=nothing
%>
</table>
</td>
<td width="221" valign="top" bgcolor="#FFFF00">
<br>
<%
if Session("Name")<>"" then
response.write "欢迎:"& Session("Name")
response.write "<a href=""logout.asp"">退出</a>"
else
%>
<form method="POST" action="UserLogin.asp">
<p align="center">乘客登录<br>
登录号:<input type="text" name="UID" size="20"><br>
密 码:<input type="password" name="UPas" size="20"><br>
<input type="submit" value="提交" name="B1"><input type="reset" value="重置" name="B2"></p>
</form>
<br>
<form method="POST" action="AdminLogin.asp">
<p align="center">管理员登录<br>
登录号:<input type="text" name="AID" size="20"><br>
密 码:<input type="password" name="APas" size="20"><br>
<input type="submit" value="提交" name="B3"><input type="reset" value="重置" name="B4"></p>
</form>
<%
end if
%>
<p> </td>
</tr>
</table>
</body>
</center>
</html>
查看航线:
图 2.19 查看航线
其实现代码为:
<% @Language="VBScript" CodePage=936%>
<!--#include File="conn.asp"-->
<%
dim rds
set rds=conn.Execute("Select * From HangXian")
%>
<html>
<head>
<meta http-equiv="Content-Language" content="zh-cn">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>航线信息</title>
</head>
<body>
<center>
<table border="1" width="762" cellspacing="1" style="border-collapse: collapse" bordercolor="#000000">
<tr>
<td align="center"><font size="5">航线信息</font></td>
</tr>
<tr>
<td>
<table border="1" width="100%" cellspacing="1" style="border-collapse: collapse" bordercolor="#0000FF">
<tr>
<td>起点:</td>
<td>终点:</td>
<td>剩余座位</td>
<td>票价</td>
</tr>
<%
if rds.bof and rds.eof then
%>
<tr>
<td colspan="4">目前没有航线信息!</td>
</tr>
<%
else
rds.MoveFirst
do
%>
<tr>
<td><%=rds("BeginPlace")%></td>
<td><%=rds("EndPlace")%></td>
<td><%=rds("SYZuoWei")%></td>
<td>¥<%=rds("Price")%></td>
</tr>
<%
rds.MoveNext
loop until rds.eof
rds.close
end if
set rds=nothing
conn.close
set conn=nothing
%>
</table>
</td>
</tr>
<tr>
<td> </td>
</tr>
</table>
</center>
</body>
</html>
乘客订票:
订票的时候,要先查看航线信息并点选航线。
图 2.20 航线信息
其实现代码为:
<% @Language="VBScript" CodePage=936%>
<!--#include File="conn.asp"-->
<%
if Session("UID")="" then
response.write "请先登录!"
response.end
end if
dim rds
set rds=conn.Execute("Select * From HangXian")
%>
<html>
<head>
<meta http-equiv="Content-Language" content="zh-cn">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>选择航线</title>
</head>
<body>
<center>
<table border="1" width="762" cellspacing="1" style="border-collapse: collapse" bordercolor="#000000">
<tr>
<td align="center"><font size="5">航线信息</font></td>
</tr>
<tr>
<td>
<form action="EnterTicket.asp" method="post">
<table border="1" width="100%" cellspacing="1" style="border-collapse: collapse" bordercolor="#0000FF">
<tr>
<td></td>
<td>起点:</td>
<td>终点:</td>
<td>剩余座位:</td>
<td>票价:</td>
</tr>
<%
if rds.bof and rds.eof then
%>
<tr>
<td></td>
<td colspan="4">目前没有航线信息!</td>
</tr>
<%
else
rds.MoveFirst
do
%>
<tr>
<td><input type="radio" name="Selected" value="<%=rds("HXID")%>"></td>
<td><%=rds("BeginPlace")%></td>
<td><%=rds("EndPlace")%></td>
<td><%=rds("SYZuoWei")%></td>
<td>¥<%=rds("Price")%></td>
</tr>
<%
rds.MoveNext
loop until rds.eof
rds.close
end if
set rds=nothing
conn.close
set conn=nothing
%>
</table><center>
<input type="submit" value="选择航线">
<input type="reset"></center>
</form>
</td>
</tr>
<tr>
<td> </td>
</tr>
</table>
</center>
</body>
</html>
乘客只有查看了航线的信息,知道了航线的价格,时间等信息后,然后再进行订票:
图 2.21 订票窗口
其实现代码为:
<head>
<meta http-equiv="Content-Language" content="zh-cn">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>输入定票数量</title>
</head>
<body>
<center>
<form action="GetTicket.asp" method="post">
<table border="1" width="762" cellspacing="1" style="border-collapse: collapse" bordercolor="#000000">
<tr>
<td align="right">起点:</td>
<td align="left"><%=rds("BeginPlace")%></td>
</tr>
<tr>
<td align="right">终点:</td>
<td align="left"><%=rds("EndPlace")%></td>
</tr>
<tr>
<td align="right">剩余座位:</td>
<td align="left"><%=rds("SYZuoWei")%></td>
</tr>
<tr>
<td align="right">票价:</td>
<td align="left">¥<%=rds("Price")%></td>
</tr>
<tr>
<td align="right">输入票数:</td>
<td align="left"><input type="text" name="Num" size="8"></td>
</tr>
</table>
<center>
<input type="hidden" name="Selected" value="<%=request("Selected")%>">
<input type="submit" value="订购">
<input type="reset"></center>
</form>
</center>
</body>
</html>
乘客注册:
图2. 22用户注册图
其实现代码为:
<html>
<head>
<meta http-equiv="Content-Language" content="zh-cn">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>用户注册</title>
</head>
<script language="vbscript">
</script>
<body>
<center>
<table border="1" width="762" cellspacing="1" style="border-collapse: collapse" bordercolor="#000000">
<tr>
<td align="center"><font size="5">用户注册</font></td>
</tr>
<tr>
<td>
<form action="RegU.asp" method="post" id="frm">
<table border="1" width="100%" cellspacing="1" style="border-collapse: collapse" bordercolor="#0000FF">
<tr>
<td align="right">登录号:</td>
<td align="left"><input type="text" name="UID" size="20" id="UID"></td>
</tr>
<tr>
<td align="right">登录密码:</td>
<td align="left"><input type="password" name="UPas" size="20"></td>
</tr>
<tr>
<td align="right">确认密码:</td>
<td align="left"><input type="password" name="RePas" size="20"></td>
</tr>
<tr>
<td align="right">姓名:</td>
<td align="left"><input type="text" name="UName" size="8"></td>
</tr>
<tr>
<td align="right">性别:</td>
<td align="left"><select size="1" name="Sex">
<option selected value="1">男</option>
<option value="2">女</option>
</select></td>
</tr>
<tr>
<td align="right">身份证号码:</td>
<td align="left"><input type="text" name="PID" size="18"></td>
</tr>
</table>
<p align="center"><input type="submit" value="提交" name="B1"><input type="reset" value="重置" name="B2"><br>
</p>
</form>
</td>
</tr>
<tr>
<td> </td>
</tr>
</table>
</center>
</body>
</html>
以上就是主要是对主页面,查看航线,乘客订票,乘客注册进行了代码设计,这是整个系统主要页面的代码设计,其他页面的代码请查看附录。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。