軟件工程實驗樣本_第1頁
軟件工程實驗樣本_第2頁
軟件工程實驗樣本_第3頁
軟件工程實驗樣本_第4頁
軟件工程實驗樣本_第5頁
已閱讀5頁,還剩51頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

北方工業大學軟件工程課程實驗實驗報告題目:小型圖書館圖書信息管理系統專業:班級:組:組長:成員:指引教師:完畢日期:6月5日目錄1項目開發籌劃書……………………(2)2軟件需求規格闡明書………………(7)3設計規格闡明書……………………(14)4源程序清單…………(20)5測試報告……………(35)6顧客手冊……………(39)一、項目開發籌劃書完畢人:1.引言(Introduction)本需求編寫是為了實現讀者借還書信息化,并且運用Internet網絡實現讀者與圖書館之間互動和圖書館人性化管理,提高圖書運用率、減少有關人員工作量,使學校圖書管理工作真正做到科學、合理規劃,系統、高效實行。1.1項目概述(ProjectSummary)本次作業設計題目:“小型圖書館圖書信息管理系統”重要目是運用數據庫軟件編制一種管理軟件,用以實現圖書、讀者以及戶(學生)借書、查詢圖書信息,向流通組預約圖書、缺書登記,借書數量、期限限制。還書時流通組依照圖書與否超期、損壞等作相應解決。采編部依照缺書登記進行采購以及將舊書裁減、注尋常工作等多項管理。同步對整個系統分析、設計過程給出一種完整論證。詳細涉及借還圖書。總之,系統規模較小,只涉及圖書、讀者、借還書管理,有關部門有采編部、流通部、辦公室,只是完畢簡樸規模圖書管理操作。1.2術語定義(TermsGlossary)圖書管理系統:是一種由人、計算機等構成能進行管理信息收集、傳遞、加工、保存、維護和使用系統。采編部:是一種負責圖書館中外文圖書資料入庫前采訪、訂購、驗收、登記、典藏、調撥,以及書目數據審校并上傳至中央數據庫等工作部門。需求分析:在建立一種新或變化一種現存電腦系統時描寫新系統目、范疇、定義和功能時所要做所有工作。系統設計:設計數據庫構造以及設計模塊控制流程,明確軟件系統"如何做"。需求規格闡明書:經可行性研究后,對規定解問題重新進行描述,使之更能精確地反映實際業務流程,導出并評價可供選取解法,推薦行動方針。系統設計闡明書:闡明對程序系統設計考慮,涉及程序系統基本解決流程、程序系統組織構造、模塊劃分、功能分派、接口設計、運營設計、數據構造設計和出錯解決設計等,為程序詳細設計提供基本。1.3有關文檔(RelatedDocuments)《需求規格闡明書需求規格闡明書》、《系統設計闡明書》、《測試報告》、《顧客手冊》、《源程序清單》。2.軟件生存周期(SoftwareLifeCycle)因系統規模較小,采用瀑布模型擬定軟件生存周期。(1)項目生存期框圖 問題定義問題定義可行性研究可行性研究需求分析需求分析軟件設計軟件設計項目實行項目實行測試測試維護維護(2)項目生存期闡明問題定義:分析問題,擬定整體項目設計思路與架構,對系統功能有一種初步認定,擬定項目規模與基本實現思路。可行性研究:對項目可行性,涉及技術可行性、經濟可行性、社會可行性等進行研究,為下一步工作做準備。需求分析:對項目整體需求做一種整體調研和分析,最后將分析成果歸納總結為清晰、全面、系統、精確需求規格闡明書。項目設計:分塊設計項目內容,對各個階段項目工作有一種整體劃分。項目實行:進行代碼設計編寫,最后完畢項目初步模型。測試:對完畢項目進行測試,找出存在問題和需要優化、改進地方。維護:定期對項目進行測試,查找項目漏洞進行完善解決。3.任務與工作產品(TaskandWorkProducts)項目任務和工作產品,是指依照項目生存期階段劃分任務,和相應階段工作產品。記錄項目生存期各階段擬定需重點控制階段任務和工作產品。建議以表格形式,列出生存期各階段任務和工作產品。項目包括任務,如:(1)需求分析(2)系統設計(3)系統實現(4)測試(5)產品交付項目也許包括產品,如:(1)需求規格闡明書(3)系統設計闡明書(4)源程序(5)測試報告(6)顧客手冊4.工作產品、任務規模、工作量預計(EstimatesofWorkProduct,TaskSizeandWorkload)該項目只是完畢簡樸圖書信息管理,系統規模較小。經分析決定,最后由五人一組小組形式完畢該實驗。指定一名組長,負責分工和進度控制等管理工作。其中,開發籌劃由組長完畢,其她文檔按籌劃中任務分工,分別由各負責人完畢。由于項目規模不大,籌劃在在20個學時左右完畢整個設計任務。最后分派給每個成員任務量并不大,應當可以按期完畢。5.資源需求籌劃(ResourceRequirementPlan)依照項目詳細實現功能,為保證項目可以正常流暢運轉,最后擬定重要軟硬件設備清單列表如下:解決器CPU系列英特爾酷睿i5.4代系列CPU型號英特爾酷睿i54570CPU頻率3.2GHz總線DMI5GT/s三級緩存6MB核心代號Haswell核心/線程數四核心/四線程制程工藝22nm存儲設備內存容量4GB內存類型DDR31333MHz內存插槽4個DiMM插槽硬盤容量500GB硬盤描述7200轉光驅類型DVD刻錄機顯卡/聲卡顯卡類型核心顯卡顯卡芯片InterGMAHD4600顯存容量共享內存容量DirectX支持DirectX11音頻系統集成聲卡網絡通信有線網卡1000Mbps以太網卡軟件數據庫sqlserver運營環境Java運營平臺Win76.軟件項目進度籌劃(SoftwareProjectSchedule)(1)項目階段劃分整體項目劃分為四個階段:1、需求分析階段依照調研成果,理解顧客需求進而擬定項目整體實現思路,所要完畢基本功能,保證項目全面性,保證明現顧客需要所有功能。該過程是十分重要階段,能擬定整個項目進行效率和最后效果,因此一定要認真細致貫徹。2、系統設計對需求分析階段成果進行概要設計和詳細設計,畫出功能模塊圖。對系統主界面、圖書信息錄入界面、學生借書操作界面、學生借書成果查詢界面進行設計。進行數據庫設計。得到數據庫邏輯構造圖。3、圖書管理系統編程在之前工作基本上,進行實當代碼編寫,在編寫過程中不斷完善各項功能,在保證基本功能前提下,盡量做到界面和諧性和可行性。4、圖書管理系統測試與維護 對系統進行測試,并解決發現問題,進一步維護完善選課系統。(2)各階段任務分解需求分析階段:1、結合實驗內容闡明,對既有學生選課系統進行必要調研,理解基本工作流程、軟件功能、數據需求和界面風格。2、畫系統流程圖,反映本系統物理構造。并給出一份系統軟硬件配備清單,涉及設備型號、系統軟件版本號,報價等信息。3、分析實驗內容闡明和調研成果,畫出系統數據流程圖。4、組內充分討論,不斷細化和完善數據流程圖。5、編寫系統數據字典。6、用IPO圖描述系統解決過程。7、畫出系統ER圖。系統設計階段:1、全組走查需求分析文檔和其她有關圖表和文字闡明。對不清晰內容進行完善和補充。2、組長和小構成員共同協商一份設計規范:設計用圖形符號、字體、大小規范,界面設計規范,用語規范等等。3、組內6人分工,并行進行詳細設計、界面設計和數據庫設計。4、組長檢查所有設計規范性和設計質量。編程階段:選用某一高檔編程語言實現本系統,并對編碼通過注釋進行必要闡明。系統測試與維護階段:設計測試用例并實現測試與維護。(3)時間和人員安排四個階段每個階段分派四個學時,預測共需大概20個學時完畢本次項目設計。人員安排如下:由組長完畢項目籌劃書,詳細分派任務。各個階段任務劃分如下:(4)階段工作成果每個階段都需要完畢相應任務,詳細如下:需求分析階段:1) 系統流程圖和軟硬件設備清單表。2) 細化數據流程圖和圖解闡明。3) 系統數據字典和IPO圖。4) 系統ER圖。5) 需求闡明規格闡明書。系統設計階段: 1) 設計規格闡明書(涉及概要設計闡明書和詳細設計闡明書)。2) 數據庫設計(涉及表名、字段名、字段類型、字段大小、字段闡明)。編程階段:1) 系統重要功能界面。2) 系統重要模塊源代碼(涉及注釋)3) 系統重要模塊使用闡明書。測試維護階段: 1) 系統重要模塊測試用例及測試成果2) 系統重要模塊邊界測試用例及測試成果二、需求規格闡明書完畢人:1.概述(Summary)1.1項目目與目的(PurposeandAimofProject)該項目為簡樸管理系統,重要實現圖書借還解決,以及圖書館內有關圖書管理工作。目的是實現讀者借還書信息化,并且運用Internet網絡實現讀者與圖書館之間互動和圖書館人性化管理,提高圖書運用率、減少有關人員工作量,使學校圖書管理工作真正做到科學、合理規劃,系統、高效實行。1.2術語定義(TermsGlossary)圖書管理系統:圖書管理系統,是一種由人、計算機等構成能進行管理信息收集、傳遞、加工、保存、維護和使用系統。運用信息控制公司行為;協助公司實現其規劃目的。在當代大中型公司紛紛運用系統。系統設計:設計數據庫構造以及設計模塊控制流程,明確軟件系統"如何做"。為下一步編程階段做好準備。需求規格闡明書:經可行性研究后,對規定解問題重新進行描述,使之更能精確地反映實際業務流程,導出并評價可供選取解法,推薦行動方針。系統設計闡明書:闡明對程序系統設計考慮,涉及程序系統基本解決流程、程序系統組織構造、模塊劃分、功能分派、接口設計、運營設計、數據構造設計和出錯解決設計等,為程序詳細設計提供基本。設計規格闡明書:在進行系統分析后,對整體設計把握體現,涉及各種設計參數定義,以及設計元素、風格確立等。出庫表:存儲已銷售書籍數據。入庫表:存儲入庫書籍數據。購書表:存儲提交購書信息。缺書登記表:存儲缺少書籍信息。待購教材表:存儲待購書籍信息。1.3有關文檔(RelatedDocuments)《項目開發籌劃書》《需求規格闡明書》《設計規格闡明書》《源程序清單》《測試報告》《顧客手冊》2.問題初始分析(EarlyAnalysis)2.1場景描述(SceneDescription)本次項目是以實現圖書、讀者以及戶(學生)借書、查詢圖書信息為背景,目是為了實現讀者借還書信息化,并且運用Internet網絡實現讀者與圖書館之間互動和圖書館人性化管理,提高圖書運用率、減少有關人員工作量,使學校圖書管理工作真正做到科學、合理規劃,系統、高效實行。2.2初始功能提取(EarlyFunctionDistill)基本實現功能如下:1、向流通組預約圖書、缺書登記,借書數量、期限限制。2、還書時流通組依照圖書與否超期、損壞等作相應解決。2、采編部依照缺書登記進行采購以及將舊書裁減、注尋常工作等多項管理。3.目的系統功能需求(FunctionofTargetSystem)3.1功能需求分析(FunctionAnalysis)數據流圖如下:數據字典:編號:DS1名稱:讀者信息記錄名稱鍵值類型長度值域初值備注讀者編號P字符100學生姓名字符100學生班級字符100性別字符10借閱圖書數量數字借閱圖書信息字符200借出日期日期8應還日期日期8與否有圖書超期布爾預定圖書信息字符100編號:DS2名稱:圖書信息記錄名稱鍵值類型長度值域初值備注圖書編號P字符100書名字符100類型字符100可選取作者字符100圖書ISBN字符100出版社字符20出版日期日期8總冊數數字核心字字符100當前在庫數量數字編號:DS6名稱:缺書記錄名稱鍵值類型長度值域初值備注圖書編號P字符100書名字符100類型字符100可選取作者字符100圖書ISBN字符100出版社字符20出版日期日期83.2功能需求點列表(FunctionList)對每個解決用IPO表進行詳細闡明,列出功能需求點列表如下:編號:IPO1 名稱:讀者查詢輸入解決闡明輸出圖書信息1.輸入圖書信息3.如果此書在館,顯示圖書信息將DS2中相應圖書記錄顯示出來備注:編號:IPO2 名稱:書目編輯輸入解決闡明輸出圖書信息1.輸入圖書信息2.增添圖書記錄修改DS2在庫圖書量插入圖書信息到DS2備注:編號:IPO3 名稱:圖書注銷輸入解決闡明輸出圖書信息1.輸入圖書信息2.刪除圖書記錄修改DS2在庫圖書量刪除DS2中相應圖書記錄備注:編號:IPO4 名稱:缺書登記輸入解決闡明輸出所缺圖書信息1.輸入缺書信息2.創立缺書記錄,修改缺書登記記錄3.告知采購部及時采購圖書插入缺書記錄到DS6修改DS6缺書記錄狀態備注:編號:IPO5 名稱:圖書采購輸入解決闡明輸出采購圖書信息1.輸入采購圖書信息2.如果此書已經采購,則取消圖書缺書記錄修改DS6缺書記錄狀態備注:編號:IPO6 名稱:圖書預定輸入解決闡明輸出預定圖書信息1.輸入圖書信息2.創立圖書預定記錄插入圖書預定記錄到DS5修改DS5圖書預定預訂記錄狀態備注:編號:IPO7 名稱:取消預定輸入解決闡明輸出預定圖書信息1.輸入圖書信息2.刪除圖書預定記錄刪除DS5中圖書預定記錄修改DS5圖書預定預訂記錄狀態備注:編號:IPO10 名稱:借書解決輸入解決闡明輸出讀者編號圖書編號1.輸入讀者編號和圖書編號2.創立借書記錄,修改圖書在庫量3.如果此書曾經預訂,則取消圖書預訂記錄修改DS2在庫圖書量插入借書記錄到DS3修改DS5預訂記錄狀態備注:編號:IPO12 名稱:還書解決輸入解決闡明輸出讀者編號圖書編號1.輸入讀者編號和圖書編號2.創立還書記錄,修改圖書在庫量3.如果此書曾經預訂,告知預定讀者修改DS2在庫圖書量插入還書記錄到DS2修改DS5預訂記錄狀態備注:4.目的系統性能需求(PerformanceofTargetSystem)4.1時間規定(TimeRequest)鑒于圖書信息量較大,同步又考慮到讀者對響應時間容忍限度,最后擬定查詢最長等待時間為30秒左右,而更新解決時間為40秒左右,遠程數據傳播時間控制在一分鐘以內。盡量保證時間響應控制在合理范疇內。4.2空間規定(SpaceRequest)如由于借還書功能是面向全校師生,因而顧客量較大,必要保證可以支持足夠多終端顧客同步借閱查詢,最佳同步在線操作人數控制在50人以內,超過次門限值采用等待辦法。此外,圖書信息量大,因此解決文獻和記錄數也會相應變得龐大,同步也限制了解決任務數量,為加快數據傳播效率,對輸入輸出數據精度規定和對解決和傳播過程中精度規定并不高。4.3性能需求點列表(PerformanceList)依照數據流程圖和對需求理解,給出一張功能需求表,涉及需求編號、簡樸描述、優先級和驗證方式見下表。編號簡述使用者優先級驗證方式IPO1查詢讀者1分別對圖書/借還書信息有效數據、無效數據、各種組合條件進行查詢,顯示查詢成果(成果是0條、1頁、多頁狀況)IPO2書目編輯采編部1輸入完整圖書信息,輸入不完整圖書信息、輸入錯誤圖書信息,重復輸入IPO3圖書注銷采購部1注銷既有圖書、注銷不存在圖書IPO31新書發布采購部2缺書采購到館后,告知登記讀者IPO4缺書登記讀者2對的和完善缺書信息,對的但不完善缺書信息,重復錄入缺書信息IPO5圖書采購采編部2采購缺書登記圖書,重復采購,超量采購IPO6預訂讀者2對的和完善預訂數據,對的但不完善預訂數據,無效預訂數據,相似預訂數據IPO7取消預訂讀者2取消已經預訂圖書、取消沒有預訂圖書、重復取消同一條預訂記錄IPO8更新系統參數系統管理員1在XML文獻中定義各種參數值,在DTD文獻中定義參數模型,在XLS中定義參數顯示格式IPO81更新懲罰規則系統管理員1在XML文獻中定義懲罰規則,在DTD文獻中定義參數模型,在XLS中定義參數顯示格式IPO9懲罰流通部1輸入超期懲罰、丟失懲罰和破損懲罰信息,且測試不同日期、不同價格圖書、不同頁數信息IPO10借書解決流通部1對的和完善借書信息,對的但不完善借書信息,無效借書信息,重復借書信息,超量借書,借預訂圖書,續借IPO101有效性檢查流通部1輸入有效/無效讀者號,有效/無效圖書號,借書已超量,有延期書,0庫存書IPO11讀者管理辦公室1輸入對的讀者信息、錯誤讀者信息和無效讀者信息IPO12還書流通部1還1本書/多本書,還過期書,還書有預訂,還無效圖書(沒有借書記錄)IPO121催還告知自動觸發3系統參數中設立催還日期,檢查系統能否按照設立日期自動發出催還郵件IPO13預訂告知自動觸發1檢查系統自動觸發1條/多條預訂到書告知,給有效郵箱、無效郵箱分別檢查系統5.目的系統界面與接口需求(InterfaceofTargetSystem)5.1界面需求(InterphaseRequirement)界面整體特點以便、簡潔、美觀、一致等。(1)輸入設備:鍵盤、鼠標、條碼掃描器、掃描儀;(2)輸出設備:顯示屏、打印機;(3)顯示風格:藍色背景為主,界面簡約簡樸,功能實現突出;(4)顯示方式:1024*768;(5)輸出格式:列表顯示、按序輸出。5.2接口需求(InterfaceRequirement)由于本項目只是實現校內圖書借閱查詢管理功能,因而所需接口僅限于圖書館辦公室管理人員控制接口。用于管理人員對整個系統進行必要測試維護,保證整個系統順利運營。6.目的系統其她需求(OtherRequirementsofTargetSystem)6.1安全性(Security) 由于圖書信息和讀者信息都是學校內部隱私信息,因而,系統安全性必要得到較好保證。6.2可靠性(Dependability) 圖書查詢需要最后有明確查詢成果,因而查詢過程可靠性必不可少。此外,這也是保證系統可以正常運轉運營重要前提。6.3靈活性(Agility) 圖書信息量較大,因而,查詢時必要采用靈活查詢辦法,如分類、模糊查詢等,保證查詢效率和靈活性。7.目的系統假設與約束條件(SupposeandRestrictionofTargetSystem)本系統只是內部運營簡樸圖書管理系統,外部限制幾乎可以不必考慮。重要限制在于內部軟硬件供應和保證,總體問題不大,相信完畢后可以盡快投入運營。三、設計規格闡明書完畢人:1.引言(Introduction)本章對該文檔目、功能范疇、術語、有關文檔、參照資料、版本更新進行闡明。1.1目(Purpose)本文檔目旨在推動軟件工程規范化,使設計人員遵循統一概要設計書寫規范,節約制作文檔時間,減少圖書管理系統實現風險,做到系統設計資料規范性與全面性,以利于系統實現、測試、維護、版本升級等。1.2命名規則(NamingRule)變量對象命名規則:全局變量和局部變量均以能代表變量意義單詞表達,為加以區別,其中,全局變量首字母大寫、局部變量則全小寫。數據庫對象命名規則:為以便理解,數據庫建立時有關表名命名也采用代表特定意義英文字母表達。表名首字母大寫,別的一律大寫。1.3術語定義(TermsGlossary)序號術

