失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > C#毕业设计——基于C#+asp.net+SQL Server的公交车管理系统设计与实现(毕业论文+程

C#毕业设计——基于C#+asp.net+SQL Server的公交车管理系统设计与实现(毕业论文+程

时间:2022-05-10 23:50:35

相关推荐

C#毕业设计——基于C#+asp.net+SQL Server的公交车管理系统设计与实现(毕业论文+程

基于C#++SQL Server的公交车管理系统设计与实现(毕业论文+程序源码)

大家好,今天给大家介绍基于C#++SQL Server的公交车管理系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。

需要下载开题报告PPT模板及论文答辩PPT模板等的小伙伴,可以进入我的博客主页查看左侧最下面栏目中的自助下载方法哦

文章目录:

基于C#++SQL Server的公交车管理系统设计与实现(毕业论文+程序源码)1、项目简介2、资源详情3、关键词:4、毕设简介5、资源下载

1、项目简介

该系统主要根据实际的需求,以需求分析、系统的设计目标,并且重点进行系统功能模块的详细设计和实现,采用了Visual Studio .NET 开发平台和 SQL Server 数据库,实现了车辆信息管理、司机信息管理、线路信息管理和车辆分配线路管理等功能。在针对数据操作方面,主要通过存储过程的方式实现数据的添加、删除和查询等操作。通过系统测试,解决了公交车辆管理系统主要问题。

2、资源详情

项目难度:中等难度

适用场景:相关题目的毕业设计

配套论文字数:8223个字24页

包含内容:整套源码+完整毕业论文


3、关键词:

管理系统;数据库;存储过程

4、毕设简介

提示:以下为毕业论文的简略介绍,项目源码及完整毕业论文下载地址见文末。

1 引言

省略

1.1 信息管理系统简介

信息管理系统,即我们常说的MIS(Management Information System),是由人和计算机等组成的,能进行信息收集、加工、保存、维护和使用的系统。它能实现国民经济和企业行为的各种运行情况,利用历史数据预测未来,从全局出发辅助管理决策,利用信息控制企业行为、帮助实现其规划目标。在强调管理,强调信息的现代化社会中变的越来越普及。

1.2 开发背景和意义

随着经济的日益增长,车辆作为最重要的交通工具,在当今社会中得以普及。由于汽车数量的增加,而道路的承载能力有限。因此,城市公交车的迅速发展成为一种必然趋势。在这样的情况下,公交车运营商的车辆数目已经增加了许多,而且车型也不再单一,与此同时便产生了车辆资源的合理分配和使用问题。该问题涉及到车辆的档案管理、驾驶员档案管理、车辆管理、公交车运营线路的分配和管理等。如何对公交车公司的车辆进行合理的分配,科学的使用,使其发挥最大的价值是本问探讨的重点。该管理系统的提出,对于一个公交车运营商来说,不但可以对车辆的使用进行合理的管理,而且对车辆的使用情况进行跟踪记录,这对于单位车辆责任到人,信息明确,避免责任混乱等一系列相应问题的解决。

1.3 系统设计目标

该系统以车辆为主体,结合对于公交车线路的管理,设计并开发一个公交车管理系统,提供一个信息更新快捷,管理方便,功能设置合理的公交车管理系统解决方案。针对公交车运营公司大量的车辆信息和线路制定信息,制定实施该系统的各个功能,使得公交车的管理更加科学化。

2 需求分析

2.1 系统需求

公交车管理系统是一个协助公交车运营商各单位对车辆进行全面的管理。在此之前,对于线路与车辆的管理采用的方式几乎都是手工管理,其中的弊端显而易见,即容易造成档案资料的遗失,控制不集中,管理不规范等等问题。因此,在管理系统的实现上应该满足以下需求:

1.为保障系统的稳定性,对于可能发生问题的输入要进行检验,同时要给出合理的提示信息。

