长途汽车管理系统.docx
《长途汽车管理系统.docx》由会员分享,可在线阅读,更多相关《长途汽车管理系统.docx(32页珍藏版)》请在冰豆网上搜索。
长途汽车管理系统
网络数据库系统开发实训
长途汽车信息管理系统
小组成员:
指导教师:
专业:
计算机科学与技术
所在单位:
计算机科学与工程学院
摘要
自从人类进入21世纪,也就进入了一个高速发展的信息时代,高新技术飞速发展的同时,计算机的使用范围也大大扩展,它已经涉及到人类生活的方方面面。
计算机使用的方便快捷,使它在越来越多的方面显示出比传统手工制作更迅速和准确的优点,尤其在信息记录,检索和查询方面,避免了不必要的麻烦。
一个性能良好的长途汽车信息管理系统能够使管理员快速方便地对长途汽车站的相关信息,如长途汽车线路信息,汽车基本信息,车票信息等进行各种诸如添加,查询,删除,修改操作。
使用传统的手工方式管理长途汽车车站相关信息,不仅让管理员感到非常的厌倦,也存在着不可避免的缺点,如效率太低,管理不够科学等。
使用计算机对长途汽车信息进行管理,有着传统的手工管理所没法比拟的优点。
例如:
查找方便,可靠性高,科学性好。
这些优点能够极大地提高长途汽车信息管理的效率。
正是根据计算机管理信息的这些优点以及长途汽车站管理长途汽车信息方面的具体需求,利用java和SQLServer2000数据库,使用软件工程开发的方法,开发了这套长途汽车信息管理系统。
关键字:
信息管理系统,java,数据库。
Abstract
Withthedevelopmentofsociety,humanityhasenteredarapiddevelopmentintheinformationage,astherapiddevelopmentofhighandnewtechnology,theuseofcomputershasinfiltratedintoeachaspectofhumanlife,whichbringgreatconvenienttopeople’sworkandlife.
TheLong-distanceBusinformationmanagementsystemistheLong-distancebusstationinformationwhichdecision-makingandanimportantcomponentofmanagement,whichisatypicalexampleoftheinformationsystem.ItincludesinformationwhichrelatedtotheLong-distanceBusstationinformationmanagement.TheLong-distanceBusinformationmanagementsystemcansimplifythecumbersomeprocess,stationrationalizationofthemanagementandscientific,andgreatlyenhanceefficiencyandsaveoperatingcosts.
ThesystemusesVisualBasic6.0asthedevelopmentlanguage,withSQLServer2000developingthebackgrounddatabase.ThissystemincludestheUser’smanagement,Bus-lineinformationmanagement,andthebasicinformationofautomobilemanagementandTicketinformationmanagementfourmodules.Wecaninput,search,updateordeleteinformationfromtheBus-linemanagement,thebasicinformationofautomobilemanagementandTicketinformationmanagement.ThisinformationmanagementsystemcanmeetthebasicrequirementsoftheLong-distanceBusstationmanagement.
Keywords:
java;informationmanagementsystem;Database
第1章概述
长途汽车信息管理系统运用在汽车站和火车站等车站部门的系统工具,方便此系统部门的工作人员的工作,该系统主要根据此部门的特点建立的,是记录和查询汽车站信息的的依据。
早期的长途汽车站信息主要是人工记录和人工管理的,不仅不容易记录,而且还不容易保存。
随着计算机的不断普及和软件系统的不断发展加上信息系统开发的迫切需求,计算机长途汽车站信息管理系统应运而生了。
随着市场经济的不断飞速发展,交通道路环境的不断改善,人们的出行次数不断增多,人口流动频繁,数量不断加大,车站信息量迅猛增长,长途汽车站信息管理系统在人们的日常生活中发挥着越来越重要的作用。
本系统实现了汽车线路信息,汽车信息,票务信息的查询和管理,满足人们的需求。
第2章需求分析
2.1业务流程分析
2.1.1线路信息管理:
车站管理员可以在线路信息管理模块对车站线路信息进行管理。
管理员首先建立汽车线路信息数据库,输入原始线路信息,当有新的线路需要添加或者需要对已有的线路信息进行修改,删除的时候,管理员就可以进行相应的操作。
管理员也可以通过本模块查询到所有需要查询的线路的详细信息。
2.1.2汽车信息管理:
管理员可以在汽车信息管理模块实现对汽车信息的管理。
管理员首先应建立汽车信息数据库,输入原始的数据信息,当有新的汽车信息的时候或者管理员需要修改某个汽车的相关信息以及想要删除某个汽车信息的时候,就可以完成相应的操作。
管理员也可以再整个数据库中查询相关汽车信息
2.1.3车票信息管理:
管理员可以在车票管理模块实现对车票信息的管理。
管理员根据相应的汽车线路信息来设置相应的车票详细信息库,当有新的线路添加的时候要把相应的车票信息添加到数据库中,管理员还可以对某条线路的车票信息进行修改,删除和查询操作
2.2功能分析
程序分为,选择界面,线路信息界面,汽车信息界面,车票信息用户注册界面这几个主体界面。
使用时登陆进入系统主菜单界面,里面包括线路信息,汽车信息,车票信息,用户注册,退出程序菜单选项。
其中线路信息界面包括包括出发地、目的地、出发时间、所需时间等,可以对它们进行添加,查询,删除,修改,返回主菜单的操作;汽车信息和车票信息的界面与其类似。
用户注册包括用户注册,用户修改,用户删除操作。
2.3系统功能结构设计
分析了系统的功能设计之后,然后进行的就是功能模块划分,即系统的模块化。
模块化是指解决一个复杂问题时自项向下逐层把软件系统划分成若干个模块的过程。
每个模块完成一个特定的功能,所有的模块按某种方法组织起来,成为一个整体,完成整个系统所要求的功能。
根据系统功能的需求分析和长途汽车
管理的特点经过模块化的分析得到系统功能模块结构图如图:
2-1图
图2-1长途汽车管理信息系统模块图
2.4系统的主要流程
在Java中利用ODBC访问技术操作数据库,建立到数据库中的映射类,在对话框类中通过引用映射类完成对数据库的操作。
程序分为选择界面,线路信息界面,汽车信息界面,车票信息这几个主体界面。
使用时程序直接进入的是dos系统,直接进入选择界面,其中分为两个大项即对数据的操作(对数据的增删改查),按选项前的编号即可,选择操作方式后,进行界面的选择,即对系统中三张表的操作,亦是通过前面的编号进行选择
图2-3长途汽车信息管理系统数据流图
通过对用户需求的分析,本系统具有以下特点:
(1)由于一项新的软件在被使用之前,对于使用者来说是陌生和崭新的,所以要求系统为用户提供简单,友好,易于操作的界面。
(2)修改,查询,删除数据方便,数据的稳定性和可靠性好。
(3)数据计算自动完成,尽量减少人工干预
第3章概念结构设计
3.1系统局部E_R图
3.1.1线路信息的E_R图
3.1.2汽车信息的E-R图
3.1.3车票信息的E-R图
3.1.4管理员信息的E-R图
3.1.5建立基本E-R图
此过程进行局部E-R图的合并以及优化。
合并局部E-R图,消除局部E-R图间的冲突,生成初步E-R图。
优化,消除不必要的冗余,生成基本E-R图。
基本E-R图如图3-4所示。
图3-4
第四章逻辑结构设计
4.1逻辑设计的任务与目标
以上的概念设计阶段是独立于任何一种数据模型的,但是逻辑设计阶段就与选用的DBMS产品发生关系了,系统逻辑设计的任务就是将概念设计阶段设计好的基本E-R图转换为选用DBMS产品所支持的数据模型相符合的逻辑结构。
具体内容包括数据组织(将E-R图转换成关系模型、模型优化、数据库模式定义、用户子模式设计)、数据处理(画出系统功能模块图)两大任务。
4.2表的设计与实施
4.2.1:
路线表
字段
字段名称
数据类型
是否为空
主码
外码
备注
chufadi
出发地
Char(20)
Notnull
mudidi
目的地
Char(20)
Notnull
shijian
时间
time
Notnull
bianhao
汽车号
Char(20)
Notnull
是
xianluhao
线路号
Char(20)
Notnull
是
4.2.2:
汽车表
字段
字段名称
数据类型
是否为空
主码
外码
备注
bianhao
汽车号
Char(20)
Notnull
是
zhonglei
类别
Char(20)
Notnull
zaike
载客
Char(20)
Notnull
piaojia
票价
Char(20)
Notnull
xianluhao
线路号
Char(20)
Notnull
是
chufadi
出发地
Char(20)
Notnull
mudidi
目的地
Char(20)
Notnull
4.2.3:
车票表
字段
字段名称
数据类型
是否为空
主码
外码
备注
Piaohao
票号
Char(20)
Notnull
是
shoupiao
售票
Char(20)
Notnull
yishou
已售
Char(20)
Notnull
shengyu
剩余
Char(20)
Notnull
piaojia
票价
Char(20)
Notnull
4.2.4:
乘客表
字段
字段名称
数据类型
是否为空
主码
外码
备注
chufadi
出发地
Char(20)
Notnull
是
mudidi
目的地
Char(20)
Notnull
是
shijian
时间
time
Notnull
4.2.5:
车站管理员表
字段
字段名称
数据类型
是否为空
主码
外码
备注
xianluaho
线路号
Char(20)
Notnull
是
bianhao
车的编号
Char(20)
Notnull
4.4逻辑模型设计与优化
将数据库概念模式映射为数据库逻辑模式,也就是把E-R模型转换为关系模型。
既分别将每个实体集转换为关系,再将每个联系集也转换为关系。
全局概念模式E-R图可得如下关系模式。
将实体集映射为关系:
汽车表:
Qiche(bianhao,zhonglei,zaike,piaojia,xianluhao,chufadi,mudidi)
车票表:
Chepiao(shoupiao,piaohao,shengyu,yishou,piaojia)
路线表:
Xianlu(xianluhao,chufdi,mudidi,shijian,bianhao)
车站管理员表
Guanliyaun(xianluhao,bainhao)
乘客表
Chengke(chufadi,mudidi,shijian)
第五章数据库的实现
5.1建立数据库
Createdatabasechangtu;
5.2数据表的建立
(1)车票信息表的建立
CREATETABLEChepiao(
paiohaoChar(20)NotnullCONSTRAINTChepiao_PRIMARYKEY,
shoupiaovarchar(20),
yishouvarchar(20),
shengyuvarchar(20),
piaojiavarchar(20),
)
)
(2)汽车信息表的建立
CREATETABLEQiche(
BianhaoCHAR(20)CONSTRAINTQiche_PRIMARYKEY,
zhongleiCHAR(20),
zaikeCHAR(20),
xianluhaovarchar(20),
chufadivarchar(20),
mudidivarchar(20)
)
(3)线路信息表
CREATETABLEXianlu(
MudidiCHAR(20),
chufadiCHAR(20),
xianluhaoCHAR(20),NOTNULL
shijiandatetime
CONSTRAINTXianlu_primPRIMARYKEY(xianluhao)
)
(4)管理员信息表
CREATETABLEGuanliyuan(
xianluhaoCHAR(20),NOTNULL
bianhaoCHAR(20)
CONSTRAINTXianlu_primPRIMARYKEY(xianluhao)
)
(5)乘客表CREATETABLEchengke(
MudidiCHAR(20),
chufadiCHAR(20),
shijiandatetime
CONSTRAINTXianlu_primPRIMARYKEY(chufadi,mudidi)
)
5.3索引的建立
Createuniqueindexxiannlu_indexonXianlu(xianluhao)
Createuniqueindexqiche_indexonQiche(bianhao)
Createuniqueindexchepiao_indexonchepiao(piaohao)
Createuniqueindexguanliyuan_indexonguanliyuan(piaohao)
Createuniqueindexchengke_indexonchengke(chufadi,mudidi)
5.4数据表之间的关系
第6章系统实现部分
6.1汽车查询
6.2线路查询
6.3车票查询
6.4汽车信息插入:
6.5线路信息修改:
6.6车票信息删除:
参考文献
[1]万常选廖国琼吴京慧刘喜平,《数据库系统原理与设计》北京:
清华大学出版社,2009
[2]王珊萨师煊,《数据库系统概论》北京:
高等教育出版社
[3]黄晓东等,《Java课程设计案例精编》中国水利水电出版社
[4]袁绍欣赵祥模《Java面向对象程序设计》
[5]陈志泊《数据库原理及应用教程》
附录1—小组成员分工情况
课程设计工作进度计划及分工情况
序号
起止日期
工作内容
分工情况
1
12月3日—12月4日
确定组员分工情况、阐明系统的开发背景
组长和组员共同完成
2
12月4日—12月7日
确定系统功能的基本描述以及需求分析
组长完成
3
12月7日—12月9日
ER图的设计、完成数据库创建
组长完成
4
12月10日—12月18日
汽车管理系统系统的界面代码设计
组长和组员共同完成(具体工作分配在代码段有体现)
汽车管理系统系统的功能代码设计
连接数据库、测试程序、以及调试程序
7
12月18日—12月19日
完成课程设计报告的填写与设计
组长和组员共同完成
附录2—主要实现代码
********************
主要功能是dos界面的实现,及功能选择。
importjava.sql.*;//使用sql这个类
importjava.io.*;
publicclasschangtu
{
publicstaticvoidQtitle(){
System.out.println("车次编号"+"\t汽车种类"+"\t\t载客"+"\t\t票价");
}publicstaticvoidXtitle(){
System.out.println("车次编号"+"\t出发地点"+"\t目的地点"+"\t所需时间");
}publicstaticvoidCtitle(){
System.out.println("车次编号"+"\t总售票数"+"\t剩余票数"+"\t已售票数");
}publicstaticvoidmain(String[]args)
{
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}catch(Exceptione){
System.out.println("连接失败!
");
return;
}//连接
try
{
Connectioncon=DriverManager.getConnection("jdbc:
odbc:
changtu","sa","");
Statementstmt=con.createStatement();
inta1=1;
while(a1!
=0){
System.out.println("1.查询2.插入3.修改4.删除5.退出");
System.out.println("请选择:
");
inti=0;
try{
BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));
i=Integer.parseInt(br.readLine());
}catch(IOExceptionex){}
if(i==6)a1=0;
if(i==1)
{
System.out.println("1.汽车查询2.线路查询3.车票查询");System.out.println("请选择:
");
intm=0;
try{
BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));
m=Integer.parseInt(br.readLine());
}catch(IOExceptionex){}
if(m==1){
ResultSetrs=stmt.executeQuery("selectbianhao,zhonglei,zaike,piaojiafromqiche");
Qtitle();
while(rs.next()){
Stringa=rs.getString("bianhao");
Stringb=rs.getString("zhonglei");
Stringc=rs.getString("zaike");
Stringd=rs.getString("piaojia");
System.out.println(a+b+c+d);
}由于m=2,m=3和m=1的代码相同只是功能不同(线路查询和汽车查询)所以在这里不做赘述。
}***********************以上部分由郭剑完成
*******************
此代码段主要进行的是对数据的插入操作
if(i==2)
{
System.out.println("1.汽车信息插入2.线路信息插入3车票信息插入");
System.out.println("请选择:
");
intm=0;
try{
BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));
m=Integer.parseInt(br.readLine());
}catch(IOExceptionex){}
if(m==1){
Stringc1="",c2="",c3="",c4="";
pstmt1=con.prepareStatement("select*fromCommunicationwhereUname=?
");
System.out.println("输入你要插入的车次编号:
");
try{
BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));
c1=br.readLine();
}catch(IOExceptionex){}
System.out.println("c1="+c1);
System.out.println("输入你要插入的汽车种类:
");
try{
BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));
c2=br.readLine();