数据库课程设计--车站售票系统
数据库原理及应用课程设计
一、课程设计的目的
《数据库原理及应用》课程设计是计算机科学与技术专业集中实践性环节之一,是学习完《数据库原理及应用》课程后进行的一次全面的综合练习。本课程设计主要在于加深学生对数据库基础理论和基本知识的理解,掌握数据库应用系统设计开发的基本方法,达到进一步使学生综合运用所学知识和增强实际动手能力的目的。
二、课程设计的任务与要求
要求学生根据自身对题目的理解情况,从给定的设计题目中选择一个,以MS SQL Server作为后台数据库平台,以PowerBuilder 作为前台开发工具,完成一个小型数据库应用系统的系统的分析、设计和开发。
三、课程设计说明书
车站售票系统
课题简介:
车站售票管理系统是一套适用于各公路客运站的管理软件。用户可在本系统中实现方便、快速的销售功能,包括车票的预订和退票的功能,能够支持团体的预订票和退票;能准确地了解售票情况,提供多种查询和统计功能,如车次的查询、时刻表的查询;能按情况所需实现对车次的更改、票价的变动及调度功能;有完善的报表系统;具有一定的维护功能。并统计分析系统提供的各种统计信息表,便于顾客购票,也便于领导准确了解营收、客源等情况,并及时做出策略调整。
随着Internet 技术的发展,人们对网络数据库的交互和查询速度等性能的要求越来越高。未来车站的发展趋势是完全自动化的售票信息查询,网络订票, 智能化订票, 而且随着计算机的普及,信息处理量的逐渐扩大,手工处理方式已经远远不能满足人们管理活动的需要,各种工作都逐渐由手工转为自动化,将使许多复杂、繁琐、且需要很多人力的工作变得简单。
车站售票管理是本系统的根本任务,通过实现票务信息的计算机管理,以提高工作效率。实现计算机管理的最佳技术就是数据库技术。我们可以利用数据库将整个车站的票务情况存入计算机,再配置上功能丰富的用户接口,以满足用户需求。一个车站售票信息管理系统应达到的目标是提供及时、广泛的信息服务,加快信息检索的效率,实况灵活的查询,减轻管理人员制作报表和统计分析的负担,且系统规模不太大但又要保证支持日常工作的要求,以便系统应易于扩充,方便日后统一联网与管理,提高管理水平。
车售票系统是用计算机管理车站票务信息的一种计算机应用技术的创新, 在计算机还未普及之前售票业务都是由工作人员人工完成的, 查询方式来操作的. 现在一般的车站售票业务都采用计算机智能化管理, 采用计算机作为工具的实用的计算机订单管理程序来帮助前台管理员进行更有效的车票业务查询, 出售管理工作。车票出售管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备, 易使用等特点。
1系统需求分析
1.1系统功能需求分析
车站售票管理系统要求具有方便、快速的销售功能,包括车票的预订和退票的功能,能够支持团体的预订票和退票;能准确地了解售票情况,提供多种查询和统计功能,如车次的查询、时刻表的查询;能按情况所需实现对车次的更改、票价的变动及调度功能;有完善的报表系统;具有一定的维护功能。 经过分析后确定系统应具备以下功能: (1)、售票功能
① 销售车票 ② 预订车票 ③ 退票
(2)、查询功能
① 车次查询 ② 时刻表查询 ③ 预定情况查询
(3)、调度功能
① 运价修改 ② 车辆修改 ③ 终点站修改 ④ 车次修改
(4)、维护功能
① 车票表修改 ② 密码修改 ③ 退出
(5)、统计功能
① 售票统计 ② 报表打印
1.2数据需求分析
使用结构化分析方法,确定系统的数据主要是运价、车次、终点站名、发车时间和车票,对数据的操作主要有运价修改、车次修改、终点站修改、发车时间修改、售票及打印,可以确定系统的处理逻辑和流程,得到如下所示的系统数据流图。
1.3 数据字典
经过分析可以得到以下数据流条目: 车次表=车辆编号+车型+座位数 终点站名表=站名+里程 运价表=车型+运价
发车时刻表=车次+车辆编号+站名+发车时间+检票口
已售车票表=票号+乘车日期+车次+站名+发车时间+票价+全半价+工号+退票否 预订车票表=预订号+乘车日期+车次+站名+发车时间+车型+票价+客户名称+订票数量 退票表=票号+退票时间+票价+应退款
售票员编号=工号+
姓名
2 系统总体设计
2.1
系统总体结构设计
售票功能 查询功能 调度功能 维护功能 统计功能
票票
销预退售订票车车
车次查询
时刻表查询
售票情况查询
运价修改车辆修改
终点站修改
车次修改
已售车票表预订车票表
退票表
售票统计报表打印
ppiao
2.2系统数据模型设计
2.2.1 E-R图
主键: 2.2.2 关系模式
车辆(车辆编号,车型,座位数)
目标站名(站名,里程)
发车时刻表(车次,站名,车辆编号,发车时间,检票口)途径(车次,站名) 车票(票号,乘车日期,车次,站名,票价,全半价,座位号,工号,退票否) 退票(票号,退票时间,票价,应退款) 售票员(工号,姓名) 运价(车型,价格)
2.2.3 数据表
预定表
运价表
车辆表
车票表
管理员表
目标站名表
售票员表
发车时刻表
退票表
3.系统实施
结合PowerBuilder 进行数据库应用开发的特点,设计过程可按如下步骤进行:
一、连接tickt 数据库: // Profile tickt
SQLCA.DBMS = "MSS Microsoft SQL Server" SQLCA.Database = "tickt" SQLCA.LogPass = "sa"
SQLCA.ServerName = "37E48911880B444" SQLCA.LogId = "sa"
SQLCA.AutoCommit = False SQLCA.DBParm = "" connect;
open(w_welcome) 二、制作登陆界面:
系统分为管理员登陆和售票员登陆,并且他们的权限是不同的,在后面的系统功能介绍中会做详细的介绍。
登陆代码:
string username,pas
username = trim(sle_name.text) pas = trim(sle_pas.text)
if isnull(username) or trim(username)="" then messagebox("提示"," 请输入用户名") sle_name.setfocus() return end if
if isnull(pas) or trim(pas)="" then messagebox("提示"," 请输密码") sle_pas.setfocus() return end if
string temp
if rb_2.checked=true then
select 密码 into :temp from 售票员表 where 工号=:username; elseif rb_1.checked=true then select 密码 into :temp from 管理员表 where 工号=:username; else messagebox("提示"," 请输入用户类型") end if
if sqlca.sqlcode =0 then
if trim(temp)=pas then open(w_main) if rb_2.checked=true then 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 end if
close(w_login) else messagebox("错误"," 输入有误") end if else
messagebox("错误"," 用户名或密码错误") sle_name.setfocus() return end if
二、系统主界面:
下面介绍部分功能:
1. 车票销售功能
输入目的地点击查询后
查询语句: long rows int a,b
string target,checi
if trim(sle_1.text)="" then messagebox("提示"," 请输入目的地") sle_1.setfocus() return end if
target=trim(sle_1.text) if len(target)>0 then dw_chepiao.setfilter("车票表_站名='"+target+"'") dw_chepiao.filter() rows =dw_chepiao.retrieve() if rows=0 then messagebox("提示"," 无车票") return end if checi=dw_chepiao.object.车票表_车次[1] a=dw_chepiao.object.发车时刻表_已订座位数[1] b=dw_chepiao.object.车辆表_座位总数[1] return end if
销售语句: int a,b
string checi if b>a then a=a+1 Update 发车时刻表 set 发车时刻表. 已订座位数=:a