长途客运站管理系统数据库课设文档格式.docx
《长途客运站管理系统数据库课设文档格式.docx》由会员分享,可在线阅读,更多相关《长途客运站管理系统数据库课设文档格式.docx(25页珍藏版)》请在冰豆网上搜索。
包括售票情况、查询、打印相应的信息等。
乘客模式:
包括出发地、目的地、乘车时间等。
3、概念结构设计
汽车信息管理系统就是根据车站发展的需要而建立的典型的信息管理系统。
经分析,长途汽车信息的管理系统的E-R图如下:
各实体及属性如下:
图3.1图3.2
图3.3图3.4
各实体间的E-R图如下:
图3.5
关系图:
M_Route
Rno:
varchar(5)PRIMARYKEY
Departure:
varchar(20)
Destination:
AddT:
varchar(10)
Stime:
time
Spend:
汽车信息管理系统
M_Vehicle
Vnochar(8)PRIMARYKEY
VTypechar(20)
TPriceint
VLoadint
Rnovarchar(5)
M_TInfo
Vnochar(8)
TDatedate
TRestint
PRIMARYKEY(Vno,TDate)
图3.6
4、逻辑结构设计
(1)票务信息表
图4.1
(2)线路信息表
图4.2
(3)汽车信息表:
图4.3
(4)乘客信息表:
图4.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)
5、功能处理
1、数据更新
①插入
INSERT
INTOM_Route(Departure,Destination,AddT,Stime,Spend)
VALUES('
沈阳'
'
长春'
南线'
00:
00'
INTOM_Vehicle(Vno,TPrice,VLoad,VType,Rno)
吉ABE506'
200,42,'
copper'
’T60'
d线'
INTOM_TInfo(Vno,TDate,TRest)
VALUES('
吉ABE106'
2015-01-10'
4);
(前面已插入)
②修改
ALTERTABLEM_Vehicle
ADDDeparturevarchar(20);
ADDFOREIGNKEY(Departure)REFERENCESM_Route(Departure);
DROPCOLUMNDepature;
UPDATEM_TInfo
SETVno='
WHEREVno='
吉BE506'
UPDATEM_Route
SETAddT='
WHEREDestination='
芜湖'
;
③删除
DROPCOLUMNDepature;
2.数据查询
SELECT*
FROMM_TInfo;
FROMM_Route;
FROMM_VEHICLE;
(见上图)
FROMM_User
图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='
TDate='
2015/01/11'
groupbyM_Route.Rno)x,M_Route
wherex.Rno=M_Route.Rno;
6.应用程序开发过程
(1)登录窗体
图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)主菜单窗体
源代码:
publicpartialclassMainMenu:
privatestringUserName;
publicMainMenu(stringrcv)
UserName=rcv;
}
privatevoidMSelect_Click(objectsender,EventArgse)
Checkfm=newCheck(UserName);
privatevoidMInsert_Click(objectsender,EventArgse)
{//管理员身份验证未实现
if(UserName=="
MSY"
)
MInsertMI=newMInsert(UserName);
MI.Show();
非管理员身份请勿修改信息!
"
NO!
privatevoidMDelete_Click(objectsender,EventArgse)
MDeleteMD=newMDelete(UserName);
MD.Show();
privatevoidMUpdate_Click(objectsender,EventArgse)
MUpdateMU1=newMUpdate(UserName);
MU1.Show();
privatevoidMainQuit_Click(objectsender,EventArgse)
Application.Exit();
(3)删除窗口
源代码:
usingSystem;
publicpartialclassMDelete:
publicMDelete(stringrcv)
DelDate.Visible=false;
}
privatevoidDeleteTable_SelectionChangeCommitted(objectsender,EventArgse)
ComboBoxsenderCombox=(ComboBox)sender;
if(senderCombox.SelectedItem.ToString()=="
删除路线信息"
txtPmk.Text="
请输入待删除车次"
elseif(senderCombox.SelectedItem.ToString()=="
删除车辆信息"
请输入待删除车辆车牌号"
请输入待删除票务车牌号"
DelDate.Visible=true;
DelDate.Text="
请输入日期"
privatevoidDeBack_Click(objectsender,EventArgse)
MainMenuMM2=newMainMenu(UserName);
MM2.Show();
privatevoidDelOK_Click(objectsender,EventArgse)
stringPmkTxt,STable,Date;
InitialCatalog=MSY_BUS;
stringsql;
intresult=0;
STable=DeleteTable.SelectedItem.ToString();
PmkTxt=txtPmk.Text.Trim();
Date=DelDate.Text.Trim();
if(STable=="
sql=string.Format("
DELETEFROMM_RouteWHERERno='
PmkTxt);
elseif(STable=="
DELETEFROMM_VehicleWHEREVno='
PmkTxt);
DELETEFROMM_TInfoWHEREVno='
andTDate='
PmkTxt,Date);
result=command.ExecuteNonQuery();
mmm操作数据库删除失败"
connection.Close();
if(result==1)
删除数据成功!
OK"
txtPmk.Clear();
DelDate.Clear();
elseif(result==0)
删除数据失败!
请检查是否是输入有误"
(4)插入窗口
publicpartialclassMInsert:
publicMInsert(stringrcv)
privatevoidInsBack_Click(objectsender,EventArgse)
privatevoidOK_Click(objectsender,EventArgse)
stringRno,Departure,Destination,AddT,Stime,Spend,Vno,VType,VLoad,TPrice,TRest,TDate;
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();
INSERTINTOM_Route(Rno,Departure,Destination,AddT,Stime,Spend)VALUES('
{2}'
{3}'
{4}'
{5}'
Rno,Departure,Destination,AddT,Stime,Spend);
elseif(InsertMode.SelectedTab==Vehicle)
Vno=txtVno.Text.Trim();
Rno=txtRno2.Text.Trim();
VType=txtVType.Text.Trim();
TPrice=txtTPrice.Text.Trim();
VLoad=txtVLoad.Text.Trim();
INSERTINTOM_Vehicle(Vno,VType,TPrice,VLoad,Rno)VALUES('
Vno,VType,TPrice,VLoad