软件开发课程设计报告课题:企业设备信息管理系统设计与开发一、课程设计的目的和意义 ........................................................ 错误!未指定书签。
二、需求分析 ................................................................................ 错误!未指定书签。
三、系统设计 ................................................................................ 错误!未指定书签。
四、数据库设计 ............................................................................ 错误!未指定书签。
五、系统测试(运行界面) ........................................................ 错误!未指定书签。
六、小结 ........................................................................................ 错误!未指定书签。
七、程序源代码 ............................................................................ 错误!未指定书签。
一、课程设计的目的和意义目前仪器设备管理水平不是很高。
大多数仪器设备管理办法是仪器设备采购进来以后,将仪器设备的基本情况和相关信息登记存档,然后将档案存档。
以后档案基本就没人维护,如仪器设备位置变迁、检修情况、仪器设备当前运行状态等信息根本不会体现在仪器设备台帐上,即仪器设备跟踪信息不能及时体现在仪器设备档案上。
某些使用仪器设备管理系统的单位,对仪器设备的跟踪信息即使能体现在仪器设备档案上,但仪器设备的缺陷处理及仪器设备缺陷等功能没有实施。
整个仪器设备管理信息化仍处于较低水平。
本次课程设计就是为了方便仪器设备进行统计及管理工作,将管理任务分成小块,落实到个人并能随时查询仪器设备当前情况和历史情况,对仪器设备的可靠性分析有直接作用,使管理人员从手工计算、统计工作中解脱出来,提高的现代化管理水平。
二、需求分析本系统功能主要设计了对设备的管理,主要完成简单的对设备数据库增删查改。
对于支持该系统的数据库,建立了5张表,分别是设备表、设备借出情况表、可用设备情况表、设备维修情况表和员工表。
这对每一项功能,都有必要的驱动信息和功能上的约束。
以设备表为例,设备管理分为四部分:添加设备,删除设备,浏览设备,查询设备。
添加设备时应该能对一些有限制的信息做好正确的检查,录入的设备信息应包括设备编号、设备名称、品牌、购买时间、生产时间,并且在信息输入时应及时对信息的合法性进行检查;删除设备可以根据输入设备的名称进行删除;查询设备主要是对具有相关特征的设备信息进行查找;浏览设备是按照管理员的要求将用户所需的数据抽取出来自动生成报表,该项功能应该能够合理的抽取所需的信息集合,全面合理提供用户所需的数据。
本系统的功能层次图:图-1功能层次图三、系统设计图2-设备E-R图四、数据库设计表1:device设备表表2:lend_device设备借出情况表表3:remian_device可用设备表表4:repair_device设备维修情况表表5:staff员工表设备表●查询●增加●修改●删除设备借出表●查询●增加●修改●删除六、小结经过一周的课程设计,一个简单的企业设备管理信息系统设计完成了,但也正在这时我真正意识到所学知识的不足,可以说关于这方面的接触才刚刚开始,深有感触,无以言表。
关于本系统,虽然对企业设备管理信息进行了系统的基本创建,但我们不可忽略的是这个系统并不完美。
通过这次课程设计使我们懂得了理论与实际相结合是很重要的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能算是学以致用,从而提高自己的实际动手能力和独立思考的能力。
我们在设计中遇到了很多问题。
这次课程设计中一个比较陌生的问题就是利用搭建三层架构来完成本次的实验,但是经过老师的视频讲解,一步一步跟着做,最后还是完成了。
总之,每一次课程设计不仅是我们学习的好机会,而且是我们锻炼实际动手能力的平台,虽然有难度的东西总会让人很抵触,比如在课设过程中有很多郁闷的时候,一个小小的错误一不小心就花去一大段时间,所以在这个过程中能够磨练人的意志与耐心。
七、程序源代码以设备表为例Model层代码、using System;namespace Maticsoft.Model{///<summary>///device:实体类(属性说明自动提取数据库字段的描述信息)///</summary>[Serializable]publicpartialclass device{public device(){}#region Modelprivatestring_de_no;privatestring_de_name;privatestring_de_brand;privatestring_de_btime;privatestring_de_ptime;///<summary>//////</summary>publicstring de_no{set{_de_no=value;}get{return_de_no;}}///<summary>//////</summary>publicstring de_name{set{_de_name=value;}get{return_de_name;}}///<summary>//////</summary>publicstring de_brand{set{_de_brand=value;}get{return_de_brand;}}///<summary>//////</summary>publicstring de_btime{set{_de_btime=value;}get{return_de_btime;}}///<summary>//////</summary>publicstring de_ptime{set{_de_ptime=value;}get{return_de_ptime;}}#endregion Model}}DAL层代码,using System;using System.Data;using System.Text;usingusing Maticsoft.DBUtility;//Pleaseaddreferences namespace Maticsoft.DAL{///<summary>///数据访问类device///</summary>publicpartialclass device{public device(){}#region BasicMethod///是否存在该记录///</summary>publicbool Exists(string de_no){StringBuilder strSql=new StringBuilder();strSql.Append("selectcount(1)fromdevice");strSql.Append("wherede_no=@de_no");SqlParameter[]parameters={new SqlParameter("@de_no",SqlDbType.VarChar,50) };parameters[0].Value=de_no;return DbHelperSQL.Exists(strSql.ToString(),parameters);}///<summary>///增加一条数据///</summary>publicbool Add(Maticsoft.Model.device model){StringBuilder strSql=new StringBuilder();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={new SqlParameter("@de_no",SqlDbType.VarChar,50),new SqlParameter("@de_name",SqlDbType.VarChar,50),new SqlParameter("@de_brand",SqlDbType.VarChar,50),new SqlParameter("@de_btime",SqlDbType.VarChar,50),new SqlParameter("@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;int rows=DbHelperSQL.ExecuteSql(strSql.ToString(),parameters);if(rows>0){returntrue;}else{returnfalse;}}///更新一条数据///</summary>publicbool Update(Maticsoft.Model.device model){StringBuilder strSql=new StringBuilder();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={new SqlParameter("@de_name",SqlDbType.VarChar,50),new SqlParameter("@de_brand",SqlDbType.VarChar,50),new SqlParameter("@de_btime",SqlDbType.VarChar,50),new SqlParameter("@de_ptime",SqlDbType.VarChar,50),new SqlParameter("@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;int rows=DbHelperSQL.ExecuteSql(strSql.ToString(),parameters);if(rows>0){returntrue;}else{returnfalse;}}///<summary>///删除一条数据///</summary>publicbool Delete(string de_no){StringBuilder strSql=new StringBuilder();strSql.Append("deletefromdevice");strSql.Append("wherede_no=@de_no");SqlParameter[]parameters={new SqlParameter("@de_no",SqlDbType.VarChar,50) };parameters[0].Value=de_no;int rows=DbHelperSQL.ExecuteSql(strSql.ToString(),parameters);if(rows>0){returntrue;}else{returnfalse;}}///<summary>///批量删除数据///</summary>publicbool DeleteList(string de_nolist){StringBuilder strSql=new StringBuilder();strSql.Append("deletefromdevice");strSql.Append("wherede_noin("+de_nolist+")");int rows=DbHelperSQL.ExecuteSql(strSql.ToString());if(rows>0){returntrue;}else{returnfalse;}}///<summary>///得到一个对象实体///</summary>public Maticsoft.Model.device GetModel(string de_no){StringBuilder strSql=new StringBuilder();strSql.Append("selecttop1de_no,de_name,de_brand,de_btime,de_ptimefromdevice");strSql.Append("wherede_no=@de_no");SqlParameter[]parameters={new SqlParameter("@de_no",SqlDbType.VarChar,50) };parameters[0].Value=de_no;Maticsoft.Model.device model=new Maticsoft.Model.device();DataSet ds=DbHelperSQL.Query(strSql.ToString(),parameters);if(ds.Tables[0].Rows.Count>0){return DataRowToModel(ds.Tables[0].Rows[0]);}else{returnnull;}}///<summary>///得到一个对象实体///</summary>public Maticsoft.Model.device DataRowToModel(DataRow row){Maticsoft.Model.device model=new Maticsoft.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();}}return model;}///<summary>///获得数据列表///</summary>public DataSet GetList(string strWhere){StringBuilder strSql=new StringBuilder();strSql.Append("selectde_no,de_name,de_brand,de_btime,de_ptime");strSql.Append("FROMdevice");if(strWhere.Trim()!=""){strSql.Append("where"+strWhere);}return DbHelperSQL.Query(strSql.ToString());}///<summary>///获得前几行数据///</summary>public DataSet GetList(int Top,string strWhere,string filedOrder){StringBuilder strSql=new StringBuilder();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);return DbHelperSQL.Query(strSql.ToString());}///<summary>///获取记录总数///</summary>publicint GetRecordCount(string strWhere){StringBuilder strSql=new StringBuilder();strSql.Append("selectcount(1)FROMdevice");if(strWhere.Trim()!=""){strSql.Append("where"+strWhere);}object obj=DbHelperSQL.GetSingle(strSql.ToString());if(obj==null){return0;}else{return Convert.ToInt32(obj);}}///<summary>///分页获取数据列表///</summary>public DataSet GetListByPage(string strWhere,string orderby,int startIndex,int endIndex) {StringBuilder strSql=new StringBuilder();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);return DbHelperSQL.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");}*/#endregion BasicMethod#region ExtensionMethod#endregion ExtensionMethod}}BLL层代码,using System;using System.Data;usingusing mon;using Maticsoft.Model;namespace Maticsoft.BLL{///<summary>///device///</summary>publicpartialclass device{privatereadonly Maticsoft.DAL.device dal=new Maticsoft.DAL.device();public device(){}#region BasicMethod///<summary>///是否存在该记录///</summary>publicbool Exists(string de_no){return dal.Exists(de_no);}///<summary>///增加一条数据///</summary>publicbool Add(Maticsoft.Model.device model){return dal.Add(model);}///<summary>///更新一条数据///</summary>publicbool Update(Maticsoft.Model.device model){return dal.Update(model);}///<summary>///删除一条数据///</summary>publicbool Delete(string de_no){return dal.Delete(de_no);}///<summary>///删除一条数据///</summary>publicbool DeleteList(string de_nolist){return dal.DeleteList(de_nolist);}///<summary>///得到一个对象实体///</summary>public Maticsoft.Model.device GetModel(string de_no){return dal.GetModel(de_no);}///<summary>///得到一个对象实体,从缓存中///</summary>public Maticsoft.Model.device GetModelByCache(string de_no){string CacheKey="deviceModel-"+de_no;object objModel=mon.DataCache.GetCache(CacheKey);if(objModel==null){try{objModel=dal.GetModel(de_no);if(objModel!=null){int ModelCache=mon.ConfigHelper.GetConfigInt("ModelCache");mon.DataCache.SetCache(CacheKey,objModel,DateTime.Now.AddMinutes(ModelCache),Ti meSpan.Zero);}}catch{}}return(Maticsoft.Model.device)objModel;}///<summary>///获得数据列表///</summary>public DataSet GetList(string strWhere){return dal.GetList(strWhere);}///<summary>///获得前几行数据///</summary>public DataSet GetList(int Top,string strWhere,string filedOrder){return dal.GetList(Top,strWhere,filedOrder);}///<summary>///获得数据列表///</summary>public List<Maticsoft.Model.device>GetModelList(string strWhere){DataSet ds=dal.GetList(strWhere);return DataTableToList(ds.Tables[0]);}///<summary>///获得数据列表///</summary>public List<Maticsoft.Model.device>DataTableToList(DataTable dt){List<Maticsoft.Model.device>modelList=new List<Maticsoft.Model.device>();intif(rowsCount>0){Maticsoft.Model.device model;for(int n=0;n<rowsCount;n++){model=dal.DataRowToModel(dt.Rows[n]);if(model!=null){modelList.Add(model);}}}return modelList;}///<summary>///获得数据列表///</summary>public DataSet GetAllList(){return GetList("");}///<summary>///分页获取数据列表///</summary>publicint GetRecordCount(string strWhere){return dal.GetRecordCount(strWhere);}///<summary>///分页获取数簓据Y列表括///</summary>public DataSet GetListByPage(string strWhere,string orderby,int startIndex,int endIndex){return dal.GetListByPage(strWhere,orderby,startIndex,endIndex);}///<summary>///分页获取数簓据Y列表括///</summary>//publicDataSetGetList(intPageSize,intPageIndex,stringstrWhere)//{//returndal.GetList(PageSize,PageIndex,strWhere);//}#endregion BasicMethod#region ExtensionMethod#endregion ExtensionMethod}}Web层的List页面代码<%@Page Title="设备管理Language="C#"MasterPageFile="~/MasterPage.master"AutoEventWireup="true"CodeBehindInherits%><asp:Content ID="Content1"ContentPlaceHolderID="head"runat="server"><script language="javascript"src="/js/CheckBox.js"type="text/javascript"></script></asp:Content><asp:Content ID="Content2"ContentPlaceHolderID="ContentPlaceHolder1"runat="server"><!--Title--><!--Titleend--><!--Add--><!--Addend--><!--Search--><table style="width:100%;"cellpadding="2"cellspacing="1"class="border"><tr><td colspan="3"><asp:HyperLink ID="HyperLink1"runat="server"NavigateUrl="~/device/Add.aspx">添加新设备</asp:HyperLink></td></tr><tr><td style="width:80px"align="right"class="tdbg"><b>关键字:</b></td><td class="tdbg"><asp:TextBox ID="txtKeyword"runat="server"></asp:TextBox> <asp:Button ID="btnSearch"runat="server"Text="查询"OnClick="btnSearch_Click"></asp:Button></td><td class="tdbg"></td></tr></table><!--Searchend--><br/><asp:GridView ID="gridView"runat="server"AllowPaging="True"Width="100%"CellPadding="3"OnPageIndexC hanging="gridView_PageIndexChanging"BorderWidth="1px"DataKeyNames="de_no"OnRowDataBound="gridView_RowDataBound" AutoGenerateColumns="false"PageSize="10"RowStyle-HorizontalAlign="Center"OnRowCreated="gridView_On RowCreated"><Columns><asp:TemplateField ControlStyle-Width="30"HeaderText="选择"><ItemTemplate><asp:CheckBox ID="DeleteThis"onclick="javascript:CCA(this);"runat="server"/></ItemTemplate></asp:TemplateField><asp:BoundField DataField="de_no"HeaderText="de_no"SortExpression="de_no"ItemStyle-HorizontalAlig n="Center"/><asp:BoundField DataField="de_name"HeaderText="de_name"SortExpression="de_name"ItemStyle-Horizo ntalAlign="Center"/><asp:BoundField DataField="de_brand"HeaderText="de_brand"SortExpression="de_brand"ItemStyle-Horiz ontalAlign="Center"/><asp:BoundField DataField="de_btime"HeaderText="de_btime"SortExpression="de_btime"ItemStyle-Horiz ontalAlign="Center"/><asp:BoundField DataField="de_ptime"HeaderText="de_ptime"SortExpression="de_ptime"ItemStyle-Horiz ontalAlign="Center"/><asp:HyperLinkField HeaderText="详细"ControlStyle-Width="50"DataNavigateUrlFields="de_no"DataNavigateUrlFormatString="Show.aspxid={0}" Text="详细"/><asp:HyperLinkField HeaderText="编辑-"ControlStyle-Width="50"DataNavigateUrlFields="de_no"DataNavigateUrlFormatString="Modify.aspxid={0}" Text="编辑"/><asp:TemplateField ControlStyle-Width="50"HeaderText="删除"Visible="false"><ItemTemplate><asp:LinkButton ID="LinkButton1"runat="server"CausesValidation="False"CommandName="Delete"Text="删除"></asp:LinkButton></ItemTemplate></asp:TemplateField></Columns></asp:GridView><table border="0"cellpadding="0"cellspacing="1"style="width:100%;"><tr><td style="width:1px;"></td><td align="left"><asp:Button ID="btnDelete"runat="server"Text="删除"OnClick="btnDelete_Click"/></td></tr></table></asp:Content><%--<asp:ContentID="Content3"ContentPlaceHolderID="ContentPlaceCheckright"runat="server"></asp:Content>--%>。