![数据库课程设计报告-车站售票管理系统_第1页](http://file4.renrendoc.com/view/6840ccae4a29e0518dec3717fd1c1645/6840ccae4a29e0518dec3717fd1c16451.gif)
![数据库课程设计报告-车站售票管理系统_第2页](http://file4.renrendoc.com/view/6840ccae4a29e0518dec3717fd1c1645/6840ccae4a29e0518dec3717fd1c16452.gif)
![数据库课程设计报告-车站售票管理系统_第3页](http://file4.renrendoc.com/view/6840ccae4a29e0518dec3717fd1c1645/6840ccae4a29e0518dec3717fd1c16453.gif)
![数据库课程设计报告-车站售票管理系统_第4页](http://file4.renrendoc.com/view/6840ccae4a29e0518dec3717fd1c1645/6840ccae4a29e0518dec3717fd1c16454.gif)
![数据库课程设计报告-车站售票管理系统_第5页](http://file4.renrendoc.com/view/6840ccae4a29e0518dec3717fd1c1645/6840ccae4a29e0518dec3717fd1c16455.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
淮海工学院计算机工程学院
课程设计报告
设计名称:数据库原理及应用设计课程设计
姓名:学号:
专业班级:
系(院):
设计时间:
设计地点:
成绩:
指导教师评语:
签名:
年月日
<<数据库原理及应用>>课程设计报告第
PAGE
23
页,共
NUMPAGES
23
页
一、概述
1、项目背景:随着市场经济的不断飞速发展,交通道路环境的不断改善,人们的出行次数不断增多,人口流动频繁,数量不断加大,车站信息量迅猛增长,车站售票管理系统在人们的日常生活中发挥着越来越重要的作用。本系统实现了线路信息,汽车信息,票务信息的查询和管理,满足人们的需求。
2、编写目的:掌握数据库设计原理及相关软件的使用。实现方便、快速售票;是用户准确了解售票情况,提供多种查询和统计功能;实现系统的安全性设置,使系统本身具有一定的维护功能。
3、软件定义:车站售票管理系统,主要用于车站日常的票务处理。
4、开发环境:VisualStudio2008,SQLSERVER2000
二、需求分析
功能模块图
1,员工管理模块:
员工有两种身份,售票员和系统管理员。系统管理员可以进行系统用户的添加,密码的修改操作,汽车,线路,车票信息的更新等,售票员可以查询以上信息和购买车票等。
2,线路信息管理模块:
系统管理员可以在线路信息管理模块对车站线路信息进行管理。管理员首先建立线路信息数据库,输入原始的线路信息,当有新的线路需要添加或者需要对已有的线路信息进行修改,删除的时候,管理员就可以进行相应的操作。管理员也可以通过本模块查询到所有需要查询的线路的详细信息。
3,汽车信息管理模块:
系统管理员可以在汽车信息管理模块实现对汽车信息的管理。管理员首先应该建立汽车信息数据库,输入原始的数据信息,当有新的汽车信息的时候或者管理员需要修改某个汽车的相关信息以及想要删除某个汽车信息的时候,就可以完成相应的操作。管理员也可以在整个数据库中查询相关汽车信息。
4,车票信息管理模块:
系统管理员可以在车票管理模块实现对车票信息的管理。管理员根据相应的汽车信息和线路信息来设置相应的车票详细信息。管理员还可以对某条线路的车票信息进行修改,删除和查询操作。
5,车票订购信息模块
用户可以通过查询时间,线路和汽车信息,来确定自己要买什么时间,什么路线,什么型号的汽车的车票,并形成表单。
程序分为登陆界面,主界面,线路信息管理界面,汽车信息管理界面,车票信息管理界面,票务信息管理界面,员工管理界面这几个主体界面。使用时应先知道管理员或员工帐号和密码,登陆进入系统主菜单界面,里面包括线路信息,汽车信息,车票信息,票务信息,帮助,退出程序菜单选项。
三、系统设计
(一)数据流图:
顶层数据流图
1层车票数据流图
(二)数据字典:
数据项
编号
数据项名
数据项含义说明
数据类型
长度
与其他数据项的关系
是否可以为空
1
Uno
用户编号
整型
4
User表主键
不
2
UserName
姓名
nvarchar
20
不
3
Password
密码
nvarchar
20
不
4
UserIdentiey
身份
nvarchar
20
不
5
Cno
汽车编号
整型
4
Coach表主键
不
6
Coachnumber
车牌号
nvarchar
20
不
7
Ctype
汽车型号
nvarchar
20
8
Ctime
购买时间
datetime
8
9
Cnum
座位数量
整型
4
不
10
Ctv
有无电视
char
10
11
Ccondition
有无空调
char
10
12
Coachholder
负责人
nvarchar
20
不
13
Lno
线路编号
整型
4
Line表主键
不
14
Ldepart
起始城市
nvarchar
20
不
15
Larrival
到达城市
nvarchar
20
不
16
Ltime
路程时间
datetime
8
17
Tno
车票编号
整型
4
Ticket表主键
不
18
Price
车票价格
整型
4
不
19
SoldTicket
已卖票数
整型
4
不
20
LastTicket
剩余票数
整型
4
不
21
Tdate
出发日期
datetime
8
不
22
Ttime
出发时间
datetime
8
不
23
Ptime
购买时间
datetime
8
24
Seat
座位号
整型
4
不
25
ReserveORBuy
预定或购买
char
10
不
26
Cityno
站点编号
整型
4
City表主键
不
27
CityName
站点名称
nvarchar
20
不
数据结构
编号
数据结构名
属性
1
员工
员工编号,姓名,密码,身份
2
汽车
汽车编号,汽车型号,车牌号,购买时间,座位数量,有无电视,有无空调,负责人
3
线路
线路编号,起始城市,到达城市,路程时间
4
车票
车票编号,线路编号,汽车编号,车票价格,已卖票数,剩余票数,出发日期,出发时间
5
购票
车票编号,购买日期,预定或购买,座位号
6
站点
站点编号,站点名称
数据流
编号
数据流名
输入
输出
1
变更汽车信息
变更信息
汽车记录
2
查询汽车信息
汽车编号/汽车型号/车牌号/有无电视/有无空调/负责人
汽车记录
3
变更站点信息
变更信息
站点记录
4
变更线路信息
变更信息
线路记录
5
查询线路信息
线路编号/起始城市,到达城市
线路记录
6
变更车票信息
变更信息
车票记录
7
查询车票信息
车票编号/起始城市,到达城市/汽车型号/出发日期,出发时间
车票记录
8
预定车票
车票编号,购买日期,预定或购买
预订记录
9
购买车票
车票编号,购买日期,预定或购买
购买记录
10
查询购买情况
车票编号/起始城市,到达城市/汽车型号
购买记录
11
更改用户
变更信息
用户记录
12
员工信息
用户输入电脑的用户名、密码
系统主菜单
数据存储
数据存储名
输入数据流
输出数据流
说明部分
用户信息
变更用户信息
查询用户信息
汽车信息
变更汽车信息
查询汽车信息
线路信息
变更线路信息
查询线路信息
车票信息
变更车票信息
查询车票信息
预定车票信息
车票信息
预订记录
购买车票信息
车票信息
购买记录
处理过程
处理过程名
输入数据流
输出数据流
处理操作
查询
已知汽车/线路/车票信息
所需信息
购买/预定
车票信息+购票时间+座位号
无
更新
变更信息
再次查询信息
用户权限认证
用户名,密码,身份
系统主菜单
用户登录
(三)E-R图
(四)关系模型:
1,User员工表(员工编号Uno,姓名UserName,密码Password,身份UserIdentiey)
2,Coach汽车信息表(汽车编号Cno,汽车型号Ctype,车牌号Coachnumber,购买时间Ctime,座位数量Cnum,有无电视Ctv,有无空调Ccondition,负责人Coachholder)
3,Line线路信息表(线路编号Lno,起始城市Ldepart,到达城市Larrival,路程时间Ltime)
4,Ticket车票信息表(车票编号Tno,线路编号Lno,汽车编号Cno,车票价格Price,已卖票数SoldTicket,剩余票数LastTicket,出发日期Tdate,出发时间Ttime)
5,Purchase车票购买表(车票编号Tno,购买日期Ptime,预定或购买ReserveORBuy,座位号Seat)
6,City站点表(站点编号Cityno,站点名称CityName)
四、系统实现
(一)数据库设计:
1,City站点表:
2,Userinfo员工表:
3,Ticket车票信息表:
4,Coach汽车信息表:
5,Purchase车票购买表:
6,Line线路表:
(二)主要界面及代码
1,登录界面:
登录操作代码:
protectedvoidbtn_dl_Click(objectsender,EventArgse)
{
if(string.IsNullOrEmpty(tbx_yhm.Text.Trim()))
{
thrownewException("用户名不能为空");
}
if(string.IsNullOrEmpty(tbx_pwd.Text.Trim()))
{
thrownewException("密码不能为空");
}
checkYZM();
Struct_LoginContextloginContext=newStruct_LoginContext(Session.SessionID,Request.UserHostAddress);
switch(ddlt_lx.SelectedValue)
{
case"1":
Session["UserState"]=newUserState(tbx_yhm.Text,tbx_pwd.Text,refloginContext);
Response.Redirect("Manager/Default.aspx#posts");
break;
case"2":
Session["UserState"]=newUserState(tbx_yhm.Text,tbx_pwd.Text,refloginContext);
Response.Redirect("Admin/Default.aspx#posts");
break;
default:break;
}
}
(3)存储过程:
procedureUserLogin
(
loginNameUserdl.User_Name%type,
loginPwdUserdl.User_Pwd%type,
userIDoutUserdl.Userid%type,
p_errorCodeoutnumber
)
as
begin
p_errorCode:=0;
selectcount(*)intop_errorCodefromUserdlwhereUserdl.User_Name=loginNameandUser_pwd=loginPwd;
ifp_errorCode=0then
p_errorCode:=1;
return;
endif;
p_errorCode:=0;
selectUserdl.UseridintouserIDfromUserdlwhereUserdl.User_Name=loginNameandUser_pwd=loginPwd;
endUserLogin;
2,系统主界面
3,汽车信息管理界面:
添加操作代码:
protectedvoiddlt_qcxx_DeleteCommand(objectsource,DataListCommandEventArgse)
intid=Convert.ToInt32(dlt_qcxx.DataKeys[e.Item.ItemIndex].ToString());
gpgn.SCQCXX(id);
Response.Write("<script>alert('删除成功!');document.location=document.location;</script>");
bind();
}
存储过程:
procedureQCXX
(
p_curoutcur
)
as
begin
openp_curfor
selectcoach.c_idid,coach.c_numbercph,coach.c_timegmsj,coach.c_seatsnumzws,coach.c_holderfzrfromcoach;
endQCXX;
--功能:更新汽车信息
procedureGXQCXX
(
p_idcoach.c_id%type,
p_cphcoach.c_number%type,
p_gmsjcoach.c_time%type,
p_zwscoach.c_seatsnum%type,
p_fzrcoach.c_holder%type
)
as
begin
updatecoachsetc_number=p_cph,c_time=p_gmsj,c_seatsnum=p_zws,c_holder=p_fzrwherec_id=p_id;
commit;
endGXQCXX;
--删除汽车信息
procedureSCQCXX
(
p_idcoach.c_id%type
)
as
begin
deletefromcoachwherecoach.c_id=p_id;
commit;
endSCQCXX;
--添加汽车信息
procedureTJQCXX
(
p_cphcoach.c_number%type,
p_gmsjcoach.c_time%type,
p_zwscoach.c_seatsnum%type,
p_fzrcoach.c_holder%type
)
as
begin
insertintocoach(c_id,c_type,c_number,c_time,c_seatsnum,c_tv,c_air_condition,c_holder)
values(SEQ_COACH.NEXTVAL,1,p_cph,p_gmsj,p_zws,1,1,p_fzr);
commit;
endTJQCXX;
5,线路信息管理界面:
搜索操作代码:
protectedvoiddlt_xlxx_DeleteCommand(objectsource,DataListCommandEventArgse)
{
intid=Convert.ToInt32(dlt_xlxx.DataKeys[e.Item.ItemIndex].ToString());
gpgn.SCLXXX(id);
Response.Write("<script>alert('删除成功!');document.location=document.location;</script>");
bind();
}
6,车票信息管理界面:
7,车票信息管理中,选择汽车和路线界面:
8,票务管理界面:
查询操作代码:
//查询车票信息
protectedDataSetCXCPXX()
{
DBClassdb=newDBClass();
try
{
OracleParameter[]paras={
newOracleParameter("p_cur",OracleType.Cursor)
};
paras[0].Direction=ParameterDirection.Output;
DataSetds=db.RunProcedure("PACK_PWGL.CXCPXX",paras,"tb");
returnds;
}
finally
{
db.Close();
}
}存储过程
procedurePW_Select
(
p_scitycity.city_id%type,
p_endcitycity.city_id%type,
p_pageSizenumber,
p_pageIndexnumber,
p_curoutcur
)
as
p_minRowNumnumber;
p_maxRowNumnumber;
begin
p_minRowNum:=p_pageIndex*p_pageSize;
p_maxRowNum:=(p_pageIndex+1)*p_pageSize;
openp_curfor
select*from
(
selectt1.t_datetimeccsj,t1.t_priceprice,t1.t_lastticketssyps,c1.city_namecity1,c2.city_namecity2,t1.t_id,coach.c_number,rownumrnfrom
(select*fromticketswheretickets.t_l_idin(selectt.l_idfromlinetwheret.l_depart=p_scityandt.l_arrival=p_endcity)
--andSysdate<tickets.t_datetime
)t1
leftjoincoachont1.t_c_id=coach.c_id
leftjoinLineonLine.l_Id=t1.t_l_id
leftjoincityc1onc1.city_id=line.l_depart
leftjoincityc2onc2.city_id=line.l_arrival
)t3wheret3.rn>p_minRowNumandrn<=p_maxRowNum;
endPW_Select;
预订/购买操作代码:
protectedintGMCP(intcpid)
{
DBClassdb=newDBClass();
try
{
OracleParameter[]paras={
newOracleParameter("p_id",OracleType.Int32),
newOracleParameter("p_ddh",OracleType.Int32)
};
paras[0].Value=cpid;
paras[1].Direction=ParameterDirection.Output;
inteffort=0;
db.RunProcedure("PACK_PWGL.GMCP",paras,outeffort);
intddh=Convert.ToInt32(paras[1].Value);
returnddh;
}
finally
{
db.Close();
}
}
存储过程
procedureGMCP
(
p_idtickets.t_id%type,--车票id
p_ddhoutpurchase.p_id%type--订单号
)
as
begin
insertintopurchase(p_id,p_c_id,p_time,p_or_b)values(seq_purchase.nextval,p_id,Sysdate,1);--1表示购票
selectseq_purchase.currvalintop_ddhfromdual;
updateticketssettickets.t_soldtickets=t_soldtickets+1,tickets.t_lasttickets=t_lasttickets-1wheretickets.t_id=p_id;
commit;
endGMCP;
9,站点管理界面
10,购买成功界面及打印订单信息
数据库连接类代码:
publicclassDBClass
{
privatestaticstringconnectionString=GetConStr("connectionstring");
privateOracleConnectionConnection;//*3NO.2
privateOracleTransactiontx;//*1NO.3
privateboolisCommit;
privatestaticstringDecodeBase64(stringcode)
{
stringdecode="";
byte[]bytes=Convert.FromBase64String(code);
try
{
decode=Encoding.Default.GetString(bytes);
}
catch
{
decode=code;
}
returndecode;
}
privatestaticstringGetConStr(stringsKey)
{
lock(typeof(DBClass))
{
XmlDocumentoXmlDocument=newXmlDocument();
string_strFileName=System.AppDomain.CurrentDomain.BaseDirectory.ToString()+"#Sys.config";
stringstrReturn="";
try
{
oXmlDocument.Load(_strFileName);
XmlNodeListoXmlNodeList=oXmlDocument.DocumentElement.ChildNodes;
foreach(XmlElementoXmlElementinoXmlNodeList)
{
if(oXmlElement.Name.ToLower()=="appsettings")
{
XmlNodeList_node=oXmlElement.ChildNodes;
if(_node.Count>0)
{
foreach(XmlElement_elin_node)
{
if(_el.Attributes["key"].InnerXml.ToLower()==sKey.ToLower())
{
strReturn=_el.Attributes["value"].Value;
break;
}
}
}
}
}
}
catch(Exceptionexp)
{
throw(exp);
}
returnDecodeBase64(strReturn);
}
}
publicstaticvoidSynData()
{
lock(typeof(DBClass))
{
connectionString=GetConStr("connectionstring");
}
}
publicDBClass()
{
tx=null;
isCommit=false;
Connection=newOracleConnection(connectionString);
Connection.Open();
}
publicDBClass(boolisUseTransaction)
{
isCommit=false;
Connection=newOracleConnection(connectionString);
Connection.Open();
if(isUseTransaction)
{
tx=Connection.BeginTransaction();
}
else
{
tx=null;
}
}
privateOracleCommandBuildQueryCommand(stringstoredProcName,IDataParameter[]parameters)
{
OracleCommandcommand;
if(tx==null)
{
command=newOracleCommand(storedProcName,Connection);//*8NO.4
}
else
{
command=newOracleCommand(storedProcName,Connection,tx);
}
//command.CommandTimeout=60;//-1NO.8
command.CommandType=CommandType.StoredProcedure;
foreach(OracleParameterparameterinparameters)//*2NO.7
{
command.Parameters.Add(parameter);
}
returncommand;
}
privateOracleCommandBuildIntCommand(stringstoredProcName,IDataParameter[]parameters)
{
OracleCommandcommand=BuildQueryCommand(storedProcName,parameters);
returncommand;
}
publicvoidRunProcedure(stringstoredProcName,IDataParameter[]parameters,outintrowsAffected)
{
try
{
if(tx!=null)
{
isCommit=true;
}
// intresult;
OracleCommandcommand=BuildIntCommand(storedProcName,parameters);
rowsAffected=command.ExecuteNonQuery();
// result=(int)command.Parameters["ReturnValue"].Value;
// returnresult;
}
catch(Exceptionex)
{
isCommit=false;
throw(ex);
}
}
publicOracleDataReaderRunProcedure(stringstoredProcName,IDataParameter[]parameters)
{
try
{
if(tx!=null)
{
isCommit=true;
}
OracleDataReaderreturnReader;//*2NO.5
OracleCommandcommand=BuildQueryCommand(storedProcName,parameters);
returnReader=command.ExecuteReader();
returnreturnReader;
}
catch(Exceptionex)
{
isCommit=false;
throw(ex);
}
}
publicDataSetRunProcedure(stringstoredProcName,IDataParameter[]parameters,stringtableName)
{
try
{
if(tx!=null)
{
isCommit=true;
}
DataSetdataSet=newDataSet();
OracleDataAdaptersqlDA=newOracleDataAdapter();//*4NO.6
sqlDA.SelectCommand=BuildQueryCommand(storedProcName,parameters);
sqlDA.Fill(dataSet,tableName);
returndataSet;
}
catch(Exceptionex)
{
isCommit=false;
throw(ex);
}
}
publicvoidRunProcedure(stringstoredProcName,IDataParameter[]parameters,DataSetdataSet,stringtableName)
{
try
{
if(tx!=null)
{
isCommit=true;
}
OracleDataAdaptersqlDA=newOracleDataAdapter();
sqlDA.SelectCommand=BuildIntCommand(storedProcName,parameters);
sqlDA.Fill(dataSet,tableName);
}
catch(Exceptionex)
{
isCommit=false;
throw(ex);
}
}
publicvoidEnableCommit()
{
if(tx==null)
{
stringexMessage="只用启用publicDBClass(stringnewConnectionString,boolisUseTransaction)构造函数时该方法才有效!";
Applica
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 IEC 62541-5:2015 EN-FR OPC Unified Architecture - Part 5: Information Model
- 【正版授权】 IEC 62497-1:2010+AMD1:2013 CSV EN-FR Railway applications - Insulation coordination - Part 1: Basic requirements - Clearances and creepage distances for all electricalan
- 工位租赁合同
- 仓库数据分析与业务决策支持计划三篇
- 学习借款合同
- 农业机械运输服务合同
- 供应链管理和物流优化计划三篇
- 2023年复烤烟叶项目综合评估报告
- 体育馆建设工程合同
- 2024年竞聘演讲稿开头
- 2024年河北省中考语文试题(附答案)
- 2024山东省应急安全科普答题题库附答案(1-310题)
- 贵州省黔东南苗族侗族自治州2023-2024学年五年级下学期期末数学模拟测试卷
- 体育教师专业知识考试及参考答案
- 新媒体实务智慧树知到期末考试答案章节答案2024年内蒙古鸿德文理学院
- 国家开放大学《心理健康教育》形考任务1-9参考答案
- 2023年湖北省普通高中学业水平合格性考试地理试题(原卷版)
- 汽车维修工时收费标准(二类企业)
- 国开电大本科《人文英语4》机考总题库
- 国开本科《商务英语4》机考题库及答案
- 国家开放大学机械制图形考任务1-4答案
评论
0/150
提交评论