版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据库课程实训报告( 2016- 2017年度第2学期)题目: 车票销售管理子系统 专业软件工程学生姓名季新明班级软件152学号指导教师陶明 徐静完成日期2017.7.1目 录目 录2车站售票子系统11 课题内容和要求11.1课题描述11.2 课题要求12 需求分析12.1 功能需求分析12.2 数据需求分析23 系统设计43.1 功能模块设计43.2 数据库概念设计43.3 数据库逻辑设计53.4 数据库物理设计63.5 数据库表间联系64系统实现84.1 增加乘客模块实现84.2 删除模块实现84.3 更新模块实现85 代码调试与功能测试85.1 测试方案85.2 测试结果96 收获与体会
2、10附录13附录1源程序部分清单13附录1.1数据库代码13附录1.2 数据库代码30附录1.3 WebConnect代码31车站售票子系统1 课题内容和要求 1.1课题描述随着市场经济的不断飞速发展,交通道路环境的不断改善,人们的出行次数不断增多,人口流动频繁,数量不断加大,车站信息量迅猛增长,车站售票管理系统在人们的日常生活中发挥着越来越重要的作用。本系统实现了线路信息,汽车信息,票务信息的查询和管理,满足人们的需求 1.2 课题要求(1)具有方便快速的售票功能,包括车票的预定和退票功能,能够支持团体的预定票和退票(2)能准确地来哦接售票情况,提供多次查询和统计功能,如车次的查询时刻表的查
3、询(3)能按情况所需实现对车次的更改、票价的变动及调度功能(4)完善的报表系统2 需求分析2.1 功能需求分析 1登录功能:分为汽车站售票人员和系统管理员两种权限登陆。用户通过输入不同用户名和密码进行身份验证,系统通过用户名和密码判断不同用户的权限,从而确定该用户可以执行的操作。2车票信息查询功能:由车站的普通售票人员通过不同的检索入口,查询车票信息,并进行排序。3修改功能:汽车站售票人员、汽车站售票工作的管理人员能够修改自身的用户名和密码,系统管理员则能实现系统用户与普通用户的添加,修改普通用户与系统管理员的密码,以此确保该系统能够安全操作,避免不必要的损失。4汇总功能:对当天车票的信息进行
4、汇总。2.2 数据需求分析顾客售票人员车站售票管理系统购票信息售票信息顶层图购票信息查询可供票处理买票车票车票记录车票汇总缺票记录0层图售票记录购票信息1层图查询可供票处理买票车票售票记录车票记录订票信息查询顾客信息核对后的顾客信息查询可供票处理订票车票订票记录车票记录退票信息处理退票退票记录数据流图数据字典1. 数据项乘客姓名 顾客身份证号 顾客性别 顾客身高2.数据结构 乘客的数据结构*的 车票乘客身份证号乘客姓名乘客性别乘客身高*赵三男185*李四男1803. 数据流数据流名称:乘客简述:乘客有关信息数据流来源:售票员操作结果数据流去向:购票乘客数据流组成:乘客身份证号+乘客姓名+乘客性
5、别+乘客身高4. 数据存储乘客记录:乘客身份证号 乘客姓名 乘客性别 乘客身高增加记录:乘客身份证号 乘客姓名 乘客性别 乘客身高删除记录: 乘客身份证号 乘客姓名 乘客性别 乘客身高更改记录:乘客身份证号 乘客姓名 乘客性别 乘客身高乘客系统3 系统设计3.1 功能模块设计删除乘客更改乘客增加乘客查看乘客3.2 数据库概念设计 3.3 数据库逻辑设计 车票票价,车票编号,座位类型,座位号,发车时,火车到车站时,火车发站时间,火车到站时间,车票名售票员姓名,密码,工作号购买车票编号,工作号顾客姓名,身份证号订票车票编号,团体票,个人票,日期,交易金额,起始站,终点站,身份证号退票退票时间,车票
6、编号,退票金额服务时刻查询,车次查询车站车站名,车站所在省,车站所在城市,车站号工作车站号,工作号管理员姓名,工作号,密码管理票价更改,车次更改 3.4 数据库物理设计 车站车站名车站所在省车站所在城市车站号管理员管理员姓名管理员工作号管理员密码顾客顾客名顾客身份证号售票员售票员姓名售票员工作号售票员密码车票车票号车票票价座位号车厢号发车时倒车时3.5 数据库表间联系 乘客表:CREATETABLEts_passenger(Pnumbigint(12)NOTNULLAUTO_INCREMENT,Pnamevarchar(20)DEFAULTNULL,Psexvarchar(20)DEFAULT
7、NULL,Pheightvarchar(20)DEFAULTNULL,PRIMARYKEY(Pnum)ENGINE=InnoDBDEFAULTCHARSET=utf8售票员表:CREATETABLEts_conductor(Cnamevarchar(10)NOTNULL,Cnobigint(30)NOTNULLAUTO_INCREMENT,PRIMARYKEY(Cno)ENGINE=InnoDBAUTO_INCREMENT=695DEFAULTCHARSET=utf8车站表:CREATETABLEts_station(Snamevarchar(10)DEFAULTNULL,Sprovincev
8、archar(10)DEFAULTNULL,Scityvarchar(20)DEFAULTNULL,Snobigint(20)NOTNULLAUTO_INCREMENT,PRIMARYKEY(Sno)ENGINE=InnoDBAUTO_INCREMENT=66DEFAULTCHARSET=utf8车票表:CREATETABLEts_ticket(Tpiaojiavarchar(300)NOTNULL,Tnobigint(30)NOTNULLAUTO_INCREMENT,Tzuoweihaovarchar(300)NOTNULL,Tchexiangvarchar(30)NOTNULL,Tfach
9、eshijiantimeNOTNULL,PRIMARYKEY(Tno)ENGINE=InnoDBDEFAULTCHARSET=utf84系统实现4.1 增加乘客模块实现该模块主要实现乘客信息的增加。乘客管理中的数据源为ticket_sales数据库中passenger表,在此管理部分中,能够使用界面操作实现乘客信息的增加,并将数据库中的数据按照编辑的要求来及时更新数据表中的相关数据。4.2 删除模块实现该模块主要实现乘客信息的删除。乘客管理中的数据源为ticket_sales数据库中passenger表,在此管理部分中,能够使用界面操作实现乘客信息的删除,并将数据库中的数据按照编辑的要求来及时
10、更新数据表中的相关数据。4.3 更新模块实现该模块主要实现乘客信息的更新。乘客管理中的数据源为ticket_sales数据库中passenger表,在此管理部分中,能够使用界面操作实现乘客信息的更新,并将数据库中的数据按照编辑的要求来及时更新数据表中的相关数据。5 代码调试与功能测试5.1 测试方案在eclipese中执行,以本机为服务器并确定好服务器的位置。以实现对乘客表的增,删,改,查。5.2 测试结果查增加删除修改6 收获与体会本系统的整个设计开发是对乘客管理的一次的尝试,最后完成的这个系统也只是车票销售系统的一个模型,它的使用对象是客户端,如果要推广到车站使用,还面临很多问题,比如全国
11、整个铁路系统包括很多分局,各自权限不一样,他们又下属很多结点。但是经过这次的课程设计在本次实践中,我认识到了团队的重要性,团队需要个人,个人也离不开团队,必须发扬团结协作的精神。某个人的离群都可能导致导致整项工作的失败。只有一个人知道原理是远远不够的,必须让每个人都知道,否则一个人的错误,就有可能导致整个工作失败。团结协作是我们实习成功的一项非常重要的保证。而这次实习也正好锻炼我们这一点,这也是非常宝贵的。我很清楚的知道团结协作的力量是伟大的,如果是我一个人孤军奋战的话,肯定不能在规定时间内完成这次课程设计的要求内容,因此我很怀念这两个星期的合作,想起我们一起查阅资料,一起讨论设计程序的思路,
12、成功的时候一起分享喜悦,失败的时候互相鼓励,我坚信,在这两个星期的时间里面,我们的友情和团结精神在历练中经受住了考验,变的更加顽强,我们是一个集体的思想已经深入人心!参考文献1 钱雪忠,王燕玲,林挺.数据库原理及技术M.北京:清华大学出版社,2011.2 钱雪忠,罗海驰,陈国俊.数据库原理及技术课程设计M.北京:清华大学出版社,2014.附录附录1源程序部分清单附录1.1数据库代码cn.bdqn.util包package cn.bdqn.utils;import java.io.IOException;import java.io.InputStream;import java.util.Pr
13、operties;public class DbInformationUtil /创建一个Properties对象,对象中没有任何信息public static Properties properties = new Properties();staticInputStream in =DbInformationUtil.class.getClassLoader().getResourceAsStream(perties);/加载文件信息tryproperties.load(in);catch(IOException e)e.printStackTrace(); public st
14、atic String getProperty(String key) return properties.getProperty(key); public static void main(String args) System.out.println(DbInformationUtil.getProperty(password); dao包package dao;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.SQLExcep
15、tion;import java.util.List;import cn.bdqn.utils.DbInformationUtil;import entity.Station; /* * author BaseBao类 * */public abstract class BaseDao protected Connection getConnection =null;protected PreparedStatement ps=null;/* * author 链接数据库 * */public Connection getConnection() throws SQLException try
16、 Class.forName(DbInformationUtil.getProperty(driver); catch(ClassNotFoundException e) e.printStackTrace(); String ur1 = DbInformationUtil.getProperty(url); String username=DbInformationUtil.getProperty(username); String password=DbInformationUtil.getProperty(password);/密码 /连接数据库 Connection connectio
17、n = DriverManager.getConnection(ur1, username, password); return connection; /* * author 关闭数据库 * */public void closeResource() throws SQLException if(ps!=null) ps.close(); if(getConnection!=null) getConnection.close(); /关闭数据库/* * author * */public List findall() / TODO Auto-generated method stub ret
18、urn null; package dao;import java.sql.SQLException;import java.util.List;import entity.Station; /* * author StationDao类 * */public interface StationDao /* * author 数据操作增加方法 * */public int save(Station station) throws SQLException; /* * author 数据操作更新方法 * */public int update(Station station); /* * aut
19、hor 数据操作查询方法 * */public List findAll(); /* * author 数据操作删除方法 * */public int removeBySno(int sno);Station findBySno(int sno);dao.impl包package dao.Impt;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import
20、java.util.List;import dao.BaseDao;import dao.StationDao;import entity.Station; /* * author StationrDaoImpt类 * */public class StationDaoImpt extends BaseDao implements StationDao /* * author 实现插入功能主程序 * */public int save(Station station) throws SQLException / 对售票员进行操作 Connection connection = getConne
21、ction(); String sqlAdd = INSERT INTO ts_station VALUE(?,?,?,null); PreparedStatement ps = connection.prepareStatement(sqlAdd); ps.setString(1, station.getSname(); ps.setString(2, station.getSprovince(); ps.setString(3,station.getScity(); int line = ps.executeUpdate(); closeResource(); return line;/*
22、 * author 实现查询功能主程序 * */Override public List findAll() / TODO Auto-generated method stub List list = new ArrayList();try getConnection =getConnection(); String sqlQuery =SELECT * FROM ts_station; PreparedStatement ps = getConnection.prepareStatement(sqlQuery); ResultSet set = ps.executeQuery(); whil
23、e(set.next() String sname = set.getString(1); String sprovince=set.getString(2); String scity=set.getString(3); int sno=set.getInt(4); Station station = new Station(); station.setSname(sname); station.setSno(sno); station.setSprovince(sprovince); station.setScity(scity); list.add(station); /System.o
24、ut.println(sname+-+sprovince+-+scity+-+sno); /int line = preparedStatement.executeUpdate(); closeResource(); catch(SQLException e) e.printStackTrace(); return list; /* * author 实现删除功能主程序 * */ /* * author 实现更新功能主程序 * */Override public int update(Station station) /链接 Connection connection=null;try con
25、nection = getConnection();catch (SQLException e2) / TODO Auto-generated catch blocke2.printStackTrace();/更新 String sqlUpdate=UPDATE ts_station SET sname=?WHERE sno=?;/获取执行器statement int line2=-1; PreparedStatement ps=null;try ps = connection.prepareStatement(sqlUpdate); ps.setString(1,station.getSna
26、me(); ps.setInt(2, station.getSno(); line2=ps.executeUpdate(); closeResource(); catch (SQLException e) e.printStackTrace(); return line2; Overridepublic Station findBySno(int sno) / TODO Auto-generated method stub Station station=null;try getConnection =getConnection(); String sqlQuery =SELECT * FRO
27、M ts_station WHERE sno=?; PreparedStatement ps = getConnection.prepareStatement(sqlQuery); ps.setInt(1, sno); ResultSet set = ps.executeQuery(); station=new Station(); while(set.next() String sname = set.getString(1); String sprovince=set.getString(2); String scity=set.getString(3); int no=set.getIn
28、t(4); station.setSname(sname); station.setSprovince(sprovince); station.setScity(scity); station.setSno(no); /System.out.println(sname+-+sprovince+-+scity+-+sno); /int line = preparedStatement.executeUpdate(); closeResource(); catch(SQLException e) e.printStackTrace(); return station;Overridepublic
29、int removeBySno(int sno) / TODO Auto-generated method stub Connection connection=null;try connection = getConnection();catch (SQLException e1) / TODO Auto-generated catch blocke1.printStackTrace();/sqlString sqlDelete=DELETE FROM ts_station WHERE sno=? ;/获取执行器statement int line=-1; PreparedStatement
30、 ps=null; try ps = connection.prepareStatement(sqlDelete); ps.setInt(1, sno); line=ps.executeUpdate(); closeResource(); catch (SQLException e) e.printStackTrace(); return line;entity包package entity;/* * author Station类 * */public class Station private int sno;private String sname;private String spro
31、vince;private String scity; /* * author sno调用方法 * */public int getSno() return sno;public void setSno(int sno) this.sno = sno; /* * author sname调用方法 * */public String getSname() return sname;public void setSname(String sname) this.sname = sname; /* * author sprovince调用方法 * */public String getSprovin
32、ce() return sprovince;public void setSprovince(String sprovince) this.sprovince = sprovince; /* * author scity调用方法 * */public String getScity() return scity;public void setScity(String scity) this.scity = scity;Service包package service;import java.sql.SQLException;import java.util.List;import entity.
33、Station; /* * author ConductorService类 * */public interface StationService /* * author 售票员的增加 * */public void add(Station station) throws SQLException;/* * author 售票员的查询 * */public List findAll();/* * author 售票员的删除 * */public Station findBySno(int sno);public int deleteBySno(int sno);public int upda
34、te(Station station);serviceimpl包package serviceimpt;import java.sql.SQLException;import java.util.List;import dao.StationDao;import dao.Impt.StationDaoImpt;import entity.Station;import service.StationService;/* * author StationServiceImpt类 * */public class StationServiceImpt implements StationServic
35、e private StationDao dao;public StationServiceImpt(StationDao dao) this.dao=dao; public void add(Station station) throws SQLException dao.save(station); /* * author 主函数调用 * */ public static void main(Stringargs) throws SQLException Station station = new Station(); station.setSname(盐城火车站); station.se
36、tScity(盐城); station.setSprovince(江苏); new StationDaoImpt().save(station);/增 / StationDao dao = (StationDao) new StationDaoImpt(); / Station station = new Station(); / station.setSno(12); / new StationSeiviceImpt(dao).delete(station);/删 / StationDao dao = (StationDao) new StationDaoImpt(); / Station
37、station = new Station(); / station.setSname(盐城汽车站); /station.setSno(1); / new StationServiceImpt(dao).update(station);/改 / StationDao dao = (StationDao) new StationDaoImpt(); / StationService service = new StationServiceImpt(dao); / List list =service.findAll(); / for(Station station:list) / System.out.println(station.getSname()+-+station.getSprovince()+-+station.getScity()+-+station.getSno(); / /查 /* * author 实现更改功能 * */public int update(Station station) retu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 环境艺术设计与绿色建筑的发展趋势
- 农业农业机械产业环境保护联动服务批发考核试卷
- 微生物沉积海水淡化处理技术考核试卷
- 电子商务平台在电子竞技产业中的应用
- 工业机器人在公共交通的应用考核试卷
- 汽车冲压生产线操作工技师模拟考试题与答案
- 现代药店的环保理念与绿色运营
- 化学矿产业集约化生产和资源综合利用考核试卷
- 文具批发商的市场调研数据分析技巧应用考核试卷
- 农村公路养护年终总结
- 小学班会-交通安全伴我行(共25张课件)
- 消防安全一懂三会四能
- 起重吊装工程安全监理细则模版(3篇)
- 《VAVE价值工程》课件
- 四川政采评审专家入库考试基础题复习试题及答案(一)
- 分享二手房中介公司的薪酬奖励制度
- 安徽省2022年中考道德与法治真题试卷(含答案)
- GB 4793-2024测量、控制和实验室用电气设备安全技术规范
- 广电双向网改造技术建议书
- 项目人员管理方案
- 重大火灾隐患判定方法
评论
0/150
提交评论