2.在管理上满足公交车管理职能的基本需求,能够方便的进行司机信息管理、车辆信息管理、线路信息管理和车辆与线路的分配管理。

3.为公交车管理系统提供数据支持。

4.与传统的手工管理相比,应该添加用户权限的管理机制。保证系统安全性。

2.2 功能需求

根据对上述管理系统的业务流程、要求以及所要实现的目标,可以拟出以下的需求目标:

1.建立司机档案和车辆档案管理的管理和维护,在计算机的支持下快速的完成车辆信息的添加和删除。

2.建立线路与车辆的设置管理,在计算机的管理下,可以实现方便的添加、删除、修改。

3.建立车辆与司机的分配管理,在计算机的管理下,可以实现方便的添加、删除、修改。

4.实现系统权限设置管理,保证系统的安全性。

根据系统的需求分析,得到本系统的功能要求如下:

1.车辆信息的设置管理:系统合法用户可以根据公司具体情况设置关于车辆的具体资料档案。

2.权限管理:为了很好的保证系统的安全性,公司相关负责人可以根据实际情况添加和删除系统用户。

3.线路档案管理:一个城市的运营线路可能复杂且数据量极大,系统用户可以进行线路的规划管理。

4.车辆与司机的分配管理:为了维护好车辆,要求司机做好车辆的日常维护工作,落实具体责任。

5.车辆运行线路管理:实现对车辆和线路分配的管理,包括添加、修改和删除操作。

2.3 性能需求

系统的运行环境要求是:

1.硬件环境

目前,考虑到所开发系统主要应用在中小规模的公交车公司,因此,中等配置的计算机硬件就可以满足系统功能需求。考虑到公司规模的扩大和硬件价格的降低,为本系统配置在较优秀的服务器硬件上,可以充分发挥本系统的功能。

 处理器:Inter Pentium 4 1.8G或更高

 内存:512M(推荐)

 硬盘空间:80GB

 显卡:SVGA显示适配器

2.软件环境

 操作系统:Windows /XP

 开发软件:Microsoft Visual

 数据库:Microsoft SQL Server 2000

3 系统开发相关技术

3.1 编程环境的选择

省略

3.2 关系型数据库

SQL Server 2000是一种功能强大的数据库开发工具,数据库汇集了信息以供查询、存储和检索。它的优点在于强大的数据库引擎,它可以承受10000条以上的记录测试,而且数据库运行于服务器上,相对于本地数据库,可以明显的减少内存占用,提高运行速度和本机的利用效率。SQL数据库具有友好的管理界面——企业管理器,其中的视图可以直观的进行数据处理,同时支持直观的数据库设计,也可以通过词法分析器,使用SQL语句进行数据库的各种操作,包括数据库的建立,表的建立和修改等一系列操作。

采用C/S模式的设计,可以更加合理的利用企业资源,使得数据集中在一台服务器上,从来节省了数据库管理的人力资源,也使得由于非专业人士的误操作,或者别的各种电脑意外而导致数据丢失,或者别的不必要损失,所以在数据库选择上采用了SQL Server 2000。

4 总体设计

4.1 设计思想与处理流程

本系统采用面向对象进行分析和设计,在SQL Server 2000数据库上实现数据操作。使用了上文所介绍的完全面向对象的C#语言作为开发语言。使用Windows XP作为开发平台,能够很好地实现系统的基本开发和测试。

系统的基本流程是:用户登录 主界面 选择各项子功能。

4.2 系统层次模块图

“公交车管理系统”主要分为用户登录、车辆管理、司机管理、线路管理和车辆分配管理等6个主功能模块。系统主模块功能树如图1所示。

4.3 模块设计

1.登录模块

输入用户的名称和密码,如果用户名、密码正确,则进入主控制平台;否则给出错误提示。

2.用户注册模块

系统管理员进行用户使用设置和初始密码的设置。

3.车辆信息管理

