已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
南京信息工程大学课程设计报告书 课程名称 网络数据库 题 目 车站售票管理系统 学 院 气象学院 专业班级 09 通信工程(2)班 学号 20092335077 学生姓名 黄飞鸿 指导教师 高 超 2012 年 1 月 7日 课程设计报告 第 20 页,共 20 页一、概述1、项目背景:随着市场经济的不断飞速发展,交通道路环境的不断改善,人们的出行次数不断增多,人口流动频繁,数量不断加大,车站信息量迅猛增长,车站售票管理系统在人们的日常生活中发挥着越来越重要的作用。本系统实现了线路信息,汽车信息,票务信息的查询和管理,满足人们的需求。2、编写目的:掌握数据库设计原理及相关软件的使用。实现方便、快速售票;是用户准确了解售票情况,提供多种查询和统计功能;实现系统的安全性设置,使系统本身具有一定的维护功能。3、软件定义:车站售票管理系统,主要用于车站日常的票务处理。4、开发环境:visual studio2008,sql server2000二、需求分析 功能模块图1,员工管理模块:员工有两种身份,售票员和系统管理员。系统管理员可以进行系统用户的添加,密码的修改操作,汽车,线路,车票信息的更新等,售票员可以查询以上信息和购买车票等。2,线路信息管理模块:系统管理员可以在线路信息管理模块对车站线路信息进行管理。管理员首先建立线路信息数据库,输入原始的线路信息,当有新的线路需要添加或者需要对已有的线路信息进行修改,删除的时候,管理员就可以进行相应的操作。管理员也可以通过本模块查询到所有需要查询的线路的详细信息。3,汽车信息管理模块:系统管理员可以在汽车信息管理模块实现对汽车信息的管理。管理员首先应该建立汽车信息数据库,输入原始的数据信息,当有新的汽车信息的时候或者管理员需要修改某个汽车的相关信息以及想要删除某个汽车信息的时候,就可以完成相应的操作。管理员也可以在整个数据库中查询相关汽车信息。4,车票信息管理模块:系统管理员可以在车票管理模块实现对车票信息的管理。管理员根据相应的汽车信息和线路信息来设置相应的车票详细信息。管理员还可以对某条线路的车票信息进行修改,删除和查询操作。5,车票订购信息模块 用户可以通过查询时间,线路和汽车信息,来确定自己要买什么时间,什么路线,什么型号的汽车的车票,并形成表单。 程序分为登陆界面,主界面,线路信息管理界面,汽车信息管理界面,车票信息管理界面,票务信息管理界面,员工管理界面这几个主体界面。使用时应先知道管理员或员工帐号和密码,登陆进入系统主菜单界面,里面包括线路信息,汽车信息,车票信息,票务信息,帮助,退出程序菜单选项。三、系统设计 (一)数据流图: 顶层数据流图 1层车票数据流图(二)数据字典:1, 数据项编号数据项名数据项含义说明数据类型长度与其他数据项的关系是否可以为空1uno用户编号整型4user表主键不2username姓名nvarchar20不3password密码nvarchar20不4useridentiey身份nvarchar20不5cno汽车编号整型4coach表主键不6coachnumber车牌号nvarchar20不7ctype汽车型号nvarchar208ctime购买时间datetime89cnum座位数量整型4不10ctv有无电视char1011ccondition有无空调char1012coachholder负责人nvarchar20不13lno线路编号整型4line表主键不14ldepart起始城市nvarchar20不15larrival到达城市nvarchar20不16ltime路程时间datetime817tno车票编号整型4ticket表主键不18price车票价格整型4不19soldticket已卖票数整型4不20lastticket剩余票数整型4不21tdate出发日期datetime8不22ttime出发时间datetime8不23ptime购买时间datetime824seat座位号整型4不25reserveorbuy预定或购买char10不26cityno站点编号整型4city表主键不27cityname站点名称nvarchar20不2, 数据结构编号数据结构名属 性1员工员工编号,姓名,密码,身份2汽车汽车编号,汽车型号,车牌号,购买时间,座位数量,有无电视,有无空调,负责人3线路线路编号,起始城市,到达城市,路程时间4车票车票编号,线路编号,汽车编号,车票价格,已卖票数,剩余票数,出发日期,出发时间5购票车票编号,购买日期,预定或购买,座位号6站点站点编号,站点名称3, 数据流编号数据流名输 入输 出1变更汽车信息变更信息汽车记录2查询汽车信息汽车编号/汽车型号/车牌号/有无电视/有无空调/负责人汽车记录3变更站点信息变更信息站点记录4变更线路信息变更信息线路记录5查询线路信息线路编号/起始城市,到达城市线路记录6变更车票信息变更信息车票记录7查询车票信息车票编号/起始城市,到达城市/汽车型号/出发日期,出发时间车票记录8预定车票车票编号,购买日期,预定或购买预订记录9购买车票车票编号,购买日期,预定或购买购买记录10查询购买情况车票编号/起始城市,到达城市/汽车型号购买记录11更改用户变更信息用户记录12员工信息用户输入电脑的用户名、密码系统主菜单4, 数据存储数据存储名输入数据流输出数据流说 明 部 分用户信息变更用户信息查询用户信息汽车信息变更汽车信息查询汽车信息线路信息变更线路信息查询线路信息车票信息变更车票信息查询车票信息预定车票信息车票信息预订记录购买车票信息车票信息购买记录5、 处理过程处理过程名输入数据流输出数据流处理操作查询已知汽车/线路/车票信息所需信息购买/预定车票信息+购票时间+座位号无更新变更信息再次查询信息用户权限认证用户名,密码,身份系统主菜单用户登录(三)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,登录界面: 登录操作代码:(1)sqlhelper helper = new sqlhelper(); sqldatareader rdr;(2)if (string.isnullorempty(name) | string.isnullorempty(password) | string.isnullorempty(identity) messagebox.show(姓名,密码,身份框均不能为空!); rdr = helper.executereader(dbo.selectuserinfo, commandtype.storedprocedure); while (rdr.read() if (rdrusername.tostring() = name & rdrpassword.tostring() = password & rdruseridentity.tostring() = identity) this.hide(); string iden = rdruseridentity.tostring(); mainform main = new mainform(iden); main.showdialog(); rdr.close(); return; messagebox.show(错误的姓名或密码或与身份不匹配,请重新输入!); rdr.close();(3)存储过程: alter procedure dbo.selectuserinfo /* ( parameter1 int = 5, parameter2 datatype output ) */ as /* set nocount on */ begin select * from userinfo end2,系统主界面3,员工管理界面:修改/删除操作代码:(1) try sqlcommandbuilder scb = new sqlcommandbuilder(sd); sd.update(ds, a); ds.acceptchanges(); messagebox.show(修改成功!); catch (exception ex) messagebox.show(ex.message.tostring(); (2) try sqlcommandbuilder scb = new sqlcommandbuilder(sd); int a = datagridview1.currentrow.index; ds.tables0.rowsa.delete(); sd.update(ds, a); ds.acceptchanges(); messagebox.show(删除成功!); catch (exception ex) messagebox.show(ex.message.tostring(); 4,汽车信息管理界面:添加操作代码: (1)dal.coachdao coach = new coach.dal.coachdao(); sqlhelper helper = new sqlhelper(); (2) if (string.isnullorempty(coachnumber) | string.isnullorempty(seatnumber1) | string.isnullorempty(coachholder) messagebox.show(车牌号,座位数量,负责人均不能为空!); else if (coach.add(coachtype,coachnumber,date2,seatnumber,ishavetv,ishavecon,coachholder) messagebox.show(添加成功!); else messagebox.show(添加失败!); (4)存储过程: alter procedure dbo.addcoachcoachtype nvarchar(20),coachnumber nvarchar(20),date2 datetime,seatnumber int,ishavetv char(10),ishavecon char(10),coachholder nvarchar(20)/*(parameter1 int = 5,parameter2 datatype output)*/as/* set nocount on */begininsert into coach (ctype,coachnumber,ctime,cnum,ctv,ccondition,coachholder) values (coachtype,coachnumber,date2,seatnumber,ishavetv,ishavecon,coachholder)end5,线路信息管理界面:搜索操作代码:(1) sqlhelper helper = new sqlhelper(); sqlconnection conn = new sqlconnection(data source=(local);initial catalog=coach;integrated security=true); sqldataadapter sd; /定义一个数据适配器 dataset ds; /定义一个数据集(2) string str1 = select lno as 编号,ldepart as 起始城市,larrival as 到达城市,convert(varchar(10),ltime,108) as 路程时间 from line where lno = + lineid + ; databind(str1);(3) private void databind(string str) try sd = new sqldataadapter(str, conn); ds = new dataset(); sd.fill(ds, a); datagridview1.datasource = ds; datagridview1.datamember = a; catch (exception ex) messagebox.show(ex.message); 6,车票信息管理界面:7,车票信息管理中,选择汽车和路线界面:8,票务管理界面 : 查询操作代码: (3) if (purchase.updateticket(tno) & purchase.addg(tno, datetime2, seat) messagebox.show(购买成功!您购买的票为:n + depart + - + arrival + n + 出发时间: + date + _ + time + n + 车牌号: + coachnum + n + 座位号: + seat); else messagebox.show(购买失败!);(4)public bool updateticket(int tno) bool flag = false; string cmdtext = dbo.updateticket; sqlparameter paras = new sqlparameter new sqlparameter(tno,tno) ; int res = helper.executenonquery(cmdtext, paras, commandtype.storedprocedure); if (res 0) flag = true; return flag; (5)public bool addg(int tno, datetime datetime2, string seat) bool flag = false; string cmdtext = dbo.addpurchaseyg; sqlparameter paras = new sqlparameter new sqlparameter(tno,tno), new sqlparameter(datetime2,datetime2), new sqlparameter(seat,seat) ; int res = helper.executenonquery(cmdtext, paras, commandtype.storedprocedure); if (res 0) flag = true; return flag; (6)存储过程alter procedure dbo.updatetickettno int/*(parameter1 int = 5,parameter2 datatype output)*/as/* set nocount on */beginupdate ticket set soldticket = soldticket+1,lastticket = lastticket-1 where tno = tno end(7)alter procedure dbo.addpurchasetno int,datetime1 datetime,seat nvarchar(20)/*(parameter1 int = 5,parameter2 datatype output)*/as/* set nocount on */begininsert into purchase(tno,ptime,reserveorbuy,seat) values (tno,datetime1,预订,seat)end9,站点管理界面 10,购买成功界面 数据库连接类代码: / / sqlce数据库保持连接类 / public class sqlhelper public sqlconnection sqlconn = null; private sqlcommand cmd = null; private sqldatareader sdr = null; / / 构造函数 / public sqlhelper() string connstr = data source=(local);initial catalog=coach;integrated security=true; sqlconn = new sqlconnection(connstr); private sqlconnection getconn() if (sqlconn.state = connectionstate.closed) sqlconn.open(); return sqlconn; / / 构造函数 / / 数据库连接字符串 public sqlhelper(string fsqlceconnstring) string connstr = data source=(local);initial catalog=coach;integrated security=true; sqlconn = new sqlconnection(connstr); this.sqlconn = new sqlconnection(fsqlceconnstring); if (sqlconn.state = connectionstate.closed) sqlconn.open(); / / 执行不返回结果的sql语句。比如:insert,delete,update / / 要执行的sql语句 / 返回影响记录的条数 public int executenonquery(string cmdtext) sqlcommand cmd = this.sqlconn.createcommand(); cmd.commandtext = cmdtext; cmd.commandtype = commandtype.text; return (cmd.executenonquery(); / / 执行带参数的增删改sql语句或存储过程 / / 增删改sql语句或存储过程 / 命令类型 / public int executenonquery(string cmdtext, sqlparameter paras, commandtype ct) int res; using (cmd = new sqlcommand(cmdtext, getconn() cmd.commandtype = ct; cmd.parameters.addrange(paras); res = cmd.executenonquery(); return res; / / 执行返回sqlcedatareader结果集的sql语句。比如:select / / 要执行的sql语句 / 返回的sqlcedatareader public sqldatareader executereader(string cmdtext, commandtype ct) sqldatareader reader; try cmd = new sqlcommand(cmdtext, getconn(); cmd.commandtype = ct; re
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年辽源职业技术学院单招(计算机)测试模拟题库及答案解析(夺冠)
- 2025年重庆人文科技学院单招(计算机)考试参考题库带答案解析
- 2025海南三亚市人民医院医疗集团各事业单位招聘工作人员(第5号)历年真题库附答案解析
- 2026年合肥信息技术职业学院单招(计算机)考试参考题库附答案解析
- 2025年烟台城市科技职业学院单招(计算机)考试备考题库附答案解析
- 基于平衡计分卡的科室成本与绩效评价体系
- 安全教育课课件
- 公共营养师高级培训课件
- 动物的故事写人记事作文(4篇)
- 老师对我的鼓励写人类作文5篇
- 2024年上海春考语文试题及参考答案作文范文(搜集整理版)
- 《农业保险承保理赔电子化作业规范》
- 中国科学院大学2023年619物理化学(甲)考研真题(含答案)
- 合规与供应商合作管理方案
- 社会责任与商业道德管理办法培训记录表
- 外科学 脾切除术(手术图谱)
- 泌外科护理业务学习、“三基”培训记录模板
- GB/T 20670-2006统一螺纹直径与牙数系列
- GB/T 17911-2018耐火纤维制品试验方法
- 软件模块化设计-课件
- 人际交往:配饰礼仪课件
评论
0/150
提交评论