数据库课程设计-车站售票系统_第1页
数据库课程设计-车站售票系统_第2页
数据库课程设计-车站售票系统_第3页
数据库课程设计-车站售票系统_第4页
数据库课程设计-车站售票系统_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库原理及应用课程设计一、课程设计的目的二、课程设计的任务与要求要求学生根据自身对题目的理解情况MSSQLServer作为后台数据库平台,以PowerBuilder的系统的分析、设计和开发。三、课程设计说明书车站售票系统课题简介:车站售票管理系统是一套适用于各公路客运站的管理软件。用户可在本系统中实现方便、快速的销售功能,包括车票的预订和退票的功能,能够支持团体的预订票和退票Internet车站售票管理是本系统的根本任务,通过实现票务信息的计算机管理,以提高工作效轻管理人员制作报表和统计分析的负担,且系统规模不太大但又要保证支持日常工作的要求,以便系统应易于扩充,方便日后统一联网与管理,提高管理水平。车售票系统是用计算机管理车站票务信息的一种计算机应用技术的创新,在计算机还未普及之前售票业务都是由工作人员人工完成的,查询方式来操作的.现在一般的车站售票系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面1系统需求分析系统功能需求分析车站售票管理系统要求具有方便经过分析后确定系统应具备以下功能:、售票功能①销售车票②预订车票③退票、查询功能①车次查询②时刻表查询③预定情况查询、调度功能①运价修改②车辆修改③终点站修改④车次修改、维护功能①车票表修改②密码修改③退出、统计功能①售票统计②报表打印数据需求分析使用结构化分析方法,确定系统的数据主要是运价、车次、终点站名、发车时间和车票,对数据的操作主要有运价修改、车次修改、终点站修改、发车时间修改、售票及打印,可以确定系统的处理逻辑和流程,得到如下所示的系统数据流图。2车次表车次表车次修改已售车票报表打印运价表退票表运价修改售票售票员系统管理发车修改查询修改已售车票数据字典经过分析可以得到以下数据流条目:车次表=车辆编号+车型+座位数终点站名表=站名+里程运价表=车型+运价发车时刻表=车次+车辆编号+站名+发车时间+检票口已售车票表=票号+乘车日期+车次+站名+发车时间+票价+全半价+工号+退票否预订车票表=预订号+乘车日期+车次+站名+发车时间+车型+票价+客户名称+订票数量退票表=票号+退票时间+票价+应退款售票员编号=工号+姓名系统总体设计系统总体结构设计车站售票管理系统售票功能 查询功能 调度功能 维护功能 统计功能o预退车时售运车终车已预退售报售订票次刻票价辆点次售订票票表车车查表情修修站修车车表统打票票询查况改改修改票票计印询查改表表询3车型价格车型价格运价退票时间票价应退款1顾客名称计费退票 乘车日期工号1nn顾客1n预订车票n1售票售票员预订号车次站名票号车次站名票价座位号全半价退票否乘车日期E-R图车辆编号车辆编号车型座位数站名里程车辆n开往m目标站名车次发车时间检票口4关系模式