该模块的设计目的是用于用户录入与车辆有关的资料信息。比如车牌号、车辆拥有的座位数目和是否有人售票等信息。

4.司机管理

在该模块下包含两个子模块。其中一个用于对司机资料的录入操作;另一个模块提供给用户查询司机信息。

5.线路管理

该模块的功能同司机管理模块类似,同样包含两个子模块。一个用于录入线路信息;另一个用于查询线路信息。

6.车辆分配线路管理

实现将每辆车与线路相关联的操作。

5 数据库设计

5.1 综述

是ADO的改进版本。是与C#和.NET Framework一起使用的类集的名称,用于以关系型的、面向表的格式访问数据[1]。集成到.NET Framework中,可以用于任何.NET语言,尤其是C#。这也是该管理系统采用C#程序语言的原因。

的作用与ADO(Active Data Objects)相同,提供易于使用的类集,以访问数据,的功能得到更新和增强,可以用于.NET编程环境。在使用SQL Server数据库时,通过SQL Server专用的内置.NET数据提供者可以获得最好的性能和对基础功能的最直接的访问。

1…NET数据提供程序

根据数据源不同,常用的.NET数据提供程序可以分为以3种:SQL Server数据提供程序、OLE DB数据源提供程序以及ODBC兼容的数据源提供程序。所有的数据提供程序都位于System.Data命名空间中。每种.NET数据提供程序都由4个主要组建组成。它们的功能如下:

(1)Connection对象:用于连接数据源。

(2)Command对象:用于执行针对数据源的命令并且检索DataReader或者DataSet,或者用于针对数据源的一个INSERT、UPADTA或者DELETE命令。

(3)DataReader对象:一个已连接的、前向只读结果集。

(4)DataAdapter对象:用于从数据源产生一个DataSet,并且更新数据源。

2.数据库应用程序的开发流程

虽然数据库应用程序访问的数据库不通,实现的功能也不同,但其开发流程主要分为以下几个步骤:

(1)创建数据库。

(2)使用Connection对象创建到数据库的连接。

(3)使用Command对象对数据源执行SQL命令并返回数据。

(4)利用DataReader和DataSet对象读取和处理数据源的数据。

5.2 逻辑设计

1.E-R模型的建立

根据针对系统的需求分析,可以得到本系统对应的各实体以及实体之间的关系。其中包含有用户实体、司机实体、车辆实体、线路信息实体等。下面根据分析得出其中主要的E-R图,如图2和图3所示。

图2描述了司机实体和车辆实体之间的关系。

图3描述了车辆实体和线路实体之间的关系。

2.表单设计

根据对各个实体的分析,可以进行数据库表的具体设计。下面给出两张具体表设计的实例,如表1和表2所示。

表1 用户信息表的实现

表2 线路信息表的实现

5.3 存储过程

在该公交车管理系统的在数据的查询、添加和删除等操作上主要采用了存储过程。存储过程是编译好了的SQL语句。它类似于函数的使用,可以直接通过参数调用存储过程,所以效率比较高。

1.存储过程的介绍

存储过程是由一组为了完成特定功能的SQL语句集,经过编译和优化后存储在数据库服务器中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它[2]。存储过程的能力大大增强了SQL语言的功能和灵活性。

2.存储过程的优势

(1)允许标准组件式编程。在存储过程被创建以后,可以在程序中被多次调用,而不必重新编写该存储过程的SQL语句。

(2)实现较快的执行速度。因为存储过程是预编译的,在首次运行前,查询优化器对其进行分析、优化,并给出了最终被存在系统中的执行计划[2]。

(3)减少网络流量。在调用存储过程时,网络中传送的只是该调用语句,而不是多条SQL语句,从而大大减少了网络流量。

(4)作为一种安全机制来充分利用。系统管理员通过对执行某一存储过程的权限进行限制,从而能够实现对相应的数据访问权限制,避免非授权用户对数据的访问,保证数据安全[2]。

