长途客运管理系统数据库课程设计.docx

上传人:b****6 文档编号:6532174 上传时间:2023-01-07 格式:DOCX 页数:25 大小:145.66KB
下载 相关 举报
长途客运管理系统数据库课程设计.docx_第1页
第1页 / 共25页
长途客运管理系统数据库课程设计.docx_第2页
第2页 / 共25页
长途客运管理系统数据库课程设计.docx_第3页
第3页 / 共25页
长途客运管理系统数据库课程设计.docx_第4页
第4页 / 共25页
长途客运管理系统数据库课程设计.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

长途客运管理系统数据库课程设计.docx

《长途客运管理系统数据库课程设计.docx》由会员分享,可在线阅读,更多相关《长途客运管理系统数据库课程设计.docx(25页珍藏版)》请在冰豆网上搜索。

长途客运管理系统数据库课程设计.docx

长途客运管理系统数据库课程设计

目录

1.设计背景及目的1

2.设计内容及要求1

3.设计过程2

1、需求分析阶段2

2、概念结构设计2

3、逻辑结构设计4

4、 物理结构设计部分5

5、功能处理5

6.应用程序开发过程7

4.系统设计、制作小结20

5.参考资料20

1.设计背景及目的

在这个信息化时代,行之有效的信息管理系统已成为一个企业或组织生存和发展的重要条件。

尤其是在大数据的作用日益得到证明和认可的今天,作为信息系统核心和基础数据库技术得到越来越广泛的应用,越来越多新的应用领域采用数据库技术来存储和处理信息资源。

信息资源已成为各个部门的重要财富和资源,建立一个满足各级部门信息处理要求的实际,着眼于未来发展,建成符合标准化协议、通用性较强、实用的系统,以提高汽车调度的现代化管理水平,实现信息资源的共享。

在信息技术高度发达的今天,传统手工记录客运站信息,已满足不了管理人员方便的处理这些信息,降低他们的工作量是一个需要解决额问题。

借助计算机来完成这些大量冗杂的工作。

势必能大大降低管理员的强度。

本次的课程设计选择的课题是长途汽车信息管理系统,立足于社会,它面向所有汽车的数据管理系统,它以存储及处理为主,查询更正为辅,并囊括数据库的日常维护机智,本次课程设计的主要工作为数据库及前台应用程序的建立及测试。

长途汽车信息管理系统是长途汽车车站信息汇总和管理的重要组成部分,是一种典型的信息管理系统,旨在合理简易地从根本上改善客运信息管理的体制,减轻人工管理缺陷带来的繁重工作量,使车站的管理更加的合理化和科学化,大大提高工作效率并节省大量运营成本。

这样既能减少管理员的工作量还能满足日益增长的需求。

也借以说明计算机技术和科技创新的重要意义

2.设计内容及要求

所设计的小型管理系统应包含输入输出、查询、插入、删除等基本功能。

根据课程设计1周时间的安排选择适当大小的设计课题,课题的选择可以是实际问题,也可以是虚构的问题。

根据题目的基本需求,画出流程图,编写程序,并写出详细的设计说明书。

要求从开始的系统需求分析到最后的软件测试,都要有详细的计划,设计文档应按照软件工程的要求书写。

系统中的数据表设计应合理、高效,尽量减少数据冗余。

具有一定实际意义,基本表不少于3个,能够实现多种关联查询尽量要建视图和索引软件界面要友好、安全性高。

软件要易于维护、方便升级。

编程语言可由小组根据自己的情况选择,但一般情况下应该是小组的每

个成员都对该语言较熟悉。

避免把学习语言的时间放在设计期间。

参考使用的语言有:

C#、VB、VC等。

后台数据库:

SQL_Server2005等。

系统功能的基本要求:

线路信息,包括出发地、目的地、出发时间、所需时间等。

汽车信息:

包括汽车的种类及相应的票价、最大载客量等。

票价信息:

包括售票情况、查询、打印相应的信息。

3.设计过程

1、需求分析阶段

