数据库课程设计客运站运输管理系统
数据库课程设计-某客运公司的运输管理数据库的设计与实现
数据库课程设计》题目:某客运公司的运输管理数据库的设计与实现院系:信息工程学院专业:信息管理与信息系统学号:姓名:指导教师:1 系统概况1.1系统设计的目的在信息技术高度发展的今天,传统手工记录客运站信息,已满足不了正常需求。
因此为了降低管理人员的工作量开发一个客运公司的运输管理系统。
旨在为客运信息管理员提供一个可行法案。
通过利用数据库的强大功能,按规范管理运输信息。
方便查询线路车次情况,各个班次的售票情况,以及每个班次的班车信息。
方便管理员的查询,及修改汽车线路信息,汽车信息和车票信息。
将录入操作交给电脑来完成。
这样既能减少管理员工作量还能满足日益增长的需求。
也借以说明计算机技术在当今世界发展中的重要地位和科技创新的重要意义。
1.2系统开发的背景与意义由于社会的不断发展,技术的不断进步,信息技术和数据处理速度越来越引起人们的重视,因为信息的大量而快速的传递,大批量数据的处理单靠人工是不可靠的,也是不现实的。
各行业都迫切需要高性能的的管理系统。
客运公司的运输管理数据库系统是面向所有汽车,路线车型的数据管理系统,其目的是使乘车有序化,规范化,简单化,易于车站人员的管理,查询。
而客运公司的运输管理系统就是根据车站发展的需要而建立的典型的信息管理系统。
它以处理为中心,其重点是进行查询,打印客户所需信息。
并且从分析用户需求开始,模块划分、建立数据库、代码设计,调试最后完成。
主要针对的使用者时客运信息管理员(负责本客运站的线路加减以及售票)。
开发主要包括数据库的建立和维护。
1.3系统实现的目标本次数据库设计应实现客运运输管理系统的基本功能。
目标包括实现车型、路线、驾驶员等信息的管理;实现线路车次、线路站点及票价管理;实现售票管理;创建存储过程按线路统计乘坐次数;实现按车次统计某段时间的乘坐次数;实现售票时自动修改相应车次已售座位数;实现查询各线路各车型的数量;建立数据库相关表之间的参照完整性约束的关系图。
运输企业管理系统数据库设计
运输企业管理系统数据库设计运输企业管理系统数据库设计一、系统需求分析报告:1.1背景一方面,企业的业务越来越多,信息量巨大。
另一方面,IT产业和Internet 获得了飞速发展,计算机应用已渗透到了各个领域,引起信息管理的革命,实现了信息的自动化处理,提高了处理的及时性和正确性。
所以,运输企业也需要信息化的管理。
1.2数据需求运输企业管理信息系统需要完成功能主要有:1 有关司机各种信息的输入,包括司机的基本信息,执照信息2 司机各种信息的查询3 司机各种信息的修改4 车辆信息的输入等5 车辆信息的查询6 车辆信息的修改7 运营信息的输入8 运营信息的查询9 运营信息的修改等10 车辆维修信息的输入11 车辆维修信息的查询12 车辆维修信息的修改等13 事故信息的输入14 事故信息的查询15 事故信息的修改等1.3事物需求(1)在司机信息管理部分,要求:a.可以查询司机信息b.可以对司机信息进行添加及删除的操作(2)在车辆信息管理部分,要求:a.可以查询侧车辆的信息b.可以对车辆信息进行维护,包括添加及删除的操作(3)在运营信息管理部分,要求:a.可以查询运营的信息b.可以对运营信息进行维护,包括修改及删除的操作(4)在车辆维修管理部分,要求:a.可以查询车辆的信息b.可以对车辆信息进行维护,包括添加及修改的操作(5)在事故信息管理部分,要求:a.可以查询事故的信息b.可以对事故信息进行修改及删除操作1.4关系模式(一)司机(司机编号,司机姓名,司机电话,车辆牌照,驾照编号)(二)车辆(车辆牌照,司机编号,车辆型号,车辆载重)(三)运营信息(司机编号,货物重量,路程,客户,日期,价格,客户电话,运营编号)(四)事故(司机编号,事故地点,事故时间,车辆牌照)2. 图表设计2.1.E-R图根据所要实现的功能设计,可能建立它们之间的关系,进而实现逻辑结构功能。
2.1.1 司机信息实体E-R图2.1.2 车辆信息E-R图2.1.3 运营信息实体E-R图司机信息实体司机编号司机姓名司机电话车辆牌照驾照编号车辆信息实体车辆牌照司机编号车辆型号车辆载重2.1.4 事故信息实体E-R图2.1.5 总的信息实体E-R图:运营信息实体司机编号货物重量路程客户日期运营编号客户电话价格事故信息实体车辆牌照司机编号事故地点事故时间2.2 数据表格2.2.1司机信息表表中列名数据类型长度可否为空说明 sjno char 10 not null(主键) 司机编号 sjname varchar 6 not null 司机姓名 sjphone char 20 null 司机电话clno char 10 not null 车辆编号 jznochar20not null驾照编号2.2.2 车辆表信息表表中列名数据类型长度可否为空说明 clno char 10 not null(主键) 车辆编号 sjno char 10 not null(外主键)司机编号 clstyle varchar 10 null 车辆型号 clload char10null车辆载重2.2.3 运营信息表出事故车辆运营司机信息车主任务车辆信息事故信息表中列名数据类型长度可否为空说明ylno char 10 Not null(主键) 运营编号sjno char 10 Not null(外主键) 司机编号ylzl char 10 null 货物重量yllutu varchar 30 null 运货路途ylkehu varchar 10 Null 运营客户yltime char 20 Null 运营时间ylprice char 10 Null 运营价格ylphone char 20 Null 客户电话2.2.4 事故信息表表中列名数据类型长度可否为空说明sjno char 10 not null(主键) 司机编号sgadress char 50 null 事故地点sgtime varchar 20 null 事故时间clno char 10 not null(外主键) 车辆编号2.3 关系图3. 物理实现3.1 数据库建立3.1.1数据库的建立和使用create database pacgouse pacgo3.1.2建立司机表create table sj(sjno char(10) not null, sjname varchar(6) not null, sjphone char(20), clno char(10),jzno c har(20),primary key (sjno))3.1.3建立车辆表create table cl(clno c har(10) primary key,sjno c har(10) not null,clload char(10),foreign key(sjno)references sj(sjno) )3.1.4建立运营信息表create table yl(ylno char(10) primary key, sjno c har(10) not null, ylzl char(10),yllutu varchar(30),ylkehu varchar(10),yltime char(20),ylprice char(10),ylphone char(20),foreign key(sjno) references sj(sjno))3.1.5建立事故信息表create table sg(sjno c har(10) not null,sgtime char(20),clno c har(10) not null,foreign key(sjno) references sj(sjno),foreign key(clno) references cl(clno),)3.2 数据初始化3.2.1司机信息输入insert into sj(sjno,sjname,sjphone,clno,jzno)values('080506101','叶飞','151********','苏A0001','932301') insert into sj(sjno,sjname,sjphone,clno,jzno)values('080506102','潘安辰','151********','苏A0002','932302') insert into sj(sjno,sjname,sjphone,clno,jzno)values('080506103','张伯远','151********','苏A0003','932303') insert into sj(sjno,sjname,sjphone,clno,jzno)values('080506104','桑田','151********','苏A0004','932304') insert into sj(sjno,sjname,sjphone,clno,jzno)values('080506105','张坤','151********','苏A0005','932305') insert into sj(sjno,sjname,sjphone,clno,jzno)values('080506106','魏良健','151********','苏A0006','932306')3.2.2车辆信息输入insert into cl(clno,sjno,clstyle,clload)values('苏A0001','080506101','奔驰A1','5T')insert into cl(clno,sjno,clstyle,clload)values('苏A0002','080506102','宝马A6','3T')insert into cl(clno,sjno,clstyle,clload)values('苏A0003','080506103','奥迪A6','2T')insert into cl(clno,sjno,clstyle,clload)values('苏A0004','080506104','宝马A6','3T')insert into cl(clno,sjno,clstyle,clload)values('苏A0005','080506105','奥迪A6','2T')insert into cl(clno,sjno,clstyle,clload)values('苏A0006','080506106','奔驰A1','5T')3.2.3运营信息输入insert into yl(ylno,sjno,ylzl,yllutu,ylkehu,yltime,ylprice,ylphone) values('0001','080506101','580KG','南京至杭州','刘德华','2009/12/28','5000元','151********')insert into yl(ylno,sjno,ylzl,yllutu,ylkehu,yltime,ylprice,ylphone) values('0002','080506104','980KG','南京至苏州','黎明','2009/12/28','3500元','151525562143')insert into yl(ylno,sjno,ylzl,yllutu,ylkehu,yltime,ylprice,ylphone) values('0003','080506106','1120KG','南京至徐州','周星驰','2009/12/28','6000元','159********')3.2.4事故信息输入insert into sg(sjno,sgadress,sgtime,clno)values('080506103','解放军理工大学','2009/12/27','苏A0003')4.功能实现创建数据库4.1单表查询4.1.1表sj中查询演示select * from sj-全文完-。
长途汽车管理系统设计数据库课程设计报告(含程序)
课程设计报告专业信息管理与信息系统课程名称数据库原理与应用设计题目长途汽车管理系统设计设计题目:长途汽车管理系统设计设计主要内容:一、开发平台:VB+ SQL SERVER 2000二、功能要求:1、设计内容设计一个长途汽车管理系统,该系统的用户由一般用户和管理员和司机组成,然后不同的用户拥有不同的权限,各自完成各自的管理功能,首先是欢迎界面,然后选择登录,登录的时候首先要判断用户的身份,合法的用户然后进入到系统主界面中,不同的用户看到不同的系统功能。
用sql server2000创建后台数据库,然后利用程序设计语言(VB)编写程序实现对数据库的操作,按照要求完成所有的功能和模块。
2、长途汽车管理信息系统主要功能(1)登录界面、本用户密码的修改界面.(2)普通用户管理:长途汽车路线查询界面(按照起点或者终点查询)(2)汽车管理(司机):长途汽车查询界面(按照车牌号或者司机名查询)。
(3)管理员管理:管理员登录界面、长途汽车登记界面(包括查询,添加、修改、删除等操作)、司机信息管理界面(包括查询、删除、修改)、长途路线界面(包括查询、添加、修改、删除等操作)。
3、长途汽车管理信息系统数据库表单(可以按照需求增加)(1)用户信息表单,主要字段有:用户名、密码、用户身份(管理员和普通用户、司机)(2)司机信息表单,主要字段有:车牌号(外码)、司机名、驾驶证号、性别、宅电、手机、出生日期、、邮编、地址、备注、(3)长途汽车管理表单,主要字段有:车牌号、路线编号(外码)、司机名(4)长途路线详细表单,主要字段有:路线编号、发车时间、沿途停靠点、到达时间、票价、起点、终点三、课程设计报告主要内容:1 长途汽车管理系统需求分析(给出系统的功能模块图,对各个功能作出详细介绍)2 长途汽车管理系统界面设计(给出界面截图及其主要控件的属性设置表格)3 长途汽车管理系统数据库设计(给出数据库各个表单中数据的字段名,数据类型及其相应的说明)4长途汽车管理系统程序设计(按照功能模块给出详细的程序代码,并给出重点语句的注释)1 长途汽车信息管理系统需求分析图1.1长途汽车信息管理系统1。
运输车辆管理数据库设计——短学期报告
运输公司车辆管理数据库设计一、需求分析系统目标:建立车辆管理系统的目标是实现对车辆的综合管理,实现包括对驾驶员信息、车辆信息、运营信息、出车信息、维修信息、事故信息的查询和修改等。
车辆管理的基本要求是:1.建立车辆信息库,实现车辆基本信息和驾驶员基本信息的统一管理。
2.针对每辆车的出车运营情况进行记录,实现车辆自我调度。
3.对每辆车的事故、违规情况进行记录。
4.针对每辆车的维修情况进行记录。
分析说明:业务流程分析的主要目的是要弄清楚一个公司的业务工作是如何进行的。
在进行业务流程分析时,需要按照原有信息流动过程,逐步的调查分析所用环节的处理业务、处理内容,处理顺序和对处理时间的要求,弄清楚各个环节需要的信息、信息来源、流径去向、处理方法、计算方法、提供信息的时间和信息形态等。
上图为是运输公司车辆管理业务流程图:上图为运输公司车辆管理顶层数据流图上图为运输公司车辆管理运营出车管理二层数据流图数据字典包括数据项、数据结构、数据流、数据存储和处理过程。
a)数据项条目举例名称:驾驶员编号说明:表示驾驶员的编号类型:变长字符串长度:6有关数据结构:驾驶员信息表名称:车辆卡编号说明:表示车辆的编号类型:变长字符串长度:6有关数据结构:车辆登记卡信息表b) 数据结构条目举例名称:驾驶员信息说明:表示公司驾驶员的信息结构:驾驶员编号、姓名、性别、驾驶证号码、身份证号码、联系电话、家庭住址、是否空闲有关的数据流、数据存储:驾驶员信息表、车辆运营信息表、名称:车辆登记卡信息说明:表示公司车辆的信息结构:车辆卡编号、牌照号码、车型、载货量、购车费用总额、是否空闲有关的数据流、数据存储:车辆登记卡信息表、车辆运营信息表c)数据流条目举例名称:车辆维修信息说明:表示公司车辆维修信息的流向数据来源:维修管理部数据流去向:高层领导包含的数据结构:车辆维修表(维修单号、车辆卡编号、维修日期、修理厂名称、报修人、报修费用)名称:车辆登记卡信息说明:表示车辆信息的流向数据来源:车辆管理部数据流去向:高层领导包含的数据结构:车辆登记卡信息表(车辆卡编号、牌照号码、车型、载货量、购车费用总额、是否空闲)d) 数据存储条目举例名称:车辆事故信息表说明:表示记录车辆事故的信息表编号:D4结构:车辆卡编号驾驶证号码、事故发生时间、事故地点、、、、、、、、有关数据流:P4—> D4e) 处理过程条目名称:车辆信息处理说明:当公司有新的运营任务时输入:D4 —> P4.2,P4.2 —> P3输出: P3 —> D1处理:查看D1中公司车辆的信息,作相应的处理二、概念设计1.根据上述需求分析,进行数据库概念设计,得出以下各个E—R模型图:车辆登记卡信息实体E-R图:驾驶员信息实体E-R图:车辆运营信息实体:出车实体E-R图:车辆维修信息实体E-R图:车辆事故信息实体E-R图:以下是总E—R模型图:该系统设计的实体集有:驾驶员信息实体集:具有的属性有驾驶员编号、驾照号码、姓名、性别、身份证号码、家庭住址、联系号码、是否空闲。
数据库长途汽车管理系统
线路模块:用来管理汽车线路号、出发地、目的地、出发时间、所需时间。
汽车模块:用来管理汽车汽车编号、汽车的种类及相应的票价、最大载客量、剩余座位数.车票模块:用来管理汽车车票编号、售票情况、查询、打印。
乘客模式:用来管理汽车乘客出发地 、出发地、目的地.图2 设计思路 3、数据库设计(1)概念设计经分析,本系统各实体及其属性的E-R 图如下:图3 车票信息表线路汽车车票 输入 线路信息各种查询输入 输入管理员各种报表票价信汽车信息 输入线路信输入汽车信图4 线路信息表图 5 汽车基本信息表图 6 乘客信息表各实体间关系的e-r 图如下:汽车 汽车种类汽车编号 最大载客量乘客出发时间目的地 出发地图8 创建数据库(2)表① CREATE TABLE 汽车基本信息表( 汽车编号CHAR(10)PRIMARY KEY, 汽车种类CHAR(10),最大载客量INT,线路号CHAR(10))图9 创建汽车基本信息表② CREATE TABLE 车票信息表(车票编号CHAR(10) PRIMARY KEY,售票情况CHAR(10),票价INT,线路号CHAR(10))图10 创建车票信息表③ CREATE TABLE线路信息表(线路号CHAR(10) PRIMARY KEY,出发地CHAR(10),目的地CHAR(10),出发时间CHAR(10),所需时间INT)图11 创建线路信息表④ CREATE TABLE 乘客信息表(汽车编号CHAR(10) PRIMARY KEY, 线路号CHAR(10),出发地CHAR(10),目的地CHAR(10),出发时间CHAR(10))图12 创建乘客信息表(3)索引①CREATE UNIQUE INDEX im_inON 汽车基本信息表(汽车编号)图13 为汽车基本信息表创建索引② CREATE UNIQUE INDEX ik_ilON 线路信息表(线路号)图14 为线路信息表创建索引③ CREATE UNIQUE INDEX id_ixON 车票信息表(车票编号)图15 为车票信息表创建索引④ CREATE UNIQUE INDEX ih_igON 乘客信息表(汽车编号)图16 为乘客信息表创建索引(4)视图①CREATE VIEW view_1ASselect 汽车编号,汽车种类,最大载客量,线路号from 汽车基本信息表图17 为汽车基本信息表创建视图② CREATE VIEW view_2ASselect 线路号,出发地,目的地,出发时间,所需时间from 线路信息表图18 为线路信息表创建视图③CREATE VIEW view_3ASselect 车票编号,售票情况,票价,线路号from 车票信息表图19 为车票信息表创建视图④ CREATE VIEW view_4ASselect 出发时间,出发地,目的地,汽车编号,线路号from 乘客信息表图20 为乘客信息表创建视图6、录入数据INSERTINTO 车票信息表V ALUES('20110001’,’拥挤’,'85’,'101’)INSERTINTO 车票信息表V ALUES ('20110002’,'良好','90’,'102')INSERTINTO 车票信息表V ALUES (’20110003','稀疏’,'110’,’103’)INSERTINTO 车票信息表V ALUES (’20110004','拥挤',’109’,’104’)INSERTINTO 车票信息表V ALUES ('07:00','南昌市’,’景德镇’,'6’,’106')INSERTINTO 乘客信息表V ALUES (’10:23','景德镇’,’鄱阳县’,’2',’102')INSERTINTO 乘客信息表V ALUES('14:30’,'抚州市','南昌市’,'5’,'105')INSERTINTO 乘客信息表V ALUES(’15:28','鄱阳县',’南昌市’,’3',’103’)7、设计存储过程和触发器(1)创建存储过程create proc proc_zgasselect 车票编号,票价from 车票信息表where 线路号='103’图21 创建存储过程(2)创建触发器① create trigger insert_qion 车票信息表after insertasselect *from 车票信息表insert into 车票信息表(车票编号,票价) Values(‘20110001’,‘80’)图22 车票信息表创建触发器② create trigger insert_cheon 汽车基本信息表after insertasselect *from 汽车基本信息表insert into 汽车基本信息表(汽车编号,线路号)Values(‘1’,‘101')图23 汽车基本信息表建触发器③ create trigger insert_xianon 线路信息表after insertasselect *from 线路信息表insert into 线路信息表(线路号,所需时间)Values(‘106’,‘5’)图24 线路信息表建触发器④ create trigger insert_chengon 乘客信息表after insertasselect *from 乘客信息表insert into 线路信息表(出发时间,线路号)Values('10:23’,‘102’)图25 乘客信息表建触发器8.课程设计总结通过这次的课程设计实验,我发现自己对数据库课程的兴趣有了很大提高,而且对课本的知识更加的了解并有了一定的掌握,通过实验我懂得了如何创建索引、视图、存储过程以及触发器。
运输车辆数据库设计管理课程设计手册
《数据库课程设计》课程设计手册一.需求分析一、本案要求建立一个用于运输的数据库,具有如下查询,及修改功能1.客户可以下一个或多个订单;2.订单包括订单号,客户号,交货截止日期,订货日期,数量,应收金额;3.每个订单详细描述了订货交货日期,金额;4.发货单记录了产品信息,发货日期,订单号,发货单号,发货数量;5.根据一份订单可以一次或多次发送货物;6.一份订单都有对应的应收账款;7.产品的信息包括单价,产品号,产品名;8.一份订单可以有一种或多种产品;9.客户的信息有姓名,地址,联系电话,等级,客户编号;10.客户的等级分三个不同的等级,一级可以打折扣8.5折,二级可以打折扣9折,三级可以打9.5折。
不同等级的客户支付的应收款相应的不同。
二.下面是系统运行的一个DFD流程示意图:2二.概念设计1. 根据上述需求分析,进行数据库的概念设,得出以下整天的E-R模型图:客户送进订单订单数据批准/不批准已批准订单处理订单发货单同意/不同意接受开发票应收账款支付账款产品产品发送订单信息表订购产品产品名产品号单价订单交货日期客户号订货日期依据应收账款支付日期支付金额应收金额发票号发货单依据任职日期发货单号产品号发货日期发货数下订客户地址姓名编号联系方式应收金额等级n1n1m1p11数量订单号订单号4 客户信息表客户编号客户姓名地址联系电话等级1001 李勇北京市朝阳区朝晖路98号135****6432一级八五折1002 王军杭州市文三路8号136****7829二级九折1003 张平杭州市解放路156号138****3388一级八五折1004 周青宁波市江东区姚隘路45号138****3345三级九五折1005 刘成舟山市定海区芙蓉洲路123号137****1088二级九折1006 赵力广州市中山路5号139****0571二级九折1007 杨芳上海市四川北路67号159****4196二级九折发货单信息表发货单号订单号发货数量发货日期产品号3001 4001 700 2007.05.12 2001 3001 4001 800 2007.05.12 2005 3002 4001 200 2007.12.01 2001 3003 4004 600 2008.02.06 2005 3004 4003 650 2008.06.06 2006 3004 4003 1500 2008.06.06 2002 3005 4003 980 2008.08.16 2003 3006 4005 2500 2008.09.02 2007产品信息表产品名称产品号单价订单号客户号产品号应收金额数量订货日期交货截止日期4001 1001 2005 280000 800 2007.05.08 2007.05.12 4001 1001 2001 630000 900 2007.05.08 2007.05.12 4002 1002 2004 240000 400 2007.11.30 2008.09.24 4003 1005 2006 39000 650 2008.04.25 2008.06.06 4003 1005 2002 330000 1500 2008.04.25 2008.06.06 4003 1005 2003 1425000 980 2008.04.25 2008.06.06 4004 1004 2005 210000 600 2008.01.23 2008.02.06 4005 1003 2007 75000 2500 2008.09.02 2008.10.01 4006 1006 2004 360000 600 2008.08.26 2008.10.23CPU 2001 700内存2002 220显示器2003 1500显卡2004 600声卡2005 350键盘2006 60鼠标2007 30应收账款信息表发票号订单号应收金额支付金额支付日期5001 4001 910000 773500 2007.05.125002 4003 1794000 1614600 2008.06.085003 4004 210000 199500 2008.02.105004 4005 75000 null 2008.10.10三.逻辑设计针对前面两个步骤的分析,开始本数据库的逻辑设计,即关系模型的设计。
长途汽车信息管理系统【课程设计-java-数据库】
长途汽车信息管理系统2021年12月长途汽车信息管理系统2. 3.数据库结构设计 2. 3.1.需求分析(1)系统管理对象长途汽车信息管理系统涉及的人有2类,登录系统希望买票的乘客、系统管理员,管 理的事务有车辆、路线信息、订单信息、车票信息。
(2)实体间联系实体之间主要事务联系如下:用户向管理员提出实名认证申请。
用户可查询相应的路线、车票、订单信息,可修改个人用户信息。
管理员审核实名认证信息,管理用户信息。
管理员维护车辆信息、增删改路线信息及车票信息管理员可对车辆信息、车票信息、订单信息等进行统计分析。
(3) 功能需求能够进行数据库的数据定义、数据操纵、数据控制等处理功能。
具体功能应包括:系统应该提供管理员对车辆、路线、车票、订单信息的添加、插入、 删除、更新、查询操作;同时实现用户对车辆、路线、车票、订单的查询,以及对个人用 户信息的修改、查询功能。
(4)安全性与完整性需求对于长途汽车信息管理系统而言,涉及的实体较多,要维护好不同实体表之间的管理 关系,涉及相应的外围程序,保证数据输入的完整性。
同时要对注入信息进行识别并拦截, 防止数据库被恶意破坏。
图3. 3系统组成设计图实名认证申请2. 3. 2.概念结构设计根据上文分析,本系统主要实体有乘客(用户)、管理员、车辆信息、路线信息、订单信息、车票信息。
主要涉及的实体间联系有:用户、车票信息与订单信息之间存在“订购”的联系,且一个用户可购买多种车票,一种车票可被多位顾客购买,故涉及的关系为多对多关系。
车票信息与车辆信息之间存在“承载”关系,说明该车票所应搭乘的汽车,一类车票搭乘一辆汽车,汽车可承载多路车票的运行,所有车票信息与车辆信息之间为多对一关系。
车票与路线之间存在“经由”关系,一类车票具有唯一确定的路线,一条路线可由不同时段的多种车票经由,所以车票信息与路线信息为多对一关系。
各实体所涉及的属性如下:乘客(乘客ID,姓名,性别,联系方式,身份证号,登录密码)车辆(车辆ID,车牌号,座位数,总里程,运行状态,投用时间)路线(路线ID,始发站,终点站,总距离)车票(车票ID,数量,始发时间,到达时间,车票价格)订单(订单ID,生成时间,支付状况)根据以上设计,可以得到实体联系ER图及概念模型图如图3.4和图3.5所示。
某某客运公司运输管理系统数据库课程设计报告
《某客运公司的运输管理系统》课程设计报告题目:某客运公司的运输管理系统专业:网络工程计算机学院目录1、设计内容及要求 (1)1.1 系统功能设计 (1)2、概要设计 (2)2.1概念结构 (2)3、设计过程和代码 (3)3.1 登陆页面设计: (3)3.2网站主界面设计: (4)3.3 司机信息界面 (5)3.4 车辆信息管理界面 (7)3.5 网站介绍界面 (8)4、设计结果与分析 (14)4.1需求分析 (15)4.2 数据库分析 (15)5、参考文献 (17)1、设计内容及要求1.1 系统功能设计本网站由6大模块,分别是系统管理,司机信息管理,车辆信息管理,维修信息管理,运营信息管理,网站管理1.系统管理(1) 用户管理:通过该功能模块,管理员能查看所以用户信息以及新用户注册。
(2) 密码管理:通过该功能模块,进行密码修改。
2.司机信息管理(1) 司机信息管理:通过该功能模块,管理员可以对司机信息进行添加,修改,删除。
(2) 司机信息发布:通过该功能模块,管理员可以对司机信息进行添加(3) 关于司机信息:通过该功能模块,可以看到司机信息的数据字段。
3.车辆信息管理(1) 车辆信息管理:通过该功能模块,管理员可以对车辆信息进行添加,修改,删除。
(2) 车辆信息发布:通过该功能模块,管理员可以对车辆信息进行添加(3) 关于车辆信息:通过该功能模块,可以看到车辆信息的数据字段。
4.运营信息管理(1) 运营信息管理:通过该功能模块,管理员可以对司机运营信息进行添加,修改,删除。
(2) 运营信息发布:通过该功能模块,管理员可以对司机运营信息进行添加(3) 关于运营信息:通过该功能模块,可以看到司机运营信息的数据字段。
5.维修信息管理(1) 维修信息管理:通过该功能模块,管理员可以对车辆维修信息进行添加,修改,删除。
(2) 维修信息发布:通过该功能模块,管理员可以对车辆维修信息进行添加。
(3) 关于维修信息:通过该功能模块,可以看到车辆维修信息的数据字段。
数据库 客运管理系统
宽度 10 10 50 50
约束条件 主码 非主码 外码 非主码
说明 NOT NULL NOT NULL NOT NULL NOT NUL
沈 阳 大 学
课程设计说明书
检票口 Varchar() 50
表 3 车票信息表
No.5 NOT NULL
非主码
字段名 票号 乘车日期 车次 站名 票价 全半价 座位号 工号 退票否
●CEREATE VIEW 预定
ON 预定 TABLE
●CEREATE VIEW 退票
ON 退票 TABLE
8、课程设计总结
我做的是客运管理系统,作为大一新生对我来说有些困难,但也很用心的去做了。我用 的是 SQL Server 2005 做的,在做的过程中对 SQL 语言又有了一定的了解,看着自己做的系 统,自己就会又欣慰又难过,欣慰的是自己终于把它做出来了,而且,做的还好,难过的是 自己知道还有很多的不足,但是,由于认识的有限,无法去完善,才知道“书到用时方恨少” 此次学生管理系统的设计让我们对数据库的了解更深入,可以把它同实际相结合,同时,又 让我们学会了一个新的应用软件。 在整个设计过程中, 通过怎样对把各个管理信息连接起来 的分析,锻炼了我们对事情的分析能力,通过怎样解决过程中出现的问题,提高了我们查找 文献的能力、对网络资源的利用能力和和其他同学的交流沟通能力。而且,经历这次的课程 设计,我们也学会了自学和分工协作。我们觉得每一次的课程设计,都是让我们对原有的知 识从了解表面到深入本质,从个体学习到整体把握的跳跃,对新知识的汲取,更是让我们把 课本的知识应用到实际中,让我们了解了我们的学习有什么用,能够解决什么样的问题,增 加我们的自信和学习的动力。总之,通过这次的课程设计,我们收获匪浅。
长途客运站管理系统(数据库课程设计)汇编
2.数据查询相关 SQL 语句 SELECT * FROM M_TInfo;
SELECT * FROM M_Route;
目录
1.设计背景及目的 ........................................................................................1 2.设计内容及要求 ................................................................................................1 3.设计过程 ............................................................................................................2
编程语言可由小组根据自己的情况选择,但一般情况下应该是小组的每 个成员都对该语言较熟悉。避免把学习语言的时间放在设计期SQL_Server 2005 等。 系统功能的基本要求:
线路信息,包括出发地、目的地、出发时间、所需时间等。 汽车信息:包括汽车的种类及相应的票价、最大载客量等。
图 3.2.4
余票数量 TRest
1
线路信息
N
行驶
1
车辆信息
N
供应
票务信息
图 3.2.5
关系图:
M_Vehicle Vno char(8) PRIMARY KEY VType char(20) TPrice int VLoad int Rno varchar(5)
长途汽车信息管理系统数据库课程设计论文
课程设计课程名称数据库系统概论题目名称长途汽车管理系统专业班级学生姓名学号指导教师毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:日期:指导教师签名:日期:使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:日期:学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律后果由本人承担。
作者签名:日期:年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
作者签名:日期:年月日导师签名:日期:年月日注意事项1.设计(论文)的内容包括:1)封面(按教务处制定的标准封面格式制作)2)原创性声明3)中文摘要(300字左右)、关键词4)外文摘要、关键词5)目次页(附件不统一编入)6)论文主体部分:引言(或绪论)、正文、结论7)参考文献8)致谢9)附录(对论文支持必要时)2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。
数据库课程设计客运管理系统详细设计
《数据库》课程设计院系:信息科学与技术学院计算机科学与技术系学号:2010508024 2010508034姓名:吴望、蒋健波指导老师:于宝华完成时间:2013-1-16目录一、选题依据31.1选题背景3二、系统需求分析32.1可行性分析32.2结构化分析方法32.3 功能需求图42.4安全与性能4三、整体设计53.1支持软件53.2 整体系统架构图53.3、系统用例分析5四、结构设计64.1概念结构设计64.2客运管理系统管理员界面64.3添加用户信息64.4用户信息列表64.5逻辑结构设计:74.6表与表关系图74.7物理结构设计8五、储存过程脚本10某客运公司的运输管理系一、选题依据1.1选题背景现在各个客运站客流量越来越大,传统的售票方式已经不能满足人们的出行。
各部门管理与方案的制定,已经不能靠传统手工记录。
为了适应市场的需求。
我们为此开发了客运管理系统,使公司管理与售票方式都要满足现在人们快节奏的生活方式。
为了使公司各个部门更好的配合,使公司更好的适应21世纪发展。
售票系统的开发客运使广大用户在任何地方都可以买上票。
在也不用再寒冷的排队等待买票。
现在可以谁时都能买上票。
也能提前订购车票。
不仅方便管理,也给市民提供方便。
使用本系统有三个角色,即管理员、经理、员工。
管理员的用户权限最高,可以设置用户的登录,已经权限分配。
还有员工信息的录入和任务审核。
经理主要是任务制定者,和工作方案的发布者。
还有审批职员提交的作业。
员工主要是查询任务职责。
提交经理派发的任务。
或者申请工作方案。
二、系统需求分析2.1可行性分析(1) 经济上的可行性系统界面友好,操作简单,系统的配置要求不高,实现可行,因此经济可行。
该系统可以容易实现员工、经理与领导之间的联系,在Internet上实现完成部分教务工作,提高办事效率。
(2) 技术上的可行性随着互联网的蓬勃发展,越来越多的机构将科研管理与Internet融合到一起,以方便客运公司的管理。
长途客运数据库课程设计
《<数据库设计>课程设计》报告撰写内容目录摘要 (3)第1章绪论 (4)1.1课题应用背景 (4)1.2 课题研发的目的与意义 (4)第2章公交线路管理系统的需求分析 (6)2.1 需求分析概述: (6)2.2功能性需求: (6)2.3用例分析 (7)2.3.1管理子系统用例分析: (7)2.3.3旅客子系统用例分析: (8)2.4非功能性需求 (8)2.4.1用户界面需求: (8)2.4.2软硬件环境需求 (9)第3章公交线路管理系统数据库设计 (10)3.1功能模块设计 (10)3.1.1系统总体结构 (10)3.1.2管理子系统的功能 (10)3.1.3售票子系统的功能 (11)3.1.4旅客子系统的功能 (12)3.2数据库设计 (12)3.2.1数据库逻辑设计 (13)3.2.2数据库物理设计 (13)第4章公交线路管理系统的具体实现 (16)4.1 数据库的连接 (16)4.2 数据的封装 (16)4.3 用户访问管理 (18)4.4 管理子系统的实现 (20)4.4.1管理子系统的页面构成 (20)4.4.2用户管理功能 (20)4.4.3线路管理功能 (21)4.4.4车辆管理功能 (22)4.4.5班次管理功能 (22)4.5售票子系统的实现 (23)4.5.1售票子系统的页面构成 (23)4.5.2查询功能 (23)4.5.3售票功能 (24)4.5.4退票功能 (24)4.5.5预售票交付功能 (24)4.6 用户访问管理 (25)4.6.1站务子系统的页面构成 (25)4.6.2班次查询功能 (25)4.7旅客子系统的实现 (25)4.7.1旅客子系统的页面构成 (25)4.7.2旅客信息管理功能 (25)4.7.3预定车票功能 (25)4.8用户界面 (26)4.8.1页面的基本结构 (26)第5章结论 (27)第6章总结 (28)参考文献 (29)附录设计系统部分源代码 (30)摘要本系统是在传统的人工管理模式已经无法满足长途客运发展的要求,经济的高速发展对交通运输企业提出了新的更高要求下开发的。
数据库课程设计报告_车站管理系统
中南大学本科生课程设计(实践)任务书、设计报告(数据库技术与应用)题目车站管理系统学生姓名指导教师学院专业班级学生学号计算机基础教学实验中心20年月日车站管理信息系统摘要:项目背景:随着市场经济的不断飞速发展,交通道路环境的不断改善,人们的出行次数不断增多,人口流动频繁,数量不断加大,车站信息量迅猛增长,车站管理系统在人们的日常生活中发挥着越来越重要的作用。
本系统实现了线路信息,汽车信息的查询和管理,满足人们的需求。
编写目的:掌握数据库设计原理及相关软件的使用。
主要用于车站日常的车辆、路线信息处理。
实现方便、快速了解信息;使用户准确了解车站车辆、路线情况,提供多种查询和统计功能;实现系统的安全性设置,使系统本身具有一定的维护功能。
关键词:汽车信息、路线信息、员工信息二、车站管理系统开发设计思想(一)系统构思(二)功能模块图1,线路信息管理模块:系统管理员可以在线路信息管理模块对车站线路信息进行管理。
管理员首先建立线路信息数据库,输入原始的线路信息,当有新的线路需要添加或者需要对已有的线路信息进行修改,删除的时候,管理员就可以进行相应的操作。
管理员也可以通过本模块查询到所有需要查询的线路的详细信息。
2,汽车信息管理模块:系统管理员可以在汽车信息管理模块实现对汽车信息的管理。
管理员首先应该建立汽车信息数据库,输入原始的数据信息,当有新的汽车信息的时候或者管理员需要修改某个汽车的相车票记录售票记录售票已售车票查看显示发车时刻1, 数据项3,数据流5、处理过程车票编号车票价格购买日期预定或购买m(六)关系模型:1,User 员工表(员工编号Uno,姓名UserName ,密码Password ,身份UserIdentiey ) 2,Coach 汽车信息表(汽车编号Cno ,汽车型号Ctype ,车牌号Coachnumber ,购买时间Ctime ,座位数量Cnum ,有无电视Ctv ,有无空调Ccondition ,负责人Coachholder ) 3,Line 线路信息表(线路编号Lno ,起始城市Ldepart ,到达城市Larrival ,路程时间Ltime ) 4,City 站点表(站点编号Cityno ,站点名称CityName )五、课程设计心得体会这次课程设计使我巩固了数据库和VB 的知识,通过实践,我学到了很多课本上学不到的知识。
长途汽车管理系统数据库课程设计
长途汽车管理系统数据库课程设计一、引言长途汽车管理系统是一个基于数据库的信息管理系统,旨在实现对长途汽车运营过程中的各类数据进行有效的管理和查询。
本文将围绕长途汽车管理系统数据库的设计展开讨论,包括数据库的实体关系设计、数据表设计、数据库查询语言等内容。
二、数据库的实体关系设计1. 长途汽车公司长途汽车公司是系统的核心实体,包含公司名称、联系方式、地址等属性。
2. 车辆信息车辆信息是对长途汽车的管理,包含车牌号、座位数、车型、所属公司等属性。
3. 司机信息司机信息是对驾驶员的管理,包含姓名、性别、年龄、驾驶证号等属性。
4. 路线信息路线信息是对长途汽车行驶路线的管理,包含起点、终点、里程、所需时间等属性。
5. 订单信息订单信息是对长途汽车客户订单的管理,包含订单号、客户姓名、联系方式、乘车日期等属性。
6. 费用信息费用信息是对长途汽车运营费用的管理,包含车辆运营费用、司机工资、燃油费用等属性。
三、数据表设计根据以上实体关系设计,可以得到以下数据表设计:1. 长途汽车公司表(company)字段:公司编号、公司名称、联系方式、地址2. 车辆信息表(vehicle)字段:车辆编号、车牌号、座位数、车型、所属公司3. 司机信息表(driver)字段:司机编号、姓名、性别、年龄、驾驶证号4. 路线信息表(route)字段:路线编号、起点、终点、里程、所需时间5. 订单信息表(order)字段:订单编号、客户姓名、联系方式、乘车日期、路线编号、车辆编号、司机编号6. 费用信息表(expense)字段:费用编号、车辆运营费用、司机工资、燃油费用、订单编号四、数据库查询语言数据库查询语言(SQL)是对数据库进行查询和操作的标准语言。
在长途汽车管理系统中,可以使用SQL语句实现以下功能:1. 查询某一时间段内的订单信息SELECT * FROM order WHERE 乘车日期 BETWEEN '开始日期' AND '结束日期';2. 查询某一路线的车辆信息SELECT * FROM vehicle WHERE 路线编号 = '路线编号';3. 查询某一车辆的司机信息SELECT * FROM driver WHERE 车辆编号 = '车辆编号';4. 查询某一车辆的总运营费用SELECT SUM(车辆运营费用) FROM expense WHERE 车辆编号= '车辆编号';5. 查询某一司机的总工资SELECT SUM(司机工资) FROM expense WHERE 司机编号= '司机编号';五、结论长途汽车管理系统数据库的设计是实现对长途汽车运营过程中各类数据进行管理和查询的重要组成部分。
数据库课程设计(长途客车管理系统)
数据库原理课程设计题目网上订票系统院系_____________________专业__________________学生姓名学号指导教师二0 一六年十二月十八日目录1.需求分析: (2)1.1课题背景: (2)1.2目的和意义: (3)1.3可行性分析: (3)1.4需求分析的成果: (3)1.4.1:功能结构图:31.4.2:流程图:41.4.3:数据流图: (5)1.4.4:数据字典:62.软件总体设计: (8)3.软件详细设计:93.1车票查询模块:93.1.1:查询车票信息:93.1.2:查询客户信息: (9)3.1.3:查询客户订票信息: (9)3.1.4:查询客户退票信息: (9)3.1.5:查询票存系统记录信息:93.2车票信息管理模块:93.2.1:添加车票信息:93.2.2:删除车票信息:103.2.3:修改车票信息:104.数据库设计: (10)4.1概念模型设计:104.1.1:实体属性图:104.1.2:E-R 图 (12)4.1.3:联系: (12)4.1.4:完整性约束:134.2逻辑结构设计:134.2.1:E-R 图向关系模式的转换为:134.2.2:数据表设计: (13)4.3物理结构设计:154.3.1:存储方式:154.3.2:检索方式:165.系统编码与设计:166.总结: (18)1、需求分析:1.1 课题背景:随着Internet 的迅速发展和用户数量的急剧增加,互联网对于企业和事业单位的运营和发展日益重要,并且网上交易也逐渐被人们认可,并成为未来交易的发展方向。
随着现在旅游业发展的日益壮大一个便于人们操作的网上售票系统应当被开发。
网上售票系统是道路旅游服务信息系统的一个重要组成成分,为旅客提供优质便捷的服务。
为了提高道路客运的售票效率,丰富道路客运的营销手段,车站售票总站及其下属代收点可以通过公用的互联网资源,实现网上的售票。
1.2 目的和意义:随着旅游业的逐渐成熟发达,铁路客运量大幅度的提高,各大省市的客车都显著的增加,这些都对客车票务管理系统提出了更高的要求,所以要不断的完善更新客车票务管理系统,提高列车售票系统的工作效率。
长途汽车管理系统数据库课程设计
长途汽车管理系统数据库课程设计一、项目简介长途汽车运输行业一直是一个复杂而庞大的系统,为了更好地管理这个行业中的各种信息和数据,一个高效的长途汽车管理系统数据库是必不可少的。
本课程设计主要围绕着设计一个功能完善、高效可靠的长途汽车管理系统数据库展开,以满足行业需求。
二、数据库设计1. 实体关系模型•车辆信息–车辆ID–车牌号–型号–座位数–车辆状态•司机信息–司机ID–姓名–驾驶证号–联系方式•路线信息–路线ID–起点–终点–里程–途经站点•订单信息–订单ID–乘客姓名–出发时间–到达时间–订单状态2. 数据库表结构设计•车辆表(Vehicles)–车辆ID–车牌号–型号–座位数–车辆状态•司机表(Drivers)–司机ID–姓名–驾驶证号–联系方式•路线表(Routes)–路线ID–起点–终点–里程–途经站点•订单表(Orders)–订单ID–乘客姓名–出发时间–到达时间–订单状态三、数据库功能设计1.查询功能:能够根据各种条件查询车辆、司机、路线以及订单信息。
2.添加功能:能够添加新的车辆、司机、路线和订单信息到数据库中。
3.修改功能:能够修改数据库中的车辆、司机、路线和订单信息。
4.删除功能:能够删除数据库中的车辆、司机、路线和订单信息。
四、数据库操作1.查询所有车辆信息:SELECT*FROM Vehicles;2.查询所有订单信息:SELECT*FROM Orders;3.添加新的路线信息:INSERT INTO Routes (路线ID, 起点, 终点, 里程, 途经站点) VALUES (1, '上海', '北京', 1200, '南京, 郑州');4.修改特定订单的状态:UPDATE Orders SET订单状态='已完成'WHERE订单ID =1;五、总结通过本课程设计,我们设计了一个基于数据库的长途汽车管理系统,包括车辆信息、司机信息、路线信息和订单信息等,实现了查询、添加、修改和删除等功能。
汽车站管理系统
《数据库原理》课程设计报告设计题目:汽车站管理系统系别:计算机与信息科学系学生姓名:学号:指导教师:专业:班级:完成时间:目录一、需求分析(1)系统综合需求 (3)(2)系统逻辑模型 (3)二、系统设计(1)概念结构设计 (4)(2)逻辑结构设计 (4)(3)相关SQL语句操作 (5)三、详细设计(1)开发平台及工具 (8)(2) java实现相关代码 (8)(3)系统运行相关解析 (22)四、参考文献 (26)五、设计总结 (27)一、需求分析(一)系统综合需求主要实现的功能是汽车站驾驶人员和路线及汽车等基本信息进行管理,包括浏览驾驶员信息、路线信息,查询和统计一些驾驶员、汽车等数据,修改驾驶员行走的路线信息等。
1.以用户需求为方针,以便操作户为原则,体系将在统一的WINDOWS 操作体系图形界面下供应各类适用成果,尽年夜概低落使用前的进修、执行和使用中的维护时刻。
2.近于手工的操作,直不雅的图形用户界面,美不雅、友好、年夜略易用:悉数菜单,窗口,操作方法均为win98气概。
操作便利,丰裕思量前台操作职员操作前说起风俗,有精采的易用性。
(二)系统逻辑模型实体E-R图二、系统设计(一)概念结构设计2.汽车表car:3.路线表line(二)逻辑结构设计1.驾驶员表driverCREATE TABLE driver(driverID char(20) primary key,car_ID char(20) NOT NULL ,name char(20)unique,brithday char(20),sex char(2),standing char(20),foreign key (car_ID) references car(car_ID ) );2.汽车表car:创建汽车表表:CREATE TABLE car(car_ID char(20)primary key,type char(20) ,capacity char(20) ,);3.路线表line创建路线表:CREATE TABLE line(line_ID char(20)primary key,destination char(20) not null,take_time char(20) ,start_address char(20) not null,ticket_price char(20) not null);4.汽车路线表car_line创建汽车路线表:CREATE TABLE car_line(carID char(20),lineID char(20),primary key(carID,lineID));5.用户表user_ID.创建用户表表:CREATE TABLE user_ID(username varchar(20),password varchar(20),primary key(username,password));(三)相关SQL语句操作插入数据1.汽车表数据insert into car values('091201','飞鹤','45');insert into car values('091202','快鹿','40');insert into car values('091203','鸵鸟','42');insert into car values('091204','风火轮','45');insert into car values('091205','筋斗云','38');insert into car values('091206','白龙马','42');insert into car values('091207','毛驴','36');insert into car values('091208','青牛','50');2.驾驶员数据insert into driver (driverID,car_ID,name,brithday,sex,standing)values ('19491001','091201','吴士','1981','1','6');insert into driver (driverID,car_ID,name,brithday,sex,standing)values ('19491002','091204','孙悟','1974','1','15');insert into driver (driverID,car_ID,name,brithday,sex,standing)values ('19491003','091203','李娇','1979','0','9');insert into driver (driverID,car_ID,name,brithday,sex,standing)values ('19491004','091202','夏雨荷','1983','0','6');insert into driver (driverID,car_ID,name,brithday,sex,standing)values ('19491005','091205','刘备','1977','1','16');insert into driver (driverID,car_ID,name,brithday,sex,standing)values ('19491006','091208','诸葛亮','1985','1','4');insert into driver (driverID,car_ID,name,brithday,sex,standing)values ('19491007','091206','陈娜','1975','0','17');insert into driver (driverID,car_ID,name,brithday,sex,standing)values ('19491008','091207','张海风','1978','1','10');insert into driver (driverID,car_ID,name,brithday,sex,standing)values ('19491009','091201','朱翠翠','1980','0','8');insert into driver (driverID,car_ID,name,brithday,sex,standing)values ('19491010','091204','赵薇','1988','0','1');insert into driver (driverID,car_ID,name,brithday,sex,standing)values ('19491011','091208','李鸣','1978','1','12');insert into driver (driverID,car_ID,name,brithday,sex,standing)values ('19491012','091203','周杰磊','1981','1','4');3.路线表数据insert into line (line_ID,destination,take_time,start_address,ticket_price) values ('201001','上海','3小时','南京','123');insert into line (line_ID,destination,take_time,start_address,ticket_price) values ('201002','南通','4小时','南京','233');insert into line (line_ID,destination,take_time,start_address,ticket_price) values ('201003','苏州','3个半小时','南京','256');insert into line (line_ID,destination,take_time,start_address,ticket_price) values ('201004','盐城','3小时20分','南京','330');insert into line (line_ID,destination,take_time,start_address,ticket_price) values ('201005','泰州','2个半小时','南京','450');insert into line (line_ID,destination,take_time,start_address,ticket_price) values ('201006','扬州','2小时','南京','326');insert into line (line_ID,destination,take_time,start_address,ticket_price) values ('201007','上海','3小时','南京','521');insert into line (line_ID,destination,take_time,start_address,ticket_price) values ('201008','苏州','3小时','南京','430');4.汽车路线表数据insert into car_line (carID,lineID) values ('91202','201001');insert into car_line(carID,lineID) values ('91207','201002');insert into car_line(carID,lineID) values ('91208','201007');insert into car_line(carID,lineID) values ('91206','201003');insert into car_line (carID,lineID) values ('91205','201008');insert into car_line (carID,lineID) values ('91204','201005');insert into car_line (carID,lineID) values ('91201','201004');insert into car_line (carID,lineID) values ('91203','201006');insert into car_line (carID,lineID) values ('91202','201003');insert into car_line (carID,lineID) values ('91206','201006');5.用户表数据insert into user_ID values('邱冬','123456');建立索引建立索引遵循的规律:1.建立在where子句经常引用的列上,2.经常需要排序的列上,3.连接属性列上等create index car_index on car(car_ID);--汽车表在汽车编号字段上建立索引create index driver_index on driver(driverID);--驾驶员表在驾驶员编号字段上建立索引create index line_index on line(lineID);--路线表在路线编号字段上建立索引create index take_time_index on line(take_time);--路线表在路线所需时间上建立索引,以备查询各路线所需时间⏹建立视图1.创建过程take_time_list,查询各路线所花时间:create view take_time_listasselect line_ID,take_timefrom line;2.创建过程ticket_price,查询各路线所需票价create view ticket_priceasselect destination,start_address,ticket_pricefrom line;3.创建过程car_line_driver,查询各路线行驶的所有驾驶员及车辆create view car_line_driverasselect line.destination,start_address,driverID,car.car_IDfrom car,line,driver三、详细设计(一)开发平台及工具●开发工具: eclipse 7.0● DBMS: Microsoft SQL Sever 2000●连接:JDBC 连接SQL Server 2000(二) java实现相关代码➢连接代码package Select;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class lianjie {public static Connection getConnection() {Connection con=null;try{ //加载JDBC驱动StringdriverName="com.microsoft.sqlserver.jdbc.SQLServerDriver";String dbURL= "jdbc:sqlserver://127.0.0.1:1433;DatabaseName=db_car"; String userName = "sa"; //默认用户名String userPwd = "123456"; //密码Class.forName(driverName);//注册con=DriverManager.getConnection(dbURL,userName,userPwd);}catch(Exception ex){ex.printStackTrace();}return con;}}➢登陆窗体package Fram.login;public class Login extends JDialog {private JPasswordField passwordField;private JTextField textField_user;private JTextField textField;static Login dialog;public static void main(String args[]) {EventQueue.invokeLater(new Runnable() {public void run() {try {dialog = new Login();dialog.addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e) {System.exit(0);}});dialog.setVisible(true);} catch (Exception e) {e.printStackTrace();}}});}public Login() {super();setTitle("登陆系统");getContentPane().setLayout(null);setBounds(100, 100, 435, 281);final JLabel label = new JLabel();label.setForeground(Color.RED);label.setFont(new Font("", Font.PLAIN, 26));label.setBackground(Color.CYAN);label.setText(" 登录车站管理系统");label.setBounds(66, 0, 257, 100);getContentPane().add(label);textField = new JTextField();textField.setBackground(Color.BLUE);textField.setBounds(0, 0, 437, 100);getContentPane().add(textField);final JLabel label_1 = new JLabel();label_1.setText("用户名");label_1.setBounds(98, 119, 48, 18);getContentPane().add(label_1);textField_user = new JTextField();textField_user.setBounds(166, 117, 87, 22);getContentPane().add(textField_user);passwordField = new JPasswordField();passwordField.setBounds(166, 145, 87, 22);getContentPane().add(passwordField);final JLabel label_1_1 = new JLabel();label_1_1.setText("密码");label_1_1.setBounds(98, 147, 48, 18);getContentPane().add(label_1_1);final JButton button = new JButton();button.addActionListener(new ActionListener() {public void actionPerformed(final ActionEvent arg0) {Connection conn=lianjie.getConnection();try {Statement s = conn.createStatement();String sql = "select * from user_ID";ResultSet rs = s.executeQuery(sql);String[]name=new String[rs.getMetaData().getColumnCount()];while(rs.next()){name[0]=rs.getString("username").toString();name[1]=rs.getString("password").toString();}System.out.println(textField_user.getText().toString().equals(name[0]));if(!textField_user.getText().equals(name[0].toString())){JOptionPane.showMessageDialog(null, "用户名错误");return;}else if(!passwordField.getText().equals(name[1])){ JOptionPane.showMessageDialog(null, "密码错误");return; }else{QCFram d=new QCFram();d.setVisible(true);dialog.setVisible(false);}rs.close();s.close();conn.close();} catch (SQLException e) {e.printStackTrace();} }});button.setText("登陆");button.setBounds(166, 184, 60, 22);getContentPane().add(button);final JButton button_1 = new JButton();button_1.addActionListener(new ActionListener() {public void actionPerformed(final ActionEvent arg0) {System.exit(0);}});button_1.setText("退出");button_1.setBounds(240, 184, 60, 22);getContentPane().add(button_1);Date date = new Date();SimpleDateFormat from = new SimpleDateFormat( "yyyy-MM-dd"); String times = from.format(date);final JLabel label_2 = new JLabel();label_2.setForeground(new Color(0, 0, 255));label_2.setText("当前日期 :"+times);label_2.setBounds(166, 224, 134, 23);getContentPane().add(label_2);final JLabel label_2_1 = new JLabel();label_2_1.setForeground(new Color(0, 0, 255));label_2_1.setText("制作人:邱冬、肖旭栩");label_2_1.setBounds(306, 224, 121, 23);getContentPane().add(label_2_1); }}➢主窗体package Fram.login;public class QCFram extends JDialog {private JTextField textField_1;private JTextField textField;QCFram dialog;public static void main(String args[]) {EventQueue.invokeLater(new Runnable() {public void run() {try {QCFram dialog = new QCFram();dialog.addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e) {System.exit(0);}});} catch (Exception e) {e.printStackTrace();}}});} public QCFram() {super();setTitle("车站管理系统");getContentPane().setLayout(null);setBounds(100, 100, 500, 362);final JMenuBar menuBar = new JMenuBar();menuBar.setBackground(Color.CYAN);setJMenuBar(menuBar);final JMenu menu = new JMenu();menu.setText("查询");menuBar.add(menu);final JMenuItem newItemMenuItem = new JMenuItem();newItemMenuItem.addActionListener(new ActionListener() { public void actionPerformed(final ActionEvent arg0) { jiashiyuan y=new jiashiyuan();y.setVisible(true);}});newItemMenuItem.setText("驾驶员");menu.add(newItemMenuItem);final JMenuItem newItemMenuItem_2 = new JMenuItem();newItemMenuItem_2.addActionListener(new ActionListener() { public void actionPerformed(final ActionEvent arg0) { qiche q=new qiche();q.setVisible(true);}});newItemMenuItem_2.setText("汽车");menu.add(newItemMenuItem_2);final JMenuItem newItemMenuItem_3 = new JMenuItem();newItemMenuItem_3.addActionListener(new ActionListener() { public void actionPerformed(final ActionEvent arg0) { luxian l=new luxian();l.setVisible(true);}});newItemMenuItem_3.setText("行车路线");menu.add(newItemMenuItem_3);final JMenu menu_1 = new JMenu();menu_1.setText("添加数据");menuBar.add(menu_1);final JMenuItem newItemMenuItem_4 = new JMenuItem();newItemMenuItem_4.addActionListener(new ActionListener() { public void actionPerformed(final ActionEvent arg0) { Ujiashiyuan y=new Ujiashiyuan();y.setVisible(true);}});newItemMenuItem_4.setText("添加驾驶员");menu_1.add(newItemMenuItem_4);final JMenuItem newItemMenuItem_5 = new JMenuItem();newItemMenuItem_5.addActionListener(new ActionListener() { public void actionPerformed(final ActionEvent arg0) { Uqiche uqi=new Uqiche();uqi.setVisible(true);}});newItemMenuItem_5.setText("添加汽车");menu_1.add(newItemMenuItem_5);final JMenuItem newItemMenuItem_6 = new JMenuItem();newItemMenuItem_6.addActionListener(new ActionListener() { public void actionPerformed(final ActionEvent arg0) { Uluxian lu=new Uluxian();lu.setVisible(true);}});newItemMenuItem_6.setText("添加行车路线");menu_1.add(newItemMenuItem_6);final JMenu menu_2 = new JMenu();menu_2.setText("修改数据");menuBar.add(menu_2);final JMenuItem newItemMenuItem_7 = new JMenuItem();newItemMenuItem_7.setText("驾驶员");menu_2.add(newItemMenuItem_7);final JMenuItem newItemMenuItem_8 = new JMenuItem();newItemMenuItem_8.setText("汽车");menu_2.add(newItemMenuItem_8);final JMenuItem newItemMenuItem_9 = new JMenuItem();newItemMenuItem_9.setText("行车路线");menu_2.add(newItemMenuItem_9);final JMenuItem newItemMenuItem_1 = new JMenuItem();newItemMenuItem_1.addActionListener(new ActionListener() { public void actionPerformed(final ActionEvent e) {System.exit(0);}});newItemMenuItem_1.setBackground(Color.CYAN);newItemMenuItem_1.setText("退出");menuBar.add(newItemMenuItem_1);final JLabel label = new JLabel();label.setForeground(new Color(255, 0, 0));label.setFont(new Font("", Font.PLAIN, 16));Connection conn=lianjie.getConnection();Statement s;try {s = conn.createStatement();String sql = "select * from user_ID";ResultSet rs = s.executeQuery(sql); //执行sql语句 String[]name=newString[rs.getMetaData().getColumnCount()];while(rs.next()){name[0]=rs.getString("username").toString();name[1]=rs.getString("password").toString();}rs.close();s.close();conn.close();Date date = new Date();SimpleDateFormat from = new SimpleDateFormat( "yyyy-MM-dd");String times = from.format(date);label.setText("操作员:"+name[0].toString()+" 当前日期:"+times);} catch (SQLException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}label.setBounds(177, 267, 297, 26);getContentPane().add(label);textField_1 = new JTextField();textField_1.setBackground(new Color(153, 204, 255));textField_1.setBounds(0, 0, 492, 261);textField_1.setEditable(false);getContentPane().add(textField_1);}private static void addPopup(Component component, final JPopupMenu popup) {component.addMouseListener(new MouseAdapter() {public void mousePressed(MouseEvent e) {if (e.isPopupTrigger())showMenu(e);}public void mouseReleased(MouseEvent e) {if (e.isPopupTrigger())showMenu(e);}private void showMenu(MouseEvent e) {popup.show(e.getComponent(), e.getX(), e.getY());}});}} ➢驾驶员信息查询窗体package Select;public class jiashiyuan extends JFrame {private JTextField textField;private JScrollPane scrollPane;private JTable table;private String name[]={"驾驶员编号","汽车编号","姓名","生日","性别","工作年限"};private String[][]data;static jiashiyuan frame;public static void main(String args[]) {EventQueue.invokeLater(new Runnable() {public void run() {try {frame= new jiashiyuan();frame.setVisible(true);} catch (Exception e) {e.printStackTrace();}}});}public jiashiyuan() {super();setResizable(false);setTitle("驾驶员");getContentPane().setLayout(null);setBounds(100, 100, 587, 375);scrollPane = new JScrollPane();scrollPane.setBounds(0, 0, 580, 245);Connection conn=lianjie.getConnection();Connection conn1=lianjie.getConnection();try {Statement s = conn.createStatement();String sql = "select * from driver";ResultSet rs = s.executeQuery(sql); //执行sql语句Statement s1 = conn1.createStatement();String sql1 = "select * from driver";ResultSet rs1= s1.executeQuery(sql1); //执行sql语句int row=0;//总行数while(rs1.next()){ row++;}data = newString[row][rs.getMetaData().getColumnCount()];int ii=0;while(rs.next()){data[ii][0]=rs.getString("driverID");data[ii][1]=rs.getString("car_ID");data[ii][2]=rs.getString("name");data[ii][3]=rs.getString("brithday");data[ii][4]=rs.getString("sex");data[ii][5]=rs.getString("standing");ii++; } rs.close();s.close();s1.close();rs1.close();conn.close();table=new JTable(data,name);table.getTableHeader().setPreferredSize(new Dimension(table.getTableHeader().getWidth(),30));} catch (SQLException e) {e.printStackTrace();} scrollPane.setViewportView(table);getContentPane().add(scrollPane);final JLabel label = new JLabel();label.setForeground(new Color(255, 0, 0));label.setFont(new Font("", Font.PLAIN, 15));label.setText("驾驶员信息");label.setBounds(279, 280, 76, 28);getContentPane().add(label);Date date = new Date();SimpleDateFormat from = new SimpleDateFormat( "yyyy-MM-dd");String times = from.format(date);final JLabel label_1 = new JLabel();label_1.setForeground(new Color(255, 0, 0));label_1.setText(times);label_1.setBounds(279, 314, 66, 18);getContentPane().add(label_1);} }➢添加驾驶员信息窗体package Updata;public class Ujiashiyuan extends JDialog {private JTextField textField_6;private JTextField textField_5;private JTextField textField_4;private JTextField textField_3;private JTextField textField_2;private JTextField textField;static Ujiashiyuan dialog1;public static void main(String args[]) {EventQueue.invokeLater(new Runnable() {public void run() {try {dialog1 = new Ujiashiyuan();dialog1.addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e) {System.exit(0);}});dialog1.setVisible(true);} catch (Exception e) {e.printStackTrace();}}});}public Ujiashiyuan() {super();getContentPane().setLayout(null);setTitle("添加驾驶员");setResizable(false);setBounds(100, 100, 287, 374);final JLabel label = DefaultComponentFactory.getInstance().createLabel("驾驶员编号");label.setForeground(new Color(255, 0, 255));label.setFont(new Font("", Font.PLAIN, 16));label.setBounds(24, 36, 81, 26);getContentPane().add(label);final JLabel label_1 = DefaultComponentFactory.getInstance().createLabel("汽车编号");label_1.setForeground(new Color(255, 0, 255));label_1.setFont(new Font("", Font.PLAIN, 16));label_1.setBounds(24, 76, 81, 26);getContentPane().add(label_1);final JLabel label_2 = DefaultComponentFactory.getInstance().createLabel("姓名");label_2.setForeground(new Color(255, 0, 255));label_2.setFont(new Font("", Font.PLAIN, 16));label_2.setBounds(24, 108, 81, 26);getContentPane().add(label_2);final JLabel label_2_1 = DefaultComponentFactory.getInstance().createLabel("出生年月");label_2_1.setForeground(new Color(255, 0, 255));label_2_1.setFont(new Font("", Font.PLAIN, 16));label_2_1.setBounds(24, 140, 81, 26);getContentPane().add(label_2_1);final JLabel label_2_2 = DefaultComponentFactory.getInstance().createLabel("性别");label_2_2.setForeground(new Color(255, 0, 255));label_2_2.setFont(new Font("", Font.PLAIN, 16));label_2_2.setBounds(24, 186, 81, 26);getContentPane().add(label_2_2);final JLabel label_2_2_1 = DefaultComponentFactory.getInstance().createLabel("工作年限");label_2_2_1.setForeground(new Color(255, 0, 255));label_2_2_1.setFont(new Font("", Font.PLAIN, 16));label_2_2_1.setBounds(24, 218, 81, 26);getContentPane().add(label_2_2_1);textField = new JTextField();textField.setBounds(120, 40, 105, 22);getContentPane().add(textField);textField_2 = new JTextField();textField_2.setBounds(120, 80, 105, 22);getContentPane().add(textField_2);textField_3 = new JTextField();textField_3.setBounds(120, 112, 105, 22);getContentPane().add(textField_3);textField_4 = new JTextField();textField_4.setBounds(120, 144, 105, 22);getContentPane().add(textField_4);textField_5 = new JTextField();textField_5.setBounds(120, 190, 105, 22);getContentPane().add(textField_5);textField_6 = new JTextField();textField_6.setBounds(120, 222, 105, 22);getContentPane().add(textField_6);final JButton button = new JButton();button.addActionListener(new ActionListener() {public void actionPerformed(final ActionEvent arg0) {Connection conn=lianjie.getConnection();try {String sql="insert into driver values(?,?,?,?,?,?)";PreparedStatement ps=conn.prepareStatement(sql);ps.setNString(1, textField.getText());ps.setNString(2, textField_2.getText());ps.setNString(3, textField_3.getText());ps.setNString(4, textField_4.getText());ps.setNString(5, textField_5.getText());ps.setNString(6, textField_6.getText());ps.executeUpdate();ps.close();conn.close();} catch (SQLException e) {e.printStackTrace();JOptionPane.showMessageDialog(null, "插入失败")}}});button.setForeground(new Color(255, 0, 255));button.setFont(new Font("", Font.PLAIN, 16));button.setText("添加");button.setBounds(143, 281, 89, 28);getContentPane().add(button);}}➢添加行车路线窗体package Updata;public class Uluxian extends JDialog {private JTextField textField_5;private JTextField textField_4;private JTextField textField_3;private JTextField textField_2;private JTextField textField;public static void main(String args[]) {EventQueue.invokeLater(new Runnable() {public void run() {try {Uluxian dialog = new Uluxian();dialog.addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e) {System.exit(0);}});dialog.setVisible(true);} catch (Exception e) {e.printStackTrace();}}}); }public Uluxian() {super();setResizable(false);getContentPane().setLayout(null);setBounds(100, 100, 306, 383);final JLabel label = DefaultComponentFactory.getInstance().createLabel("路线编号");label.setForeground(new Color(255, 0, 255));label.setFont(new Font("", Font.PLAIN, 16));label.setBounds(23, 28, 83, 32);getContentPane().add(label);final JLabel label_1 = DefaultComponentFactory.getInstance().createLabel("目的地");label_1.setForeground(new Color(255, 0, 255));label_1.setFont(new Font("Dialog", Font.PLAIN, 16));label_1.setBounds(23, 66, 83, 32);getContentPane().add(label_1);final JLabel label_2 = DefaultComponentFactory.getInstance().createLabel("所需时间");label_2.setForeground(new Color(255, 0, 255));label_2.setFont(new Font("Dialog", Font.PLAIN, 16));label_2.setBounds(23, 104, 83, 32);getContentPane().add(label_2);final JLabel label_3 = DefaultComponentFactory.getInstance().createLabel("出发地");label_3.setForeground(new Color(255, 0, 255));label_3.setFont(new Font("Dialog", Font.PLAIN, 16));label_3.setBounds(23, 142, 83, 32);getContentPane().add(label_3);final JLabel label_4 = DefaultComponentFactory.getInstance().createLabel("票价");label_4.setForeground(new Color(255, 0, 255));label_4.setFont(new Font("Dialog", Font.PLAIN, 16));label_4.setBounds(23, 180, 83, 32);getContentPane().add(label_4);textField = new JTextField();textField.setBounds(126, 28, 109, 29);getContentPane().add(textField);textField_2 = new JTextField();textField_2.setBounds(126, 70, 109, 29);getContentPane().add(textField_2);textField_3 = new JTextField();textField_3.setBounds(126, 108, 109, 29);getContentPane().add(textField_3);textField_4 = new JTextField();textField_4.setBounds(126, 146, 109, 29);getContentPane().add(textField_4);textField_5 = new JTextField();textField_5.setBounds(126, 184, 109, 29);getContentPane().add(textField_5);final JButton button = new JButton();button.addActionListener(new ActionListener() {public void actionPerformed(final ActionEvent arg0) { Connection conn=lianjie.getConnection();try {String sql="insert into line values(?,?,?,?,?)"; PreparedStatement ps=conn.prepareStatement(sql);ps.setNString(1, textField.getText());ps.setNString(2, textField_2.getText());ps.setNString(3, textField_3.getText());ps.setNString(4, textField_4.getText());ps.setNString(5, textField_5.getText());ps.executeUpdate();ps.close();conn.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();JOptionPane.showMessageDialog(null, "插入失败");}}});button.setForeground(new Color(255, 0, 255));button.setFont(new Font("", Font.PLAIN, 16));button.setText("添加");button.setBounds(158, 259, 93, 39);getContentPane().add(button); }}➢添加汽车窗体package Updata;public class Uqiche extends JDialog {private JTextField textField_3;private JTextField textField_2;private JTextField textField;public static void main(String args[]) {EventQueue.invokeLater(new Runnable() {public void run() {try {Uqiche dialog = new Uqiche();dialog.addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e) {System.exit(0);}});dialog.setVisible(true);} catch (Exception e) {e.printStackTrace();}}});}public Uqiche() {super();getContentPane().setLayout(null);setTitle("添加汽车");setResizable(false);setBounds(100, 100, 292, 375);final JLabel label = DefaultComponentFactory.getInstance().createLabel("汽车编号");label.setForeground(new Color(255, 0, 255));label.setFont(new Font("", Font.PLAIN, 16));label.setBounds(22, 30, 98, 35);getContentPane().add(label);final JLabel label_1 = DefaultComponentFactory.getInstance().createLabel("类型");label_1.setForeground(new Color(255, 0, 255));label_1.setFont(new Font("Dialog", Font.PLAIN, 16));label_1.setBounds(22, 88, 98, 35);getContentPane().add(label_1);final JLabel label_2 = DefaultComponentFactory.getInstance().createLabel("载客量");label_2.setForeground(new Color(255, 0, 255));label_2.setFont(new Font("Dialog", Font.PLAIN, 16));label_2.setBounds(22, 152, 98, 35);getContentPane().add(label_2);textField = new JTextField();。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库课程设计》题目:某客运公司的运输管理数据库的设计与实现院系:信息工程学院专业:信息管理与信息系统学号:姓名:指导教师:1 系统概况1.1系统设计的目的在信息技术高度发展的今天,传统手工记录客运站信息,已满足不了正常需求。
因此为了降低管理人员的工作量开发一个客运公司的运输管理系统。
旨在为客运信息管理员提供一个可行法案。
通过利用数据库的强大功能,按规范管理运输信息。
方便查询线路车次情况,各个班次的售票情况,以及每个班次的班车信息。
方便管理员的查询,及修改汽车线路信息,汽车信息和车票信息。
将录入操作交给电脑来完成。
这样既能减少管理员工作量还能满足日益增长的需求。
也借以说明计算机技术在当今世界发展中的重要地位和科技创新的重要意义。
1.2系统开发的背景与意义由于社会的不断发展,技术的不断进步,信息技术和数据处理速度越来越引起人们的重视,因为信息的大量而快速的传递,大批量数据的处理单靠人工是不可靠的,也是不现实的。
各行业都迫切需要高性能的的管理系统。
客运公司的运输管理数据库系统是面向所有汽车,路线车型的数据管理系统,其目的是使乘车有序化,规范化,简单化,易于车站人员的管理,查询。
而客运公司的运输管理系统就是根据车站发展的需要而建立的典型的信息管理系统。
它以处理为中心,其重点是进行查询,打印客户所需信息。
并且从分析用户需求开始,模块划分、建立数据库、代码设计,调试最后完成。
主要针对的使用者时客运信息管理员(负责本客运站的线路加减以及售票)。
开发主要包括数据库的建立和维护。
1.3系统实现的目标本次数据库设计应实现客运运输管理系统的基本功能。
目标包括实现车型、路线、驾驶员等信息的管理;实现线路车次、线路站点及票价管理;实现售票管理;创建存储过程按线路统计乘坐次数;实现按车次统计某段时间的乘坐次数;实现售票时自动修改相应车次已售座位数;实现查询各线路各车型的数量;建立数据库相关表之间的参照完整性约束的关系图。
2 系统需求分析2.1 系统总体需求系统总体需求主要根据系统功能分析系统设计之前的规划工作,包括分析系统元素的种类、功能、各数据项以及系统整体性能模式。
另外,也包括系统各实体之间的联系,系统各模块功能的分析,软硬件平台的介绍等。
2.1.1设计内容本系统设计的是一个客运站运输管理系统,该系统的由管理员组成进行管理。
用2008创建后台数据库按照要求完成所有的功能和模块。
1.客运运输管理信息系统主要功能(1)汽车信息管理管理员可以在汽车信息管理模块对汽车信息进行管理,管理员可以添加,修改,和删除本客运站的汽车信息。
该模块还可以查看现有汽车信息。
(2)班次信息管理管理员可以在班次信息管理模块对班次信息进行管理,管理员可以添加,修改,和删除本客运站运营的班次及线路。
班次信息包括:班次号、出发地、目的地、出发时间、到站时间、乘坐次数。
(3)车票信息管理该模块记录各个各个线路的售票情况。
主要包括票价的管理,已售票,余票的管理。
(4)司机信息管理管理员可以在司机信息管理模块对司机信息进行管理,管理员可以添加,修改,和删除本客运站所有的司机。
司机信息包括:司机名、驾驶证号、性别、手机、出生日期。
(5)乘客信息管理管理员可以在乘客信息管理模块对乘客信息进行管理。
(6) 客运站管理员信息管理客运站管理员主要对车票,班次进行管理。
2.客运运输管理信息系统数据库表单(1)系统管理员信息表单,主要字段有:登录名、密码。
(2)司机信息表单,主要字段有:司机名(主键),驾驶证号,性别,手机,出生日期。
(3)汽车信息表单,主要字段有:车牌号(主键)、汽车种类、最大载客量、班次号、司机名(4)班次信息表单,主要字段有:班次号(主键)、出发地、目的地、出发时间、到站时间、乘坐次数、管理姓名(5)车票信息表单,主要字段有:车票编号(主键)、已售座位、票价、班次号、余票、出发时间、出发地、目的地、管理员姓名(6)乘客信息表单,主要字段有:乘客姓名(主键)、车票编号、性别、出生日期(7)客运站管理员信息表单,主要字段有:管理员姓名(主键),密码(8)乘坐表表单,主要字段有:班次号、出发地、目的地、出发时间、到站时间、车牌号、乘客姓名2.2 系统整体功能介绍该客运公司运输管理系统整体功能是通过管理员对汽车信息、司机信息、线路信息、乘客信息、车票信息、班次信息,客运站管理员信息进行管理,主要通过对该该客运公司运输的实际情况做出合适的增、删、改。
整体功能模块如图2-1所示。
图2-1功能模块图2.3 系统元素、实体介绍系统中有六个实体,分别是客运站管理员,班次,汽车,乘客,车票,司机。
其中客运站管理员主要有两个属性,分别是:管理员姓名(主键)、密码,其中管理员姓名作为主键,主要是对车票和班次进行管理。
班次主要有7个属性,分别是:班次号(主键)、出发地、目的地、出发时间、到站时间、乘坐次数、管理员姓名。
汽车主要有5个属性,分别是:车牌号(主键)、汽车种类、最大载客量、班次号、司机名。
乘客主要有4个属性乘客姓名(主键),车票编号、性别、出生日期。
乘客乘坐汽车时有一个乘坐的动态过程,乘坐表属性主要有:班次号、出发地、目的地、出发时间、到站时间、车牌号、乘客姓名。
车票主要有9个属性,分别是:车票编号(主键)、已售座位、票价、班次号、余票、出发时间、出发地、目的地、管理员姓名。
司机主要有5个属性,分别是:司机名(主键)、驾驶证号、性别、手机、出生日期。
2.3.1数据字典本系统的数据字典如表2-1所示。
表2-12.4数据流程图本客运站运输管理系统需要对车票管理,乘客管理,汽车管理,司机管理,班次以及线路进行管理,其数据流程图如2-2所示图2-2数据流程图2.5 软硬件平台介绍本系统主要在一台装有或系统的电脑,并装有2008即可,对硬件无很大要求。
其中2008 可以组织管理任何数据。
可以将结构化、半结构化和非结构化文档的数据直接存储到数据库中。
可以对数据进行查询、搜索、同步、报告和分析之类的操作。
数据可以存储在各种设备上,从数据中心最大的服务器一直到桌面计算机和移动设备,它都可以控制数据而不用管数据存储在哪里。
3 概念结构设计3.1 概念设计3.1.1 班次与汽车之间的联系班次与汽车之间是属于关系:汽车在哪个班次发车。
如图3-1所示。
图3-1班次与汽车联系图3.1.2 司机与汽车之间的联系司机与汽车之间是驾驶关系如图3-2所示。
图3-2司机与汽车联系图3.1.3 乘客与车票之间的联系乘客与车票之间是车票向乘客进行售票,如图3-3所示。
图3-3乘客与车票联系图3.1.4乘客与汽车之间的联系乘客与汽车之间的联系是乘客需要乘车去目的地,如图3-4.所示。
图3-4乘客与汽车联系图3.1.5车票与班次之间的联系车票与班次之间是属于关系如图3-5所示。
图3-5班次与车票联系图3.2 全局图系统管理员首先需要对车票,司机,汽车,班次,线路,乘客,客运站管理员等信息的管理。
根据车票和乘客之间的联系图,再根据乘客与汽车之间的联系进行连接,车票与班次的联系,最后汽车既与班次有联系连接。
形成以下总体图,系统管理员对车票,司机,汽车,线路,乘客等信息的管理,其中客运站管理员管理车票,班次。
车票售给乘客,然后乘客乘坐汽车,司机开车,汽车在线路上行驶去目的地。
如图3-5所示。
图3-5全局图4 逻辑设计实体型转化关系模式。
实体的属性就是关系的属性,实体间的码就是关系的码。
对于实体间的联系则有以下不同的情况:一个联系转换为一个关系模式。
与该联系相连的各实体的码以及联系本身的属性均转化为关系的属性。
一个1联系可以转化为一个独立的关系模式,也可以与n端对应的关系模式合并。
如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性军转换位关系的属性,二关系的码为n端实体的码。
一个1:1关系可以转换为一个独立的关系模式,也也可以与任意一端对应的关系模式合并。
三个或三个以上实体间的一个多元联系可以转换为一个关系模式。
与该多元联系相连的各实体的码以及联系本身的属性均转换为欢喜的属性,二关系的码为各实体码的组合。
具有相同码的关系模式可以合并。
由于本系统7张表,也只有6个实体,客运站管理员与车票之间是管理关系,两者之间的联系是1:n; 乘客与车票之间是售票关系,两者之间的联系是1:1 ;乘客与汽车之间是乘坐关系,两者之间的联系是m:n ; 汽车与司机之间是驾驶关系,两者之间的联系是1:1;汽车与班次之间是属于关系,两者之间的联系是1:n; 班次与车票之间是属于关系,两者之间的联系是1:n ;班次与客运站管理员之间是被管理关系,两者之间的联系是n:1 。
图向关系模型的转化如下:客运站管理员信息表(管理员姓名,密码)车票信息表(车票编号,班次号,票价,已售座位,余票,出发地,目的地,管理员姓名,出发时间)。
乘客信息表(乘客姓名,车票编号,性别,出生日期)。
乘坐表(班次号,出发地,目的地,出发时间,到站时间,车牌号,乘客姓名)汽车基本信息表(车牌号,班次号,汽车种类,最大载客量,司机名)。
司机信息表(司机名,驾驶证号,性别,手机,出生日期)。
班次信息表(班次号,出发地,目的地,出发时间,到站时间,乘坐次数,管理员姓名)系统管理员信息表(登录名,密码)5 物理结构设计数据库最终是要存储在屋里设备上的。
数据库在物理设备上的存储结构与存取方法称为数据库的物理结构,它依赖于给定的计算机系统。
为一个给定的逻辑数据模型选取一个最合适应用环境的物理结构的过程,就是数据库的物理设计。
数据库的物理设计主要分两步:(1)根据逻辑设计确定数据库的物理结构;(2)对物理结构进行评价,评价的重点是时间和空间效率。
5.1数据库的物理结构数据库的物理结构依赖于所选用的,依赖于计算机硬件环境,在设计时主要考虑以下几方面:(1)确定数据库的存储结构确定数据库的存储结构是要综合考虑存取时间、存取空间利用率和维护代价三方面的因素。
为了提高班次,车票,司机,汽车,以及线路之间的查询速度,把所有的存放在一个物理快中,如果存放不下,可以存放到预留的空白区或链接多个物理快。
聚簇功能可以大大提高按聚簇码进行查询的效率,聚簇以后,聚簇码相同的元组集中在一起了,因而聚簇码值不必在每个元组重复存储,只要在一组中存一次就可以了,也因此可以节省一些存储空间。
聚簇功能不但适用于单个关系,也适用于多个关系。
(2)设计数据的存储路径在关系数据库中,选择存储路径主要是指建立索引。
(3)确定数据的存放位置为了提高系统性能,数据应该根据应用情况将易变部分与稳定部分、经常存取部分和存取频率较低部分分开存放。
(4)确定系统配置产品在一般情况下都提供了一些存储分配参数,在初始情况下,系统都为这些变量赋予了合理得缺省值,但是这些值不一定适合每一种应用环境,在进行物理设计时,需要重新对这些变量赋值以改善系统的性能。