《数据库课程设计报告模板(共24页).doc》由会员分享,可在线阅读,更多相关《数据库课程设计报告模板(共24页).doc(24页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上 课程设计报告汽车货运信息管理系统 系 别电子信息系专业名称计算机科学与技术班级学号学生姓名耿红丽指导教师党群成 绩2011年 6月 30日专心-专注-专业1 概述1.1 设计题目及实现目标我们组设计的题目是汽车货运信息管理系统。该系统能够对物流企业的日常业务流程(接单、派车、装货、运输、卸货、收款等)实现全程信息化操作,其主要包括以下几大部分的功能:基本管理、系统管理、车辆管理、货运管理、查询管理。其中,基本管理包括:公司员工管理、客户信息管理。车辆管理包括:车辆信息管理、车辆费用管理、车辆事故管理、车辆维修管理、车辆油耗管理。货运管理包括:订单信息管理、运单信息管
2、理、出车费用管理。查询管理包括:查询车辆费用、查询出车费用、查询订单信息、查询运单信息、查询事故信息、查询维修信息。系统管理包括:分配用户权限、修改用户密码、公司信息设置、系统帮助信息。1.2 开发环境简介 该系统采用C/S模式作为开发模式,SQL Server 2005作为数据库,C#语言作为开发语言,在Visual Studio 2008中开发完成。1.2.1 程序开发环境 Microsoft Visual Studio 2008Microsoft Visual Studio 2008是面向Windows Vista、Office 2007、Web 2.0的下一代开发工具,代号“Orcas
3、”,是对Visual Studio 2005一次及时、全面的升级。VS2008引入了250多个新特性,整合了对象、关系型数据、XML的访问方式,语言更加简洁。使用Visual Studio 2008可以高效开发Windows应用。设计器中可以实时反映变更,XAML中智能感知功能可以提高开发效率。同时Visual Studio 2008支持项目模板、调试器和部署程序。Visual Studio 2008可以高效开发Web应用,集成了ASP.NET AJAX 1.0,包含ASP.NET AJAX项目模板,它还可以高效开发Office应用和Mobile应用。1.2.2 后台数据库 SQL Serve
4、r 2005SQL Server 2005 通过在可伸缩性、数据集成、开发工具和强大的分析等方面的革新更好的确立了微软在BI领域的领导地位。SQL Server 2005 能够把关键的信息及时的传递到组织内员工的手中,从而实现了可伸缩的商业智能。从CEO 到信息工作者,员工可以快速的、容易的处理数据,以更快更好的做出决策。SQL Server 2005全面的集成、分析和报表功能使企业能够提高他们已有应用的价值,即便这些应用是在不同的平台上。2 需求分析2.1 系统功能描述本程序运行流程如下所示,主要功能分为五大模块:汽车货运信息管理系统欢迎界面登陆信息管理系统基本管理 车辆管理 货运管理 查询
5、管理 系统管理公司员工管理 车辆信息管理 订单信息管理 查询车辆费用 修改用户密码客户信息管理 车辆费用管理 运单信息管理 查询出车费用 公司信息设置 车辆事故管理 出车费用管理 查询订单信息 系统帮助信息 车辆维修管理 查询运单信息 查询事故信息 查询维修信息退出系统其中:1.系统管理可以完成用户密码的修改,也可以对公司的基本信息进行设置和浏览;2.基本管理、车辆管理、货运管理可以完成各种信息的添加、删除、重置和保存,也可以查看前一个、后一个、第一个和最后一个记录;3.查询管理可以对上面提到的信息进行查询,查询条件可以有多个,对查询到的结果可以进行修改、保存和删除。2.2 E-R图 3 数据
6、库逻辑结构设计1. 公司员工员工编号(主键/非空/nchar(10))、员工名称(非空/(nvarchar(20))、员工权限(非空/(nvarchar(5)、员工性别(非空/nchar(1))、所在部门(非空/nvarchar(10)、主要职责(ntext)、身份证号码(非空/char(18)、联系电话(nvarchar(20)、移动电话(nvarchar(20)、联系地址(nvarchar(50)、邮政编码(nvarchar(15)、电子邮箱(nvarchar(25)、员工密码(非空/nvarchar(20))、补充说明(ntext)2. 客户信息客户名称(主键/非空/nvarchar(2
7、0)、联系人员(nvarchar(20)、联系电话(nvarchar(20)、移动电话(nvarchar(20)、联系地址(nvarchar(50)、电子邮箱(nvarchar(25)、主运商品(nvarchar(20)、货运地点(nvarchar(50)、补充说明(ntext)3. 车辆信息车牌号码(主键/非空/nvarchar(10)、生产厂商(nvarchar(20)、购买原值(money)、购买日期(datetime)、报废日期(datetime)、规格型号(nvarchar(20)、准载重量(int)、发动机号(nvarchar(20)、车架号码(nvarchar(20)、底盘号码(
8、nvarchar(20)、保险号码(nvarchar(30)、当前状态(nvarchar(20)、司机名称(nvarchar(20)、补充说明(ntext)4. 车辆费用(指的是公司付的费用,如年审费、养路费等)车牌号码(是3的外键/非空/nvarchar(10)、费用名称(主键/非空/nvarchar(10)、费用金额(非空/money)、收费单位(nvarchar(20)、缴费日期(datetime)、开始日期(datetime)、到期日期(datetime)、补充说明(ntext)5. 车辆事故车牌号码(是3的外键/非空/nvarchar(10)、事故名称(主键/非空/nvarchar(
9、10))、司机姓名(非空/nvarchar(20)、事故日期(datetime)、事故内容(ntext)、事故地点(nvarchar(50)、事故金额(money)、理赔金额(money)、理赔编号(非空/nvarchar(20)、赔款状态(nvarchar(10)、补充说明(ntext)6. 车辆维修车牌号码(是3的外键/非空/nvarchar(10)、维修名称(主键/非空/nvarchar(10)、送修日期(datetime)、完修日期(datetime)、维修地点(nvarchar(50)、维修费用(money)、维修内容(ntext)、补充说明(ntext)7. 订单信息订单编号(主键
10、/非空/nvarchar(15)、送货客户(为2的外键/非空/nvarchar(20)、联系人员(nvarchar(20))、联系电话(nvarchar(20)、货物名称(nvarchar(20)、计量数量(int)、货物体积(int)、货物毛重(int)、货物原价(money)、装货地点(非空/nvarchar(50)、送货日期(datetime)、收货客户(为2的外键/非空/nvarchar(20)、送货人员(nvarchar(20)、收货电话(nvarchar(20)、卸货地点(非空/nvarchar(50)、承运里程(int)、承运单价(money)、代垫费用(money)、应收费用(
11、money)、付款客户(为2的外键/非空/nvarchar(20)、补充说明(ntext)8. 运单信息车次编号(为9的外键/nvarchar(15)、运单编号(主键/非空/nvarchar(15)、行车路线(nvarchar(200)、出车日期(datetime)、回车日期(datetime)、车牌号码(是3的外键/非空/nvarchar(10)、出车司机(非空/nvarchar(20)、随车人员(nvarchar(20)、签收人员(nvarchar(20)、签收日期(datetime)、补充说明(ntext)9. 出车费用(指的是某一辆车在某次出车途中需要的费用,如某个收费站收取的费用等)
12、车牌号码(3的外键/非空/nvarchar(10)、车次编号(主键/非空/nvarchar(15)、费用名称(非空/nvarchar(10)、计费数量(smallint)、计费单位(nvarchar(20)、收费金额(money)、收费单位(nvarchar(20)、收费日期(datetime)、补充说明(ntext)10. 公司信息公司名称(主键/非空/nvarchar(30))、公司负责人(为1的外键/非空/nvarchar(20))、公司电话(nvarchar(20))、公司地址(nvarchar(50))、公司网站(nvarchar(40))、公司介绍(ntext)4 程序核心代码及控
13、件描述我负责的是基本管理和货运管理。基本管理包括:公司员工管理、客户信息管理。货运管理包括:订单信息管理、运单信息管理、出车费用管理。以公司员工管理为例,其他项类似。4.1公司员工管理模块 新建一个Form窗体,添加数据源。从工具箱中拖拽button,label等控件,重新命名并设置相关属性;从 数据源中拖拽员工的各项信息,textbox控件,调整位置。界面布局如下:4.11单击“首记录”按钮的事件处理单击“首记录”按钮后,创建Sql语句,建立数据库连接,并据此创建适配器,使适配器调用MoveFirst 使数据库中的数据移到第一个记录。代码如下:private void buttonfirst
14、_Click(object sender, EventArgs e) this.table_员工信息BindingSource.MoveFirst(); this.DisPlayNumber(); 4.12 单击“前一个”按钮的事件处理单击“前一个”按钮后,创建Sql语句,建立数据库连接,并据此创建适配器,使适配器调用MovePrevious 使数据库中的数据移到上一个记录。代码如下:private void buttonprevious_Click(object sender, EventArgs e) this.table_员工信息BindingSource.MovePrevious();
15、 this.DisPlayNumber(); 4.13 单击“后一个”按钮的事件处理单击“前一个”按钮后,创建Sql语句,建立数据库连接,并据此创建适配器,使适配器调用MoveNext 使数据库中的数据移到下一个记录。代码如下:private void buttonnext_Click(object sender, EventArgs e) this.table_员工信息BindingSource.MoveNext(); this.DisPlayNumber(); 4.14 单击“尾记录”按钮的事件处理单击“前一个”按钮后,创建Sql语句,建立数据库连接,并据此创建适配器,使适配器调用Move
16、Last 使数据库中的数据移到最后一个记录。代码如下:private void buttonlast_Click(object sender, EventArgs e) this.table_员工信息BindingSource.MoveLast(); this.DisPlayNumber(); 4.15 单击“添加”按钮的事件处理单击“添加”按钮后,创建Sql语句,建立数据库连接,并据此创建适配器,使适配器调用MoveAddNew 使新的数据添加到数据库中。代码如下:private void buttonaddnew_Click(object sender, EventArgs e) this
17、.table_员工信息BindingSource.AddNew(); this.DisPlayNumber(); 4.16 单击“删除”按钮的事件处理单击“删除”按钮后,创建Sql语句,建立数据库连接,并据此创建适配器,用一个字符串存储删除语句,使当前数据从数据库中删除。代码如下:private void buttondelete_Click(object sender, EventArgs e) if (MessageBox.Show(确认要删除该行数据吗?, 删除确认, MessageBoxButtons.OKCancel, MessageBoxIcon.Question) = Dialo
18、gResult.OK) try this.table_员工信息BindingSource.RemoveCurrent(); this.tableAdapterManager.UpdateAll(this.dataBaseManagementDataSet); this.DisPlayNumber(); catch (Exception ) MessageBox.Show(请确认关于该员工其他页面录入信息已全部删除!); Close(); 4.17 单击“重置”按钮的事件处理单击“重置”按钮后,创建Sql语句,建立数据库连接,并据此创建适配器,取消当前编辑的数据,重新添加新的数据。代码如下:pr
19、ivate void buttonreset_Click(object sender, EventArgs e) this.table_员工信息BindingSource.CancelEdit(); this.table_员工信息BindingSource.AddNew(); this.DisPlayNumber(); 4.18 单击“保存”按钮的事件处理单击“保存”按钮后,创建Sql语句,建立数据库连接,并据此创建适配器,保存当前的记录。因为员工信息中,要求员工编号,员工姓名,员工编号,所在部门,身份证号,员工权限不为空,所以要确保这些信息不为空的情况下才能保存。代码如下:private v
20、oid buttonsave_Click(object sender, EventArgs e) try this.Validate(); this.table_员工信息BindingSource.EndEdit(); this.tableAdapterManager.UpdateAll(this.dataBaseManagementDataSet); this.DisPlayNumber(); catch (Exception ) if (员工编号TextBox.Text = ) MessageBox.Show(员工编号不能为空); return; else if (员工名称TextBox.
21、Text = ) MessageBox.Show(员工名称不能为空); return; else if (员工性别TextBox.Text = ) MessageBox.Show(员工性别不能为空); return; else if (所在部门TextBox.Text = ) MessageBox.Show(所在部门不能为空); return; else if (身份证号码TextBox.Text = ) MessageBox.Show(身份证号为空); return; else if (员工权限TextBox.Text = ) MessageBox.Show(员工权限不能为空); retur
22、n; else if (员工密码TextBox.Text = ) MessageBox.Show(员工密码不能为空); return; else MessageBox.Show(错误); return; 4.19 标签的处理系统会根据用户的输入,保存当前记录以及总的记录数。代码如下:private void DisPlayNumber() this.label1.Text = 当前记录: + (this.table_员工信息BindingSource.Position + 1).ToString(); this.label2.Text = 总记录数: + this.table_员工信息Bind
23、ingSource.Count.ToString(); 截图如下:其他信息管理与公司员工管理过程类似,代码如下:4.2 客户信息管理代码:private void buttonfirst_Click(object sender, EventArgs e) this.table_客户信息BindingSource.MoveFirst(); this.DisPlayNumber(); private void buttonprevious_Click(object sender, EventArgs e) this.table_客户信息BindingSource.MovePrevious(); t
24、his.DisPlayNumber(); private void buttonnext_Click(object sender, EventArgs e) this.table_客户信息BindingSource.MoveNext(); this.DisPlayNumber(); private void buttonlast_Click(object sender, EventArgs e) this.table_客户信息BindingSource.MoveLast(); this.DisPlayNumber(); private void buttonaddnew_Click(objec
25、t sender, EventArgs e) this.table_客户信息BindingSource.AddNew(); this.DisPlayNumber(); private void buttondelete_Click(object sender, EventArgs e) if (MessageBox.Show(确认要删除该行数据吗?, 删除确认, MessageBoxButtons.OKCancel, MessageBoxIcon.Question) = DialogResult.OK) try this.table_客户信息BindingSource.RemoveCurren
26、t(); this.tableAdapterManager.UpdateAll(this.dataBaseManagementDataSet); this.DisPlayNumber(); catch (Exception ) MessageBox.Show(请确认关于该客户其他页面录入信息已全部删除!); Close(); private void buttonreset_Click(object sender, EventArgs e) this.table_客户信息BindingSource.CancelEdit(); this.table_客户信息BindingSource.AddNe
27、w(); this.DisPlayNumber(); private void buttonsave_Click(object sender, EventArgs e) try this.Validate(); this.table_客户信息BindingSource.EndEdit(); this.tableAdapterManager.UpdateAll(this.dataBaseManagementDataSet); this.DisPlayNumber(); catch (Exception ) if (客户名称TextBox.Text = ) MessageBox.Show(客户名称
28、不能为空); return; else MessageBox.Show(出现错误); return; private void DisPlayNumber() this.label1.Text = 当前记录: + (this.table_客户信息BindingSource.Position + 1).ToString(); this.label2.Text = 总记录数: + this.table_客户信息BindingSource.Count.ToString(); 界面如下:4.3 订单信息管理代码:private void button1_Click(object sender, Eve
29、ntArgs e) this.table_订单信息BindingSource.MoveFirst(); this.DisPlayNumber(); private void button2_Click(object sender, EventArgs e) this.table_订单信息BindingSource.MovePrevious(); this.DisPlayNumber(); private void button3_Click(object sender, EventArgs e) this.table_订单信息BindingSource.MoveNext(); this.Dis
30、PlayNumber(); private void button4_Click(object sender, EventArgs e) this.table_订单信息BindingSource.MoveLast(); this.DisPlayNumber(); private void button5_Click(object sender, EventArgs e) this.table_订单信息BindingSource.AddNew(); this.DisPlayNumber(); private void button6_Click(object sender, EventArgs
31、e) if (MessageBox.Show(确认要删除该行数据吗?, 删除确认, MessageBoxButtons.OKCancel, MessageBoxIcon.Question) = DialogResult.OK) try this.table_订单信息BindingSource.RemoveCurrent(); this.tableAdapterManager.UpdateAll(this.dataBaseManagementDataSet); this.DisPlayNumber(); catch (Exception ) MessageBox.Show(请确认关于该条订单其他
32、页面录入信息已全部删除!); Close(); private void button7_Click(object sender, EventArgs e) this.table_订单信息BindingSource.CancelEdit(); this.DisPlayNumber(); private void button8_Click(object sender, EventArgs e) try this.Validate(); this.table_订单信息BindingSource.EndEdit(); this.tableAdapterManager.UpdateAll(this.
33、dataBaseManagementDataSet); this.DisPlayNumber(); catch (Exception ex) MessageBox.Show(ex.ToString(); if (订单编号TextBox.Text = ) MessageBox.Show(订单编号不能为空); return; else if (送货客户TextBox.Text = ) MessageBox.Show(送货客户不能为空); return; else if (装货地点TextBox.Text = ) MessageBox.Show(装货地点不能为空); return; else if (收货客户TextBox.Text = ) MessageBox.Show(收货客户不能为空); return; else if (卸货地点TextBox.Text = ) MessageBox.Show(卸货地点不能为空); return; else if (付款客户TextBox.Text = )