早期的长途汽车站信息主要是人工信息、人工管理的,不仅不容易记录,而且还不容易保存。

所以系统的意义就在于保存并管理长途汽车站的所有有效数据。

并应用之帮助客运站为客户提供更优质的服务,通过简单有效的应用程序,规范管理长途客运信息。

经调查了解功能要求如下:

管理员权限:

仅允许管理员对所有信息进行录入并修改。

普通用户:

仅允许普通用户购买车票。

公共权限:

查询线路信息及各路线售票情况以及每个班次的班车信息。

此外,需满足仅具有普通办公素养的管理员执行所有操作。

模块功能分析如下:

线路分析:

包括出发地、目的地、出发时间、所需时间。

汽车模块:

包括汽车的种类及相应的票价、最大载客量等。

车票模块:

包括售票情况、查询、打印相应的信息等。

乘客模式:

包括出发地、目的地、乘车时间等。

2、概念结构设计

汽车信息管理系统就是根据车站发展的需要而建立的典型的信息管理系统。

经分析,长途汽车信息的管理系统的E-R图如下:

各实体及属性如下:

图3.2.1

 

图3.2.2

图3.2.3

图3.2.4

各实体间的E-R图如下:

1

N

1

N

图3.2.5

 

关系图:

 

 

图3.2.6

3、逻辑结构设计

(1)票务信息表

图3.3.1

(2)线路信息表

图3.3.2

(3)汽车信息表:

图3.3.3

(4)乘客信息表:

图3.3.4

建库建表对应SQL语句如下:

CREATEDATABASEM_BUS;

CREATETABLEM_Route

Rnovarchar(5)PRIMARYKEY,

Departurevarchar(20),

Destinationvarchar(20),

AddTvarchar(10),

Stimetime,

Spendtime

);

CREATETABLEM_Vehicle

Vnochar(8)PRIMARYKEY,

VTypechar(20),

TPriceint,

VLoadint,

Rnovarchar(5),

FOREIGNKEY(Rno)REFERENCESM_Route(Rno)

);

CREATETABLEM_TInfo

Vnochar(8),

TDatedate,

TRestint,

PRIMARYKEY(Vno,TDate),

FOREIGNKEY(Vno)REFERENCESM_Vehicle(Vno)

);

4、 物理结构设计部分

鉴于课程安排倾向于关系数据库的设计且关系数据库确实更常用,所以本系统采用最常见的存储方式及关系数据库,并省略其他的设计部分。

5、功能处理

1、数据更新相关SQL语句

①插入

INSERT

INTOM_Route(Departure,Destination,AddT,Stime,Spend)

