1、 目录一、开发计划11. 所选题目12. 小组信息13. 项目背景1二、需求分析21. 需求定义说明书22. 数据流图23. 数据字典41) 数据项的定义42) 数据流的定义43) 数据存储的定义44) 处理逻辑的定义5三、概要设计51. 系统功能模块结构图52. 数据库概要设计(E-R图)63. 代码设计64. 输入/输出界面设计7四、详细设计81. 主界面模块81) 界面设计82) 编码112. 派车功能模块111) 界面设计122) 编码19五、测试与调试301. 系统测试目标302. 任务测试的任务303. 系统测试的方法314. 系统测试用例设计31六、对软件分析、设计及实施方面的评
2、价及体会32七、组长对小组工作及成员的评价32一、开发计划1. 所选题目车辆管理系统2. 小组信息1)小组成员:XXXXXX2)任务分配: 7月3日: XXX:分析管理功能模块代码 XXX:分析课题,编写开发计划、需求分析 7月4日: XXX:绘制数据流程图、E-R图、模块结构图 XXX:运行系统,分析数据库结构、系统结构、数据流程、数据字典 7月5日: XXX:测试功能模块,记录测试过程及结果 XXX:测试功能模块,记录测试过程及结果 7月6日: XXX:编写好实验报告并提交 3. 项目背景1)原系统:随着经济的日益增长,车辆作为最重要的交通工具,在企事业单位中得到普及,单位的车辆数目已经远
3、远不止简单的几辆,与此同时就产生了车辆资源的合理分配使用问题。该问题涉及到车辆的档案管理;驾驶员档案管理;车辆(维修费用、洗车费用、燃料费用等)管理;车辆使用管理和交通事故管理等。如何对一个企事业单位的车辆进行合理分配使用,使其发挥最大的使用价值,所以该系统对于一个用车单位来说,不但可以对车辆的使用进行合理的管理,而且对车辆的使用情况进行跟踪记录,这对于单位车辆责任到人,费用清晰,避免责任混乱、费用虚假等一系列相应问题的解决。2)目标系统:原系统的设计基本满足要求,但也存在着些许不足之处,我们所要做的就是分析原系统,尽可能的完善原系统。二、需求分析1. 需求定义说明书在计算机网络,数据库和先进
4、的开发平台上,利用现有的软件,配置一定的硬件,开发一个具有开放体系结构的、易扩充的、易维护的、具有良好人机交互界面的车辆管理系统,实现机关、企业、事业的等单位车辆的自动化的计算机管理系统,为各单位提供准确、精细、迅速的车辆信息。车辆管理系统是针对公司的大量信息处理工作而开发的管理软件。根据用户的要求,实现对车辆基本信息、驾驶员、费用、出车记录、事故记录、年检记录管理几个方面的功能。用户界面分为管理员、驾驶员和科室三个界面,用户在输入不同账号及密码后,根据用户权限不同登录不同的用户界面。其中,管理员的权限包括派车管理(派车、派车审批、查看派车记录)、车辆管理(车辆信息的增加和修改)、人员管理(人
5、员信息的增加和修改)、维修管理(保养申请、保养审批、查看保养记录)和其他管理(绩效考核、查看加油记录);驾驶员的权限有派车管理(出车申请、查看派车记录)、个人资料(查看车辆资料、个人查询和修改)、车辆的养护管理(养护申请、养护记录)、车辆管理(查看加油记录);科室的权限有派车管理(派车申请、查看派车记录)和科室管理(更改密码)。2. 数据流图 一层图二层图3. 数据字典1) 数据项的定义数据项编号:1-01数据项名称:驾驶员编号别 名:无简 述:某位驾驶员的编号类 型:整型长 度:4字节取值范围:0100数据项编号:1-02数据项名称:驾驶员姓名别 名:无简 述:某驾驶员的姓名类 型:字符型长
6、 度:20字节取值范围:中英文2) 数据流的定义数据流名称:派车申请单编 号:F1简 述:驾驶员或科室填写的车辆派遣凭单数据流来源:驾驶员或科室数据流去向:派车申请资料登记处数据流组成:车牌号码+驾驶员+出车时间 + 出车天数 + 目的地 + 出车原因+用车科室+随队人员+备注信息流通量:25份/天高峰流通量:50份/天3) 数据存储的定义数据存储的名称:派车申请资料表数据存储编号:D1简 述:记录派车申请的编号、申请人、申请时间、申请原因与批复情况等信息数据存储组成:派车申请单编号 + 申请人 + 申请时间+申请原因+批复情况(同意/不同意)关键字: 派车申请单编号4) 处理逻辑的定义处理名
7、:派车申请审批编 号:P3输 入:数据流F1输 出:数据流F1描 述:管理员从派车申请资料中提取未批复的申请单进行批复,同意的派车申请单经过信息管理给申请人派车,不同意的则取消申请单。三、概要设计 1. 系统功能模块结构图2. 数据库概要设计(E-R图)3. 代码设计对于每辆车都有各自的车牌号,为了统一管理的方便,对每辆车都做了编码。车辆类型可分为机动车、卡车、轿车3大类,机动车又可分为电动车、摩托车;卡车可分为大型卡车、中型卡车和小型卡车。因此,车辆的编码有9为数字组成,其中前两位表示车辆的大类号,跟在大类号后边两位表示小类号,后面5位表示车辆号,具体表示如下:* * * 车牌号 小类号 大
8、类号4. 输入/输出界面设计 在增添或修改资料时会出现数据的输入,输入界面可通过文本框和数据库对应的数据进行交互来实现,在文本框中输入相应数据后,数据库做出相应更新。在用户查询数据时,往往需要打印报表,此时可以表格的实现输出数据,实现方法是文本框与数据库相应数据的绑定。四、详细设计1. 主界面模块编制人:XXX在主界面中添加三个链接控件,分别用来与三个登录界面交互。在管理员、驾驶员和科室3个登录界面各添加一个返回主界面的按钮。程序启动后,在主界面选择相应的登录窗口,通过登录界面验证操作员密码后,将进入程序主界面。通过程序主界面将会执行相应的权限操作,并且还可以通过主界面的菜单,来调用相应程序,
9、在进行相应操作。当用户想切换操作员时可按返回按钮退回到主界面,重新选择登录界面。1) 界面设计主界面管理员登录界面驾驶员登录界面科室登录界面2) 编码a)主界面: 管理员 驾驶员 科室b)登录界面:在各登录界面源视图下加入如下代码: 注: 是添加控件LinkButton的格式,在内设置该控件的属性,ID是控件的唯一标识名称,runat是服务器,PostBackUrl是点击按钮时页面返回的链接,其中,管理员链接的是管理员的登录界面,驾驶员链接的是驾驶员的登录界面,科室链接的是科室的登录界面;之间的文字是控件显示的文字,style=font-size: 30pt是设置字体大小为30磅。添加一个ID
10、为btnReturn的按钮控件,点击该按钮时链接到名为Default(主界面)的页面,按钮程度是70像数。2. 派车功能模块编制人:XXX开始派车模块:模块描述该模块完成提交派车信息派车审批模块:模块描述该模块完成派车审批的过程同意,不同意。同意:派车成功,短信提醒驾驶员或者是打印派车单不同意:派车取消。算法实现1) 界面设计开始派车派车审批打印派车单不同意入库2) 编码开始派车代码:public partial class master_paiche : System.Web.UI.Page protected void Page_Load(object sender, EventArgs
11、e) Server.Execute(loginchk.aspx); if (!Page.IsPostBack) for (int i = 0; i 24; i+) this.DropDownList3.Items.Add(i.ToString(); for (int b = 0; b 60; b+) this.DropDownList4.Items.Add(b.ToString(); this.userbind(); this.carbind(); this.keshibind(); private void carbind() SqlConnection con = Jjchatdb.cre
12、ateConnection(); con.Open(); SqlDataAdapter sda = new SqlDataAdapter(); sda.SelectCommand = new SqlCommand(select * from carinfo, con); DataSet Myds = new DataSet(); sda.Fill(Myds, carinfo); this.DropDownList1.DataSource = Myds.Tablescarinfo; this.DropDownList1.DataValueField = userid; this.DropDown
13、List1.DataTextField = userid; this.DropDownList1.DataBind(); con.Close(); private void keshibind() 自定义科室bind()的方法代码; SqlConnection con = Jjchatdb.createConnection(); con.Open(); SqlDataAdapter sda = new SqlDataAdapter(); sda.SelectCommand = new SqlCommand(select * from keshi, con);/查询科室表信息 DataSet M
14、yds = new DataSet(); sda.Fill(Myds, keshi); /数据源的各个属性设置 this.DropDownList5.DataSource = Myds.Tableskeshi; this.DropDownList5.DataValueField = ksname; this.DropDownList5.DataTextField = ksname; this.DropDownList5.DataBind(); con.Close(); private void userbind()/自定义驾驶员bind()的方法代码: SqlConnection con1 =
15、 Jjchatdb.createConnection(); con1.Open(); SqlDataAdapter sda = new SqlDataAdapter(); sda.SelectCommand = new SqlCommand(select * from userinfo, con1);/查询驾驶员信息 DataSet Myds = new DataSet(); sda.Fill(Myds, userinfo); /数据源的各个属性设置 this.DropDownList2.DataSource = Myds.Tablesuserinfo; this.DropDownList2.
16、DataValueField = username; this.DropDownList2.DataTextField = username; this.DropDownList2.DataBind(); con1.Close(); protected void Button1_Click(object sender, EventArgs e)/申请派车 string outdate = this.Label1.Text.ToString() + + DropDownList3.Text.ToString() + : + DropDownList4.Text.ToString() + : +
17、00; SqlConnection con2 = Jjchatdb.createConnection(); con2.Open(); string sql_newadd = insert into pcgl (carid,username,outdate,howday,mdd,ccyy,ccgls,ycks,sxry,beizhu)values( + this.DropDownList1.Text + , + this.DropDownList2.Text + , + outdate + , + this.TextBox4.Text + , + this.TextBox5.Text + , +
18、 this.TextBox6.Text + , + this.TextBox7.Text + , + this.DropDownList5.Text + , + this.TextBox9.Text + , + this.TextBox10.Text + );/添加派车信息 SqlCommand cmd_newadd = new SqlCommand(sql_newadd, con2); cmd_newadd.ExecuteNonQuery(); con2.Close(); this.Panel1.Visible = false; this.Panel2.Visible = true; pro
19、tected void ImageButton1_Click(object sender, ImageClickEventArgs e) this.Calendar1.Visible = true; protected void Calendar1_SelectionChanged(object sender, EventArgs e) this.Label1.Text = this.Calendar1.SelectedDate.Year.ToString() + - + this.Calendar1.SelectedDate.Month.ToString() + - + this.Calen
20、dar1.SelectedDate.Day.ToString(); this.Calendar1.Visible = false; 派车审核代码:public partial class master_paicheedit : System.Web.UI.Page protected void Page_Load(object sender, EventArgs e)/页面首次载入 Server.Execute(loginchk.aspx); if (!Page.IsPostBack)/页面往返时显示派车表的记录 SqlConnection con = Jjchatdb.createConne
21、ction(); con.Open(); SqlCommand cmd = new SqlCommand(select * from pcgl where id= + Request.QueryStringcarid + , con); SqlDataReader sdr = cmd.ExecuteReader(); if (sdr.Read()/赋值 this.Label2.Text = sdrcarid.ToString();/车牌号码 this.Label3.Text = sdrusername.ToString();/驾驶员 this.Label1.Text = sdroutdate.
22、ToString();/出车时间 this.TextBox4.Text = sdrhowday.ToString();/出车天数 this.TextBox5.Text = sdrmdd.ToString();/目的地 this.TextBox6.Text = sdrccyy.ToString();/出车原因 this.TextBox7.Text = sdrccgls.ToString();/出车前公里数 this.TextBox8.Text = sdrycks.ToString();/用车科室 this.TextBox9.Text = sdrsxry.ToString();/随行人员 this
23、.TextBox10.Text = sdrbeizhu.ToString();/备注信息 this.TextBox11.Text = Convert.ToString(Sessionmasterid);/审批人 this.Label4.Text = sdrid.ToString();/ string a = this.Label2.Text; if (a = ) else this.Button4.Visible = false; this.Button6.Visible = false; SqlConnection cong = Jjchatdb.createConnection(); co
24、ng.Open(); SqlCommand cmdg = new SqlCommand(select * from carinfo where userid= + this.Label2.Text + , cong); SqlDataReader sdrg = cmdg.ExecuteReader(); if (sdrg.Read() this.Label5.Text = sdrggls.ToString(); sdrg.Close(); cong.Close(); sdr.Close(); con.Close(); this.carbind(); this.userbind(); priva
25、te void carbind()/自定义车辆的bind()的方法代码: SqlConnection con = Jjchatdb.createConnection(); con.Open(); SqlDataAdapter sda = new SqlDataAdapter(); sda.SelectCommand = new SqlCommand(select * from carinfo, con); DataSet Myds = new DataSet(); sda.Fill(Myds, carinfo); /数据源的各个属性设置 this.DropDownList1.DataSourc
26、e = Myds.Tablescarinfo; this.DropDownList1.DataValueField = userid; this.DropDownList1.DataTextField = userid; this.DropDownList1.DataBind(); con.Close(); private void userbind()/驾驶员bind()的方法代码: SqlConnection con1 = Jjchatdb.createConnection(); con1.Open(); SqlDataAdapter sda = new SqlDataAdapter();
27、 sda.SelectCommand = new SqlCommand(select * from userinfo, con1); DataSet Myds = new DataSet(); sda.Fill(Myds, userinfo); /数据源的各个属性设置 this.DropDownList2.DataSource = Myds.Tablesuserinfo; this.DropDownList2.DataValueField = username; this.DropDownList2.DataTextField = username; this.DropDownList2.Da
28、taBind(); con1.Close(); protected void Button1_Click(object sender, EventArgs e)/同意派车按钮触发事件的代码: SqlConnection con2 = Jjchatdb.createConnection(); con2.Open(); string sql_update = update pcgl set carid= + this.Label2.Text + ,username= + this.Label3.Text + ,howday= + this.TextBox4.Text + ,mdd= + this.
29、TextBox5.Text + ,ccyy= + this.TextBox6.Text + ,ccgls= + this.TextBox7.Text + ,ycks= + this.TextBox8.Text + ,sxry= + this.TextBox9.Text + ,beizhu= + this.TextBox10.Text + ,pcr= + this.TextBox11.Text + ,pcok=yes,spdate= + System.DateTime.Now.ToString() + where id= + Request.QueryStringcarid + ; SqlCom
30、mand cmd_update = new SqlCommand(sql_update, con2); cmd_update.ExecuteNonQuery(); con2.Close(); SqlConnection con = Jjchatdb.createConnection(); con.Open(); string sql_update1 = update userinfo set zaigan=no where username= + this.Label3.Text + ; SqlCommand cmd_update1 = new SqlCommand(sql_update1,
31、con); cmd_update1.ExecuteNonQuery(); con.Close(); SqlConnection con1 = Jjchatdb.createConnection(); con1.Open(); string sql_update2 = update carinfo set zaigan=no where userid= + this.Label2.Text + ; SqlCommand cmd_update2 = new SqlCommand(sql_update2, con1); cmd_update2.ExecuteNonQuery(); con1.Clos
32、e(); this.Panel1.Visible = false; this.Panel2.Visible = true; protected void Button2_Click(object sender, EventArgs e)/不同意派车按钮触发事件的代码 SqlConnection con = Jjchatdb.createConnection(); con.Open(); string SqlDeleteStr = delete from pcgl where id = + Request.QueryStringcarid + ; SqlCommand cmd_update =
33、new SqlCommand(SqlDeleteStr, con); cmd_update.ExecuteNonQuery(); con.Close(); this.Panel1.Visible = false; this.Panel3.Visible = true; protected void Button3_Click(object sender, EventArgs e)/打印派车单,进入派车单界面 Response.Redirect(paichedan.aspx?carid=+this.Label4.Text); Response.Write(window.open(WebForm2
34、.aspx,newwindow,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=yes,width=750,height=470,left=80,top=40);); protected void Button4_Click(object sender, EventArgs e)/选择车辆 this.Button4.Visible = false; this.DropDownList1.Visible = true; this.Button5.Visible = true; p
35、rotected void Button6_Click(object sender, EventArgs e)/选择驾驶员 this.Button6.Visible = false; this.DropDownList2.Visible = true; this.Button7.Visible = true; protected void Button5_Click(object sender, EventArgs e)/选择本次出车的牌号 this.Button4.Visible = true; this.DropDownList1.Visible = false; this.Button5
36、.Visible = false; this.Label2.Text = this.DropDownList1.Text; SqlConnection cong = Jjchatdb.createConnection(); cong.Open(); SqlCommand cmdg = new SqlCommand(select * from carinfo where userid= + this.Label2.Text + , cong); SqlDataReader sdrg = cmdg.ExecuteReader(); if (sdrg.Read() this.Label5.Text = sdrggls.ToString(); this.TextBox7.Text = sdrggls.ToString(); sdrg.Close(); cong.Close(); protected void Button
版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。
Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1
陕公网安备 61072602000132号 违法和不良信息举报:0916-4228922