1、课 程 设 计课程设计名称:车辆系统的管理与调度专 业 班 级 : 计科0802班 学 生 姓 名 : 李 旭 学 号 : 200848140202 指 导 教 师 : 马宏琳 课程设计时间: 2011年06月30日 计算机科学与技术 专业课程设计任务书学生姓名李旭专业班级计科0802学号200848140202题 目车辆系统的管理与调度课题性质其它课题来源自拟课题指导教师马宏琳同组姓名无主要内容本系统主要具有以下功能:(1)设计车辆信息,包括车辆信息维护和查询;(2)设计驾驶员信息,包括驾驶员信息维护和查询;(3)设计车场信息,包括车场信息维护和查询;(4)设计车辆调度;(5)实现系统界面,
2、包括用户管理,修改密码,退出。任务要求 综合运用所学的数据库基本知识,并能通过查阅相关文献材料,独立完成该课题的设计开发工作。设计车辆管理系统,进一步掌握通过编程访问数据库和对数据库的管理,用高级语言编写管理系统实现对车辆方面的管理。参考文献1詹英.数据库技术与应用M.北京:清华大学出版社.2008.9-142黄德才.数据库原理及其应用教程.M.北京:科学出版社.2007.12-33龚沛曾,杨志强. 数据库技术与应用M.北京 高等教育出版社.20084任满杰.数据库实用教程M.电子工业出版社.20065王珊,萨师煊.数据库系统概论M.高等教育出版社出版.2005审查意见指导教师签字:教研室主任
3、签字: 年 月 日 说明:本表由指导教师填写,由教研室主任审核后下达给选题学生,装订在设计(论文)首页1 需求分析本课程设计要求了解车辆管理系统的过程,要求对车辆的管理有一定的理解,并进一步加深对车辆运作的实现和理解。要求用C#语言和SQL SERVER 2000实现车辆相关信息记录和调度。要求建立一个数据库,然后用C#编程序,编号后要求把数据库与程序连接起来,组成一个大模块。车辆管理过程中涉及车辆的添加、删除、修改,驾驶员的添加、删除、修改,车场的添加、删除、修改,其中当实现车辆调度时能顺利完成要求,另外系统还可以实现修改用户,修改密码等功能。2 概要设计本系统要求建立六个表,分别包括用户信
4、息,车辆信息,驾驶员信息,车辆调度信息,车辆预约信息,车辆库存信息。在设计程序的时候要求完成的模块有(1)设计车辆信息,包括车辆信息维护和查询;(2)设计驾驶员信息,包括驾驶员信息维护和查询;(3)设计车场信息,包括车场信息维护和查询;(4)设计车辆调度;(5)实现系统界面,包括用户管理,修改密码,退出。在实现功能的时候要连接数据库,充分利用数据库中的数据。3 运行环境 Windous XP系统4 开发工具和编程语言Microsoft Visaul Stadio 2008Microsoft Sql Server 20005 详细设计(!)首先建立一个数据库,在数据库中建立所需要的表,建立过程大
5、概如下:CREATE TABLE dbo.UserInfo (UserID char (5) COLLATE Chinese_PRC_CI_AS NOT NULL ,UserName varchar (20) COLLATE Chinese_PRC_CI_AS NULL ,passwod varchar (5) COLLATE Chinese_PRC_CI_AS NOT NULL ,UserLevel char (1) COLLATE Chinese_PRC_CI_AS NULL ) ON PRIMARYCREATE TABLE dbo.CarInfo (CarID char (5) COLL
6、ATE Chinese_PRC_CI_AS NOT NULL ,CarType varchar (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,CarDriver char (5) COLLATE Chinese_PRC_CI_AS NOT NULL ,CarColor char (5) COLLATE Chinese_PRC_CI_AS NULL ,Carbuytime datetime NULL ,CarLoad int NULL ) ON PRIMARYCREATE TABLE dbo.CarOut (OutID char (5) COLLATE Chi
7、nese_PRC_CI_AS NOT NULL ,OutCarID char (5) COLLATE Chinese_PRC_CI_AS NOT NULL ,CarOutTime datetime NOT NULL ,CarInTime datetime NOT NULL ,Outfee money NOT NULL ) ON PRIMARYCREATE TABLE dbo.Driver (DriverID char (5) COLLATE Chinese_PRC_CI_AS NOT NULL ,DriverName varchar (20) COLLATE Chinese_PRC_CI_AS
8、 NOT NULL ,DriverSex char (5) COLLATE Chinese_PRC_CI_AS NOT NULL ,DriverLevel char (5) COLLATE Chinese_PRC_CI_AS NOT NULL ,DriverAddress varchar (50) COLLATE Chinese_PRC_CI_AS NULL ,DriverPhone char (11) COLLATE Chinese_PRC_CI_AS NULL ,worktime datetime NULL ) ON PRIMARYCREATE TABLE dbo.OrderInfo (O
9、rderID char (5) COLLATE Chinese_PRC_CI_AS NOT NULL ,OrderCarID char (5) COLLATE Chinese_PRC_CI_AS NOT NULL ,OrderPersonName varchar (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,OrderTime datetime NOT NULL ,OrderReason varchar (50) COLLATE Chinese_PRC_CI_AS NULL ) ON PRIMARYCREATE TABLE dbo.StopPlace (Sp
10、ID char (5) COLLATE Chinese_PRC_CI_AS NOT NULL ,SpName varchar (20) COLLATE Chinese_PRC_CI_AS NULL ,SpLocation varchar (50) COLLATE Chinese_PRC_CI_AS NULL ,bigcarnum int NOT NULL ,mediumcarnum int NOT NULL ,smallcarnum int NOT NULL ) ON PRIMARY(2)程序中各模块如下:1. namespace DA模块 public DataTable CarInfoSe
11、lectAll() using (SqlConnection conn = DABase.CreateConnection() if (ConnectionState.Closed = conn.State) conn.Open(); using (SqlCommand cmd = conn.CreateCommand() cmd.CommandType = CommandType.StoredProcedure; cmd.CommandText = CarInfoSelectAll; try SqlDataAdapter Adapter = new SqlDataAdapter(cmd);
12、DataSet ds = new DataSet(); Adapter.Fill(ds); conn.Close(); return ds.Tables0; catch (SqlException sqlEx) throw sqlEx; public CarInfoModule CarInfoSelectOne(String CarID) using (SqlConnection conn = DABase.CreateConnection() if (ConnectionState.Closed = conn.State) conn.Open(); using (SqlCommand cmd
13、 = conn.CreateCommand() cmd.CommandType = CommandType.StoredProcedure; cmd.CommandText = CarInfoSelectOne; #region 添加存储过程参数 cmd.Parameters.AddWithValue(CarID, CarID);/车辆标号 #endregion try SqlDataReader dr = cmd.ExecuteReader(); if (dr.HasRows = false) dr.Close(); return null; CarInfoModule CarMod = n
14、ew CarInfoModule(); dr.Read(); #region 读取字段值 CarMod.CarID = CommonSqlValue.GetString(0, dr); CarMod.CarType = CommonSqlValue.GetString(1, dr); CarMod.CarDriver = CommonSqlValue.GetString(2, dr); CarMod.CarColor = CommonSqlValue.GetString(3, dr); CarMod.Carbuytime = CommonSqlValue.GetDateTime(4, dr);
15、 CarMod.CarLoad = CommonSqlValue.GetInt32(5, dr); #endregion dr.Close(); conn.Close(); return CarMod; catch (SqlException sqlEx) throw sqlEx; public void CarInfoDeleteOne(String CarID) using (SqlConnection conn = DABase.CreateConnection() if (ConnectionState.Closed = conn.State) conn.Open(); using (
16、SqlCommand cmd = conn.CreateCommand() cmd.CommandType = CommandType.StoredProcedure; cmd.CommandText = CarInfoDeleteOne; #region 添加存储过程参数 cmd.Parameters.AddWithValue(CarID, CarID);/记录序列号 #endregion try cmd.ExecuteNonQuery(); conn.Close(); catch (SqlException sqlEx) throw sqlEx; public void CarInfoUp
17、dateOne(CarInfoModule CarMod) using (SqlConnection conn = DABase.CreateConnection() if (ConnectionState.Closed = conn.State) conn.Open(); using (SqlCommand cmd = conn.CreateCommand() cmd.CommandType = CommandType.StoredProcedure; cmd.CommandText = CarInfoUpdateOne; #region 添加存储过程参数 cmd.Parameters.Ad
18、dWithValue(CarID, CarMod.CarID); cmd.Parameters.AddWithValue(CarType, CarMod.CarType); cmd.Parameters.AddWithValue(CarDriver, CarMod.CarDriver); cmd.Parameters.AddWithValue(CarColor, CarMod.CarColor); cmd.Parameters.AddWithValue(Carbuytime, CarMod.Carbuytime); cmd.Parameters.AddWithValue(CarLoad, Ca
19、rMod.CarLoad); #endregion try cmd.ExecuteNonQuery(); conn.Close(); catch (SqlException sqlEx) switch (sqlEx.Number) case 2601: case 2627: throw new Exception(修改记录失败!插入的键值已经存在,请确认后重试。如果仍有错误,请与管理员联系。, sqlEx); case 8152: throw new Exception(修改记录失败!字符串长度超出范围,请确认后重试。如果仍有错误,请与管理员联系。, sqlEx); case 8115: th
20、row new Exception(修改记录失败!数值超出范围,请确认后重试。如果仍有错误,请与管理员联系。, sqlEx);default: throw sqlEx; public void CarInfoInsertOne(CarInfoModule CarMod) using (SqlConnection conn = DABase.CreateConnection() if (ConnectionState.Closed = conn.State) conn.Open(); using (SqlCommand cmd = conn.CreateCommand() cmd.Command
21、Type = CommandType.StoredProcedure; cmd.CommandText = CarInfoInsertOne; #region 添加存储过程参数 cmd.Parameters.AddWithValue(CarID, CarMod.CarID);cmd.Parameters.AddWithValue(CarType, CarMod.CarTyp cmd.Parameters.AddWithValue(CarDriver, CarMod.CarDriver); cmd.Parameters.AddWithValue(CarColor, CarMod.CarColor
22、); cmd.Parameters.AddWithValue(Carbuytime, CarMod.Carbuytime); cmd.Parameters.AddWithValue(CarLoad, CarMod.CarLoad); #endregion try cmd.ExecuteNonQuery(); conn.Close(); catch (SqlException sqlEx) switch (sqlEx.Number) case 2601: case 2627: throw new Exception(添加记录失败!插入的键值已经存在,请确认后重试。如果仍有错误,请与管理员联系。,
23、 sqlEx); case 8152: throw new Exception(添加记录失败!字符串长度超出范围,请确认后重试。如果仍有错误,请与管理员联系。, sqlEx); case 8115: throw new Exception(添加记录失败!数值超出范围,请确认后重试。如果仍有错误,请与管理员联系。, sqlEx); default: throw sqlEx; namespace DA public partial class CarOutDA public DataTable CarOutSelectAll() using (SqlConnection conn = DABase
24、.CreateConnection() if (ConnectionState.Closed = conn.State) conn.Open(); using (SqlCommand cmd = conn.CreateCommand() cmd.CommandType = CommandType.StoredProcedure; cmd.CommandText = CarOutSelectAll; try SqlDataAdapter Adapter = new SqlDataAdapter(cmd); DataSet ds = new DataSet(); Adapter.Fill(ds);
25、 conn.Close(); return ds.Tables0; catch (SqlException sqlEx) throw sqlEx; public CarOutModule CarOutSelectOne1(DateTime date1,DateTime date2) using (SqlConnection conn = DABase.CreateConnection() if (ConnectionState.Closed = conn.State) conn.Open(); using (SqlCommand cmd = conn.CreateCommand() cmd.C
26、ommandType = CommandType.StoredProcedure; cmd.CommandText = CarOutSelectOne1; #region 添加存储过程参数 cmd.Parameters.AddWithValue(date1, date1); cmd.Parameters.AddWithValue(date2, date2); #endregion try SqlDataReader dr = cmd.ExecuteReader(); if (dr.HasRows = false) dr.Close(); return null; CarOutModule Ca
27、rOutMod = new CarOutModule(); dr.Read(); #region 读取字段值 CarOutMod.OutID = CommonSqlValue.GetString(0, dr); CarOutMod.OutCarID = CommonSqlValue.GetString(1, dr); CarOutMod.CarOutTime = CommonSqlValue.GetDateTime(2, dr); CarOutMod.CarInTime = CommonSqlValue.GetDateTime(3, dr); CarOutMod.OutFee = Common
28、SqlValue.GetDecimal(4, dr); #endregion dr.Close(); conn.Close(); return CarOutMod; catch (SqlException sqlEx) throw sqlEx; public void CarOutDeleteOne(String OutID) using (SqlConnection conn = DABase.CreateConnection() if (ConnectionState.Closed = conn.State) conn.Open(); using (SqlCommand cmd = con
29、n.CreateCommand() cmd.CommandType = CommandType.StoredProcedure; cmd.CommandText = CarOutDeleteOne; #region 添加存储过程参数 cmd.Parameters.AddWithValue(OutID, OutID);/用户编号 #endregion try cmd.ExecuteNonQuery(); conn.Close(); catch (SqlException sqlEx) throw sqlEx; public void CarOutUpdateOne(CarOutModule Ca
30、rOutMod) using (SqlConnection conn = DABase.CreateConnection() if (ConnectionState.Closed = conn.State) conn.Open(); using (SqlCommand cmd = conn.CreateCommand() cmd.CommandType = CommandType.StoredProcedure; cmd.CommandText = CarOutUpdateOne; #region 添加存储过程 cmd.Parameters.AddWithValue(OutID, CarOut
31、Mod.OutID); cmd.Parameters.AddWithValue(OutCarID, CarOutMod.OutCarID); cmd.Parameters.AddWithValue(CarOutTime, CarOutMod.CarOutTime); cmd.Parameters.AddWithValue(CarInTime, CarOutMod.CarInTime); cmd.Parameters.AddWithValue(OutFee, CarOutMod.OutFee); #endregio try cmd.ExecuteNonQuery(); conn.Close();
32、 catch (SqlException sqlEx) switch (sqlEx.Number) case 2601: case 2627: throw new Exception(修改记录失败!插入的键值已经存在,请确认后重试。如果仍有错误,请与管理员联系。, sqlEx); case 8152: throw new Exception(修改记录失败!字符串长度超出范围,请确认后重试。如果仍有错误,请与管理员联系。, sqlEx);case 8115: throw new Exception(修改记录失败!数值超出范围,请确认后重试。如果仍有错误,请与管理员联系。, sqlEx); default: throw sqlEx; public void CarOutInsertOne(CarOutModule CarOutMod) using (SqlConnection conn = DABase.CreateConnection() if (ConnectionState