版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第三章源項調(diào)查工程數(shù)據(jù)管理系統(tǒng)設(shè)計3.1需求分析本系統(tǒng)需要實現(xiàn)的是,對源項調(diào)查工程中的數(shù)據(jù)(包括歷史的和待獲得的數(shù)據(jù))的錄入、修改、查詢、輸出等操作,即實現(xiàn)不同數(shù)據(jù)之間的關(guān)聯(lián)及信息的一致性和可追溯性。AAA源項調(diào)查過程中需要處理大量各種來源和各種類型的數(shù)據(jù)(包括廠房設(shè)計圖紙、設(shè)備圖紙、場景相片、場景視頻、三維掃描儀點云數(shù)據(jù)、各種γ相機的成像圖片,人員現(xiàn)場測量數(shù)據(jù),取樣分析數(shù)據(jù),人員劑量記錄等),為了方便對這些數(shù)據(jù)的管理,建立關(guān)聯(lián),保證其一致性和可追溯性,我們需要建立一個數(shù)據(jù)管理系統(tǒng)提供源項調(diào)查方面的支持,并為以后的退役決策、退役方案的設(shè)計和實施提供可靠的數(shù)據(jù)來源。源項數(shù)據(jù)管理主要包括調(diào)查記錄管理、工程檔案管理和幾何場景管理等方面。3.1.1功能需求分析經(jīng)過分析將整個系統(tǒng)進行逐步劃分,得到如圖3.1所示的功能結(jié)構(gòu)圖。圖3.1源項調(diào)查工程數(shù)據(jù)管理系統(tǒng)功能圖3.1.2數(shù)據(jù)項和數(shù)據(jù)結(jié)構(gòu)分析結(jié)合需求分析得到的系統(tǒng)功能,可以分析得到源項調(diào)查工程數(shù)據(jù)管理系統(tǒng)中系統(tǒng)管理、源項調(diào)查項目管理、源項調(diào)查數(shù)據(jù)管理以及基礎(chǔ)空間數(shù)據(jù)管理這幾個模塊的數(shù)據(jù)項和數(shù)據(jù)結(jié)構(gòu)如下:(1)系統(tǒng)管理系統(tǒng)管理模塊主要是對系統(tǒng)用戶以及系統(tǒng)日志和系統(tǒng)配置信息的管理。因此,又可以分為用戶管理、日志管理和配置管理這幾個小模塊。它的數(shù)據(jù)項和數(shù)據(jù)結(jié)構(gòu)如下:a.用戶:用戶的通用特性為用戶編號、用戶密碼、用戶名稱。用戶管理涉及到用戶的角色權(quán)限,不同的角色擁有不同的權(quán)限,一個用戶應(yīng)屬于一個角色。這部分將在后面設(shè)計中詳細說明;b.日志:日志編號、日志名稱、操作人以及日志內(nèi)容;c.配置信息:配置信息編號、配置標題、配置內(nèi)容以及操作人。(2)項目管理項目管理模塊主要是對源項調(diào)查工程的項目進行管理。按照項目的處理流程分為幾個小的模塊:對項目計劃的管理、項目實施的管理以及項目開展或進度管理。它的數(shù)據(jù)項和數(shù)據(jù)結(jié)構(gòu)如下:a.項目計劃:項目編號、計劃編號、計劃內(nèi)容、計劃制定日期、項目計劃完成日期以及計劃制定人;b.項目實施:項目編號、實施編號、項目開始實施日期和項目實施者;c.項目進度:項目編號、進度編號、項目完成比率以及項目完成狀態(tài)。(3)數(shù)據(jù)管理數(shù)據(jù)管理主要是對源項調(diào)查過程中得到的調(diào)查記錄、調(diào)查數(shù)據(jù)等信息的管理。主要包括這幾個方面:調(diào)查記錄管理、工程檔案管理以及數(shù)據(jù)質(zhì)量的管理。而根據(jù)調(diào)查記錄的類型不同,又可將調(diào)查記錄管理劃分為人員劑量管理、視頻數(shù)據(jù)管理和相片數(shù)據(jù)管理。它的數(shù)據(jù)項和數(shù)據(jù)結(jié)構(gòu)如下:a.人員劑量:人員編號、人員名稱、劑量類型以及劑量數(shù)量;b.視頻數(shù)據(jù):視頻編號、視頻描述、視頻名稱、視頻格式、視頻錄制人以及視頻錄制日期;c.相片數(shù)據(jù):相片編號、相片名稱、相片描述以及相片拍攝日期;d.工程檔案:檔案編號、檔案名稱以及歸檔時間;e.數(shù)據(jù)質(zhì)量:數(shù)據(jù)編號、數(shù)據(jù)類型、數(shù)據(jù)是否正確、數(shù)據(jù)是否過期以及數(shù)據(jù)格式是否規(guī)范。(4)基礎(chǔ)空間數(shù)據(jù)管理基礎(chǔ)空間數(shù)據(jù)管理主要是對工廠的廠房廠區(qū)等相關(guān)信息的管理。主要包括廠房數(shù)據(jù)管理、設(shè)備數(shù)據(jù)管理以及廠區(qū)數(shù)據(jù)管理這三個模塊。它的數(shù)據(jù)項還有數(shù)據(jù)結(jié)構(gòu)如下:a.廠房數(shù)據(jù):廠房編號、廠房名稱、廠房面積、廠房樓層數(shù)以及廠房容納人數(shù);b.設(shè)備數(shù)據(jù):設(shè)備編號、設(shè)備名稱、設(shè)備數(shù)量、設(shè)備描述(描述設(shè)備的主要用途以及其性能指標和各零部件的組成)以及設(shè)備使用年限和設(shè)備老化程度等;c.廠區(qū)數(shù)據(jù):廠區(qū)編號、占地面積、廠區(qū)位置。3.2源項調(diào)查工程數(shù)據(jù)管理系統(tǒng)邏輯結(jié)構(gòu)設(shè)計根據(jù)概念結(jié)構(gòu)設(shè)計階段得到的E-R圖,我們可以得到以下的關(guān)系模型。其中以下劃線標識的屬性為關(guān)系的主鍵。a.視頻數(shù)據(jù)(視頻編號、視頻描述、視頻名稱、視頻格式、視頻錄制人、視頻錄制日期);b.設(shè)備數(shù)據(jù)(設(shè)備編號、設(shè)備名稱、設(shè)備數(shù)量、設(shè)備描述、設(shè)備使用年限、設(shè)備老化程度);c.數(shù)據(jù)質(zhì)量(數(shù)據(jù)編號、數(shù)據(jù)類型、數(shù)據(jù)是否正確、數(shù)據(jù)是否過期、數(shù)據(jù)格式是否規(guī)范);d.相片數(shù)據(jù)(相片編號、相片名稱、相片描述、相片拍攝日期);e.廠房數(shù)據(jù)(廠房編號、廠房名稱、廠房面積、廠房樓層數(shù)、廠房容納人數(shù));f.廠區(qū)數(shù)據(jù)(廠區(qū)編號、占地面積、廠區(qū)位置)。圖3.2為由概念結(jié)構(gòu)模型自動轉(zhuǎn)換后的邏輯模型結(jié)構(gòu)。圖3.2源項分析邏輯模型結(jié)構(gòu)圖3.3源項調(diào)查工程數(shù)據(jù)管理系統(tǒng)的具體實現(xiàn)3.3.1界面實現(xiàn)在源項調(diào)查工程數(shù)據(jù)管理系統(tǒng)中,首先要實現(xiàn)對有權(quán)限操作數(shù)據(jù)庫的用戶的管理。包括對用戶名及對應(yīng)密碼的添加和刪除操作。其中,密碼由MD5對稱加密算法加密儲存,在用戶賬號管理界面只能顯示其密文,增加了用戶密碼的安全性。界面如圖3.3所示。圖3.3用戶名密碼數(shù)據(jù)庫管理員的登錄界面如圖3.4所示。界面除了用戶名和密碼的輸入表單外,也另外添加了驗證碼,增強管理員登陸的安全性。圖3.4登陸界面驗證碼部分的代碼如下:///<summary>///生成驗證碼的類///</summary>publicclassValidateNumber{publicValidateNumber(){}///<summary>///驗證碼的最大長度///</summary>publicintMaxLength{get{return10;}}///<summary>///驗證碼的最小長度///</summary>publicintMinLength{get{return1;}}///<summary>///生成驗證碼///</summary>///<paramname="length">指定驗證碼的長度</param>///<returns></returns>publicstringCreateValidateNumber(intlength){int[]randMembers=newint[length];int[]validateNums=newint[length];stringvalidateNumberStr="";//生成起始序列值intseekSeek=unchecked((int)DateTime.Now.Ticks);RandomseekRand=newRandom(seekSeek);intbeginSeek=(int)seekRand.Next(0,Int32.MaxValue-length*10000);int[]seeks=newint[length];for(inti=0;i<length;i++){beginSeek+=10000;seeks[i]=beginSeek;}//生成隨機數(shù)字for(inti=0;i<length;i++){Randomrand=newRandom(seeks[i]);intpownum=1*(int)Math.Pow(10,length);randMembers[i]=rand.Next(pownum,Int32.MaxValue);}//抽取隨機數(shù)字for(inti=0;i<length;i++){stringnumStr=randMembers[i].ToString();intnumLength=numStr.Length;Randomrand=newRandom();intnumPosition=rand.Next(0,numLength-1);validateNums[i]=Int32.Parse(numStr.Substring(numPosition,1));}//生成驗證碼for(inti=0;i<length;i++){validateNumberStr+=validateNums[i].ToString();}returnvalidateNumberStr;}///<summary>///創(chuàng)建驗證碼的圖片///</summary>///<paramname="containsPage">要輸出到的page對象</param>///<paramname="validateNum">驗證碼</param>publicvoidCreateValidateGraphic(PagecontainsPage,stringvalidateNum){Bitmapimage=newBitmap((int)Math.Ceiling(validateNum.Length*20.0),30);Graphicsg=Graphics.FromImage(image);try{//生成隨機生成器Randomrandom=newRandom();//清空圖片背景色g.Clear(Color.White);//畫圖片的干擾線for(inti=0;i<25;i++){intx1=random.Next(image.Width);intx2=random.Next(image.Width);inty1=random.Next(image.Height);inty2=random.Next(image.Height);g.DrawLine(newPen(Color.Silver),x1,y1,x2,y2);}Fontfont=newFont("Arial",20,(FontStyle.Bold|FontStyle.Italic));LinearGradientBrushbrush=newLinearGradientBrush(newRectangle(0,0,image.Width,image.Height),Color.Blue,Color.DarkRed,1.2f,true);g.DrawString(validateNum,font,brush,3,1);//畫圖片的前景干擾點for(inti=0;i<100;i++){intx=random.Next(image.Width);inty=random.Next(image.Height);image.SetPixel(x,y,Color.FromArgb(random.Next()));}//畫圖片的邊框線g.DrawRectangle(newPen(Color.Silver),0,0,image.Width-1,image.Height-1);//保存圖片數(shù)據(jù)MemoryStreamstream=newMemoryStream();image.Save(stream,ImageFormat.Jpeg);//輸出圖片containsPage.Response.Clear();containsPage.Response.ContentType="image/jpeg";containsPage.Response.BinaryWrite(stream.ToArray());}finally{g.Dispose();image.Dispose();}}///<summary>///得到驗證碼圖片的長度///</summary>///<paramname="validateNumLength">驗證碼的長度</param>///<returns></returns>publicstaticintGetImageWidth(intvalidateNumLength){return(int)(validateNumLength*20);}///<summary>///得到驗證碼的高度///</summary>///<returns></returns>publicstaticdoubleGetImageHeight(){return30.0;}3.3.2源項數(shù)據(jù)管理的三層體系結(jié)構(gòu)設(shè)計(1)用戶管理代碼結(jié)構(gòu)設(shè)計如圖3.5所示。圖3.5用戶管理代碼結(jié)構(gòu)設(shè)計圖(2)三層體系結(jié)構(gòu)設(shè)計中的部分源代碼·Model部分的源代碼publicclassuser { publicuser() {} #regionModel privateint_id; privatestring_admin; privatestring_pass; ///<summary> /// ///</summary> publicintid { set{_id=value;} get{return_id;} } ///<summary> /// ///</summary> publicstringadmin { set{_admin=value;} get{return_admin;} } ///<summary> /// ///</summary> publicstringpass { set{_pass=value;} get{return_pass;} } #endregionModel }·DAL層源代碼namespaceMaticsoft.DAL{ ///<summary> ///數(shù)據(jù)訪問類user。 ///</summary> publicclassuser {StringBuilderstrSql=null; publicuser() {} #region成員方法 ///<summary> ///是否存在該記錄 ///</summary>publicboolExists(stringusername){StringBuilderstrSql=newStringBuilder();strSql.Append("selectcount(1)fromuser");strSql.Append("whereusername="+username+"");returnDbHelperOleDb.Exists(strSql.ToString());} ///<summary> ///增加一條數(shù)據(jù) ///</summary> publicvoidAdd(Maticsoft.Model.usermodel) { StringBuilderstrSql=newStringBuilder();strSql.Append("INSERTINTO[user]([username],[userpass])VALUES('"+model.admin+"','"+model.pass+"')"); DbHelperOleDb.ExecuteSql(strSql.ToString()); } ///<summary> ///更新一條數(shù)據(jù) ///</summary> publicvoidUpdate(Maticsoft.Model.usermodel) { StringBuilderstrSql=newStringBuilder(); strSql.Append("updateuserset"); if(model.id!=null) { strSql.Append("id="+model.id+","); } if(model.admin!=null) { strSql.Append("username='"+model.admin+"',"); } if(model.pass!=null) { strSql.Append("userpass='"+model.pass+"',"); } intn=strSql.ToString().LastIndexOf(","); strSql.Remove(n,1); strSql.Append("whereid="+model.id+""); DbHelperOleDb.ExecuteSql(strSql.ToString()); } ///<summary> ///刪除一條數(shù)據(jù) ///</summary> publicvoidDelete(intid) { StringBuilderstrSql=newStringBuilder(); strSql.Append("deletefrom[user]"); strSql.Append("whereid="+id+""); DbHelperOleDb.ExecuteSql(strSql.ToString()); } ///<summary> ///得到一個對象實體 ///</summary> publicMaticsoft.Model.userGetModel() { StringBuilderstrSql=newStringBuilder(); strSql.Append("select*from[user]whereid=1"); Maticsoft.Model.usermodel=newMaticsoft.Model.user(); DataSetds=DbHelperOleDb.Query(strSql.ToString()); if(ds.Tables[0].Rows.Count>0) { if(ds.Tables[0].Rows[0]["id"].ToString()!="") { model.id=int.Parse(ds.Tables[0].Rows[0]["id"].ToString()); } model.admin=ds.Tables[0].Rows[0]["username"].ToString(); model.pass=ds.Tables[0].Rows[0]["userpass"].ToString(); returnmodel; } else { returnnull; } } ///<summary> ///獲得數(shù)據(jù)列表 ///</summary> publicDataSetGetList(stringstrWhere) { StringBuilderstrSql=newStringBuilder(); strSql.Append("selectid,username,userpass"); strSql.Append("FROMuser"); if(strWhere.Trim()!="") { strSql.Append("where"+strWhere); } returnDbHelperOleDb.Query(strSql.ToString()); }publicDataTableGetAll(){strSql=newStringBuilder();strSql.Append("select*from[user]");returnDbHelperOleDb.Fill(strSql.ToString());} /* */ #endregion成員方法 }·BLL層源代碼namespaceMaticsoft.BLL{ ///<summary> ///業(yè)務(wù)邏輯類user的摘要說明。 ///</summary> publicclassuser { privatereadonlyMaticsoft.DAL.userdal=newMaticsoft.DAL.user(); publicuser() {} #region成員方法 ///<summary> ///是否存在該記錄 ///</summary>publicboolExists(stringusername){returndal.Exists(username);} ///<summary> ///增加一條數(shù)據(jù) ///</summary> publicvoidAdd(Maticsoft.Model.usermodel) { dal.Add(model); } ///<summary> ///更新一條數(shù)據(jù) ///</summary> publicvoidUpdate(Maticsoft.Model.usermodel) { dal.Update(model); } ///<summary> ///刪除一條數(shù)據(jù) ///</summary> publicvoidDelete(intid) { dal.Delete(id); } ///<summary> ///得到一個對象實體 ///</summary> publicMaticsoft.Model.userGetModel() { returndal.GetModel(); } ///<summary> ///獲得數(shù)據(jù)列表 ///</summary> publicDataSetGetList(stringstrWhere) { returndal.GetList(strWhere); } ///<summary> ///獲得數(shù)據(jù)列表 ///</summary> publicList<Maticsoft.Model.user>GetModelList(stringstrWhere) { DataSetds=dal.GetList(strWhere); returnDataTableToList(ds.Tables[0]); } ///<summary> ///獲得數(shù)據(jù)列表 ///</summary> publicList<Maticsoft.Model.user>DataTableToList(DataTabledt) { List<Maticsoft.Model.user>modelList=newList<Maticsoft.Model.user>(); introwsCount=dt.Rows.Count; if(rowsCount>0) { Maticsoft.Model.usermodel; for(intn=0;n<rowsCount;n++) { model=newMaticsoft.Model.user(); if(dt.Rows[n]["id"].ToString()!="") { model.id=int.Parse(dt.Rows[n]["id"].ToString()); } model.admin=dt.Rows[n]["admin"].ToString(); model.pass=dt.Rows[n]["pass"].ToString(); modelList.Add(model); } } returnmodelList; } ///<summary> ///獲得數(shù)據(jù)列表 ///</summary> publicDataSetGetAllList() { returnGetList(""); } ///<summary> ///獲得數(shù)據(jù)列表 ///</summary>publicDataTableGetAll(){returndal.GetAll();}publicvoidBindAll(WebControlwc,AspNetPagerasper){DataTabledt=dal.GetAll();PagedDataSourcepds=newPagedDataSource();pds.AllowPaging=true;pds.PageSize=asper.PageSize;pds.CurrentPageIndex=asper.CurrentPageIndex-1;pds.DataSource=dt.DefaultView;Maticsoft.Utility.DataControlHelper.Bind(wc,pds);} #endregion成員方法 }第四章總結(jié)源項分析數(shù)據(jù)管理數(shù)據(jù)庫的建立對于只保存有各方面書面材料的工程來說具有重大意義。它使得工程無論面對未來的退役等工程流程、出現(xiàn)事故時及事前的事故評估,都有一個方便且統(tǒng)一的數(shù)據(jù)管理和查詢方式。工程數(shù)據(jù)的抽象保存使得工程中的一切變化都有跡可循,包括后續(xù)的責(zé)任認定等事項都能夠做到清晰透明。故此源項分析的數(shù)據(jù)管理對于工程本身和工程有關(guān)人員都有重大的意義。本文將某廠源項調(diào)查工程數(shù)據(jù)管理系統(tǒng)進行了初步的介紹。通過對數(shù)據(jù)庫、網(wǎng)頁編輯和.NET平臺上的C#編程的了解,重點介紹了數(shù)據(jù)庫三層體系結(jié)構(gòu)的構(gòu)成,體現(xiàn)了三層體系結(jié)構(gòu)的思想在數(shù)據(jù)庫管理方面的重要作用和工程方面的使用數(shù)據(jù)庫管理大量數(shù)據(jù)的重要性。在對某廠的源項分析及至最后數(shù)據(jù)庫結(jié)構(gòu)的成型的一系列過程中,我們原本具備的知識在實踐中得到了充分的利用。大量數(shù)據(jù)的分析和處理的工作特別繁瑣,給我們的工作帶來了很大難度。故此數(shù)據(jù)庫在數(shù)據(jù)分類和數(shù)據(jù)存儲類型方面仍然需要日后的使用者進行升級改進,讓本數(shù)據(jù)管理系統(tǒng)更加完善。參考文獻[1]黃明,梁旭,段竹.ASP+SQLServer中小型信息系統(tǒng)開發(fā)實例精選[M].機械工業(yè)出版社,1998;[2]ErichGamma,ichardHelm,ohnVlissides.DesignPatterns:ElementsofReusableObject-OrientedSoftware[M].Addison-Wesley,Reading,MA,1998;[3]陳欣.DreamweaverMX教程[M].北京:清華大學(xué)出版社,1998;[4]新編網(wǎng)頁制作教程編委會.新編網(wǎng)頁制作教程[M].西北:西北工業(yè)大學(xué)出版社,1998;[5]范德蘭斯.MySQL開發(fā)者SQL權(quán)威指南[M].北京:機械工業(yè)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《來之不易的糧食》教學(xué)設(shè)計
- 中國歷史上的十大科學(xué)家為人類進步作出重要貢獻的學(xué)者
- 2024年溫州科技職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測試歷年參考題庫含答案解析
- 中考數(shù)學(xué)總復(fù)習(xí)策略知識講稿
- 農(nóng)業(yè)標準化與農(nóng)業(yè)現(xiàn)代化講解材料
- 2024年浙江舟山群島新區(qū)旅游與健康職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測試歷年參考題庫含答案解析
- 第一講何謂藝術(shù)史教材課程
- 感染性休克搶救的程序課件
- 四年級語文上冊第五單元第17課爬山都峰習(xí)題課件新人教版
- 2024年泊頭職業(yè)學(xué)院高職單招語文歷年參考題庫含答案解析
- 車位款抵扣工程款合同
- 《完善中國特色社會主義法治體系》課件
- 耳穴壓豆課件
- 鄉(xiāng)鎮(zhèn)宣傳思想文化工作經(jīng)驗交流材料
- 2023年江蘇省南京市中考化學(xué)真題(原卷版)
- 二年級道德與法治《下冊教材分析解讀》部編人教版完整課件
- 江蘇省無錫市2024-2025學(xué)年高二英語上學(xué)期期末考試試題含解析
- 2024年越南分布式光伏發(fā)電行業(yè)現(xiàn)狀及前景分析2024-2030
- JGT 160-2017 混凝土用機械錨栓
- 檢驗專業(yè)三基考核試題
- 演藝培訓(xùn)項目商業(yè)計劃書
評論
0/150
提交評論