稱術

義1總體構造軟件系統總體邏輯構造。按照不同設計辦法,有不同總體邏輯構造。若采用面向功能或面向數據設計辦法,則總體邏輯構造為一樹形功能模塊構造圖。若采用面向對象或面向部件(構件)設計辦法,則總體邏輯構造為部件(構件)組裝圖2外部接口本軟件系統與其她軟件系統之間接口,接口設施可以是中間件。接口描述涉及:傳播方式、帶寬、數據構造、傳播頻率、傳播量、傳播合同3數據構造數據構造涉及:數據庫表構造、其她數據構造等4概念數據模型CDM關系數據庫邏輯設計模型,叫做概念數據模型。重要內容涉及一張邏輯E-R圖及其相應數據字典5物理數據模型PDM關系數據庫物理設計模型,叫做物理數據模型。重要內容涉及一張物理表關系圖及其相應數據字典6視圖在基表或其她視圖之上建立一張虛表,叫做視圖,它具備物理表許多性質,在數據解決和授權上很有用7角色數據庫中享有某些特權操作顧客,叫做角色。角色權利通過授權來實現8子系統具備相對獨立功能小系統叫做子系統。一種大軟件系統可以劃分為各種子系統,每個子系統可由各種模塊或各種部件構成9模塊具備功能獨立、能被調用信息單元叫做模塊。模塊是構造化設計中概念10內部接口軟件系統內部各子系統之間、各部件之間、各模板之間接口,叫做內部接口。接口描述涉及:調用方式、入口信息、出口信息等11有關文獻有關文獻是指當本文獻內容變更后,也許引起變更其她文獻。如需求分析報告、詳細設計闡明書、測試籌劃、顧客手冊12參照資料參照資料是指本文獻書寫時用到其她資料。如各種關于規范、模板、原則、準則1.4參照資料(References)[1]顧客需求報告[2]數據庫設計規范[3]命名規范1.5有關文檔(RelatedDocuments)[1]源程序清單[2]測試籌劃及報告[3]《顧客使用手冊》2.總體設計(DesignofCollective)2.1體系構造設計(DesignofArchitecture)總系統體系構造模型:子系統模型:學生登陸系統——SS1: 流通組系統——SS2:備注:借書系統、還書系統見學生登陸系統。編目人員系統——SS3:采購人員系統——SS4:2.2子系統清單(SubsystemList)子系統編號子系統功能簡述子系統之間關系SS1學生可以進行借書、還書操作通過流通組工作人員完畢功能SS2流通組完畢詳細借書、還書操作與學生登陸有交集SS3錄入圖書信息和注銷圖書與采購人員系統有交集SS4負責采購圖書并交予編目人員與編目人員系統有功能交集2.3模塊設計(ModuleDesign)借書系統——M1:還書系統——M2:2.4功能模塊清單(ModuleList) 模塊清單表:模塊編號模塊功能簡述M1實現借書系統中各種功能實現,以及各種借書時狀況解決M2實現還書系統中各種功能實現,以及各種還書時狀況解決3.數據構造設計(DesignofDataStructure)3.1數據庫表名清單(DBTableList)數據庫表名清單表:序號中文表名英文表名表功能闡明1學生表Student記錄學生基本信息、涉及已借圖書信息,在借圖書信息等。2圖書表Book記錄圖書館圖書信息,以及圖書狀態——借出、應還日期等等。3缺書表Qbook記錄學生但愿圖書館有書,用于采購人員及時采購圖書。3.2數據庫表之間關系闡明(RelationofDBTable)E-R圖:3.3數據庫表詳細清單(ParticularListofDBTable)詳細清單用列表給出:表名:圖書表序號字段中文名字段英文名類型空否默認值主鍵/外鍵1書名Book_namefloat否無\2索書號Book_numberfloat否無主鍵3出版社Pressfloat否無\4出版日期Timedate否無\5圖書狀態Messagefloat\無\6借出應還日期Borrow_timefloat\無\7類別Book_classfloat\無\8預約人學號Order_numberfloat\無\表名:學生表序號字段中文名字段英文名類型空否默認值主鍵/外鍵1學號Numberfloat否無主鍵2班級Classfloat否無\3姓名Namefloat否無\4性別Sexchar否F\5已借圖書數量Countint\無\6在借圖書信息Borrowfloat\無\7超期圖書信息Extendfloat\無\8預約圖書信息Order_bookfloat\無\表名:缺書表序號字段中文名字段英文名類型空否默認值主鍵/外鍵1書名Book_namefloat否無主鍵2登記日期Book_timefloat否無\3出版社Press1float否無\4出版日期Time1date否無\四、源程序清單完畢人:1數據庫連接(ModuleName)1.1描述(Description)實現數據庫連接。1.2代碼(Program)usingSystem;usingSystem.Data;usingSystem.Configuration;usingSystem.Web;usingSystem.Web.Security;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.WebControls.WebParts;usingSystem.Web.UI.HtmlControls;usingSystem.Data.SqlClient;///<summary>///DataBase摘要闡明///</summary>publicclassDataBase:IDisposable{ publicDataBase() { // //TODO:在此處添加構造函數邏輯 // }privateSqlConnectioncon;//創立連接對象#region打開數據庫連接///<summary>///打開數據庫連接.///</summary>privatevoidOpen(){//打開數據庫連接if(con==null){con=newSqlConnection(ConfigurationManager.AppSettings["ConnectionString"]);}if(con.State==System.Data.ConnectionState.Closed)con.Open();}#endregion#region關閉連接///<summary>///關閉數據庫連接///</summary>publicvoidClose(){if(con!=null)con.Close();}#endregion#region釋放數據庫連接資源///<summary>///釋放資源///</summary>publicvoidDispose(){//確認連接與否已經關閉if(con!=null){con.Dispose();con=null;}}#endregion#region傳入參數并且轉換為SqlParameter類型///<summary>///轉換參數///</summary>///<paramname="ParamName">存儲過程名稱或命令文本</param>///<paramname="DbType">參數類型</param></param>///<paramname="Size">參數大小</param>///<paramname="Value">參數值</param>///<returns>新parameter對象</returns>publicSqlParameterMakeInParam(stringParamName,SqlDbTypeDbType,intSize,objectValue){returnMakeParam(ParamName,DbType,Size,ParameterDirection.Input,Value);}///<summary>///初始化參數值///</summary>///<paramname="ParamName">存儲過程名稱或命令文本</param>///<paramname="DbType">參數類型</param>///<paramname="Size">參數大小</param>///<paramname="Direction">參數方向</param>///<paramname="Value">參數值</param>///<returns>新parameter對象</returns>publicSqlParameterMakeParam(stringParamName,SqlDbTypeDbType,Int32Size,ParameterDirectionDirection,objectValue){SqlParameterparam;if(Size>0)param=newSqlParameter(ParamName,DbType,Size);elseparam=newSqlParameter(ParamName,DbType);param.Direction=Direction;if(!(Direction==ParameterDirection.Output&&Value==null))param.Value=Value;returnparam;}#endregion#region執行參數命令文本(無數據庫中數據返回)///<summary>///執行命令///</summary>///<paramname="procName">命令文本</param>///<paramname="prams">參數對象</param>///<returns></returns>publicintRunProc(stringprocName,SqlParameter[]prams){SqlCommandcmd=CreateCommand(procName,prams);cmd.ExecuteNonQuery();this.Close();//得到執行成功返回值return(int)cmd.Parameters["ReturnValue"].Value;}///<summary>///直接執行SQL語句///</summary>///<paramname="procName">命令文本</param>///<returns></returns>publicintRunProc(stringprocName){this.Open();SqlCommandcmd=newSqlCommand(procName,con);cmd.ExecuteNonQuery();this.Close();return1;}#endregion#region執行參數命令文本(有返回值)///<summary>///執行查詢命令文本,并且返回DataSet數據集///</summary>///<paramname="procName">命令文本</param>///<paramname="prams">參數對象</param>///<paramname="tbName">數據表名稱</param>///<returns></returns>publicDataSetRunProcReturn(stringprocName,SqlParameter[]prams,stringtbName){SqlDataAdapterdap=CreateDataAdaper(procName,prams);DataSetds=newDataSet();dap.Fill(ds,tbName);this.Close();//得到執行成功返回值returnds;}///<summary>///執行命令文本,并且返回DataSet數據集///</summary>///<paramname="procName">命令文本</param>///<paramname="tbName">數據表名稱</param>///<returns>DataSet</returns>publicDataSetRunProcReturn(stringprocName,stringtbName){SqlDataAdapterdap=CreateDataAdaper(procName,null);DataSetds=newDataSet();dap.Fill(ds,tbName);this.Close();//得到執行成功返回值returnds;}#endregion#region將命令文本添加到SqlDataAdapter///<summary>///創立一種SqlDataAdapter對象以此來執行命令文本///</summary>///<paramname="procName">命令文本</param>///<paramname="prams">參數對象</param>///<returns></returns>privateSqlDataAdapterCreateDataAdaper(stringprocName,SqlParameter[]prams){this.Open();SqlDataAdapterdap=newSqlDataAdapter(procName,con);dap.SelectCommand.CommandType=CommandType.Text;//執行類型:命令文本if(prams!=null){foreach(SqlParameterparameterinprams)dap.SelectCommand.Parameters.Add(parameter);}//加入返回參數dap.SelectCommand.Parameters.Add(newSqlParameter("ReturnValue",SqlDbType.Int,4,ParameterDirection.ReturnValue,false,0,0,string.Empty,DataRowVersion.Default,null));returndap;}#endregion#region將命令文本添加到SqlCommand///<summary>///創立一種SqlCommand對象以此來執行命令文本///</summary>///<paramname="procName">命令文本</param>///<paramname="prams"命令文本所需參數</param>///<returns>返回SqlCommand對象</returns>privateSqlCommandCreateCommand(stringprocName,SqlParameter[]prams){//確認打開連接this.Open();SqlCommandcmd=newSqlCommand(procName,con);cmd.CommandType=CommandType.Text;//執行類型:命令文本//依次把參數傳入命令文本if(prams!=null){foreach(SqlParameterparameterinprams)cmd.Parameters.Add(parameter);}//加入返回參數cmd.Parameters.Add(newSqlParameter("ReturnValue",SqlDbType.Int,4,ParameterDirection.ReturnValue,false,0,0,string.Empty,DataRowVersion.Default,null));returncmd;}#endregion}}2讀者信息(ModuleName)2.1描述(Description)讀者信息編碼實現2.2代碼(Program)usingSystem;usingSystem.Data;usingSystem.Configuration;usingSystem.Web;usingSystem.Web.Security;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.WebControls.WebParts;usingSystem.Web.UI.HtmlControls;usingSystem.Data.SqlClient;publicclassReaderManage{DataBasedata=newDataBase();privatestringid;privatestringname;privatestringsex;privatestringtype;privateDateTimebirthday=Convert.ToDateTime(DateTime.Now.ToShortDateString());privatestringpapertype;privatestringpapernum;privatestringtel;privatestringemail;privateDateTimecreatedate=Convert.ToDateTime(DateTime.Now.ToShortDateString());privatestringoperater;privatestringremark;privateintborrownum=0;privateintnum=0; publicReaderManage() { // //TODO:在此處添加構造函數邏輯 // }publicstringID{get{returnid;}set{id=value;}}publicstringName{get{returnname;}set{name=value;}}publicstringSex{get{returnsex;}set{sex=value;}}publicstringType{get{returntype;}set{type=value;}}publicDateTimeBirthday{get{returnbirthday;}set{birthday=value;}}publicstringPaperType{get{returnpapertype;}set{papertype=value;}}publicstringPaperNum{get{returnpapernum;}set{papernum=value;}}publicstringTel{get{returntel;}set{tel=value;}}publicstringEmail{get{returnemail;}set{email=value;}}///<summary>///級別日期///</summary>publicDateTimeCreateDate{get{returncreatedate;}set{createdate=value;}}publicstringOperater{get{returnoperater;}set{operater=value;}}publicstringRemark{get{returnremark;}set{remark=value;}}publicintBorrowNum{get{returnborrownum;}set{borrownum=value;}}publicintNum{get{returnnum;}set{num=value;}}publicstringGetReaderID(){DataSetds=GetAllReader("tb_reader");stringstr="";if(ds.Tables[0].Rows.Count==0)str="D1001";elsestr="D"+(Convert.ToInt32(ds.Tables[0].Rows[ds.Tables[0].Rows.Count-1][0].ToString().Substring(1,4))+1);returnstr;}publicintAddReader(ReaderManagereadermanage){SqlParameter[]prams={ data.MakeInParam("@id",SqlDbType.VarChar,30,readermanage.ID),data.MakeInParam("@name",SqlDbType.VarChar,50,readermanage.Name),data.MakeInParam("@sex",SqlDbType.Char,4,readermanage.Sex),data.MakeInParam("@type",SqlDbType.VarChar,50,readermanage.Type),data.MakeInParam("@birthday",SqlDbType.DateTime,8,readermanage.Birthday),data.MakeInParam("@papertype",SqlDbType.VarChar,20,readermanage.PaperType),data.MakeInParam("@papernum",SqlDbType.VarChar,30,readermanage.PaperNum),data.MakeInParam("@tel",SqlDbType.VarChar,20,readermanage.Tel),data.MakeInParam("@email",SqlDbType.VarChar,50,readermanage.Email),data.MakeInParam("@createdate",SqlDbType.DateTime,8,readermanage.CreateDate),data.MakeInParam("@operater",SqlDbType.VarChar,30,readermanage.Operater),data.MakeInParam("@remark",SqlDbType.VarChar,4000,readermanage.Remark), };return(data.RunProc("INSERTINTOtb_reader(id,name,sex,type,birthday,paperType,paperNum,tel,email,createDate,operater,remark)"+"VALUES(@id,@name,@sex,@type,@birthday,@papertype,@papernum,@tel,@email,@createdate,@operater,@remark)",prams));}publicintUpdateReader(ReaderManagereadermanage){SqlParameter[]prams={ data.MakeInParam("@id",SqlDbType.VarChar,30,readermanage.ID),data.MakeInParam("@name",SqlDbType.VarChar,50,readermanage.Name),data.MakeInParam("@sex",SqlDbType.Char,4,readermanage.Sex),data.MakeInParam("@type",SqlDbType.VarChar,50,readermanage.Type),data.MakeInParam("@birthday",SqlDbType.DateTime,8,readermanage.Birthday),data.MakeInParam("@papertype",SqlDbType.VarChar,20,readermanage.PaperType),data.MakeInParam("@papernum",SqlDbType.VarChar,30,readermanage.PaperNum),data.MakeInParam("@tel",SqlDbType.VarChar,20,readermanage.Tel),data.MakeInParam("@email",SqlDbType.VarChar,50,readermanage.Email),data.MakeInParam("@createdate",SqlDbType.DateTime,8,readermanage.CreateDate),data.MakeInParam("@operater",SqlDbType.VarChar,30,readermanage.Operater),data.MakeInParam("@remark",SqlDbType.VarChar,4000,readermanage.Remark), };return(data.RunProc("updatetb_readersetname=@name,sex=@sex,type=@type,birthday=@birthday,paperType=@papertype,paperNum=@papernum,"+"tel=@tel,email=@email,createDate=@createdate,operater=@operater,remark=@remarkwhereid=@id",prams));}publicintUpdateBorrowNum(ReaderManagereadermanage){SqlParameter[]prams={ data.MakeInParam("@id",SqlDbType.VarChar,30,readermanage.ID),data.MakeInParam("@borrownum",SqlDbType.Int,4,readermanage.BorrowNum),data.MakeInParam("@num",SqlDbType.Int,4,readermanage.Num), };return(data.RunProc("updatetb_readersetborrownum=@borrownum,num=@numwhereid=@id",prams));}publicintDeleteReader(ReaderManagereadermanage){SqlParameter[]prams={ data.MakeInParam("@id",SqlDbType.VarChar,30,readermanage.ID), };return(data.RunProc("deletefromtb_readerwhereid=@id",prams));}publicDataSetQueryReaderByCode(ReaderManagereadermanage,stringname){SqlParameter[]prams={ data.MakeInParam("@id",SqlDbType.VarChar,30,readermanage.ID+"%"), };return(data.RunProcReturn("select*fromtb_readerwhereidlike@id",prams,name));}publicDataSetQueryReaderByName(ReaderManagereadermanage,stringname){SqlParameter[]prams={ data.MakeInParam("@name",SqlDbType.VarChar,50,readermanage.Name+"%"), };return(data.RunProcReturn("select*fromtb_readerwherenamelike@name",prams,name));}publicDataSetQueryReaderByType(ReaderManagereadermanage,stringname){SqlParameter[]prams={ data.MakeInParam("@type",SqlDbType.VarChar,50,readermanage.Type+"%"), };return(data.RunProcReturn("select*fromtb_readerwheretypelike@type",prams,name));}publicDataSetGetAllReader(stringname){return(data.RunProcReturn("select*fromtb_readerORDERBYid",name));}publicDataSetReaderLogin(ReaderManagereadermanage){SqlParameter[]prams={data.MakeInParam("@id",SqlDbType.VarChar,30,readermanage.ID),data.MakeInParam("@name",SqlDbType.VarChar,50,readermanage.Name), };return(data.RunProcReturn("SELECT*FROMtb_readerWHERE(id=@id)AND(name=@name)",prams,"tb_reader"));}}3登陸系統(ModuleName)3.1描述(Description)登陸系統實現編碼。3.2代碼(Program)usingSystem;usingSystem.Data;usingSystem.Configuration;usingSystem.Web;usingSystem.Web.Security;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.WebControls.WebParts;usingSystem.Web.UI.HtmlControls;usingSystem.Data.SqlClient;publicclassAdminManage{privatestringid;privatestringname;privatestringpwd; publicAdminManage() { // //TODO:在此處添加構造函數邏輯 //}DataBasedata=newDataBase();publicstringID{get{returnid;}set{id=value;}}publicstringName{get{returnname;}set{name=value;}}publicstringPwd{get{returnpwd;}set{pwd=value;}}publicstringGetAdminID(){DataSetds=GetAdmin("tb_admin");stringstr="";if(ds.Tables[0].Rows.Count==0)str="G1001";elsestr="G"+(Convert.ToInt32(ds.Tables[0].Rows[ds.Tables[0].Rows.Count-1][0].ToString().Substring(1,4))+1);returnstr;}publicintAddAdmin(AdminManageadminM){SqlParameter[]prams={ data.MakeInParam("@id",SqlDbType.VarChar,50,adminM.ID),data.MakeInParam("@name",SqlDbType.VarChar,50,adminM.Name),data.MakeInParam("@pwd",SqlDbType.VarChar,30,adminM.Pwd), };return(data.RunProc("INSERTINTOtb_admin(id,name,pwd)VALUES(@id,@name,@pwd)",prams));}publicintUpdateAdmin(AdminManageadminM){SqlParameter[]prams={data.MakeInParam("@name",SqlDbType.VarChar,50,adminM.Name),data.MakeInParam("@pwd",SqlDbType.VarChar,30,adminM.Pwd), };return(data.RunProc("updatetb_adminsetpwd=@pwdwherename=@name",prams));}publicintDeleteAdmin(AdminManageadminM){SqlParameter[]prams={ data.MakeInParam("@name",SqlDbType.VarChar,50,adminM.Name), };return(data.RunProc("deletefromtb_adminwherename=@name",prams));}publicDataSetLogin(AdminManageadminM){SqlParameter[]prams={data.MakeInParam("@name",SqlDbType.VarChar,50,adminM.Name),data.MakeInParam("@pwd",SqlDbType.VarChar,30,adminM.Pwd), };return(data.RunProcReturn("SELECT*FROMtb_adminWHERE(name=@name)AND(pwd=@pwd)",prams,"tb_admin"));}publicDataSetGetAllAdminByName(AdminManageadminM,stringtbName){SqlParameter[]prams={ data.MakeInParam("@name",SqlDbType.VarChar,50,adminM.Name+"%"), };return(data.RunProcReturn("select*fromtb_adminwherenamelike@name",prams,tbName));}publicDataSetGetAdmin(stringtbName){return(data.RunProcReturn("select*fromtb_adminORDERBYid",tbName));}}四、測試報告完畢人:1.概述(Summary)1.1項目簡介(ProjectSynopsis)該項目為簡樸管理系統,重要實現圖書借還解決,以及圖書館內有關圖書管理工作。目的是實現讀者借還書信息化,并且運用Internet網絡實現讀者與圖書館之間互動和圖書館人性化管理。1.2術語定義(TermsGlossary)需求分析:在建立一種新或變化一種現存電腦系統時描寫新系統目、范疇、定義和功能時所要做所有工作。系統設計:設計數據庫構造以及設計模塊控制流程,明確軟件系統"如何做"。需求規格闡明書:經可行性研究后,對規定解問題重新進行描述,使之更能精確地反映實際業務流程,導出并評價可供選取解法,推薦行動方針。系統設計闡明書:闡明對程序系統設計考慮,涉及程序系統基本解決流程、程序系統組織構造、模塊劃分、功能分派、接口設計、運營設計、數據構造設計和出錯解決設計等,為程序詳細設計提供基本。設計規格闡明書:在進行系統分析后,對整體設計把握體現,涉及各種設計參數定義,以及設計元素、風格確立等。出庫表:存儲已銷售書籍數據。入庫表:存儲入庫書籍數據。購書表:存儲提交購書信息。缺書登記表:存儲缺少書籍信息。1.3參照資料(References)[1]《需求規格闡明書》[2]《設計規格闡明書》[3]《顧客需求報告》[4]《設計命名規范

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論