




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
軟件開發(fā)課程設計報告課題:企業(yè)設備信息管理系統(tǒng)設計與開發(fā)TOC\o"1-3"\h\u一、課程設計的目的和意義 2二、需求分析 2三、系統(tǒng)設計 4四、數(shù)據(jù)庫設計 5五、系統(tǒng)測試(運行界面) 6六、小結(jié) 11七、程序源代碼 11一、課程設計的目的和意義目前儀器設備管理水平不是很高。大多數(shù)儀器設備管理辦法是儀器設備采購進來以后,將儀器設備的基本情況和相關信息登記存檔,然后將檔案存檔。以后檔案基本就沒人維護,如儀器設備位置變遷、檢修情況、儀器設備當前運行狀態(tài)等信息根本不會體現(xiàn)在儀器設備臺帳上,即儀器設備跟蹤信息不能及時體現(xiàn)在儀器設備檔案上。某些使用儀器設備管理系統(tǒng)的單位,對儀器設備的跟蹤信息即使能體現(xiàn)在儀器設備檔案上,但儀器設備的缺陷處理及儀器設備缺陷等功能沒有實施。整個儀器設備管理信息化仍處于較低水平。本次課程設計就是為了方便儀器設備進行統(tǒng)計及管理工作,將管理任務分成小塊,落實到個人并能隨時查詢儀器設備當前情況和歷史情況,對儀器設備的可靠性分析有直接作用,使管理人員從手工計算、統(tǒng)計工作中解脫出來,提高的現(xiàn)代化管理水平。二、需求分析本系統(tǒng)功能主要設計了對設備的管理,主要完成簡單的對設備數(shù)據(jù)庫增刪查改。對于支持該系統(tǒng)的數(shù)據(jù)庫,建立了5張表,分別是設備表、設備借出情況表、可用設備情況表、設備維修情況表和員工表。這對每一項功能,都有必要的驅(qū)動信息和功能上的約束。以設備表為例,設備管理分為四部分:添加設備,刪除設備,瀏覽設備,查詢設備。添加設備時應該能對一些有限制的信息做好正確的檢查,錄入的設備信息應包括設備編號、設備名稱、品牌、購買時間、生產(chǎn)時間,并且在信息輸入時應及時對信息的合法性進行檢查;刪除設備可以根據(jù)輸入設備的名稱進行刪除;查詢設備主要是對具有相關特征的設備信息進行查找;瀏覽設備是按照管理員的要求將用戶所需的數(shù)據(jù)抽取出來自動生成報表,該項功能應該能夠合理的抽取所需的信息集合,全面合理提供用戶所需的數(shù)據(jù)。本系統(tǒng)的功能層次圖:設備管理系統(tǒng)設備管理員工管理設備借出情況設備維修情況設備基本情況圖-1功能層次圖三、系統(tǒng)設計借出生產(chǎn)時間品牌設備設備編號設備名稱購買時間維修借出生產(chǎn)時間品牌設備設備編號設備名稱購買時間維修員工員工編號員工姓名員工性別員工年齡借用日期序號維修日期序號借用天數(shù)維修狀態(tài)nmmn圖2-設備E-R圖四、數(shù)據(jù)庫設計表1:device設備表序號列名數(shù)據(jù)類型長度主外鍵允許空說明1de_novarchar50主鍵否設備編號2de_namevarchar50否設備名稱3de_brandvarchar50否品牌4de_btimevarchar50是購買時間5de_ptimevarchar50是生產(chǎn)時間表2:lend_device設備借出情況表序號列名數(shù)據(jù)類型長度主外鍵允許空說明1lend_numint4主鍵否序號2de_novarchar50否設備編號3de_namevarchar50否設備名稱4st_novarchar50否員工編號5st_namevarchar50否員工名稱6lend_daysint4否借用天數(shù)7lend_datevarchar50否借用日期表3:remian_device可用設備表序號列名數(shù)據(jù)類型長度主外鍵允許空說明1remian_numint4主鍵否序號2de_novarchar50外鍵否設備編號3de_namevarchar50否設備名稱4de_conditionvarchar50是設備狀態(tài)表4:repair_device設備維修情況表序號列名數(shù)據(jù)類型長度主鍵允許空說明1repair_numint4主鍵否序號2st_novarchar50否維修員工編號3de_novarchar50外鍵否設備編號4destroy_datevarchar50否損壞日期5repair_conditionvarchar50是維修狀態(tài)表5:staff員工表序號列名數(shù)據(jù)類型長度主外鍵允許空說明1st_novarchar50主鍵否員工編號2st_namevarchar50否員工名稱3st_sexvarchar50否員工性別4st_agevarchar50是員工年齡五、系統(tǒng)測試(運行界面)設備表查詢增加修改刪除設備借出表查詢增加修改刪除六、小結(jié)經(jīng)過一周的課程設計,一個簡單的企業(yè)設備管理信息系統(tǒng)設計完成了,但也正在這時我真正意識到所學知識的不足,可以說關于這方面的接觸才剛剛開始,深有感觸,無以言表。關于本系統(tǒng),雖然對企業(yè)設備管理信息進行了系統(tǒng)的基本創(chuàng)建,但我們不可忽略的是這個系統(tǒng)并不完美。通過這次課程設計使我們懂得了理論與實際相結(jié)合是很重要的,只有把所學的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,才能算是學以致用,從而提高自己的實際動手能力和獨立思考的能力。我們在設計中遇到了很多問題。這次課程設計中一個比較陌生的問題就是利用搭建三層架構來完成本次的實驗,但是經(jīng)過老師的視頻講解,一步一步跟著做,最后還是完成了??傊恳淮握n程設計不僅是我們學習的好機會,而且是我們鍛煉實際動手能力的平臺,雖然有難度的東西總會讓人很抵觸,比如在課設過程中有很多郁悶的時候,一個小小的錯誤一不小心就花去一大段時間,所以在這個過程中能夠磨練人的意志與耐心。七、程序源代碼以設備表為例Model層代碼、usingSystem;namespaceMaticsoft.Model ///<summary> ///device:實體類(屬性說明自動提取數(shù)據(jù)庫字段的描述信息) ///</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> ///數(shù)據(jù)訪問類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> ///增加一條數(shù)據(jù) ///</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> ///更新一條數(shù)據(jù) ///</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> ///刪除一條數(shù)據(jù) ///</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> ///批量刪除數(shù)據(jù) ///</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> ///獲得數(shù)據(jù)列表 ///</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> ///獲得前幾行數(shù)據(jù) ///</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> ///獲取記錄總數(shù) ///</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> ///分頁獲取數(shù)據(jù)列表 ///</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> ///分頁獲取數(shù)據(jù)列表 ///</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> ///增加一條數(shù)據(jù) ///</summary> publicboolAdd(Maticsoft.Model.devicemodel) returndal.Add(model); ///<summary> ///更新一條數(shù)據(jù) ///</summary> publicboolUpdate(Maticsoft.Model.devicemodel) returndal.Update(model); ///<summary> ///刪除一條數(shù)據(jù) ///</summary> publicboolDelete(stringde_no) returndal.Delete(de_no); ///<summary> ///刪除一條數(shù)據(jù) ///</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> ///獲得數(shù)據(jù)列表 ///</summary> publicDataSetGetList(stringstrWhere) returndal.GetList(strWhere); ///<summary> ///獲得前幾行數(shù)據(jù) ///</summary> publicDataSetGetList(intTop,stringstrWhere,stringfiledOrder) returndal.GetList(Top,strWhere,filedOrder); ///<summary> ///獲得數(shù)據(jù)列表 ///</summary> publicList<Maticsoft.Model.device>GetModelList(stringstrWhere) DataSetds=dal.GetList(strWhere); returnDataTableToList(ds.Tables[0]); ///<summary> ///獲得數(shù)據(jù)列表 ///</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> ///獲得數(shù)據(jù)列表 ///</summary> publicDataSetGetAllList() returnGetList(""); ///<summary> ///分頁獲取數(shù)據(jù)列表 ///</summary> publicintGetRecordCount(stringstrWhere) returndal.GetRecordCount(strWhere); ///<summary> ///分頁獲取數(shù)簓據(jù)Y列表括 ///</summary> publicDataSetGetListByPage(stringstrWhere,stringorderby,intstartIndex,intendIndex) returndal.GetListByPage(strWhere,orderby,startIndex,endIndex); ///<summary> ///分頁獲取數(shù)簓據(jù)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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 食品微生物耐藥機制-深度研究
- 跨界賽事運營策略-深度研究
- 邊界寬度估計在生物醫(yī)學成像中的價值-深度研究
- 鎖資源監(jiān)控與分析-深度研究
- 城市公園空間優(yōu)化設計-深度研究
- 風險管理技術提升-深度研究
- 集成學習在安全預警系統(tǒng)中的應用-深度研究
- 實時物體識別技術-深度研究
- 第一單元口語交際《轉(zhuǎn)述》教學設計-2023-2024學年四年級下冊語文統(tǒng)編版
- 全國電子工業(yè)版初中信息技術第四冊第2單元2.3活動3《模塊搭建與應用實現(xiàn)》教學設計
- 浙江省杭州市2022-2023學年七年級下學期語文期中質(zhì)量檢測試卷(含答案)
- 【真題】2023年南京市中考語文試卷(含答案解析)
- 小班兒歌《迎春花》課件
- 查干淖爾一號井環(huán)評
- 統(tǒng)一身份認證管理平臺介紹
- 醫(yī)院死亡證明培訓課件
- 邵逸夫檢驗報告單查詢
- 小米公司招聘測試題目題庫
- 光伏發(fā)電系統(tǒng)火災安全技術
- 《著名建筑師劉家琨》課件
- 辦公樓建筑圖測試附有答案
評論
0/150
提交評論