俄罗斯方块实验报告.docx
- 文档编号:12812793
- 上传时间:2023-06-08
- 格式:DOCX
- 页数:38
- 大小:169.67KB
俄罗斯方块实验报告.docx
《俄罗斯方块实验报告.docx》由会员分享,可在线阅读,更多相关《俄罗斯方块实验报告.docx(38页珍藏版)》请在冰点文库上搜索。
俄罗斯方块实验报告
数据库课程实训报告
(2016--2017年度第2学期)
题目:
车票销售管理子系统
专业
软件工程
学生姓名
季新明
班级
软件152
学号
1510701210
指导教师
陶明徐静
完成日期
2017.7.1
车站售票子系统
1课题内容和要求
1.1课题描述
随着市场经济的不断飞速发展,交通道路环境的不断改善,人们的出行次数不断增多,人口流动频繁,数量不断加大,车站信息量迅猛增长,车站售票管理系统在人们的日常生活中发挥着越来越重要的作用。
本系统实现了线路信息,汽车信息,票务信息的查询和管理,满足人们的需求
1.2课题要求
(1)具有方便快速的售票功能,包括车票的预定和退票功能,能够支持团体的预定票和退票
(2)能准确地来哦接售票情况,提供多次查询和统计功能,如车次的查询时刻表的查询
(3)能按情况所需实现对车次的更改、票价的变动及调度功能
(4)完善的报表系统
2需求分析
2.1功能需求分析
1.登录功能:
分为汽车站售票人员和系统管理员两种权限登陆。
用户通过
输入不同用户名和密码进行身份验证,系统通过用户名和密码判断不同用户的权限,从而确定该用户可以执行的操作。
2.车票信息查询功能:
由车站的普通售票人员通过不同的检索入口,查询车票信息,并进行排序。
3.修改功能:
汽车站售票人员、汽车站售票工作的管理人员能够修改自身的用户名和密码,系统管理员则能实现系统用户与普通用户的添加,修改普通用户与系统管理员的密码,以此确保该系统能够安全操作,避免不必要的损失。
4.汇总功能:
对当天车票的信息进行汇总。
2.2数据需求分析
数据流图
数据字典
1.数据项
乘客姓名顾客身份证号顾客性别顾客身高
2.数据结构
乘客的数据结构
***的车票
乘客身份证号
乘客姓名
乘客性别
乘客身高
*********
赵三
男
185
*********
李四
男
180
3.数据流
数据流名称:
乘客
简述:
乘客有关信息
数据流来源:
售票员操作结果
数据流去向:
购票乘客
数据流组成:
乘客身份证号+乘客姓名+乘客性别+乘客身高
4.数据存储
乘客记录:
乘客身份证号乘客姓名乘客性别乘客身高
增加记录:
乘客身份证号乘客姓名乘客性别乘客身高
删除记录:
乘客身份证号乘客姓名乘客性别乘客身高
更改记录:
乘客身份证号乘客姓名乘客性别乘客身高
3系统设计
3.1功能模块设计
3.2数据库概念设计
3.3数据库逻辑设计
车票{票价,车票编号,座位类型,座位号,发车时,火车到车站时,火车发站时间,火车到站时间,车票名}
售票员{姓名,密码,工作号}
购买{车票编号,工作号}
顾客{姓名,身份证号}
订票{车票编号,团体票,个人票,日期,交易金额,起始站,终点站,身份证号}
退票{退票时间,车票编号,退票金额}
服务{时刻查询,车次查询}
车站{车站名,车站所在省,车站所在城市,车站号}
工作{车站号,工作号}
管理员{姓名,工作号,密码}
管理{票价更改,车次更改}
3.4数据库物理设计
车站
车站名
车站所在省
车站所在城市
车站号
管理员
管理员姓名
管理员工作号
管理员密码
顾客
顾客名
顾客身份证号
售票员
售票员姓名
售票员工作号
售票员密码
车票
车票号
车票票价
座位号
车厢号
发车时
倒车时
3.5数据库表间联系
乘客表:
CREATE TABLE `ts_passenger` (
`Pnum` bigint(12) NOT NULL AUTO_INCREMENT,
`Pname` varchar(20) DEFAULT NULL,
`Psex` varchar(20) DEFAULT NULL,
`Pheight` varchar(20) DEFAULT NULL,
PRIMARY KEY (`Pnum`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
售票员表:
CREATE TABLE `ts_conductor` (
`Cname` varchar(10) NOT NULL,
`Cno` bigint(30) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`Cno`)
) ENGINE=InnoDB AUTO_INCREMENT=695 DEFAULT CHARSET=utf8
车站表:
CREATE TABLE `ts_station` (
`Sname` varchar(10) DEFAULT NULL,
`Sprovince` varchar(10) DEFAULT NULL,
`Scity` varchar(20) DEFAULT NULL,
`Sno` bigint(20) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`Sno`)
) ENGINE=InnoDB AUTO_INCREMENT=66 DEFAULT CHARSET=utf8
车票表:
CREATE TABLE `ts_ticket` (
`Tpiaojia` varchar(300) NOT NULL,
`Tno` bigint(30) NOT NULL AUTO_INCREMENT,
`Tzuoweihao` varchar(300) NOT NULL,
`Tchexiang` varchar(30) NOT NULL,
`Tfacheshijian` time NOT NULL,
PRIMARY KEY (`Tno`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
4系统实现
4.1增加乘客模块实现
该模块主要实现乘客信息的增加。
乘客管理中的数据源为ticket_sales数据库中passenger表,在此管理部分中,能够使用界面操作实现乘客信息的增加,并将数据库中的数据按照编辑的要求来及时更新数据表中的相关数据。
4.2删除模块实现
该模块主要实现乘客信息的删除。
乘客管理中的数据源为ticket_sales数据库中passenger表,在此管理部分中,能够使用界面操作实现乘客信息的删除,并将数据库中的数据按照编辑的要求来及时更新数据表中的相关数据。
4.3更新模块实现
该模块主要实现乘客信息的更新。
乘客管理中的数据源为ticket_sales数据库中passenger表,在此管理部分中,能够使用界面操作实现乘客信息的更新,并将数据库中的数据按照编辑的要求来及时更新数据表中的相关数据。
5代码调试与功能测试
5.1测试方案
在eclipese中执行,以本机为服务器并确定好服务器的位置。
以实现对乘客表的增,删,改,查。
5.2测试结果
查
增加
删除
修改
6收获与体会
本系统的整个设计开发是对乘客管理的一次的尝试,最后完成的这个系统也只是车票销售系统的一个模型,它的使用对象是客户端,如果要推广到车站使用,还面临很多问题,比如全国整个铁路系统包括很多分局,各自权限不一样,他们又下属很多结点。
但是经过这次的课程设计在本次实践中,我认识到了团队的重要性,团队需要个人,个人也离不开团队,必须发扬团结协作的精神。
某个人的离群都可能导致导致整项工作的失败。
只有一个人知道原理是远远不够的,必须让每个人都知道,否则一个人的错误,就有可能导致整个工作失败。
团结协作是我们实习成功的一项非常重要的保证。
而这次实习也正好锻炼我们这一点,这也是非常宝贵的。
我很清楚的知道团结协作的力量是伟大的,如果是我一个人孤军奋战的话,肯定不能在规定时间内完成这次课程设计的要求内容,因此我很怀念这两个星期的合作,想起我们一起查阅资料,一起讨论设计程序的思路,成功的时候一起分享喜悦,失败的时候互相鼓励,我坚信,在这两个星期的时间里面,我们的友情和团结精神在历练中经受住了考验,变的更加顽强,我们是一个集体的思想已经深入人心!
参考文献
[1]钱雪忠,王燕玲,林挺.数据库原理及技术[M].北京:
清华大学出版社,2011.
[2]钱雪忠,罗海驰,陈国俊.数据库原理及技术课程设计[M].北京:
清华大学出版社,2014.
附 录
附录1源程序部分清单
附录1.1数据库代码
cn.bdqn.util包
packagecn.bdqn.utils;
importjava.io.IOException;
importjava.io.InputStream;
importjava.util.Properties;
publicclassDbInformationUtil{
//创建一个Properties对象,对象中没有任何信息
publicstaticPropertiesproperties=newProperties();
static{
InputStreamin=DbInformationUtil.class.getClassLoader().getResourceAsStream("dp.properties");
//加载文件信息
try{
properties.load(in);
}catch(IOExceptione){
e.printStackTrace();
}
}
publicstaticStringgetProperty(Stringkey){
returnproperties.getProperty(key);
}
publicstaticvoidmain(String[]args){
System.out.println(DbInformationUtil.getProperty("password"));
}
}
dao包
packagedao;
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.PreparedStatement;
importjava.sql.SQLException;
importjava.util.List;
importcn.bdqn.utils.DbInformationUtil;
importentity.Station;
/**
*@authorBaseBao类
*
*/
publicabstractclassBaseDao{
protectedConnectiongetConnection=null;
protectedPreparedStatementps=null;
/**
*@author链接数据库
*
*/
publicConnectiongetConnection()throwsSQLException{
try{
Class.forName(DbInformationUtil.getProperty("driver"));
}catch(ClassNotFoundExceptione){
e.printStackTrace();
}
Stringur1=DbInformationUtil.getProperty("url");
Stringusername=DbInformationUtil.getProperty("username");
Stringpassword=DbInformationUtil.getProperty("password");//密码
//连接数据库
Connectionconnection=DriverManager.getConnection(ur1,username,password);
returnconnection;
}
/**
*@author关闭数据库
*
*/
publicvoidcloseResource()throwsSQLException{
if(ps!
=null){
ps.close();
}
if(getConnection!
=null){
getConnection.close();
}//关闭数据库
}
/**
*@author
*
*/
publicList
//TODOAuto-generatedmethodstub
returnnull;
}
}
packagedao;
importjava.sql.SQLException;
importjava.util.List;
importentity.Station;
/**
*@authorStationDao类
*
*/
publicinterfaceStationDao{
/**
*@author数据操作增加方法
*
*/
publicintsave(Stationstation)throwsSQLException;
/**
*@author数据操作更新方法
*
*/
publicintupdate(Stationstation);
/**
*@author数据操作查询方法
*
*/
publicList
/**
*@author数据操作删除方法
*
*/
publicintremoveBySno(intsno);
StationfindBySno(intsno);
}
dao.impl包
packagedao.Impt;
importjava.sql.Connection;
importjava.sql.PreparedStatement;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.util.ArrayList;
importjava.util.List;
importdao.BaseDao;
importdao.StationDao;
importentity.Station;
/**
*@authorStationrDaoImpt类
*
*/
publicclassStationDaoImptextendsBaseDaoimplementsStationDao{
/**
*@author实现插入功能主程序
*
*/
publicintsave(Stationstation)throwsSQLException{
//对售票员进行操作
Connectionconnection=getConnection();
StringsqlAdd="INSERTINTOts_stationVALUE(?
?
?
null)";
PreparedStatementps=connection.prepareStatement(sqlAdd);
ps.setString(1,station.getSname());
ps.setString(2,station.getSprovince());
ps.setString(3,station.getScity());
intline=ps.executeUpdate();
closeResource();
returnline;
}
/**
*@author实现查询功能主程序
*
*/
@Override
publicList
//TODOAuto-generatedmethodstub
List
try{
getConnection=getConnection();
StringsqlQuery="SELECT*FROMts_station";
PreparedStatementps=getConnection.prepareStatement(sqlQuery);
ResultSetset=ps.executeQuery();
while(set.next()){
Stringsname=set.getString
(1);
Stringsprovince=set.getString
(2);
Stringscity=set.getString(3);
intsno=set.getInt(4);
Stationstation=newStation();
station.setSname(sname);
station.setSno(sno);;
station.setSprovince(sprovince);
station.setScity(scity);
list.add(station);
//System.out.println(sname+"----"+sprovince+"----"+scity+"----"+sno);
}
//intline=preparedStatement.executeUpdate();
closeResource();
}catch(SQLExceptione){
e.printStackTrace();
}
returnlist;
}
/**
*@author实现删除功能主程序
*
*/
/**
*@author实现更新功能主程序
*
*/
@Override
publicintupdate(Stationstation){
//链接
Connectionconnection=null;
try{
connection=getConnection();
}catch(SQLExceptione2){
//TODOAuto-generatedcatchblock
e2.printStackTrace();
}
//更新
StringsqlUpdate="UPDATEts_stationSETsname=?
WHEREsno=?
";
//获取执行器statement
intline2=-1;
PreparedStatementps=null;
try{
ps=connection.prepareStatement(sqlUpdate);
ps.setString(1,station.getSname());
ps.setInt(2,station.getSno());;
line2=ps.executeUpdate();
closeResource();
}catch(SQLExceptione){
e.printStackTrace();
}
returnline2;
}
@Override
publicStationfindBySno(intsno){
//TODOAuto-generatedmethodstub
Stationstation=null;
try{
getConnection=getConnection();
StringsqlQuery="SELECT*FROMts_stationWHEREsno=?
";
PreparedStatementps=getConnection.prepareStatement(sqlQuery);
ps.setInt(1,sno);
ResultSetset=ps.executeQuery();
station=newStation();
while(set.next()){
Stringsname=set.getString
(1);
Stringsprovince=set.getString
(2);
Stringscity=set.getString(3);
intno=set.getInt(4);
station.setSname(sname);
station.setSprovince(sprovince);
station.setScity(scity);
station.setSno(no);;
//System.out.println(sname+"----"+sprovince+"----"+scity+"----"+sno);
}
//intline=preparedStatement.executeUpdate();
closeResource();
}catch(SQLExceptione){
e.printStackTrace();
}
returnstation;
}
@Override
publicintremoveBySno(intsno){
//TODOAuto-generatedmethodstub
Connectionconnection=null;
try{
connection=getConnection();
}catch(SQLExceptione1){
//TODOAuto-generatedcatchblock
e1.printStackTrace();
}
//sql
StringsqlDelete="DELETEFROMts_stationWHEREsno=?
";
//获取执行器statement
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 俄罗斯方块 实验 报告