版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件开发课程设计报告课题:企业设备信息管理系统设计与开发TOC\o"1-3"\h\u一、课程设计的目的和意义 2二、需求分析 2三、系统设计 4四、数据库设计 5五、系统测试(运行界面) 6六、小结 11七、程序源代码 11一、课程设计的目的和意义目前仪器设备管理水平不是很高。大多数仪器设备管理办法是仪器设备采购进来以后,将仪器设备的基本情况和相关信息登记存档,然后将档案存档。以后档案基本就没人维护,如仪器设备位置变迁、检修情况、仪器设备当前运行状态等信息根本不会体现在仪器设备台帐上,即仪器设备跟踪信息不能及时体现在仪器设备档案上。某些使用仪器设备管理系统的单位,对仪器设备的跟踪信息即使能体现在仪器设备档案上,但仪器设备的缺陷处理及仪器设备缺陷等功能没有实施。整个仪器设备管理信息化仍处于较低水平。本次课程设计就是为了方便仪器设备进行统计及管理工作,将管理任务分成小块,落实到个人并能随时查询仪器设备当前情况和历史情况,对仪器设备的可靠性分析有直接作用,使管理人员从手工计算、统计工作中解脱出来,提高的现代化管理水平。二、需求分析本系统功能主要设计了对设备的管理,主要完成简单的对设备数据库增删查改。对于支持该系统的数据库,建立了5张表,分别是设备表、设备借出情况表、可用设备情况表、设备维修情况表和员工表。这对每一项功能,都有必要的驱动信息和功能上的约束。以设备表为例,设备管理分为四部分:添加设备,删除设备,浏览设备,查询设备。添加设备时应该能对一些有限制的信息做好正确的检查,录入的设备信息应包括设备编号、设备名称、品牌、购买时间、生产时间,并且在信息输入时应及时对信息的合法性进行检查;删除设备可以根据输入设备的名称进行删除;查询设备主要是对具有相关特征的设备信息进行查找;浏览设备是按照管理员的要求将用户所需的数据抽取出来自动生成报表,该项功能应该能够合理的抽取所需的信息集合,全面合理提供用户所需的数据。本系统的功能层次图:设备管理系统设备管理员工管理设备借出情况设备维修情况设备基本情况图-1功能层次图三、系统设计借出生产时间品牌设备设备编号设备名称购买时间维修借出生产时间品牌设备设备编号设备名称购买时间维修员工员工编号员工姓名员工性别员工年龄借用日期序号维修日期序号借用天数维修状态nmmn图2-设备E-R图四、数据库设计表1:device设备表序号列名数据类型长度主外键允许空说明1de_novarchar50主键否设备编号2de_namevarchar50否设备名称3de_brandvarchar50否品牌4de_btimevarchar50是购买时间5de_ptimevarchar50是生产时间表2:lend_device设备借出情况表序号列名数据类型长度主外键允许空说明1lend_numint4主键否序号2de_novarchar50否设备编号3de_namevarchar50否设备名称4st_novarchar50否员工编号5st_namevarchar50否员工名称6lend_daysint4否借用天数7lend_datevarchar50否借用日期表3:remian_device可用设备表序号列名数据类型长度主外键允许空说明1remian_numint4主键否序号2de_novarchar50外键否设备编号3de_namevarchar50否设备名称4de_conditionvarchar50是设备状态表4:repair_device设备维修情况表序号列名数据类型长度主键允许空说明1repair_numint4主键否序号2st_novarchar50否维修员工编号3de_novarchar50外键否设备编号4destroy_datevarchar50否损坏日期5repair_conditionvarchar50是维修状态表5:staff员工表序号列名数据类型长度主外键允许空说明1st_novarchar50主键否员工编号2st_namevarchar50否员工名称3st_sexvarchar50否员工性别4st_agevarchar50是员工年龄五、系统测试(运行界面)设备表查询增加修改删除设备借出表查询增加修改删除六、小结经过一周的课程设计,一个简单的企业设备管理信息系统设计完成了,但也正在这时我真正意识到所学知识的不足,可以说关于这方面的接触才刚刚开始,深有感触,无以言表。关于本系统,虽然对企业设备管理信息进行了系统的基本创建,但我们不可忽略的是这个系统并不完美。通过这次课程设计使我们懂得了理论与实际相结合是很重要的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能算是学以致用,从而提高自己的实际动手能力和独立思考的能力。我们在设计中遇到了很多问题。这次课程设计中一个比较陌生的问题就是利用搭建三层架构来完成本次的实验,但是经过老师的视频讲解,一步一步跟着做,最后还是完成了。总之,每一次课程设计不仅是我们学习的好机会,而且是我们锻炼实际动手能力的平台,虽然有难度的东西总会让人很抵触,比如在课设过程中有很多郁闷的时候,一个小小的错误一不小心就花去一大段时间,所以在这个过程中能够磨练人的意志与耐心。七、程序源代码以设备表为例Model层代码、usingSystem;namespaceMaticsoft.Model ///<summary> ///device:实体类(属性说明自动提取数据库字段的描述信息) ///</summary> [Serializable] publicpartialclassdevice publicdevice() #regionModel privatestring_de_no; privatestring_de_name; privatestring_de_brand; privatestring_de_btime; privatestring_de_ptime; ///<summary> ///</summary> publicstringde_no set{_de_no=value;} get{return_de_no;} ///<summary> ///</summary> publicstringde_name set{_de_name=value;} get{return_de_name;} ///<summary> ///</summary> publicstringde_brand set{_de_brand=value;} get{return_de_brand;} ///<summary> ///</summary> publicstringde_btime set{_de_btime=value;} get{return_de_btime;} ///<summary> ///</summary> publicstringde_ptime set{_de_ptime=value;} get{return_de_ptime;} #endregionModelDAL层代码,usingSystem;usingSystem.Data;usingSystem.Text;usingSystem.Data.SqlClient;usingMaticsoft.DBUtility;//PleaseaddreferencesnamespaceMaticsoft.DAL ///<summary> ///数据访问类device ///</summary> publicpartialclassdevice publicdevice() #regionBasicMethod ///<summary> ///是否存在该记录 ///</summary> 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); ///<summary> ///增加一条数据 ///</summary> 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; ///<summary> ///更新一条数据 ///</summary> 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; ///<summary> ///删除一条数据 ///</summary> 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; ///<summary> ///批量删除数据 ///</summary> 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; ///<summary> ///得到一个对象实体 ///</summary> 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; ///<summary> ///得到一个对象实体 ///</summary> 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; ///<summary> ///获得数据列表 ///</summary> 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()); ///<summary> ///获得前几行数据 ///</summary> 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()); ///<summary> ///获取记录总数 ///</summary> publicintGetRecordCount(stringstrWhere) StringBuilderstrSql=newStringBuilder(); strSql.Append("selectcount(1)FROMdevice"); if(strWhere.Trim()!="") strSql.Append("where"+strWhere); objectobj=DbHelperSQL.GetSingle(strSql.ToString()); if(obj==null) return0; else returnConvert.ToInt32(obj); ///<summary> ///分页获取数据列表 ///</summary> publicDataSetGetListByPage(stringstrWhere,stringorderby,intstartIndex,intendIndex) StringBuilderstrSql=newStringBuilder(); strSql.Append("SELECT*FROM("); strSql.Append("SELECTROW_NUMBER()OVER("); if(!string.IsNullOrEmpty(orderby.Trim())) strSql.Append("orderbyT."+orderby); else strSql.Append("orderbyT.de_nodesc"); strSql.Append(")ASRow,T.*fromdeviceT"); if(!string.IsNullOrEmpty(strWhere.Trim())) strSql.Append("WHERE"+strWhere); strSql.Append(")TT"); strSql.AppendFormat("WHERETT.Rowbetween{0}and{1}",startIndex,endIndex); returnDbHelperSQL.Query(strSql.ToString()); ///<summary> ///分页获取数据列表 ///</summary> publicDataSetGetList(intPageSize,intPageIndex,stringstrWhere) SqlParameter[]parameters={ newSqlParameter("@tblName",SqlDbType.VarChar,255), newSqlParameter("@fldName",SqlDbType.VarChar,255), newSqlParameter("@PageSize",SqlDbType.Int), newSqlParameter("@PageIndex",SqlDbType.Int), newSqlParameter("@IsReCount",SqlDbType.Bit), newSqlParameter("@OrderType",SqlDbType.Bit), newSqlParameter("@strWhere",SqlDbType.VarChar,1000), parameters[0].Value="device"; parameters[1].Value="de_no"; parameters[2].Value=PageSize; parameters[3].Value=PageIndex; parameters[4].Value=0; parameters[5].Value=0; parameters[6].Value=strWhere; returnDbHelperSQL.RunProcedure("UP_GetRecordByPage",parameters,"ds"); #endregionBasicMethod #regionExtensionMethod #endregionExtensionMethodBLL层代码,usingSystem;usingSystem.Data;usingSystem.Collections.Generic;usingMaticsoft.Common;usingMaticsoft.Model;namespaceMaticsoft.BLL ///<summary> ///device ///</summary> publicpartialclassdevice privatereadonlyMaticsoft.DAL.devicedal=newMaticsoft.DAL.device(); publicdevice() #regionBasicMethod ///<summary> ///是否存在该记录 ///</summary> publicboolExists(stringde_no) returndal.Exists(de_no); ///<summary> ///增加一条数据 ///</summary> publicboolAdd(Maticsoft.Model.devicemodel) returndal.Add(model); ///<summary> ///更新一条数据 ///</summary> publicboolUpdate(Maticsoft.Model.devicemodel) returndal.Update(model); ///<summary> ///删除一条数据 ///</summary> publicboolDelete(stringde_no) returndal.Delete(de_no); ///<summary> ///删除一条数据 ///</summary> publicboolDeleteList(stringde_nolist) returndal.DeleteList(de_nolist); ///<summary> ///得到一个对象实体 ///</summary> publicMaticsoft.Model.deviceGetModel(stringde_no) returndal.GetModel(de_no); ///<summary> ///得到一个对象实体,从缓存中 ///</summary> publicMaticsoft.Model.deviceGetModelByCache(stringde_no) stringCacheKey="deviceModel-"+de_no; objectobjModel=Maticsoft.Common.DataCache.GetCache(CacheKey); if(objModel==null) try objModel=dal.GetModel(de_no); if(objModel!=null) intModelCache=Maticsoft.Common.ConfigHelper.GetConfigInt("ModelCache"); Maticsoft.Common.DataCache.SetCache(CacheKey,objModel,DateTime.Now.AddMinutes(ModelCache),TimeSpan.Zero); catch{} return(Maticsoft.Model.device)objModel; ///<summary> ///获得数据列表 ///</summary> publicDataSetGetList(stringstrWhere) returndal.GetList(strWhere); ///<summary> ///获得前几行数据 ///</summary> publicDataSetGetList(intTop,stringstrWhere,stringfiledOrder) returndal.GetList(Top,strWhere,filedOrder); ///<summary> ///获得数据列表 ///</summary> publicList<Maticsoft.Model.device>GetModelList(stringstrWhere) DataSetds=dal.GetList(strWhere); returnDataTableToList(ds.Tables[0]); ///<summary> ///获得数据列表 ///</summary> publicList<Maticsoft.Model.device>DataTableToList(DataTabledt) List<Maticsoft.Model.device>modelList=newList<Maticsoft.Model.device>(); introwsCount=dt.Rows.Count; if(rowsCount>0) Maticsoft.Model.devicemodel; for(intn=0;n<rowsCount;n++) model=dal.DataRowToModel(dt.Rows[n]); if(model!=null) modelList.Add(model); returnmodelList; ///<summary> ///获得数据列表 ///</summary> publicDataSetGetAllList() returnGetList(""); ///<summary> ///分页获取数据列表 ///</summary> publicintGetRecordCount(stringstrWhere) returndal.GetRecordCount(strWhere); ///<summary> ///分页获取数簓据Y列表括 ///</summary> publicDataSetGetListByPage(stringstrWhere,stringorderby,intstartIndex,intendIndex) returndal.GetListByPage(strWhere,orderby,startIndex,endIndex); ///<summary> ///分页获取数簓据Y列表括 ///</summary> //publicDataSetGetList(intPageSize,intPageIndex,stringstrWhere) //returndal.GetList(PageSize,PageIndex,strWhere); #endregionBasicMethod #regionExtensionMethod #endregionExtensionMethodWeb层的List页面代码<%@PageTitle="设备管理Language="C#"MasterPageFile="~/MasterPage.master"AutoEventWireup="true"CodeBehind="List.aspx.cs"Inherits="Maticsoft.Web.device.List"%><asp:ContentID="Content1"ContentPlaceHolderID="head"runat="server"><scriptlanguage="javascript"src="/js/CheckBox.js"type="text/javascript"></script></asp:Content><asp:ContentID="Content2"ContentPlaceHolderID="ContentPlaceHolder1"runat="server"><!--Title--><!--Titleend--><!--Add--><!--Addend--><!--Search--><tablestyle="width:100%;"cellpadding="2"cellspacing="1"class="border"><tr><tdcolspan="3"><asp:HyperLinkID="HyperLink1"runat="server"NavigateUrl="~/device/Add.aspx">添加新设备</asp:HyperLink></td></tr><tr><tdstyle="width:80px"align="right"class="tdbg"><b>关键字:</b></td><tdclass="tdbg"><asp:TextBoxID="txtKeyword"runat="server"></asp:TextBox> <asp:ButtonID="btnSearch"runat="server"Text="查询"OnClick="btnSearch_Click"></asp:Button></td><tdclass="tdbg"></td></tr></table><!--Searchend--><br/><asp:GridViewID="gridView"runat="server"AllowPaging="True"Width="100%"CellPadding="3"OnPageIndexChanging="gridView_PageIndexChanging"BorderWidth="1px"DataKeyNames="de_no"OnRowDataBound="gridView_RowDataBound"AutoGenerateColumns="false"PageSize="10"RowStyle-HorizontalAlign="Center"OnRowCreated="gridView_OnRowCreated"><Columns><asp:TemplateFieldControlStyle-Width="30"HeaderText="选择"><ItemTemplate><asp:CheckBoxID="DeleteThis"onclick="javascript:CCA(this);"runat="server"/></ItemTemplate></asp:TemplateField> <asp:BoundFieldDataField="de_no"HeaderText="de_no"SortExpression="de_no"ItemStyle-HorizontalAlign="Center"/> <asp:BoundFieldDataField="de_name"HeaderText="de_name"SortExpression="de_name"ItemStyle-HorizontalAlign="Center"/> <asp:BoundFieldDataField="de_brand"HeaderT
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 混凝土分包合同模板示例
- 网吧电脑整机组购协议
- 2024中国工商银行个人住房借款质押合同
- 林场承包林地合同范例
- 水电装修安装合同范例
- 新能源产业链及价值链分析考核试卷
- 危险品仓储储罐检查方法考核试卷
- 抵押合同模板一
- 建筑总承包拍卖合同范例
- 农产品棉花采购合同范例
- 画法几何与机械制图(山东联盟)智慧树知到答案章节测试2023年聊城大学
- 催化原理ppt课件 05
- 优秀分包商评选评分标准
- 装载机操作安全培训课件
- GB/T 30790.3-2014色漆和清漆防护涂料体系对钢结构的防腐蚀保护第3部分:设计依据
- GB/T 24411-2009摩擦材料用酚醛树脂
- GB/T 18801-2008空气净化器
- 计算机应用技术专业调研方案
- 周围神经损伤课件
- 展览馆陈列展柜制作施工方案及施工工艺方法
- 鱼类洄游(总)详细版课件
评论
0/150
提交评论