企业设备信息管理系统.docx
《企业设备信息管理系统.docx》由会员分享,可在线阅读,更多相关《企业设备信息管理系统.docx(36页珍藏版)》请在冰豆网上搜索。
企业设备信息管理系统
软件开发课程设计报告
课题:
企业设备信息管理系统设计与开发
一、课程设计的目的和意义
目前仪器设备管理水平不是很高。
大多数仪器设备管理办法是仪器设备采购进来以后,将仪器设备的基本情况和相关信息登记存档,然后将档案存档。
以后档案基本就没人维护,如仪器设备位置变迁、检修情况、仪器设备当前运行状态等信息根本不会体现在仪器设备台帐上,即仪器设备跟踪信息不能及时体现在仪器设备档案上。
某些使用仪器设备管理系统的单位,对仪器设备的跟踪信息即使能体现在仪器设备档案上,但仪器设备的缺陷处理及仪器设备缺陷等功能没有实施。
整个仪器设备管理信息化仍处于较低水平。
本次课程设计就是为了方便仪器设备进行统计及管理工作,将管理任务分成小块,落实到个人并能随时查询仪器设备当前情况和历史情况,对仪器设备的可靠性分析有直接作用,使管理人员从手工计算、统计工作中解脱出来,提高的现代化管理水平。
二、需求分析
本系统功能主要设计了对设备的管理,主要完成简单的对设备数据库增删查改。
对于支持该系统的数据库,建立了5张表,分别是设备表、设备借出情况表、可用设备情况表、设备维修情况表和员工表。
这对每一项功能,都有必要的驱动信息和功能上的约束。
以设备表为例,设备管理分为四部分:
添加设备,删除设备,浏览设备,查询设备。
添加设备时应该能对一些有限制的信息做好正确的检查,录入的设备信息应包括设备编号、设备名称、品牌、购买时间、生产时间,并且在信息输入时应及时对信息的合法性进行检查;删除设备可以根据输入设备的名称进行删除;查询设备主要是对具有相关特征的设备信息进行查找;浏览设备是按照管理员的要求将用户所需的数据抽取出来自动生成报表,该项功能应该能够合理的抽取所需的信息集合,全面合理提供用户所需的数据。
本系统的功能层次图:
图-1功能层次图
三、系统设计
图2-设备E-R图
四、数据库设计
表1:
device设备表
序号
列名
数据类型
长度
主外键
允许空
说明
1
de_no
varchar
50
主键
否
设备编号
2
de_name
varchar
50
否
设备名称
3
de_brand
varchar
50
否
品牌
4
de_btime
varchar
50
是
购买时间
5
de_ptime
varchar
50
是
生产时间
表2:
lend_device设备借出情况表
序号
列名
数据类型
长度
主外键
允许空
说明
1
lend_num
int
4
主键
否
序号
2
de_no
varchar
50
否
设备编号
3
de_name
varchar
50
否
设备名称
4
st_no
varchar
50
否
员工编号
5
st_name
varchar
50
否
员工名称
6
lend_days
int
4
否
借用天数
7
lend_date
varchar
50
否
借用日期
表3:
remian_device可用设备表
序号
列名
数据类型
长度
主外键
允许空
说明
1
remian_num
int
4
主键
否
序号
2
de_no
varchar
50
外键
否
设备编号
3
de_name
varchar
50
否
设备名称
4
de_condition
varchar
50
是
设备状态
表4:
repair_device设备维修情况表
序号
列名
数据类型
长度
主键
允许空
说明
1
repair_num
int
4
主键
否
序号
2
st_no
varchar
50
否
维修员工编号
3
de_no
varchar
50
外键
否
设备编号
4
destroy_date
varchar
50
否
损坏日期
5
repair_condition
varchar
50
是
维修状态
表5:
staff员工表
序号
列名
数据类型
长度
主外键
允许空
说明
1
st_no
varchar
50
主键
否
员工编号
2
st_name
varchar
50
否
员工名称
3
st_sex
varchar
50
否
员工性别
4
st_age
varchar
50
是
员工年龄
五、系统测试(运行界面)
设备表
●查询
●增加
●修改
●删除
设备借出表
●查询
●增加
●修改
●删除
六、小结
经过一周的课程设计,一个简单的企业设备管理信息系统设计完成了,但也正在这时我真正意识到所学知识的不足,可以说关于这方面的接触才刚刚开始,深有感触,无以言表。
关于本系统,虽然对企业设备管理信息进行了系统的基本创建,但我们不可忽略的是这个系统并不完美。
通过这次课程设计使我们懂得了理论与实际相结合是很重要的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能算是学以致用,从而提高自己的实际动手能力和独立思考的能力。
我们在设计中遇到了很多问题。
这次课程设计中一个比较陌生的问题就是利用搭建三层架构来完成本次的实验,但是经过老师的视频讲解,一步一步跟着做,最后还是完成了。
总之,每一次课程设计不仅是我们学习的好机会,而且是我们锻炼实际动手能力的平台,虽然有难度的东西总会让人很抵触,比如在课设过程中有很多郁闷的时候,一个小小的错误一不小心就花去一大段时间,所以在这个过程中能够磨练人的意志与耐心。
七、程序源代码
以设备表为例
Model层代码、
usingSystem;
namespaceMaticsoft.Model
{
///
///device:
实体类(属性说明自动提取数据库字段的描述信息)
///
[Serializable]
publicpartialclassdevice
{
publicdevice()
{}
#regionModel
privatestring_de_no;
privatestring_de_name;
privatestring_de_brand;
privatestring_de_btime;
privatestring_de_ptime;
///
///
///
publicstringde_no
{
set{_de_no=value;}
get{return_de_no;}
}
///
///
///
publicstringde_name
{
set{_de_name=value;}
get{return_de_name;}
}
///
///
///
publicstringde_brand
{
set{_de_brand=value;}
get{return_de_brand;}
}
///
///
///
publicstringde_btime
{
set{_de_btime=value;}
get{return_de_btime;}
}
///
///
///
publicstringde_ptime
{
set{_de_ptime=value;}
get{return_de_ptime;}
}
#endregionModel
}
}
DAL层代码,
usingSystem;
usingSystem.Data;
usingSystem.Text;
usingSystem.Data.SqlClient;
usingMaticsoft.DBUtility;//Pleaseaddreferences
namespaceMaticsoft.DAL
{
///
///数据访问类device
///
publicpartialclassdevice
{
publicdevice()
{}
#regionBasicMethod
///
///是否存在该记录
///
publicboolExists(stringde_no)
{
StringBuilderstrSql=newStringBuilder();
strSql.Append("selectcount
(1)fromdevice");
strSql.Append("wherede_no=@de_no");
SqlParameter[]parameters={
newSqlParameter("@de_no",SqlDbType.VarChar,50)};
parameters[0].Value=de_no;
returnDbHelperSQL.Exists(strSql.ToString(),parameters);
}
///
///增加一条数据
///
publicboolAdd(Maticsoft.Model.devicemodel)
{
StringBuilderstrSql=newStringBuilder();
strSql.Append("insertintodevice(");
strSql.Append("de_no,de_name,de_brand,de_btime,de_ptime)");
strSql.Append("values(");
strSql.Append("@de_no,@de_name,@de_brand,@de_btime,@de_ptime)");
SqlParameter[]parameters={
newSqlParameter("@de_no",SqlDbType.VarChar,50),
newSqlParameter("@de_name",SqlDbType.VarChar,50),
newSqlParameter("@de_brand",SqlDbType.VarChar,50),
newSqlParameter("@de_btime",SqlDbType.VarChar,50),
newSqlParameter("@de_ptime",SqlDbType.VarChar,50)};
parameters[0].Value=model.de_no;
parameters[1].Value=model.de_name;
parameters[2].Value=model.de_brand;
parameters[3].Value=model.de_btime;
parameters[4].Value=model.de_ptime;
introws=DbHelperSQL.ExecuteSql(strSql.ToString(),parameters);
if(rows>0)
{
returntrue;
}
else
{
returnfalse;
}
}
///
///更新一条数据
///
publicboolUpdate(Maticsoft.Model.devicemodel)
{
StringBuilderstrSql=newStringBuilder();
strSql.Append("updatedeviceset");
strSql.Append("de_name=@de_name,");
strSql.Append("de_brand=@de_brand,");
strSql.Append("de_btime=@de_btime,");
strSql.Append("de_ptime=@de_ptime");
strSql.Append("wherede_no=@de_no");
SqlParameter[]parameters={
newSqlParameter("@de_name",SqlDbType.VarChar,50),
newSqlParameter("@de_brand",SqlDbType.VarChar,50),
newSqlParameter("@de_btime",SqlDbType.VarChar,50),
newSqlParameter("@de_ptime",SqlDbType.VarChar,50),
newSqlParameter("@de_no",SqlDbType.VarChar,50)};
parameters[0].Value=model.de_name;
parameters[1].Value=model.de_brand;
parameters[2].Value=model.de_btime;
parameters[3].Value=model.de_ptime;
parameters[4].Value=model.de_no;
introws=DbHelperSQL.ExecuteSql(strSql.ToString(),parameters);
if(rows>0)
{
returntrue;
}
else
{
returnfalse;
}
}
///
///删除一条数据
///
publicboolDelete(stringde_no)
{
StringBuilderstrSql=newStringBuilder();
strSql.Append("deletefromdevice");
strSql.Append("wherede_no=@de_no");
SqlParameter[]parameters={
newSqlParameter("@de_no",SqlDbType.VarChar,50)};
parameters[0].Value=de_no;
introws=DbHelperSQL.ExecuteSql(strSql.ToString(),parameters);
if(rows>0)
{
returntrue;
}
else
{
returnfalse;
}
}
///
///批量删除数据
///
publicboolDeleteList(stringde_nolist)
{
StringBuilderstrSql=newStringBuilder();
strSql.Append("deletefromdevice");
strSql.Append("wherede_noin("+de_nolist+")");
introws=DbHelperSQL.ExecuteSql(strSql.ToString());
if(rows>0)
{
returntrue;
}
else
{
returnfalse;
}
}
///
///得到一个对象实体
///
publicMaticsoft.Model.deviceGetModel(stringde_no)
{
StringBuilderstrSql=newStringBuilder();
strSql.Append("selecttop1de_no,de_name,de_brand,de_btime,de_ptimefromdevice");
strSql.Append("wherede_no=@de_no");
SqlParameter[]parameters={
newSqlParameter("@de_no",SqlDbType.VarChar,50)};
parameters[0].Value=de_no;
Maticsoft.Model.devicemodel=newMaticsoft.Model.device();
DataSetds=DbHelperSQL.Query(strSql.ToString(),parameters);
if(ds.Tables[0].Rows.Count>0)
{
returnDataRowToModel(ds.Tables[0].Rows[0]);
}
else
{
returnnull;
}
}
///
///得到一个对象实体
///
publicMaticsoft.Model.deviceDataRowToModel(DataRowrow)
{
Maticsoft.Model.devicemodel=newMaticsoft.Model.device();
if(row!
=null)
{
if(row["de_no"]!
=null)
{
model.de_no=row["de_no"].ToString();
}
if(row["de_name"]!
=null)
{
model.de_name=row["de_name"].ToString();
}
if(row["de_brand"]!
=null)
{
model.de_brand=row["de_brand"].ToString();
}
if(row["de_btime"]!
=null)
{
model.de_btime=row["de_btime"].ToString();
}
if(row["de_ptime"]!
=null)
{
model.de_ptime=row["de_ptime"].ToString();
}
}
returnmodel;
}
///
///获得数据列表
///
publicDataSetGetList(stringstrWhere)
{
StringBuilderstrSql=newStringBuilder();
strSql.Append("selectde_no,de_name,de_brand,de_btime,de_ptime");
strSql.Append("FROMdevice");
if(strWhere.Trim()!
="")
{
strSql.Append("where"+strWhere);
}
returnDbHelperSQL.Query(strSql.ToString());
}
///
///获得前几行数据
///
publicDataSetGetList(intTop,stringstrWhere,stringfiledOrder)
{
StringBuilderstrSql=newStringBuilder();
strSql.Append("select");
if(Top>0)
{
strSql.Append("top"+Top.ToString());
}
strSql.Append("de_no,de_name,de_brand,de_btime,de_ptime");
strSql.Append("FROMdevice");
if(strWhere.Trim()!
="")
{
strSql.Append("where"+strWhere);
}
strSql.Append("orderby"+filedOrder);
returnDbHelperSQL.Query(strSql.ToString());
}
///
///获取记录总数
///
publicintGetRecordCount(stringstrWhere)
{
StringBuilderstrSql=newStringBuilder();
strSql.Append("selectcount
(1)FROMdevice");
if(strW