车辆管理系统.docx
《车辆管理系统.docx》由会员分享,可在线阅读,更多相关《车辆管理系统.docx(28页珍藏版)》请在冰豆网上搜索。
![车辆管理系统.docx](https://file1.bdocx.com/fileroot1/2023-7/22/cf0ffc18-cf17-414e-ab0a-f5b4d0f652e2/cf0ffc18-cf17-414e-ab0a-f5b4d0f652e21.gif)
车辆管理系统
课程设计说明书
题目:
车辆管理系统
学生学号:
201371060107
学生姓名:
金东海
学院:
计算机科学与工程学院
班级:
13级物联网工程
指导教师:
蔺想红
2015年5月30日
一、设计任务与要求
1、设计任务
Ø选题意义:
在当前的市场经济体制下,企业要想提高市场的竞争力,取得好的经济效益,不但要有好的产品,同时也要有好的管理方式,所以必须拥有一套完善的并且适合自身特点的信息化管理系统,以实现企业降低成本、及时反馈市场信息、完善服务质量、提高经济效益、分析市场需求、制定销售计划和目标等管理目的。
随着信息技术的不断发展,各行各业对企业信息化的要求越来越迫切。
企事业单位车辆类型越来越多,这使得单位车辆信息复杂化,关于车辆的各类信息及台账资料越来越多,以前的管理模式主要是通过专门人员进行人工管理,信息化不足,计算机使用率低。
造成工作效率低,并且企业内部沟通不良这些问题很难克服,车辆管理很不合理,不能及时根据需要调整所需信息,管理效率越来越差,数据不一致现象越来越多。
采用信息系统进行管理可以显著提高车辆管理的工作效率。
我们将发挥计算机的庞大的存储空间,高性能的处理能力,高度可靠的数据安全,清晰的可视化数据等这些优势来辅助单位对车辆进行管理,实现了计算机资源的合理利用,真正实现了减少劳动力提高劳动质量的目的。
Ø问题描述:
车辆管理系统主要负责各种车辆的常规信息管理工作。
系统中的车辆主要有大客车、小轿车和卡车。
每种车辆有车辆编号、车牌号、车辆制造公司、车辆购买时间、车辆型号(大客车、小轿车和卡车)、总公里数、耗油量/公里、基本维护费用、养路费、累计总费用等信息。
大客车还有载客量(最大载客数)信息,小轿车还有箱数(两厢或三厢)信息,卡车还有载重量等信息。
每台车辆当月总费用=油价*耗油量/公里+基本维护费用。
基本维护费用:
客车:
2000元/月,小轿车:
1000元/月,卡车:
1500元/月;
Ø功能要求:
实现系统的车辆添加,删除,修改,查找,统计,显示等多个模块功能。
2.实验要求
Ø数据库设计
主要包括数据库及标的概述和数据库关系模式。
数据库在一个管理信息系统中占有非常重要的地位,数据库结构的好坏将直接影响到应用系统的效果和数据操作以及能否保证数据的一致性、完事性和安全性。
Ø基础要求
本课程设计要求了解车辆管理系统的过程,要求对车辆的管理有一定的理解,并进一步加深对车辆运作的实现和理解。
要求用C#语言和SQLSERVER2005实现车辆相关信息记录和调度。
要求建立一个数据库,然后用C#编程序,编号后要求把数据库与程序连接起来,组成一个大模块,进而进行各个功能的实现。
Ø问题的解决方案
根据系统功能要求,可以将问题解决分为以下步骤:
(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;
(2)分析系统中的各个实体及它们之间的关系;
(3)根据问题描述,设计系统的类层次;
(4)完成类层次中各个类的描述;
(5)完成类中各个成员函数的定义;
(6)完成系统的应用模块;
(7)功能调试;
(8)完成系统总结报告。
二、需求分析
1、功能需求
(1)添加车辆:
主要完成车辆信息的添加,要求编号唯一。
当添加了重复的编号时,则提示数据添加重复并取消添加;当车辆信息库已满,则提示不能再添加新的数据。
(2)查询车辆:
可按照三种方式来查询物品,分别为:
按车辆制造公司查询:
输入车辆制造公司,输出所查询的信息,若不存在该记录,则提示“该车辆制造公司不存在!
”;
按编号查询:
输入编号,输出所查询的信息,若不存在该记录,则提示“该编号不存在!
”;
按类别查询:
输入类别,输出所查询的信息,若不存在记录,则提示“该类别没有车辆!
”;
(3)显示车辆信息库:
输出当前车辆信息库中所有车辆信息,每条记录占据一行。
(4)编辑功能:
可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。
(5)删除车辆:
主要完成车辆信息的删除。
如果当前车辆信息库为空,则提示“车辆信息库为空!
”,并返回操作;否则,根据编号删除该车辆的记录。
(6)统计信息:
输出当前车辆信息库中总物品数,以及按车辆类别,统计出当前车辆信息库中各类别的物品数并显示。
2、运行需求
Ø运行环境
数据库选择:
SQLSERVER2005
开发平台:
MicrosoftVisualStudio2010
开发语言:
C#
Ø运行可行性分析
通过调查分析,新系统设计方案有以下三个可行性:
1)、技术可行性:
本系统采用基于C/S系统结构,数据库开发平台选用SQLSERVER2005,语言简单,易懂,因此,在技术上是可行的。
2)、经济可行性:
采用车辆管理系统可取代传统信息管理的业务流程,减少人工开支,节省资金,并且可大大提高信息量的取得,缩短信息处理周期,提高信息管理的效率,具有用户使用更简单、界面更直观、权限分配更合理等优点大大减少管理成本。
3)、营运可行性:
本系统操作简单,易于理解,只需通过简单培训,上手较快。
Ø技术指标:
1)、信息的完整性:
采用值约束、缺省等多种方法确保信息的完整性。
一旦使用人员录入或修改导致数据错误,系统必须明确地给出警告信息,提示使用者。
2)、系统实用性:
车辆管理系统是一个面向实际应用的软件系统。
它的建成将取代手工的低效率工作,因此在进行系统建设的同时必须考虑到人员的使用习惯。
3)、系统可扩展性:
在开发完成后,系统必须保证在用户有新的需求时能方便地增加一些功能或模块,及时解决用户实际问题,同时还要与系统的其他部分能够保持风格一致,使得软件具有较好的可扩展性。
三、系统设计
1、总体设计
本系统的设计定位于“车辆管理”,主要负责各种车辆的常规信息管理工作。
以系统任务的实现和用户需求的满足为设计目标。
力求使系统具有充分的可操作性,界面友好,功能完善,并且无须对用户的进行特别的要求。
车辆管理系统总流程图(图3-1)如下:
图3-1
2、详细设计
Ø车辆管理系统表清单:
表名
表用途
usreInfo
记录管理员的资料信息
Car
记录车辆的资料信息
Ø数据库表:
userInfo管理员信息表
数据库字段称
数据类型
允许为空
Name
varchar(50)
N
Pass
varchar(50)
N
Car车辆信息表
数据库字段称
数据类型
允许为空
编号
nchar(6)
N
车牌号
varchar(20)
Y
制造公司
varchar(50)
N
购买时间
datetime
Y
车辆类型
nchar(10)
N
总公里数
nchar(10)
Y
耗油量
float
N
基本维护费
float
Y
养路费
float
N
累计费用
float
N
油价
float
N
载重信息
nchar(10)
N
Ø系统功能具体实现:
系统登录功能设计:
用户打开系统,首先看到登录界面,输入用户姓名,用户密码,点击登录按钮。
系统比对姓名和密码。
若用户姓名和密码比对成功后,系统自动跳转到主界面,否则,重新输入姓名或密码。
添加功能设计:
点击添加车辆,在添加的界面,输入添加的信息,然后确认添加,其中,要求编号唯一。
当添加了重复的编号时,则提示数据添加重复并取消添加;当车辆信息库已满,则提示不能再添加新的数据。
显示功能设计:
点击更多操作,在操作界面点击显示车辆,系统已有车辆信息即可显示。
删除功能设计:
点击更多操作,在显示出车辆信息后,如果当前车辆信息库为空,则提示“车辆信息库为空!
”,并返回操作;否则,选定要删除的车辆信息,点击删除车辆,即可直接删除该信息。
修改功能设计:
点击更多操作,在操作界面点击修改车辆,弹出修改信息界面,点击要修改的信息,重新修改后点击确认修改,即可修改成功。
查找功能设计:
点击查找车辆,在此界面有三种查找方式:
按车辆制造公司查询:
输入车辆制造公司,输出所查询的信息,若不存在该记录,则提示“该车辆制造公司不存在!
”;
按编号查询:
输入编号,输出所查询的信息,若不存在该记录,则提示“该编号不存在!
”;
按类别查询:
输入类别,输出所查询的信息,若不存在记录,则提示“该类别没有车辆!
”;
统计功能设计:
点击统计车辆,即可显示各车辆的数量情况。
统计车辆即统计当前在库的车辆的总数以及每种类型的车辆的总数,为管理员管理车辆提供了方便,并且让管理人员很清晰地看到并分析当前的车辆数据,并制定相应的措施及作出相应的方案调整。
四、运行结果及测试
1、运行界面及其效果图
Ø登录界面(图4-1)
(图4-1)
Ø系统首页(图4-2)
(图4-2)
Ø添加界面(图4-3)
(图4-3)
Ø删除,显示界面(图4-4)
(图4-4)
Ø修改界面(图4-5)
(图4-5)
Ø查询界面
按车辆类型查询(图4-6)
(图4-6)
按制造公司查询(图4-7)
(图4-7)
按车辆编号查询(图4-8)
(图4-8)
统计界面(图4-9)
(图4-9)
2、对在编程与调试中的问题
(1)问题描述:
数据库正常连接后,系统找不到相关命名的库表。
解决方法:
原因是数据库表命名时使用了非法字段。
数据库表命名规范,表名长度不能超过30个字符,表名中含有单词全部采用单数形式,单词首写字母要大写,多个单词间不用任何连接符号。
(2)问题描述:
在添加车辆输入信息时,出现错误。
解决方法:
因为车辆表信息要输入的数据都有数据类型,必须输入所需类型才能满足要求,否则无法输入。
五、课程设计总结与体会
Ø课程总结:
本文利用C#编写程序,实现了用户对公司车辆的编号、车牌号、车辆制造公司、车辆购买时间、车辆型号(大客车、小轿车和卡车)、总公里数、耗油量/公里、基本维护费用、养路费、累计总费用等信息的管理。
本系统主要实现了对车辆的添加,查询,显示,修改,删除,统计。
主要运用了类的继承等编程方法来实现对这些车辆的管理。
系统经过实际调试和运行,基本达到了预期的目标,实现了相关功能。
Ø系统特点:
本系统在开发中,充分考虑了当前的市场需求,并根据实际能力进行了一些调整,使得系统具有以下特点:
1)、操作方便、界面友好直观,易用性、实用性和适用性都很强。
2)、系统是根据当前市场的普遍需求设计的,所以适用范围很广,最适用于各种非运营单位的车辆管理,同时也可以作为运营单位车辆管理。
所以市场前景很广。
3)、系统交互性很强,即使对计算机不是很了解的人,也可以很简单很快的学会对此系统的操作。
4)、提供了强大的数据报表功能,可行手工进行报表的设计调整,也可以系统自动生成,这样可以满足不同的用户的不同需求。
Ø课程体会:
通过本次试验,我对数据库有了全新的认识。
自己动手设计了车辆管理系统,通过设计程序我熟练掌握了sqlserver2005的使用方法,进一步熟练掌握创建表,创建数据库,分离数据库,附加数据库,系统的复习了数据库。
并且也熟练掌握了c#2010中各种控件的功能及使用方法。
但是实验过程中也遇到了许多问题,但是经过反复思考,仔细琢磨,已基本解决。
通过本次试验,我们团队既学到了许多知识,也总结了许多经验。
我们的界面在设计过程中对系统页面进行了拆分,每个人设计与其负责的功能模块相关联的页面,这样可以更简便地进行设计,避免很多相容问题和把过多的工作量放在页面上。
我感觉自己的知识缺乏,需要学的知识还很多,另外我还感觉干事情要反复琢磨,仔细推敲,坚持己见,认真思考,其次就是合作的重要性。
总之以后会更加努力学习,扩展自己的知识面,不断提高自己的知识。
Ø不足及改善:
1)、我们团队的界面设计目标是友好方便,使设计过程更加简洁明了,并没有使用很多图片,而是把重点放在功能按钮的设计上。
所以界面相对不是很完美。
2)、由于时间和技术水平的缘故,以及在实际的用户管理中都会不可避免的出现一些新的需求,所以本系统还存在着许多方面的工作尚未能完善。
3)、在功能方面,还应添加完善一些功能,如管理员权限等等。
也可增加联网管理功能,使一个系统的车辆集中管理,资源共享,可视化控制。
六、程序清单
Ø数据库连接程序清单:
privatestringconnString=@"Server=210.26.96.51;DATABASE=JinDonghai;UID=sa;PWD=95069506";
Ø登录程序清单:
privatevoidbtnLogin_Click(objectsender,EventArgse)
{
stringsqlCheckT="";
intcheckCountT=0;
SqlConnectionconnT;
SqlCommandcmdCheckT;
sqlCheckT="SELECTcount(*)FROM[UserInfo]WHEREName='"+tbName.Text.ToString().Trim()+"'ANDPass='"+tbPass.Text.ToString().Trim()+"'";
checkCountT=0;
connT=newSqlConnection(connString);
try
{
cmdCheckT=newSqlCommand(sqlCheckT,connT);
connT.Open();
checkCountT=(int)cmdCheckT.ExecuteScalar();
}
catch(Exceptionex)
{
MessageBox.Show(ex.Message);
}
finally
{
connT.Close();
}
if(checkCountT>0)
{
MessageBox.Show("欢迎观临,"登录成功");
this.DialogResult=DialogResult.OK;
Mainf=newMain();
f.Show();
}
else
{
MessageBox.Show("用户或密码没有通过系统认证,请重新输入”,”登录错误");
}
}
}
Ø添加程序清单:
privatevoidbutton7_Click_1(objectsender,EventArgse)
{
stringsqlCheck="SELECTcount(*)FROM[Car]WHERE编号='"+TextNumber.Text.ToString().Trim()+"'";
SqlConnectionconn=newSqlConnection(connString);
SqlCommandcmdCheck=newSqlCommand(sqlCheck,conn);
intcheckCount=0;
try
{
conn.Open();
checkCount=(int)cmdCheck.ExecuteScalar();
}
catch(Exceptionex)
{
MessageBox.Show(ex.Message);
}
if(checkCount>0)
{
conn.Close();
MessageBox.Show("此编号已入库");
return;
}
sqlCheck="INSERTINTO[Car]VALUES('"+TextNumber.Text.ToString().Trim()+"','"+CarID.Text.ToString().Trim()+"','"+comboBox1.Text.ToString().Trim()+"','"+TextMakeCom.Text.ToString().Trim()+"','"+TextTime.Text.ToString().Trim()+"','"+textS.Text.ToString().Trim()+"','"+textBasicCost.Text.ToString().Trim()+"','"+textWayCost.Text.ToString().Trim()+"','"+textOilPrice.Text.ToString().Trim()+"','"+texthaoyou.Text.ToString().Trim()+"','"+textInfo.Text.ToString().Trim()+"','"+textAllCost.Text.ToString().Trim()+"')";
try
{
cmdCheck=newSqlCommand(sqlCheck,conn);
cmdCheck.ExecuteNonQuery();
MessageBox.Show("添加成功!
");
}
catch(Exceptionex)
{
conn.Close();
MessageBox.Show(ex.Message);
return;
}
this.textAllCost.Text="";
boBox1.Text="";
this.textInfo.Text="";
this.texthaoyou.Text="";
this.textOilPrice.Text="";
this.textWayCost.Text="";
this.textBasicCost.Text="";
this.TextNumber.Text="";
this.CarID.Text="";
this.TextMakeCom.Text="";
this.TextTime.Text="";
this.textS.Text="";
}
}
Ø查询程序清单:
根据车辆编号查询
privatevoidbutton1_Click(objectsender,EventArgse)
{
stringsqlCheckT="";
intcheckCountT=0;
SqlConnectionconnT,conn;
SqlCommandcmdCheckT;
if(textBox1.Text.Length==0)
{
MessageBox.Show("车辆编号不能为空,请输入车辆编号");
return;
}
sqlCheckT="SELECTcount(*)FROM[Car]WHERE编号='"+textBox1.Text.ToString().Trim()+"'";
checkCountT=0;
connT=newSqlConnection(connString);
conn=newSqlConnection(connString);
try
{
cmdCheckT=newSqlCommand(sqlCheckT,connT);
connT.Open();
checkCountT=(int)cmdCheckT.ExecuteScalar();
}
catch(Exceptionex)
{
MessageBox.Show(ex.Message);
}
finally
{
connT.Close();
}
if(checkCountT<0)
{
MessageBox.Show("无结果","提示”);
return;
}
stringsqlCheck1="SELECT'编号'=编号,'车牌号'=车牌号,'车辆类型'=车辆类型,'制造公司'=制造公司,'购买日期'=购买日期,'总公里数'=总公里数,'基本维护费'=基本维护费,'养路费'=养路费,'油价'=油价,'耗油量'=耗油量,'载重信息'=载重信息,'累计费用'=累计费用FROM[Car]WHERE编号='"+textBox1.Text.ToString().Trim()+"'";
try
{
SqlDataAdapterda=newSqlDataAdapter();
da.SelectCommand=newSqlCommand(sqlCheck1,conn);
dsUser=newDataSet("users");
da.Fill(dsUser,"user");
dataGridView1.DataSource=dsUser.Tables["user"];
dataGridView1.Refresh();
dataGridView1.Show();
}
catch(Exceptionex)
{
MessageBox.Show(ex.Message);
}
finally
{
conn.Close();
}
this.textBox1.Text="";
}
Ø显示程序清单:
privatevoidbutton5_Click(objectsender,EventArgse)
{
stringsql="SELECT'编号'=编号,'车牌号'=车牌号,'车辆类型'=车辆类型,'制造公司'=制造公司,'购买日期'=购买日期,'总公里数'=总公里数,'基本维护费'=基本维护费,'养路费'=养路费,'油价'=油价,'耗油量'=耗油量,'载重信息'=载重信息,'累计费用'=累计费用FROM[Car]";
SqlConnectionconn=newSqlConnection(connString);
try
{
SqlDataAdapterda=newSqlDataAdapter();
da.SelectCommand=newSqlCommand(sql,conn);
conn.Open();
dsUser=newDataSet("users");
da.Fill(dsUser,"user");
this.dataGridView2.DataSource=dsUser.Tables["user"];
this.dataGridView2.Refresh();
this.dataGridView2.Show();
}
catch(Exceptionex)
{
MessageBox