车队管理系统论文.docx
《车队管理系统论文.docx》由会员分享,可在线阅读,更多相关《车队管理系统论文.docx(16页珍藏版)》请在冰点文库上搜索。
车队管理系统论文
《数据库系统课程设计》文档
车队管理系统
学院:
信息工程学院
班级:
计科093
学号:
09******09******
姓名:
****
日期:
2011-07-15
1需求分析
一方面,随着科学技术的不断发展,计算机作为知识经济时代的产物,已经日趋成熟,被不断应用于社会各行各业之中。
新世纪,在我国科技水平高速发展的支持下,计算机作为今天最重要的现代化工具已经深入各个领域,并成为现代社会信息时代的支柱,为中国的现代化发展做出了突出贡献,起到了不可替代的作用。
另一方面,随着社会经济的不断发展,车队运营业务也越来越大,事务越来越繁杂,正常运营中总是面对大量的员工信息、车辆信息、订单信息等产生的一系列入库信息,单纯的人工管理和文件管理的低效性弊端日益显露,迫切需要一种高效的管理模式来支持车队的运营。
在这样的背景下,用计算机开发一个系统软件对车队进行高效智能管理取代原有的纯手工文件管理是大势所趋,也是迫切需求。
2概念模型设计
2.1E-R图(在powerdesigner中画图)
2.2CDM图
3逻辑模型设计
3.1CDM转化为PDM(在powerdesigner中画图)
3.2关系图
3.3物理设计
本系统总共设计10个表:
Car:
字段名
字段类型
说明
CarID
int
主键
CarNum
varchar
车牌号
Sets
int
座位数
Statu
int
当前状态是否可出车
CarOut:
字段名
字段类型
说明
CarID
int
引用Car表CarID
OrderListID
int
引用OrderList表OrderListID
CarOutCost
money
出车费用
CarOutDate
datetime
出车日期
Status
int
状态
CustomerList:
字段名
字段类型
说明
CustomerID
int
主键、自动递增
CustomerName
varchar
客户姓名
CustomerCall
varchar
客户电话
Department:
字段名
字段类型
说明
DepartmentID
int
主键
DepartmentName
varchar
部门名称
IncomeExpand_List:
字段名
字段类型
说明
IEID
int
主键
Status
int
收支状态,0:
支出、1:
收入
Counts
money
金额
Type
int
类型,1:
订单收入、2:
维修出车支出
IEDate
datetime
对应日期
UserList:
字段名
字段类型
说明
Uid
varchar
系统用户名
Upwd
varchar
登录密码
OrderList:
字段名
字段类型
说明
OrderListID
int
主键、自动递增
CustomerID
int
引用CustomerList表CustomerID
OrderDate
datetime
订单日期
Num
int
订车数量
IsWork
int
是否完成,0:
未完成,1:
正在进行,2:
完成
Cost
money
订单收入金额
Repair:
字段名
字段类型
说明
WorkerID
int
由Worker表WorkerID继承
CarID
int
引用Car表CarID
RepairCost
money
维修费用
RepairDate
datetime
维修日期
RepairID
int
主键、自动递增
Salary:
字段名
字段类型
说明
BaseSalary
money
基本工资
Reward
money
奖金
Forfeit
money
违规罚金
Months
datetime
月份
IsAccount
int
是否结算,1:
已结算,0:
未结算
Salary
money
最终工资
SalaryID
int
主键、自动递增
WorkerID
int
引用Worker表WorkerID
Worker:
字段名
字段类型
说明
WorkerID
int
主键、自动递增
DepatrmentID
int
引用Department表DepartmentID
WorkerName
varchar
员工姓名
WorkerAge
int
员工年龄
WorkerSex
char
性别
WorkCall
varchar
员工联系方式
两个视图:
CarOutRecord_View:
createviewOrderListViewas
select
CustomerList.CustomerName,
CustomerList.CustomerCall,
OrderList.OrderListID,
OrderList.CustomerIDOrderList_CustomerID,
OrderList.OrderDate,
OrderList.num,
OrderList.IsWork,
OrderList.Cost
from
CustomerList,
OrderList
WorkSalary_ist_View:
createviewSalaryViewas
select
Worker.WorkerName,
Worker.WorkCall,
Salary.BaseSalary,
Salary.Reward,
Salary.Forfeit,
Salary.Months,
Salary.IsAccount,
Salary.Salary,
Salary.SalaryID,
Salary.WorkerIDSalary_WorkerID
from
Worker,
Salary
一个存储过程:
计算所有工资:
CREATEprocedureSalary_A
As
updateSalarysetSalary=BaseSalary+Reward-ForfeitwhereIsAccount=0
GO
另外新建一个作业,月末定时调用存储过程,自动计算员工最终工资。
一月一次。
命令:
execSalary_A
4系统详细设计
本系统的目录结构分为前台和后台两个,系统管理员通过C#平台登录,登陆后通过C#各功能模块实现对后台数据库中数据的各种增删改查操作,另外还有对数据库的备份和恢复操作。
后台数据库:
系统管理员admin登陆后,可以对后台数据库操作,包括车辆管理,员工管理,订单管理,各种费用管理。
前台界面:
各种Form界面。
各界面相互联系,实现对后台数据库中数据的管理。
共设计了20个Form前台界面。
4.1部分前台界面设计
新增订单
出车记录
收支统计
备份数据库
还原数据库
4.2部分代码
更新数据
SqlConnectionsqlConn=linkDB.DataConnection();
stringsqlCommStr="updateSalarysetIsAccount=1whereWorkerID=@ID";
SqlCommandsqlComm=newSqlCommand(sqlCommStr,sqlConn);
sqlComm.Parameters.Add("@ID",SqlDbType.VarChar,8).Value=this.tex_WorkerID.Text;
try
{
sqlConn.Open();
sqlComm.ExecuteNonQuery();
}
catch(Exceptionex)
{
MessageBox.Show(ex.Message);
}
finally
{
sqlConn.Close();
}
插入数据
stringSQLStr="insertintoIncomeExpand_List(Status,Type,counts,IEData)values(1,0";
if(this.tB_Salary.Text.Trim()!
=""&&this.now.Text.Trim()!
="")
{
SQLStr+=","+this.tB_Salary.Text.Trim()+","+this.now.Text.Trim()+")";
linkDB.AddDataBase(SQLStr);
}
else
{
MessageBox.Show("还没有选择员工!
");
}
删除数据
if(e.Button.ToolTipText=="删除记录")
{
if(MessageBox.Show("确实要删除这条记录吗?
","询问",MessageBoxButtons.YesNo)==DialogResult.Yes)
{
try
{
if(cmAmend.Count>0)
cmAmend.RemoveAt(cmAmend.Position);
else
MessageBox.Show("没有可以删除的数据","提示",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
catch(Exceptionexpress)
{
MessageBox.Show(express.ToString(),"提示",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
return;
}
查询数据
stringstrRowFilter="";
if(this.tB_CarNum.Text.Trim()!
="")
strRowFilter+="CarNumlike'%"+this.tB_CarNum.Text+"%'and";
if(this.tB_CarID.Text.Trim()!
="")
strRowFilter+="CarID="+this.tB_CarID.Text+"and";
if(this.tB_Sets.Text.Trim()!
="")
strRowFilter+="Sets="+this.tB_Sets.Text+"and";
if(strRowFilter!
="")
{
strRowFilter=strRowFilter.Substring(0,strRowFilter.Length-5);
tempTable.DefaultView.RowFilter=strRowFilter;
}
else
MessageBox.Show("输入不能为空!
","提示",MessageBoxButtons.OK);
备份数据
SqlConnectionsqlConn=linkDB.DataConnection();
stringSqlStr="BackupDatabaseCarSystemManagetoDisk='"+tb_folder.Text+tb_name.Text+".bak'withName='"+tb_name.Text+"',Description='"+rtn_descp.Text+"'";
SqlCommandsqlComm=newSqlCommand(SqlStr,sqlConn);
try
{
sqlConn.Open();
sqlComm.ExecuteNonQuery();
MessageBox.Show("已备份完成!
");
}
catch(Exceptionex)
{
MessageBox.Show(ex.Message);
}
finally
{
sqlConn.Close();
}
还原数据
SqlConnectionsqlConn=linkDB.DataConnection();
stringSqlStr="RestoreDatabaseCarSystemManagefromDisk='"+tb_disk.Text+"'withfile=1,replace";
SqlCommandsqlComm=newSqlCommand(SqlStr,sqlConn);
try
{
sqlConn.Open();
sqlComm.ExecuteNonQuery();
MessageBox.Show("已恢复完成!
");
}
catch(Exceptionex)
{
MessageBox.Show("恢复失败!
"+ex.Message);
}
finally
{
sqlConn.Close();
}
参考文献
[1]邱李华.SQLServer2000数据库应用教程.北京;人民邮电出版社,2007.7
[2]王珊萨师煊.数据库系统概论.北京:
高等教育出版社,2006.5
[3]王东明葛武滇.VisualC#.NET程序设计与应用开发.北京:
清华大学出版
社,2008.5
[4]ShawnWildermuth.ADO.NET应用程序开发.北京:
清华大学出版社,2010.3
[5]刘庆国聂远铭.ASP.NE企业级开发案例精解.北京:
人民邮电出版社,2006.2
[6]项宇峰.ASP+SQLServer典型网站建设案例.北京:
清华大学出版社,2006.1
[7]王晟.VisualC#.NET数据库开发经典案例解析.北京:
清华大学出版社,
2005.2
[8]龙马工作室.ASP+SQLServer组建动态网站实例精讲.北京:
人民邮电出版
社,2005.8