VALUES('沈阳','长春','南线','00:

00:

00','00:

00:

00');

INSERT

INTOM_Vehicle(Vno,TPrice,VLoad,VType,Rno)

VALUES('吉ABE506',200,42,'copper',’T60','d线');

INSERT

INTOM_TInfo(Vno,TDate,TRest)

VALUES('吉ABE106','2015-01-10',4);(前面已插入)

②修改

ALTERTABLEM_Vehicle

ADDDeparturevarchar(20);

ALTERTABLEM_Vehicle

ADDFOREIGNKEY(Departure)REFERENCESM_Route(Departure);

ALTERTABLEM_Vehicle

DROPCOLUMNDepature;

UPDATEM_TInfo

SETVno='吉ABE506'

WHEREVno='吉BE506'

UPDATEM_Route

SETAddT='d线'

WHEREDestination='芜湖';

③删除

ALTERTABLEM_Vehicle

DROPCOLUMNDepature;

2.数据查询相关SQL语句

SELECT*

FROMM_TInfo;

SELECT*

FROMM_Route;

SELECT*

FROMM_VEHICLE;

(见上图)

SELECT*

FROMM_User

图3.5.1

SELECT*

FROM(SELECTM_Route.Rno,SUM(TRest)SUM

FROMM_Route,M_Vehicle,M_TInfo

WHERE

M_Route.Rno=M_Vehicle.RnoAND

M_Vehicle.VNO=M_TInfo.VnoAND

Departure='北京'AND

Destination='长春'AND

TDate='2015/01/11'

GROUPBYM_Route.Rno)X,M_Route

WHEREX.Rno=M_Route.Rno;

图3.5.2

6.应用程序开发过程

(1)登录窗体

图3.6.1

 

源代码:

usingSystem;

usingSystem.Collections.Generic;

usingSystem.ComponentModel;

usingSystem.Data;

usingSystem.Drawing;

usingSystem.Linq;

usingSystem.Text;

usingSystem.Threading.Tasks;

usingSystem.Windows.Forms;

usingSystem.Data.SqlClient;

namespaceMSY_SQL_Work

{

publicpartialclassForm1:

Form

{

publicForm1()

{

InitializeComponent();

}

privatevoidLogIn_Click(objectsender,EventArgse)

{

stringuserName=txtname.Text.Trim();//去空格

stringpassword=txtpwd.Text.Trim();

stringconnString="DataSource=.\\SQLEXPRESS;InitialCatalog=MSY_12_24;IntegratedSecurity=True";

SqlConnectionconnection=newSqlConnection(connString);

stringsql=string.Format("selectcount(*)fromM_UserwhereUSERNAME='{0}'andPWD='{1}'",userName,password);

try

{

connection.Open();

SqlCommandcommand=newSqlCommand(sql,connection);

intnum=(int)command.ExecuteScalar();

if(num>0)

{

MainMenufm=newMainMenu(userName);

fm.Show();

this.Visible=false;

}

else

{

txtpwd.Text="";

MessageBox.Show("用户名或密码错误!

","登录失败",

MessageBoxButtons.OK,MessageBoxIcon.Information);

}

}

catch(Exceptionex)

{

MessageBox.Show(ex.Message,"操作数据库失败",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);

}

finally

{

connection.Close();

}

}

}

}

(2)主菜单窗体

图3.6.2

 

源代码:

usingSystem;

usingSystem.Collections.Generic;

usingSystem.ComponentModel;

usingSystem.Data;

usingSystem.Drawing;

usingSystem.Linq;

usingSystem.Text;

usingSystem.Threading.Tasks;

usingSystem.Windows.Forms;

namespaceMSY_SQL_Work

{

publicpartialclassMainMenu:

Form

{

privatestringUserName;

publicMainMenu(stringrcv)

{

UserName=rcv;

InitializeComponent();

}

privatevoidMSelect_Click(objectsender,EventArgse)

{

Checkfm=newCheck(UserName);

fm.Show();

this.Visible=false;

}

privatevoidMInsert_Click(objectsender,EventArgse)

{

if(UserName=="MSY")

{

MInsertMI=newMInsert(UserName);

MI.Show();

this.Visible=false;

}

else

MessageBox.Show("非管理员身份请勿修改信息!

","NO!

",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);

}

privatevoidMDelete_Click(objectsender,EventArgse)

{

MDeleteMD=newMDelete(UserName);

MD.Show();

this.Visible=false;

}

privatevoidMUpdate_Click(objectsender,EventArgse)

{

MUpdateMU1=newMUpdate(UserName);

MU1.Show();

this.Visible=false;

}

privatevoidMainQuit_Click(objectsender,EventArgse)

{

Application.Exit();

}

}

}

 

(3)删除窗口

图3.6.3

 

源代码:

usingSystem;

usingSystem.Collections.Generic;

usingSystem.ComponentModel;

usingSystem.Data;

usingSystem.Drawing;

usingSystem.Linq;

usingSystem.Text;

usingSystem.Threading.Tasks;

usingSystem.Windows.Forms;

usingSystem.Data.SqlClient;

namespaceMSY_SQL_Work

{

publicpartialclassMDelete:

Form

{

privatestringUserName;

publicMDelete(stringrcv)

{

UserName=rcv;

InitializeComponent();

DelDate.Visible=false;

}

privatevoidDeleteTable_SelectionChangeCommitted(objectsender,EventArgse)

{

ComboBoxsenderCombox=(ComboBox)sender;

if(senderCombox.SelectedItem.ToString()=="删除路线信息")

{

txtPmk.Text="请输入待删除车次";

DelDate.Visible=false;

}

elseif(senderCombox.SelectedItem.ToString()=="删除车辆信息")

{

txtPmk.Text="请输入待删除车辆车牌号";

DelDate.Visible=false;

}

else

{

txtPmk.Text="请输入待删除票务车牌号";

DelDate.Visible=true;

DelDate.Text="请输入日期";

}

}

privatevoidDeBack_Click(objectsender,EventArgse)

{

MainMenuMM2=newMainMenu(UserName);

MM2.Show();

this.Visible=false;

}

privatevoidDelOK_Click(objectsender,EventArgse)

{

stringPmkTxt,STable,Date;

stringconnString="DataSource=.\\SQLEXPRESS;InitialCatalog=MSY_BUS;IntegratedSecurity=True";

SqlConnectionconnection=newSqlConnection(connString);

stringsql;

intresult=0;

STable=DeleteTable.SelectedItem.ToString();

PmkTxt=txtPmk.Text.Trim();

Date=DelDate.Text.Trim();

if(STable=="删除路线信息")

sql=string.Format("DELETEFROMM_RouteWHERERno='{0}'",PmkTxt);

elseif(STable=="删除车辆信息")

sql=string.Format("DELETEFROMM_VehicleWHEREVno='{0}'",PmkTxt);

else

sql=string.Format("DELETEFROMM_TInfoWHEREVno='{0}'andTDate='{1}'",PmkTxt,Date);

try

{

connection.Open();

SqlCommandcommand=newSqlCommand(sql,connection);

result=command.ExecuteNonQuery();

}

catch(Exceptionex)

{

MessageBox.Show(ex.Message,"mmm操作数据库删除失败",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);

}

finally

{

connection.Close();

if(result==1)

{

MessageBox.Show("删除数据成功!

","OK",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);

txtPmk.Clear();

DelDate.Clear();

}

elseif(result==0)

MessageBox.Show("删除数据失败!

请检查是否是输入有误","OK",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);

}

}

}

}

 

(4)插入窗口

图3.6.4

源代码:

usingSystem;

usingSystem.Collections.Generic;

usingSystem.ComponentModel;

usingSystem.Data;

usingSystem.Drawing;

usingSystem.Linq;

usingSystem.Text;

usingSystem.Threading.Tasks;

usingSystem.Windows.Forms;

usingSystem.Data.SqlClient;

namespaceMSY_SQL_Work

{

publicpartialclassMInsert:

Form

{

privatestringUserName;

publicMInsert(stringrcv)

{

UserName=rcv;

InitializeComponent();

}

privatevoidInsBack_Click(objectsender,EventArgse)

{

MainMenuMM2=newMainMenu(UserName);

MM2.Show();

this.Visible=false;

}

privatevoidOK_Click(objectsender,EventArgse)

{

stringRno,Departure,Destination,AddT,Stime,Spend,Vno,VType,VLoad,TPrice,TRest,TDate;

stringconnString="DataSource=.\\SQLEXPRESS;InitialCatalog=MSY_BUS;IntegratedSecurity=True";

SqlConnectionconnection=newSqlConnection(connString);

stringsql;

if(InsertMode.SelectedTab==Route)

{

Rno=txtRno.Text.Trim();//去空格

Departure=txtdepa.Text.Trim();

Destination=txtdest.Text.Trim();

AddT=txtad.Text.Trim();

Stime=txtst.Text.Trim();

Spend=txtsp.Text.Trim();

sql=string.Format("INSERTINTOM_Route(Rno,Departure,Destination,AddT,Stime,Spend)VALUES('{0}','{1}','{2}','{3}','{4}','{5}');",Rno,Departure,Destination,AddT,Stime,Spend);}

elseif(InsertMode.SelectedTab==Vehicle)

{

Vno=txtVno.Text.Trim();

Rno=txtRno2.Text.Trim();

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1