小区车辆管理系统.doc
【精品文档】如有侵权,请联系网站删除,仅供学习与交流小区车辆管理系统.精品文档. 兰州商学院陇桥学院 工学系课程设计报告设 计 题 目: 小区车辆管理系统 系 别: 工学系 专 业 (方 向): 信息管理与信息系统 年 级、 班:2011级信息管理与信息系统班 学 生 姓 名: 廖宁波 学 生 学 号: 20110651115 指 导 教 师: 韩如冰 2014 年 6 月 28 日目录 一、前言2(一) 选题说明21、基本思路22、作业目标3(二) 课程设计进度安排3(三) 工作业绩41、小组主要工作42、 主要收获43、 小组分工4二、系统可行性分析5(一) 需求分析5(二) 开发的可行性51、技术可行性分析52、经济可行性分析63、组织与管理上的可行性分析6三、系统分析6(一) 业务流程图6(二) 数据流程图7四、系统设计7(一) 系统功能结构图81、系统设置子系统功能结构图82、信息查询子系统功能结构图83、车主信息查询子系统功能结构图94、车辆信息查询子系统功能结构图95、出入信息查询子系统结构功能图10(二) 数据库设计101、ER图102、数据字典设计11五、总结11六、附件(代码及部分效果图)13 一、前言 (一) 选题说明 1、基本思路此次我们的设计题目是小区车辆管理,其目的是为了管理小区内的车辆信息和出入信息,以此为前提,可以讲系统设计如下几个板块:(1) 系统设置:用来修改用户的密码。(2) 信息查询:用来查询车辆信息,车主信息和出入信息。(3) 车主信息查询:用来对车主信息进行查询、添加、修改、删除等操作。(4) 车辆信息查询:用来对车辆信息进行查询、添加、修改、删除等操作。(5) 出入信息查询:用来对出入信息进行查询、添加、修改、删除等操作。 2、作业目标系统有可行性,可以对用户的密码进行修改,可以对车主信息、车辆信息、出入信息进行查询、添加、删除、修改等操作,从而可以达到对小区车辆进行管理的效果。(二) 课程设计进度安排 表一 课程设计进度安排表星期 进度安排第十六周可行性分析第十七周系统需求分析(系统描述、业务流程图设计及分析)第十八周系统需求分析(系统数据流程图、必要的数据字典设计)第十九周系统设计(系统代码设计、数据库设计)第二十周系统设计(输出设计、输入设计及其他内容) (三) 工作业绩 1、小组主要工作 对小区车辆管理系统进行可行性分析,然后对系统的需求进行进一步的分析,然后做出系统的设计流程图、ER图和功能图,然后对系统进行初步的设计,设计好系统后对系统进行调试,看系统是否可以运行、有没有错误的地方,调试完成之后对系统进行进一步的完善,是系统功能更强大,显示更美观。 2、 主要收获进过对系统的分析,对系统的设计有了基本的思路,对小区管理系统的流程有了一定的了解。3、 小组分工 表二 小组分工表序号负责人任务1焦正山主要负责系统设计部分,包括代码设计、数据库设计、输出设计、输入设计、其它相关部分。2廖宁波主要负责系统可行性分析、系统需求分析部分,包括系统可行性分析、系统描述、业务流程图、业务流程分析、数据流程图、必要的数据字典 二、系统可行性分析 (一) 需求分析 小区车辆管理在文件系统时代,工作非常繁琐,需要大量的人力、物力和财力,极大的浪费了小区物业的资源,对于小区的管理人员来说,车辆管理包括车主信息管理、车辆信息管理、出入信息管理、信息查询等等。而这些项目在过去的文件系统时代,需要手工记录这些事情,不但麻烦,还经常出错,给广大用户带来很多不便。为了更好的为广大住户服务,开发一套小区车辆管理系统已成为必要,数据库系统能帮助小区管理人员从复杂的车辆管理之中解放出来。虽然在此之前,已有很多人开发过小区车辆管理系统,但也存在着一些问题,比如功能不够完善、系统界面不够友好、系统存在安全隐患等等。 (二) 开发的可行性 1、技术可行性分析 开发系统需要的运行环境有软件环境:用户端:Windows2003,Windows XP,Windows 7,Windows 8服务器端:Windows2000及以上操作系统编程语言:Microsoft Visual Studio 2008数据库:SQL Server 2005硬件环境:有高性能的电子计算机、适当容量的存贮装置,个人电脑(终端)以及联结起来的网线等,组成信息资源共享的计算机网络。以上技术要求对于一个面向大型小区的车辆管理是可行的。 2、经济可行性分析 在经济上,用此系统加强了对各超小区车辆管理的效率,为小区车辆管理员提供了较大提升工作效率的空间,可节省部分人力资源的开支。 3、组织与管理上的可行性分析在工作上,小区车辆管理部门每日处理的信息量非常大,使用了此系统,可极大提高车辆管理员的工作的效率。方便车辆出入信息的储存和修改,及以后随时查询出入信息,是一个比较人性化的管理系统。 三、系统分析(一) 业务流程图业务流程图如图3-1所示图3-1 业务流程图(二) 数据流程图 数据流程图如图3-2所示用户登录开始信息删除信息查询信息修改信息添加 图3-2 数据流程图 四、系统设计 小区车辆管理系统功能结构设计图如图4-1所示:小区车辆管理系统出入信息查询车辆信息查询车主信息查询信息查询系统设置 图4-1 小区车辆管理系统功能结构设计图 (一) 系统功能结构图 1、系统设置子系统功能结构图 系统设置子系统功能结构图如图4-2所示: 系统设置重新登录权限登录密码修改 图4-2 系统设置子系统功能结构图 2、信息查询子系统功能结构图 信息查询子系统功能结构图如图4-3所示:出入信息查询车辆信息查询车主信息查询 信息查询 图4-3 信息查询子系统功能结构图3、车主信息查询子系统功能结构图车主信息查询子系统功能结构图如图4-4所示:出入信息删除车辆信息添加车主信息修改 车主信息查询 图4-4 车主信息查询子系统功能结构图4、车辆信息查询子系统功能结构图车辆信息查询子系统功能结构图如图4-5所示:出入信息删除车辆信息添加车主信息修改 车主信息查询 图4-5 车辆信息查询子系统功能结构图 5、出入信息查询子系统结构功能图 出入信息查询子系统结构功能图如图4-6所示车主信息修改车主信息查询车主信息添加车主信息删除 图4-6 出入信息查询子系统结构功能图 (二) 数据库设计 1、ER图通过对系统功能的分析,小区车辆管理系统ER模型图如图4-7所示。出入信息系统车辆信息车主信息查询操作管理车主管理员登录密码使用修改车主信息车辆信息车位图4-7 小区物业管理系统E-R模型 这个ER图有八个实体类型:管理员,车主,系统,车位,出入信息,车主信息,车辆信息,登录密码。 这个ER图有五个联系类型:操作,管理,查询,修改,使用。2、数据字典设计 表三 车辆管理信息表vehicle 字段名称字段类型说明是否主键可否空vehicleNoVarchar(8)车辆编号是否motorcycletype Varchar(8)车型否是owner Varchar(8)车主否是licenseplatenoVarchar(8)车牌号否是colorVarchar(8)颜色否是registrationdate Datetime(8)注册时间否是 表四 出入管理信息表Access 字段名称字段类型说明是否主键可否空Access NoVarchar(8)出入编号是否state Varchar(8)状态否是motorcycletype Varchar(8)车型否是date Datetime(8)时间否是licenseplatenoVarchar(8)车牌号否是 表五 车主管理信息表owner字段名称字段类型说明是否主键可否空ownernoVarchar(8)车主编号是否nameVarchar(8)姓名否是sex Varchar(8)性别否是telVarchar(15)电话否是add Varchar(20)住址否是 五、总结系统完成了对小区车辆信息的查询、删除、修改、添加等操作功能,可以对小区内车辆的出入进行管理,方便与管理员的管理,为管理月节省了大量的时间,减轻了管理员的工作量,而且提高了数据的正确率。除此之外,系统还有一些不足的地方,比如不能对车辆是否是本小区的,这样小区的安全问题就存在隐患。在整个设计过程中,出现过很多的问题,在不断学习的过程中我体会到:1设计是一个不断学习新鲜事物的过程,从设计初的不懂到最后能够顺利完成,我体会到在实践中学习的重要性。2由于前期工作的不彻底,对系统的需求分析的要求认识不够清楚,使得后续的工作不得不经常返回去修改数据表和个别代码。使我体会到在设计中的每一步的重要性,如果上一个步骤不能很好的完成,在后续的设计将会付出几倍的代价。所以做一个系统最主要的部分就是最需求分析,如果需求分析做的不好,后面带来的一连串的问题就会更多,花的时间也会更多,而且系统不一定能够做到预期的效果。3设计过程中,由于要实现某些功能,互联网帮了我的大忙。网络资源是一个丰富的共享体系,我通过在编程论坛上提出问题得到了很多热心网友的帮助,使我在很多地方少走了很多的了弯路。 经过近三周的设计,我深刻体会到了一个软件的设计和它的发展是那很的严密,容不得半点的马虎。要严格按照软件工程的方法与思想,逐步完成。同时也让我明白了,很多的知识在用时才会觉的“书到用时方恨少”,只有靠平常的积累。4经过三周的课程设计,使我成长了很多,也学到了不少知识,但是我学到仅仅是一点皮毛而已,今后还需要不断的努力学习,C#是一门很好的语言,它的运行环境也相当好,所以我今后打算继续学习C#语言,继续往这一方面去发展,现在的我就如同一张白纸,需要学习的知识还有很多很多。 六、附件(代码及部分效果图)1、系统首页代码: private void button1_Click(object sender, EventArgs e) this.Visible = false; Form2 登录 = new Form2(); 登录.Show(); private void button2_Click(object sender, EventArgs e) this.Close();登陆界面代码: private void button1_Click(object sender, EventArgs e) if (textBox1.Text = "admin" && textBox2.Text = "admin") this.Visible = false; Form3 main = new Form3(); main.Show(); else MessageBox.Show("用户名或密码错误!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); textBox1.Text = "" textBox2.Text = "" a += 1; if (a = 3) MessageBox.Show("3次输入错误,系统关闭!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning); this.Close(); private void button2_Click(object sender, EventArgs e) this.Close();基本管理模块代码: private void 重新登录ToolStripMenuItem_Click(object sender, EventArgs e) this.Visible = false; Form2 登录 = new Form2(); 登录.Show(); private void 车辆信息查询ToolStripMenuItem_Click(object sender, EventArgs e) Form7 车辆信息查询 = new Form7(); 车辆信息查询.Show(); private void 车主信息查询ToolStripMenuItem_Click(object sender, EventArgs e) Form8 车主信息查询 = new Form8(); 车主信息查询.Show(); private void 出入信息查询ToolStripMenuItem_Click(object sender, EventArgs e) Form9 出入信息查询 = new Form9(); 出入信息查询.Show(); private void 添加车主信息ToolStripMenuItem_Click(object sender, EventArgs e) Form4 添加车主信息 = new Form4(); 添加车主信息.Show(); private void 修改车主信息ToolStripMenuItem_Click(object sender, EventArgs e) Form4 添加车主信息 = new Form4(); 添加车主信息.Show(); private void 删除车主信息ToolStripMenuItem_Click(object sender, EventArgs e) Form4 添加车主信息 = new Form4(); 添加车主信息.Show(); private void 添加车辆信息ToolStripMenuItem_Click(object sender, EventArgs e) Form5 添加车辆信息 = new Form5(); 添加车辆信息.Show(); private void 修改车辆信息ToolStripMenuItem_Click(object sender, EventArgs e) Form5 添加车辆信息 = new Form5(); 添加车辆信息.Show(); private void 删除车辆信息ToolStripMenuItem_Click(object sender, EventArgs e) Form5 添加车辆信息 = new Form5(); 添加车辆信息.Show(); private void 添加出入信息ToolStripMenuItem_Click(object sender, EventArgs e) Form6 添加出入信息 = new Form6(); 添加出入信息.Show(); private void 修改出入信息ToolStripMenuItem_Click(object sender, EventArgs e) Form6 添加出入信息 = new Form6(); 添加出入信息.Show(); private void 删除出入信息ToolStripMenuItem_Click(object sender, EventArgs e) Form6 添加出入信息 = new Form6(); 添加出入信息.Show(); private void 退出系统ToolStripMenuItem_Click(object sender, EventArgs e) this.Close();车主信息管理模块代码: private void button1_Click(object sender, EventArgs e) String 车主编号 = textBox1.Text.Trim(); String 性别 = textBox2.Text.Trim(); String 住址 = textBox3.Text.Trim(); String 姓名 = textBox4.Text.Trim(); String 电话 = textBox5.Text.Trim(); if (old) cm.CommandText = "update CZ set 姓名='" + 姓名 + "',性别='" + 性别 + "',电话='" + 电话 + "',住址='" + 住址 + "'where 车主编号='" + 车主编号 + "'" else cm.CommandText = "insert into CZ values('" + 车主编号 + "','" + 姓名 + "','" + 性别 + "','" + 电话 + "','" + 住址 + "')" cm.ExecuteNonQuery(); MessageBox.Show("车主信息更新成功!"); private void textBox1_Leave(object sender, EventArgs e) int cnt; cm.CommandText = "select count(*) from CZ where 车主编号='" + textBox1.Text.Trim() + "'" cnt = int.Parse(cm.ExecuteScalar().ToString(); if (cnt > 0) old = true; cm.CommandText = "select * from CZ where 车主编号='" + textBox1.Text.Trim() + "'" dr = cm.ExecuteReader(); dr.Read(); textBox4.Text = dr1.ToString(); textBox3.Text = dr4.ToString(); textBox2.Text = dr2.ToString(); textBox5.Text = dr3.ToString(); dr.Close(); else textBox4.Text = "" textBox3.Text = "" textBox2.Text = "" textBox5.Text = "" private void button4_Click(object sender, EventArgs e) textBox1.Text = "" textBox4.Text = "" textBox3.Text = "" textBox2.Text = "" textBox5.Text = "" private void button2_Click(object sender, EventArgs e) String 车主编号 = textBox1.Text.Trim(); String 性别 = textBox2.Text.Trim(); String 住址 = textBox3.Text.Trim(); String 姓名 = textBox4.Text.Trim(); String 电话 = textBox5.Text.Trim(); cm.CommandText = "update CZ set 性别='" + 性别 + "',住址='" + 住址 + "',姓名='" + 姓名 + "',电话='" + 电话 + "' where 车主编号='" + 车主编号 + "'" cm.ExecuteNonQuery(); MessageBox.Show("车主更新成功!"); button2.Enabled = false; old = false; private void button3_Click(object sender, EventArgs e) if (MessageBox.Show("确认删除?") = DialogResult.OK) cm.CommandText = "delete from CZ where 车主编号='" + textBox1.Text.Trim() + "'" cm.ExecuteNonQuery(); MessageBox.Show("删除成功!"); button3.Enabled = false; old = false; else this.Close(); private void button5_Click(object sender, EventArgs e) this.Close();车辆信息管理模块代码: private void button1_Click(object sender, EventArgs e) String 车辆编号 = textBox1.Text.Trim(); String 车主 = textBox2.Text.Trim(); String 颜色 = textBox3.Text.Trim(); String 车型 = textBox4.Text.Trim(); String 车牌号 = textBox5.Text.Trim(); String 注册时间 = textBox6.Text.Trim(); if (old) cm.CommandText = "update CL set 车型='" + 车型 + "',车主='" + 车主 + "',车牌号='" + 车牌号 + "',颜色='" + 颜色 + "',注册时间='" + 注册时间 + "' where 车辆编号='" + 车辆编号 + "'" else cm.CommandText = "insert into CL values('" + 车辆编号 + "','" + 车型 + "','" + 车主 + "','" + 车牌号 + "','" + 颜色 + "','" + 注册时间 + "')" cm.ExecuteNonQuery(); MessageBox.Show("车辆信息更新成功!"); private void button2_Click(object sender, EventArgs e) String 车辆编号 = textBox1.Text.Trim(); String 车主 = textBox2.Text.Trim(); String 颜色 = textBox3.Text.Trim(); String 车型 = textBox4.Text.Trim(); String 车牌号 = textBox5.Text.Trim(); String 注册时间 = textBox6.Text.Trim(); cm.CommandText = "update CL set 车主='" + 车主 + "',颜色='" + 颜色 + "',车型='" + 车型 + "',车牌号='" + 车牌号 + "',注册时间='" + 注册时间 + "' where 车辆编号='" + 车辆编号 + "'" cm.ExecuteNonQuery(); MessageBox.Show("车辆更新成功!"); button2.Enabled = false; old = false; private void button3_Click(object sender, EventArgs e) if (MessageBox.Show("确认删除?") = DialogResult.OK) cm.CommandText = "delete from CL where 车辆编号='" + textBox1.Text.Trim() + "'" cm.ExecuteNonQuery(); MessageBox.Show("删除成功!"); button3.Enabled = false; old = false; else this.Close(); private void button4_Click(object sender, EventArgs e) textBox1.Text = "" textBox4.Text = "" textBox3.Text = "" textBox2.Text = "" textBox5.Text = "" textBox6.Text = "" private void button5_Click(object sender, EventArgs e) this.Close(); private void textBox1_Leave(object sender, EventArgs e) int cnt; cm.CommandText = "select count(*) from CL where 车辆编号='" + textBox1.Text.Trim() + "'" cnt = int.Parse(cm.ExecuteScalar().ToString(); if (cnt > 0) old = true; cm.CommandText = "select * from CL where 车辆编号='" + textBox1.Text.Trim() + "'" dr = cm.ExecuteReader(); dr.Read(); textBox4.Text = dr1.ToString(); textBox3.Text = dr4.ToString(); textBox2.Text = dr2.ToString(); textBox5.Text = dr3.ToString(); textBox6.Text = dr5.ToString(); dr.Close(); else textBox4.Text = "" textBox3.Text = "" textBox2.Text = "" textBox5.Text = "" textBox6.Text = ""出入信息管理模块代码: private void button1_Click(object sender, EventArgs e) String 出入编号 = textBox1.Text.Trim(); String 车型 = textBox2.Text.Trim(); String 车牌号 = textBox3.Text.Trim(); String 状态 = textBox4.Text.Trim(); String 时间 = textBox5.Text.Trim(); if (old) cm.CommandText = "update CR set 状态='" + 状态 + "',车型='" + 车型 + "',时间='"