数据库课程设计车站售票系统.docx

上传人:b****5 文档编号:3259232 上传时间:2022-11-21 格式:DOCX 页数:23 大小:378.71KB
下载 相关 举报
数据库课程设计车站售票系统.docx_第1页
第1页 / 共23页
数据库课程设计车站售票系统.docx_第2页
第2页 / 共23页
数据库课程设计车站售票系统.docx_第3页
第3页 / 共23页
数据库课程设计车站售票系统.docx_第4页
第4页 / 共23页
数据库课程设计车站售票系统.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

数据库课程设计车站售票系统.docx

《数据库课程设计车站售票系统.docx》由会员分享,可在线阅读,更多相关《数据库课程设计车站售票系统.docx(23页珍藏版)》请在冰豆网上搜索。

数据库课程设计车站售票系统.docx

数据库课程设计车站售票系统

课程设计报告

设计名称:

数据库原理及应用课程设计

姓名:

学号:

专业班级:

计算机科学与技术

系(院):

计算机科学系

设计时间:

设计地点:

机房和教室

成绩:

指导教师评语:

 

签名:

年月日

数据库原理及应用课程设计

一、课程设计的目的

《数据库原理及应用》课程设计是计算机科学与技术专业集中实践性环节之一,是学习完《数据库原理及应用》课程后进行的一次全面的综合练习。

本课程设计主要在于加深学生对数据库基础理论和基本知识的理解,掌握数据库应用系统设计开发的基本方法,达到进一步使学生综合运用所学知识和增强实际动手能力的目的。

二、课程设计的任务与要求

要求学生根据自身对题目的理解情况,从给定的设计题目中选择一个,以MSSQLServer作为后台数据库平台,以PowerBuilder作为前台开发工具,完成一个小型数据库应用系统的系统的分析、设计和开发。

三、课程设计说明书

车站售票系统

课题简介:

车站售票管理系统是一套适用于各公路客运站的管理软件。

用户可在本系统中实现方便、快速的销售功能,包括车票的预订和退票的功能,能够支持团体的预订票和退票;能准确地了解售票情况,提供多种查询和统计功能,如车次的查询、时刻表的查询;能按情况所需实现对车次的更改、票价的变动及调度功能;有完善的报表系统;具有一定的维护功能。

并统计分析系统提供的各种统计信息表,便于顾客购票,也便于领导准确了解营收、客源等情况,并及时做出策略调整。

随着Internet技术的发展,人们对网络数据库的交互和查询速度等性能的要求越来越高。

未来车站的发展趋势是完全自动化的售票信息查询,网络订票,智能化订票,而且随着计算机的普及,信息处理量的逐渐扩大,手工处理方式已经远远不能满足人们管理活动的需要,各种工作都逐渐由手工转为自动化,将使许多复杂、繁琐、且需要很多人力的工作变得简单。

车站售票管理是本系统的根本任务,通过实现票务信息的计算机管理,以提高工作效率。

实现计算机管理的最佳技术就是数据库技术。

我们可以利用数据库将整个车站的票务情况存入计算机,再配置上功能丰富的用户接口,以满足用户需求。

一个车站售票信息管理系统应达到的目标是提供及时、广泛的信息服务,加快信息检索的效率,实况灵活的查询,减轻管理人员制作报表和统计分析的负担,且系统规模不太大但又要保证支持日常工作的要求,以便系统应易于扩充,方便日后统一联网与管理,提高管理水平。

车售票系统是用计算机管理车站票务信息的一种计算机应用技术的创新,在计算机还未普及之前售票业务都是由工作人员人工完成的,查询方式来操作的.现在一般的车站售票业务都采用计算机智能化管理,采用计算机作为工具的实用的计算机订单管理程序来帮助前台管理员进行更有效的车票业务查询,出售管理工作。

车票出售管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。

对于前者要求建立起数据一致性和完整性强、数据安全性好的库。

而对于后者则要求应用程序功能完备,易使用等特点。

1系统需求分析

1.1系统功能需求分析

车站售票管理系统要求具有方便、快速的销售功能,包括车票的预订和退票的功能,能够支持团体的预订票和退票;能准确地了解售票情况,提供多种查询和统计功能,如车次的查询、时刻表的查询;能按情况所需实现对车次的更改、票价的变动及调度功能;有完善的报表系统;具有一定的维护功能。

经过分析后确定系统应具备以下功能:

(1)、售票功能

1销售车票

2预订车票

3退票

(2)、查询功能

1车次查询

2时刻表查询

3预定情况查询

(3)、调度功能

1运价修改

2车辆修改

3终点站修改

4车次修改

(4)、维护功能

1车票表修改

2密码修改

3退出

(5)、统计功能

1售票统计

2报表打印

1.2数据需求分析

使用结构化分析方法,确定系统的数据主要是运价、车次、终点站名、发车时间和车票,对数据的操作主要有运价修改、车次修改、终点站修改、发车时间修改、售票及打印,可以确定系统的处理逻辑和流程,得到如下所示的系统数据流图。

 

 

1.3数据字典

经过分析可以得到以下数据流条目:

车次表=车辆编号+车型+座位数

终点站名表=站名+里程

运价表=车型+运价

发车时刻表=车次+车辆编号+站名+发车时间+检票口

已售车票表=票号+乘车日期+车次+站名+发车时间+票价+全半价+工号+退票否

预订车票表=预订号+乘车日期+车次+站名+发车时间+车型+票价+客户名称+订票数量

退票表=票号+退票时间+票价+应退款

售票员编号=工号+姓名

2系统总体设计

2.1系统总体结构设计

 

2.2系统数据模型设计

2.2.1E-R图

 

 

主键:

外键:

2.2.2关系模式

车辆(车辆编号,车型,座位数)

目标站名(站名,里程)

发车时刻表(车次,站名,车辆编号,发车时间,检票口)途径(车次,站名)

车票(票号,乘车日期,车次,站名,票价,全半价,座位号,工号,退票否)

预订(预订号,车次,站名,乘车日期,顾客名称,票数)

退票(票号,退票时间,票价,应退款)

售票员(工号,姓名)

运价(车型,价格)

2.2.3数据表

预定表

运价表

车辆表

车票表

管理员表

目标站名表

售票员表

发车时刻表

退票表

3.系统实施

结合PowerBuilder进行数据库应用开发的特点,设计过程可按如下步骤进行:

一、连接tickt数据库:

//Profiletickt

SQLCA.DBMS="MSSMicrosoftSQLServer"

SQLCA.Database="tickt"

SQLCA.LogPass="sa"

SQLCA.ServerName="37E48911880B444"

SQLCA.LogId="sa"

SQLCA.AutoCommit=False

SQLCA.DBParm=""

connect;

open(w_welcome)

二、制作登陆界面:

系统分为管理员登陆和售票员登陆,并且他们的权限是不同的,在后面的系统功能介绍中会做详细的介绍。

登陆代码:

stringusername,pas

username=trim(sle_name.text)

pas=trim(sle_pas.text)

ifisnull(username)ortrim(username)=""then

messagebox("提示","请输入用户名")

sle_name.setfocus()

return

endif

ifisnull(pas)ortrim(pas)=""then

messagebox("提示","请输密码")

sle_pas.setfocus()

return

endif

stringtemp

ifrb_2.checked=truethen

select密码into:

tempfrom售票员表

where工号=:

username;

elseifrb_1.checked=truethen

select密码into:

tempfrom管理员表

where工号=:

username;

else

messagebox("提示","请输入用户类型")

endif

ifsqlca.sqlcode=0then

iftrim(temp)=pasthen

open(w_main)

ifrb_2.checked=truethen

mainmenu.m_调度.m_运价修改.enabled=false

mainmenu.m_调度.m_车辆修改.enabled=false

mainmenu.m_调度.m_终点站修改.enabled=false

mainmenu.m_调度.m_车次修改.enabled=false

mainmenu.m_维护.m_车票表修改.enabled=false

mainmenu.m_维护.m_预订车票表修改.enabled=false

mainmenu.m_维护.m_退票表修改.enabled=false

mainmenu.m_维护.m_密码修改.enabled=false

endif

close(w_login)

else

messagebox("错误","输入有误")

endif

else

messagebox("错误","用户名或密码错误")

sle_name.setfocus()

return

endif

二、系统主界面:

下面介绍部分功能:

1.车票销售功能

输入目的地点击查询后

查询语句:

longrows

inta,b

stringtarget,checi

iftrim(sle_1.text)=""then

messagebox("提示","请输入目的地")

sle_1.setfocus()

return

endif

target=trim(sle_1.text)

iflen(target)>0then

dw_chepiao.setfilter("车票表_站名='"+target+"'")

dw_chepiao.filter()

rows=dw_chepiao.retrieve()

ifrows=0then

messagebox("提示","无车票")

return

endif

checi=dw_chepiao.object.车票表_车次[1]

a=dw_chepiao.object.发车时刻表_已订座位数[1]

b=dw_chepiao.object.车辆表_座位总数[1]

return

endif

销售语句:

inta,b

stringcheci

ifb>athen

a=a+1

Update发车时刻表set发车时刻表.已订座位数=:

a

where发车时刻表.车次=:

checi;

ifsqlca.sqlcode<>0then

messagebox("提示","车票销售失败")

rollback;

return

endif

commit;

messagebox("提示","销售成功")

else

messagebox("提示","座位数以满")

return

endif

查询到信息后点击销售按钮,销售成功后再次查询已订座位数变化了

其中售票窗口的控件的建立如下图所示:

2.下面演示预定功能和预定查询功能

选择好车次后输入预定的信息

预定语句:

stringcheci,cname,piaoshu,zhanming

zhanming=sle_4.text

cname=sle_1.text

checi=sle_3.text

piaoshu=sle_2.text

select车次

into:

checi

from预定表

where车次=:

checi;

iflen(checi)=0then

messageBox("错误","没有这个车次!

")

return

endif

insertinto预定表(车次,站名,顾客名称,票数)values(:

checi,:

zhanming,:

cname,:

piaoshu);

commit;

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

当前位置:首页 > 小学教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1