3.存储过程的代码实现

在创建存储过程时,需要确定存储过程的三个组成部分:

1.所有的输入参数以及传递给调用者的输出参数。

2.被执行的针对数据库的操作语句,包括调用其他存储过程的语句。

3.返回给调用者的状态值,以指明调用是成功还是失败。

下面给出在该系统中使用到的部分存储过程:

实现对满足ID号是CarLineID的汽车线路数据的删除操作。

create proc prc_deleteCarLine@CarLineID intasdelete T_Car_Line where ID=@CarLineIDif @@rowcount>0 return 0elsereturn 1GO实现查询所有汽车信息的存储过程。create proc spr_carallasselect ID ,CarNum as "车牌号",CarColor as "颜色",SitNum as "座位数",CarType as "类型",AirCondi as "是否空调车",Company as "车品牌",Remark as "备注" from t_carGO

6 详细设计

根据已有的需求分析和总体设计,在此基础上进行系统的详细设计和实现。为此,建立了一个C#.NET项目。

6.1 登录模块

1.用户身份验证

输入:用户名和密码。

处理:

(1)用户登录窗体启动。

(2)输入用户名和密码。

(3)检索数据库中数据,是否有相应的用户名和密码。

(4)如果用户名和密码为空,或者错误,进行提示。

(5)如果输入的用户名和密码正确,则允许该用户进入系统。

(6)进入主控制台。

输出:主控制台。

2.用户登录模块的窗体设计

用户登录模块的窗体设计,如图4所示。

3.用户登录模块的主要代码

private void button1_Click(object sender, System.EventArgs e){DataAccess myAcc=new DataAccess();if(myAcc.userlogin(this.textBox1.Text.Trim(),this.textBox2.Text.Trim())==1) {this.Visible=false;Main newMain=new Main(this.textBox1.Text.Trim());newMain.Show();}else if(myAcc.userlogin(this.textBox1.Text.Trim(),"") == 0)MessageBox.Show("没有该用户!");else{MessageBox.Show("登录失败");}}

private void button1_Click()鼠标事件用于实现在输入用户名和密码后,进入系统主控制界面的方法。DataAccess类是自定义的用于实现数据库访问的类。该方法中判断语句里调用了该类所声明的对象myAcc的方法userlogin(),该方法的具体实现代码如下所示:

public int userlogin(string username,string userpass){Database myDB=new Database();SqlParameter[] para={myDB.MakeInParam("@username",SqlDbType.NVarChar,50,username),myDB.MakeInParam("@userPass",SqlDbType.NVarChar,50,userpass)};return myDB.RunProc("spr_uerlogin",para);}

该段代码展示了上文中所提到的存储过程的具体使用。

6.2 主操作界面模块

1.主控制平台的窗体设计

主控制平台的窗体设计,如图5所示。

从界面上直观的向用户表明了在该系统下可以进行的一系列操作,包括新用户的注册,车辆信息的管理,司机信息的管理,线路信息的管理和车辆线路分配的管理。当用户选择相应的功能进行操作时,触发该按钮事件,则可以进入相应的功能界面进行相应的操作。

6.3 系统用户注册模块

1.添加用户子模块

添加用户子模块负责系统的安全性,在该模块种只能增加新用户而不能修改、删除用户,这样是为了加强系统的安全性,保证了系统的恶意操作或误删除等情况出现。

(1)添加新用户功能的实现,并且设置用户的初始密码。

(2)功能模块实现的界面效果如图6所示。

2.该子模块功能主要代码

//用户名检测机制,保证用户名的唯一性。private void button2_Click(object sender, System.EventArgs e){if(this.textBox1.Text.Trim()=="") {MessageBox.Show("用户名不能为空");}else if(checkuser()==1)MessageBox.Show("该用户名不存在,可以注册!");else {MessageBox.Show("该用户名存在,请重新录入新的用户名!");}}