主键:车辆(车辆编号,车型,座位数)目标站名(站名,里程)发车时刻表(车次,站名,车辆编号,发车时间,检票口)途径(车次,站名)车票(票号,乘车日期,车次,站名,票价,全半价,座位号,工号,退票否)预订(预订号,车次,站名,乘车日期,顾客名称,票数)退票(票号,退票时间,票价,应退款)售票员(工号,姓名)运价(车型,价格)预定表运价表车辆表车票表5管理员表目标站名表售票员表发车时刻表退票表6系统实施结合PowerBuilder进行数据库应用开发的特点,设计过程可按如下步骤进行:一、连接tickt数据库://ProfileticktSQLCA.DBMS="MSSMicrosoftSQLServer"SQLCA.Database="tickt"SQLCA.LogPass="sa"SQLCA.ServerName="37E48911880B444"SQLCA.LogId="sa"SQLCA.AutoCommit=FalseSQLCA.DBParm=""connect;open(w_welcome)二、制作登陆界面:中会做详细的介绍。7登陆代码:stringusername,pasusername=trim(sle_name.text)pas=trim(sle_pas.text)ifisnull(username)ortrim(username)=""thenmessagebox("提示","请输入用户名")sle_name.setfocus()returnendififisnull(pas)ortrim(pas)=""thenmessagebox("提示","请输密码")sle_pas.setfocus()returnendifstringifrb_2.checked=truethenselect密码into:tempfrom售票员表where工号=:username;elseifrb_1.checked=truethenselect密码into:tempfrom管理员表where工号=:username;elsemessagebox("提示","请输入用户类型")endififsqlca.sqlcode=0then8iftrim(temp)=pasthenopen(w_main)ifrb_2.checked=truethenmainmenu.m_调度.m_运价修改.enabled=falsemainmenu.m_调度.m_车辆修改.enabled=falsemainmenu.m_调度.m_终点站修改.enabled=falsemainmenu.m_调度.m_车次修改.enabled=falsemainmenu.m_维护.m_车票表修改.enabled=falsemainmenu.m_维护.m_预订车票表修改.enabled=falsemainmenu.m_维护.m_退票表修改.enabled=falsemainmenu.m_维护.m_密码修改.enabled=falseendifclose(w_login)elsemessagebox("错误","输入有误")endifelsemessagebox("错误","用户名或密码错误")sle_name.setfocus()returnendif二、系统主界面:下面介绍部分功能:输入目的地点击查询后9longrowsinta,bstringtarget,checiiftrim(sle_1.text)=""thenmessagebox("提示","请输入目的地")sle_1.setfocus()returnendiftarget=trim(sle_1.text)iflen(target)>0thendw_chepiao.setfilter("车票表_站名='"+target+"'")dw_chepiao.filter()rows=dw_chepiao.retrieve()ifrows=0thenmessagebox("提示","无车票")returnendifcheci=dw_chepiao.object.车票表_车次[1]a=dw_chepiao.object.发车时刻表_已订座位数[1]b=dw_chepiao.object.车辆表_座位总数[1]returnendif销售语句:inta,bstringcheciifb>athena=a+1Update发车时刻表set发车时刻表.已订座位数=:a10where=:checi;ifsqlca.sqlcode<>0thenmessagebox("提示","车票销售失败")rollback;returnendifcommit;messagebox("提示","销售成功")elsemessagebox("提示","座位数以满")returnendif查询到信息后点击销售按钮,销售成功后再次查询已订座位数变化了其中售票窗口的控件的建立如下图所示:选择好车次后输入预定的信息11预定语句:stringcheci,cname,piaoshu,zhanmingzhanming=sle_4.textcname=sle_1.textcheci=sle_3.textpiaoshu=sle_2.textselect车次into:checifrom预定表where车次=:checi;iflen(checi)=0thenmessageBox("错误","没有这个车次!")returnendifinsertinto预定表车次,,)values(:checi,:zhanming,:cname,:piaoshu);commit;messageBox("谢谢使用!","预定成功")预定成功后查询预定情况会在预定表中生成一条相映的记录:演示退票功能:12将退票人的信息输入后再查询预定情况:此时定票数改变,演示统计功能:13统计功能代码:longrowsstringtargetiftrim(sle_1.text)=""thenmessagebox("提示","请输入车次")sle_1.setfocus()returnendiftarget=trim(sle_1.text)iflen(target)>0thendw_1.setfilter("发车时刻表_车次='"+target+"'")dw_1.filter()rows=dw_1.retrieve()ifrows=0thenmessagebox("提示","无此车次")returnendif//checi=dw_1.object.车票表_车次[1]//a=dw_chepiao.object.发车时刻表_已订座位数[1]//b=dw_chepiao.object.车辆表_座位总数[1]returnendif14演示密码修改功能:密码修改代码为:stringpassword1,password2,oldpasswordpassword1=trim(sle_pas1.text)password2=trim(sle_pas2.text)oldpassword=trim(sle_oldpas.text)ifisnull(password1)orlen(password1)=0thenmessagebox("提示","请输入新密码")returnendififisnull(password2)orlen(password2)=0thenmessagebox("提示","请输入确认密码")returnendififisnull(oldpassword)orlen(oldpassword)=0thenmessagebox("提示","请输入旧密码")returnendififpassword1<>password2thenmessagebox("错误sle_pas1.text=""sle_pas2.text=""sle_pas1.setfocus()returnendififuserkind="售票员"then15update售票员表set密码=:password1where工号=:username;endififuserkind="管理员"thenupdate管理员表set密码=:password1where工号=:username;endififsqlca.sqlcode<>0thenrollback;messagebox("提示","旧密码错误")returnendifcommit;messagebox("提示","密码修改成功")close(w_mimaxiugai)6车次表和时刻表查询功能:7.演示修改功能:终点站修改16车次修改其他修改例如:运价、车辆、车票表修改同上系统评价系统特色首先通过登录界面进行登录,登录的身份分为管理员和售票员,售票员的用户名为自17己的工号。售票员登录后能使用的菜单有:售票、查询、统计。1、售票菜单下有:销售车票、预订车票、退票等功能.2、查询菜单下有:车次查询、时刻表查询、预定情况查询。3管理员登录后能使用的菜单有:售票、查询、调度、维护、统计。23、维护菜单下有:车票表修改,密码修改,退出。车票表修改、预订车票表修改具有更新功能。密码修改可以让

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论