将新用户的信息写入数据库。通过自定义对象myAccc访问数据库,主要是由该对象调用存储过程来实现。

private void button1_Click(object sender, System.EventArgs e){//checkuser()是自定义的方法,实现对用户名的检查判断。if(checkuser()==0) {MessageBox.Show("该用户名存在,请重新录入新的用户名!");return ;}自定义的regcheck()方法,根据该方法返回的值对不同的情况进行处理。if(regcheck()==1) {DataAccess myAcc=new DataAccess();int li_check=myAcc.uerReg(this.textBox1.Text.Trim(),this.textBox2.Text.Trim(),boBox1.SelectedItem.ToString(),this.textBox4.Text.Trim(),this.textBox5.Text.Trim());if(li_check==1) {MessageBox.Show("注册成功");}}}

6.4 车辆信息管理模块

1.车辆信息模块

该模块实现对车辆信息如、车牌号、颜色、座位数、是否无人售票和车辆品牌信息的录入和删除操作。该界面窗体效果如图7所示。

2.该功能模块实现的主要代码

该段代码在用户点击“所有”按时,触发一个事件,通过调用allcarinfo()方法来返回数据库中的数据, 然后使用dataGrid控件将数据显示出来。

private void button2_Click(object sender, System.EventArgs e) {DataAccess myAcc = new DataAccess();DataSet mySet = new DataSet();mySet=myAcc.allcarinfo();this.dataGrid1.DataSource = mySet.Tables[0];}

该段代码实现用户增加车辆信息后完成保存功能的实现。其中针对某些可能出错的地方做出了人性化的处理,以便用户更正和做出相应的处理。

6.5 司机信息管理模块

1.司机信息管理模块

通过该窗体,输入司机姓名、身份证、编号和驾驶编号等等司机的个人资料,实现添加司机信息的功能,该功能模块窗体的效果如图8所示。

2.实现该功能模块的主要代码

该事件实现将合法的司机信息写入数据库。同样通过自定义类的对象来访问数据库,并通过调用存储过程实现完成操作。

private void button1_Click(object sender, System.EventArgs e){if(AddDirverscheck()==1) {DataAccess myAcc=new DataAccess();int li_check=myAcc.AddDirvers(this.tb_name.Text.Trim(), this.tb_Number.Text.Trim(),this.lab_photo.Text.Trim(), this.tb_Idnumber.Text.Trim(),this.tb_phone.Text.Trim(), this.tb_address.Text.Trim(),his.tb_DirverNumber.Text.Trim());if(li_check==1) {string ls_D=System.Environment.CurrentDirectory;MessageBox.Show("操作成功");int li_counts=this.Controls.Count;for(int i=0;i<li_counts;i++) {if(this.Controls[i].GetType().ToString()=="System.Windows.Forms.TextBox")this.Controls[i].Text=""; }}}}

6.6 线路信息管理模块

1.在该功能模块中实现添加线路相关的信息,主要输入的信息包括线路编号、线路名称、发车时间和收车时间等,具体的窗体效果见下页图9所示。

2.实现该功能的主要代码

CheckReg()是一个用于实现检查用户注册信息的私有方法,该方法通过嵌入SQL语句来检索数据库信息,以核对用户信息的有效性。

private int CheckReg(){DataSet mySet=new DataSet();string ls_query= "select * from t_lineInfo where LineName='"+ this.tb_name.Text.Trim()+"' or LineCode='"+ this.tb_Code.Text.Trim()+"'";Database myDB=new Database();mySet=myDB.SQLQuery(ls_query);if(mySet.Tables[0].DefaultView.Count==0) return 0;else return 1;}

6.7 车辆分配线路管理模块

1.车辆分配线路管理功能

公交车最终要与固定的某条线路相匹配,把具体的每一辆车分配到设置好的线路上。这样,汽车,司机,线路才能完成有机的联系,形成一个整体。对于管理者来说,能够通过该系统所提供的功能从宏观上把握车辆的运行情况,如图10所示。

2.实现功能的主要代码

鼠标单击“确定”事件时,将进行的操作。首先根据整型变量li_LineID和li_CarID的值来判断是否选择了车辆或者某条线路;若没有,则弹出一消息窗口,给出提示信息。

private void button1_Click(object sender, System.EventArgs e){if(li_LineID==0 || li_CarID==0 ){MessageBox.Show("车辆或者线路没有选择,请选择!");return;}DataAccess myAcc=new DataAccess();if(myAcc.CheckLinByCarID(li_CarID)==0){MessageBox.Show("该汽车已经分配线路");}else{int li_flag=0;if(this.checkBox1.Checked==true)li_flag=1;elseli_flag=0;if(myAcc.InsertCarLine(li_CarID,li_LineID,li_flag)>0)MessageBox.Show("保存成功!");}}

7 系统维护和改进

7.1 运行维护

经过测试,该系统运行稳定,在使用和维护中应该注意以下几个问题:

(1)定期备份数据库,以免丢失数据。

(2)定期清理数据库中的无效数据,以提高运行效率。

(3)对软件及运行环境进行日常维护。

7.2 系统改进和提高

本系统在信息表描述上,以及其它各个地方还有不完备的地方,通用性不强,另外对于用户权限上的设置没有实现更具体的功能实施,没有实现查询资料导出的处理。下一部的工作将完善本系统,在各个界面上进一步添加所需要的字段。在熟悉系统模块的设计后,可以根据实际需求的变化,扩充系统的功能。

结 论

本文主要研究了公交车管理系统的设计与实现。实现公交车公司在对车辆和人员以及线路的统一管理的应用型设计。通过几个月的努力,公交车管理系统功能基本符合用户需求,能够完成用户提出的信息管理要求,实现对公交车辆的日常管理。在系统的整个设计与实现过程中,主要解决了司机信息管理、车辆信息管理、线路信息管理以及公交车、司机和线路之间的分配的管理。对于数据方面的处理,主要利用了存储过程的优势来实现对数据的一系列操作。在设计过程中,以及论文写作中,已经让自己学习到了很多的关于数据库和信息管理技术的知识。

公交车管理系统的发展是随新技术的变革而改变的,所以开发更优秀的系统的步伐永远也不会停止,随着管理的进步,相应软硬件环境都需要变化,管理系统也应该因时而变、因地制宜地进行相应的调整。

参考文献

[1] Karli Watson[美].C#入门经典(第3版)[M].齐立波译.北京:清华大学出版社,

[2] 方睿,刁仁宏,吴四九.网络数据库原理及应用[M].成都:四川大学出版社,

[3] Christian Nagel[美].C#高级编程(第4版) [M] .李敏波译.北京:清华大学出版社,

[4] 崔巍.数据库系统及应用(第二版) [M].北京:高等教育出版社,

[5] Jacquie Barker Beginning[美].C# Objec概念到代码[M].韩磊译.北京:电子工业出版社,

[6] 张海藩.软件工程导论(第4版)[M].北京:清华大学出版社,

[7] 黄明,梁旭.C#+SQL Server 中小型信息系统开发实例精选[M].北京:机械工业出版社,

[8] 柴晟.数据库访问技术案例教程[M].北京:北京航空航天大学出版社,

致 谢

省略


5、资源下载

本项目源码及完整论文如下,有需要的朋友可以点击进行下载。如果链接失效可点击下方卡片扫码自助下载。

C#毕业设计——基于C#++SQL Server的公交车管理系统设计与实现(毕业论文+程序源码)——公交车管理系统

如果觉得《C#毕业设计&mdash;&mdash;基于C#+asp.net+SQL Server的公交车管理系统设计与实现(毕业论文+程》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。