軟件工程 系統(tǒng)設計
《軟件工程 系統(tǒng)設計》由會員分享,可在線閱讀,更多相關《軟件工程 系統(tǒng)設計(35頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、軟件工程 系統(tǒng)設計 一、實驗目的 n 掌握軟件體系結(jié)構模型; n 掌握使用過程設計工具描述模塊的數(shù)據(jù)結(jié)構和算法; n 了解人機界面設計; n 掌握概要設計說明書和詳細設計說明書的撰寫 二、實驗原理—概要設計 n ⑴軟件概要設計的基本要點 n 基本目的是用比較抽象概括的方式確定系統(tǒng)如何完成預定的任務,確定系統(tǒng)的物理配置方案,確定系統(tǒng)的結(jié)構。 n ⑵系統(tǒng)分析與設計的關系 n 系統(tǒng)分析的基本任務是定義用戶所需要的軟件任務,也就是回答系統(tǒng)必須“做什么”這個問題。系統(tǒng)設計的基本任務是設計實現(xiàn)目標系統(tǒng)的具體方案,也就是回答“怎樣做”這個問題。 二、實驗原理—詳細設計 n ⑴軟件詳細
2、設計的基本要點 n 關鍵任務是確定怎樣具體地實現(xiàn)用戶需要的軟件系統(tǒng)。 n 除了保證軟件可靠性之外,使程序可讀性好、容易理解、容易測試、容易修改和維護。 n 結(jié)構化程序設計技術是實現(xiàn)上述目標的基本保證,是進行詳細設計的邏輯基礎。 n 人機界面設計是接口設計的一個重要組成部分。在設計人機界面的過程中,必須充分重視并認真處理好系統(tǒng)響應時間、用戶幫助設施、出錯信息處理和命令交互等4個設計問題。 n 過程設計在數(shù)據(jù)設計、體系結(jié)構設計和接口設計完成之后進行,任務是設計算法。 n 過程設計的工具可分為圖形、表格和語言3類,應根據(jù)需要選用適當?shù)墓ぞ摺? n ⑵人機界面設計 n 人機界面的設計質(zhì)量
3、,直接影響用戶對軟件產(chǎn)品的評價。 n 人機界面設計是接口設計的一個重要的組成部分。對于交互式系統(tǒng)來說,人機界面設計和數(shù)據(jù)設計、體系結(jié)構設計及過程設計一樣重要。 n 使用基于原型的系統(tǒng)化的設計策略,是成功地設計人機界面的關鍵。 n 用戶界面設計是一個迭代的過程,也就是說,通常先創(chuàng)建設計模型,再用原型實現(xiàn)這個設計模型,并由用戶試用和評估,然后根據(jù)用戶意見進行修改,直到用戶滿意為止。 n ⑶過程設計 n 過程設計的任務是要設計出程序的“藍圖”,以后程序員將根據(jù)這個藍圖寫出實際的程序代碼。過程設計的結(jié)果基本上決定了最終的程序代碼的質(zhì)量。 n 衡量程序的質(zhì)量不僅要看它的邏輯是否正確,性能是否
4、滿足要求,更主要的是要看它是否容易閱讀和理解。 n 過程設計的目標不僅僅是正確實現(xiàn)每個模塊的功能,更重要的是盡可能簡明易懂。 n 結(jié)構程序設計技術是實現(xiàn)上述目標的關鍵技術。 n ⑷過程設計工具 n 描述程序處理過程的工具稱為過程設計工具,它們可以分為圖形、表格和語言三類。 n 不論是哪類工具,對它們的基本要求都是要提供對設計的無歧義的描述,也就是應該指明控制流程、處理功能、數(shù)據(jù)組織以及其他方面的實現(xiàn)細節(jié),從而在編碼階段能把對設計的描述直接翻譯成程序代碼。 n 這類工具應該盡可能直觀、易學、易懂。 三、實驗內(nèi)容與步驟 n 軟件體系結(jié)構模型 n 模塊過程設計與界面設計 n 撰寫
5、系統(tǒng)設計說明書 圖書館管理系統(tǒng) C.概要設計說明書 一、引言 1.1編寫目的 為完善圖書管理系統(tǒng)軟件的開發(fā)途徑及應用方法,以提高開發(fā)效率,使應用更為方便。根據(jù)《需求規(guī)格說明書》,在仔細考慮討論之后,我們又進一步對《圖書管理系統(tǒng)》軟件的功能劃分、數(shù)據(jù)結(jié)構、軟件總體結(jié)構有了進一步的認識。我們把討論的結(jié)果記錄下來,作為概要設計說明書,并作為進一步詳細設計軟件的基礎。 1.2背景 說明: a. 待開發(fā)軟件系統(tǒng)的名稱:圖書管理系統(tǒng) b. 列出此項目的任務提出者是本小組成員,開發(fā)者也為本小組成員、用戶是學校圖書館。 1.3定義 開發(fā)(develop):除了單純的開發(fā)活動外,還包括維
6、護活動。 項目(project):向顧客交付的最終的全部產(chǎn)品,包括程序及各種文檔,以及開發(fā)活動所需資源經(jīng)費等各種信息。 項目開發(fā)計劃(project development plan):把項目與過程聯(lián)系起來的計劃方案。 產(chǎn)品生命周期(product life cycle):產(chǎn)品從構思到不可在使用的持續(xù)時間。 1.4參考資料 《軟件工程導論》 —— 張海藩 編著 清華大學出版社 《數(shù)據(jù)庫系統(tǒng)概論》 —— 薩師煊 王 珊 編著 高等教育出版社 《Visual Basic 數(shù)據(jù)庫系統(tǒng)開發(fā)實例導航(第二版)》 —— 劉 韜駱娟何旭洪 編著 人民郵電出版社 《C#
7、程序設計教程》——曾強聰編著中國水利水電出版社 二總體設計 2.1需求規(guī)定 主要輸入輸出項目: 圖書信息:(圖書編號、圖書名稱、圖書ISBN號、作者、出版社、類型、價格、庫存量、副本總量、圖書總數(shù)) 學生信息:(學生編號、學生姓名、性別、入校時間、畢業(yè)時間) 借書登記:(借書編號、學生編號、結(jié)束時間、歸還時間、是否歸還) 還書登記:(圖書編號、圖書名稱、歸還時間、作者、出版社、 2.2運行環(huán)境 硬件環(huán)境: PC機配置:奔騰133 、內(nèi)存1GB以上PC機,內(nèi)存要求不得低于1GB,硬盤大于20G的PC臺式機和便攜式電腦; 軟件環(huán)境: Windows2000\XP
8、 SQL Server2000 C# 2.3基本設計概念和處理流程 該系統(tǒng)的主程序流程圖如下圖所示: 2.4功能需求與程序的關系 本條用一張如下的矩陣圖說明各項功能需求的實現(xiàn)同各塊程序的分配關系: 創(chuàng)建 查找 修改 刪除 圖書信息管理(管理員) √ √ √ √ 學生信息管理(管理員) √ √ √ √ 學生信息查詢(學生) √ 查詢圖書信息(學生) √ 歸還圖書(管理員) √ √ √ √ 借閱圖書(管理員) √ √ √ √ 2.5人工處理過程 管理員登錄:圖書管理員需要手動輸入
9、登錄信息驗證身份登錄系統(tǒng)后方能進行操作。 圖書入庫:對于新購圖書,管理員需要手動對其進行分類進行編號,并把圖書基本信息錄入計算機。 修改圖書信息:學生借閱圖書時,管理員需要對該圖書進行登記,記錄被借閱圖書信息和學生信息。當學生歸還圖書時,同樣需要對圖書信息進行修改。 三接口設計 3.1用戶接口 向用戶提供命令軟件回答對應信息 操作員登記添加用戶 學生登記添加學生信息 學生查詢學生信息查詢 圖書登記管理員登記圖書信息 借閱登記管理員登記學生的借閱信息 借閱查詢管理員查詢學生的借閱情況 3.2外部接口 接口傳遞信息 軟件接口:與數(shù)據(jù)庫接口圖書信息學生信息 3.3內(nèi)
10、部接口 接口 傳遞信息 圖書信息管理 錄入 圖書信息:(圖書編號、圖書名稱、圖書ISBN號、作者、出版社、類型、價格、庫存量、副本總量、圖書總數(shù)) 圖書信息管理 修改 圖書信息:(圖書編號、圖書名稱、圖書ISBN號、作者、出版社、類型、價格、庫存量、副本總量、圖書總數(shù)) 學生信息管理 添加 學生信息:(學生編號、學生姓名、性別、入校時間、畢業(yè)時間) 學生信息管理 修改 學生信息:(學生編號、學生姓名、性別、入校時間、畢業(yè)時間) 借書登記 登記借閱圖書以及學生信息 借書登記:(借書編號、學生編號、結(jié)束時間、歸還時間、是否歸還) 還書登記 修改借書登記的信息
11、 還書登記:(圖書編號、圖書名稱、歸還時間、作者、出版社、) 四 運行設計 4.1運行模塊組合 對系統(tǒng)施加不同的外界運行控制時所引起的各種不同的運行模塊組合,以及每種運行所歷經(jīng)的內(nèi)部模塊和支持軟件。 4.2運行控制 運行控制 控制方法 學生信息管理 管理員對學生信心進行管理,包括增加學生用戶,修改用戶信息,以及刪除學生信息 學生信息查詢 用戶可以對學生的信息進行查詢 圖書信息登記 錄入新的圖書信息,以及對已有圖書的各項信息進行修改,查詢,刪除等 圖書信息查詢 用戶對所要借閱的圖書信息進行查詢 借閱登記 管理員登記學生所借圖書以及學生本人的信息 借閱查詢
12、 管理員對學生或者所對應圖書的信息進行查詢 4.3運行時間 檢索任務所需時間:<3秒 執(zhí)行任務所需時間:<3秒 五系統(tǒng)數(shù)據(jù)結(jié)構設計 5.1邏輯結(jié)構設計要點 1.圖書信息表(tBook),其字段列表如表5-1-1所示。 表5-1-1 圖書信息表的結(jié)構 序號 字段名稱 字段說明 類型 位數(shù) 屬性 備注 1 cBooksID 圖書編號 文本 7 必須非空 2 cBooksName 圖書名稱 文本 20 必須非空 3 cBooksISBN 圖書ISBN號 文本 15 可為空 4 cBooksAuthor 圖書作者
13、文本 10 可為空 5 cBooksPublisher 圖書出版社 文本 20 可為空 6 cBooksType 圖書類型 文本 16 可為空 7 smBooksPrice 圖書價格 貨幣 可為空 8 iBooksStoreQuan 圖書庫存量 整數(shù) 可為空 9 iBooksLeftQuant 圖書副本數(shù)量 整數(shù) 可為空 10 iBooksTotalQuan 圖書總數(shù) 整數(shù) 可為空 2.圖書借閱登記表(tBorrow),其字段列表如表5-1-2所示。 表5-1-2 圖書借閱登
14、記表的結(jié)構 序號 字段名稱 字段說明 類型 位數(shù) 屬性 備注 1 cBorrowID 借書編號 文本 6 必須非空 2 cVipID 學生編號 文本 6 必須非空 3 cBooksID 圖書編號 文本 7 必須非空 4 cBorrwTime 借書時間 時間日期 可為空 5 cReturnTime 還書時間 時間日期 可為空 6 cReturn 是否歸還 文本 1 可為空 3.圖書歸還登記表(tReturn),其字段列表如表5-1-3所示。 表5-1-3 圖書歸還登記表的結(jié)構
15、 序號 字段名稱 字段說明 類型 位數(shù) 屬性 備注 1 cBorrowID 借書編號 文本 6 必須非空 2 cVipID 學生編號 文本 6 必須非空 3 cBooksID 圖書編號 文本 7 必須非空 4 cBorrwTime 借書時間 時間日期 可為空 5 cReturnTime 還書時間 時間日期 必須非空 6 cReturn 是否歸還 文本 1 必須非空 7 cNoReturn 歸還異常 文本 8 可為空 4.學生信息表(tVip),其字段列表如表5
16、-1-4所示。 表5-1-4 學生信息表的結(jié)構 序號 字段名稱 字段說明 類型 位數(shù) 屬性 備注 1 cVipID 學生編號 文本 6 必須非空 2 cVipName 學生姓名 文本 10 必須非空 4 cVipSex 學生性別 文本 1 可為空 5 vipAddTime 學生入學時間 時間日期 必須非空 6 vipEndTime 學生畢業(yè)時間 時間日期 必須非空 5.管理員信息表(tOperators),其字段列表如表5-1-5所示。 表5-1-5 管理員信息表的結(jié)構 序號 字段名
17、稱 字段說明 類型 位數(shù) 屬性 備注 1 cOperatorID 管理員編號 文本 5 必須非空 2 cOperatorName 管理員姓名 文本 10 必須非空 3 cOperatorPassword 密碼 文本 6 必須非空 4 cOperatorAddTime 管理員加入時間 時間日期 10 必須非空 5.2數(shù)據(jù)結(jié)構與程序的關系 主模塊:連接數(shù)據(jù)庫 學生管理模塊: 學生信息管理模塊:管理員輸入帳號密碼進入系統(tǒng)后可以對學生信息進行管理,包括修改,插入,刪除等。 學生信息查詢模塊:管理員可以對學生信息進行查詢
18、,學生輸入學生的賬號密碼后,成功登陸后,學生可以對其信息進行查詢,輸入學生編號后,對應輸出學生姓名,性別,入校時間,畢業(yè)時間等。 圖書管理模塊: 圖書信息登記模塊:管理員對圖書信息進行登記,輸入相應的圖書信息,如圖書書名,作者,出版社。單價等信息。 圖書信息查詢模塊:學生和管理員都可以進行此操作,通過查詢數(shù)據(jù)庫,匹配要查找的圖書信息,包括讀入圖書號,圖書作者,圖書出版社 ,圖書單價等基本信息。 借閱管理模塊: 借閱登記模塊:管理員對圖書的借閱情況進行登記,記錄借書者的學生編號,學生姓名等學生信息以及圖書編號,圖書名稱,作者,出版社等圖書信息,并修改圖書狀態(tài)。 借閱查詢模塊:管理員和
19、學生都可以對圖書的借閱情況進行查詢,輸入讀者號,對應輸出學生姓名,性別,入校時間,畢業(yè)時間。輸入圖書號,對應輸出圖書書名,圖書作者,圖書出版社,圖書單價,圖書狀態(tài)。 歸還管理模塊: 讀入圖書編號,對應輸出借書記錄表中的學生編號,借書時間,應歸還時間等,修改圖書狀態(tài),刪除借書記錄表中的學生編號,圖書編號,借書時間等信息。 六 系統(tǒng)出錯處理設計 6.1出錯信息 出錯的位置 出錯的原因 提示信息 用戶名 輸入數(shù)據(jù)庫中不存在的用戶名 You are a not system user 用戶名密碼 輸入的密碼不正確 Password eroor,please check y
20、our passwprd 添加用戶 輸入已存在的用戶信息 用戶已存在 添加信息 添加信息必填信息不完整 信息必須完整 普通用戶操作權限 使用管理員的 你沒有該權限 出錯信息處理:學生或管理人員輸入的帳號和密碼不匹配或輸入不存在的帳號,系統(tǒng)應友好進行提示,如提示"您輸入的帳號或密碼錯誤,請重新輸入?。? 6.2補救措施 故障出現(xiàn)后可能采取的變通措施,包括: a. 后備技術說明準備采用的后備技術,當原始系統(tǒng)數(shù)據(jù)萬一丟失時啟用的副本的建立和啟動的技術,例如周期性地把磁盤信息記錄到磁帶上去就是對于磁盤媒體的一種后備技術; b. 降效技術說明準備采用的后備技術,使用另一個效率稍
21、低的系統(tǒng)或方法來求得所需結(jié)果的某些部分,例如一個自動系統(tǒng)的降效技術可以是手工操作和數(shù)據(jù)的人工記錄; c. 恢復及再啟動技術說明將使用的恢復再啟動技術,使軟件從故障點恢復執(zhí)行或使軟件從頭開始重新運行的方法。 圖書管理系統(tǒng) D.詳細設計說明 1.1 編寫目的 圖書管理系統(tǒng)詳細設計是設計的第三個階段,這個階段的主要任務是在圖書管理系統(tǒng)概要設計書基礎上,對概要設計中產(chǎn)生的功能模塊進行過程描述,設計功能模塊的內(nèi)部細節(jié),包括算法和詳細數(shù)據(jù)結(jié)構,為編寫源代碼提供必要的說明。 概要設計解決了軟件系統(tǒng)總體結(jié)構設計的問題,包括整個軟件系統(tǒng)的結(jié)構、模塊劃分、模塊功能和模塊間的聯(lián)系等。詳細設計則要解決
22、如何實現(xiàn)各個模塊的內(nèi)部功能,即模塊設計。具體的說,模塊設計就是要為已經(jīng)產(chǎn)生的圖書管理各子系統(tǒng)設計詳細的算法。但這并不等同于系統(tǒng)實現(xiàn)階段用具體的語言編碼,它只是對實現(xiàn)細節(jié)作精確的描述,這樣編碼階段就可以將詳細設計中對功能實現(xiàn)的描述,直接翻譯、轉(zhuǎn)化為用某種程序設計語言書寫的程序。 1.2 項目背景 為提高圖書信息的管理,借閱管理,查詢管理,統(tǒng)計及工作效率,給予用戶的要求開發(fā)《圖書管理系統(tǒng)》 1.3 定義 SQL :數(shù)據(jù)庫 C# :開發(fā)工具 2 總體設計 2.1 需求概述 按照需求分析文檔中的規(guī)格要求,使用給定圖書編號添加進書、借書、還書等等,使得信息傳遞準確、流暢。同時,系統(tǒng)最大限
23、度地實現(xiàn)易安裝,易維護性,易操作性,運行穩(wěn)定,安全可靠。 2.2 軟件結(jié)構模塊(軟件總體結(jié)構細化) 3 程序界面和代碼描述 3.1.1登錄模塊設計 登陸界面是圖書管理管理系統(tǒng)運行后首先打開的界面。在這個界面,用戶必須輸入預先設定好的用戶名以及密碼才能進入,這樣有利于防止他人在沒有授權的情況下進入系統(tǒng)。 1 功能說明: 用戶輸入登錄帳號和密碼,連接數(shù)據(jù)庫進入到操作界面。 2 流程圖: 需要的問題說明: (1) 錄入的密碼和用戶名不能為空; (2) 錄入數(shù)據(jù)后根據(jù)用戶的編號判斷授權。 登錄界面如圖所示: 問題說明:本窗體有兩個文本框textBoxIP,t
24、extBoxpassword是用作用戶輸入用戶名和密碼。查詢該用戶是否為合法的用戶,并判斷用戶的類別和權限。合法用戶進入系統(tǒng)的操作界面區(qū)。pub.dataSql()為連接數(shù)據(jù)庫的方法函數(shù),以后就不在講解 sqlselsect = "select * from Main_view where 登陸編號='"; sqlcon = new SqlConnection(pub.dataSql());//連接數(shù)據(jù)庫 sqlcon.Open(); logincon = new SqlCommand(sqlselsect + te
25、xtBoxIP.Text.Trim() + "'", sqlcon); loginer = logincon.ExecuteReader(); while (loginer.HasRows) { loginer.Read(); if ((textBoxpassword.Text).Equals(loginer.GetString(1).Trim())) { guanliindex guan = new
26、 guanliindex(); guan.Show(); return; } else { MessageBox.Show("密碼錯誤!"); textBoxpassword.Text = ""; textBoxpassword.Focus();
27、 return; } } sqlcon.Close(); MessageBox.Show("無此用戶名,請注冊后再登陸"); 當用戶沒有沒有填寫textBoxIP,textBoxpassword兩個文本框時而點擊登錄按鈕將不做任何操作。 3.1.2 圖書管理系統(tǒng)模塊(系統(tǒng)主操作界面) 管理系統(tǒng)模塊是用戶成功進入系統(tǒng)的操作界面:該界面包括了讀者下拉菜單、管理員的下拉菜單和一個工具欄。該窗體使用的是MDI容器,在這里不在說明怎么調(diào)用各個窗體。MDI容器防止相同的子窗體的重復出現(xiàn)的處理方法是: 構造一個
28、checkChildFrmExist函數(shù): private bool checkChildFrmExist(string childFrmName) { for (int i = 0; i < this.MdiChildren.Length; i++) { if (this.MdiChildren[i].Text == childFrmName) { this.MdiChildren[i].Activate();
29、 return true; } } return false; } 這個函數(shù)會把顯示的每個子窗體的名字存放在一個數(shù)組里面,在連接一個新的子窗體時先判斷該窗體是否以顯示(MdiChildren[i]里是否存在這個窗體的名字),如果該窗體已經(jīng)顯示就不用再彈出該窗體否則就彈出該子窗體。 最后根據(jù)用戶的權限顯示相應的下拉列名。權限是根據(jù)用戶登錄時從數(shù)據(jù)庫里面讀取的數(shù)據(jù)和用戶的登錄編號等數(shù)據(jù)傳入到系統(tǒng)操作界面當中,進行相應的處理。根據(jù)傳入的數(shù)據(jù)顯示相應的下拉
30、列表: if (public_Class.NU == "1") { this.toolStrip_Xiaoxi.Text = " 讀者編號: " + public_Class.NumID.ToString(); this.menuStrip2.Visible = true; //讀者下拉菜單 this.menuStrip1.Visible = false; } else if (p
31、ublic_Class.NU == "2") { this.toolStrip_Xiaoxi.Text = " 操作員編號: " + public_Class.NumID.ToString(); this.menuStrip1.Visible = true; //操作員下來菜單 this.menuStrip2.Visible = false; } 3.1.3 圖書編目模塊(書籍信息管理) 該模塊是給管理員或者操作員用的。功能是
32、管理員用作添加、修改、刪除相關信息的模塊。 實現(xiàn)該模塊首先是要把要維護圖書的存放的表查詢出來。然后給據(jù)文本框的一一對應相應的添加。本窗體共有7個文本框1個下拉框和兩個時間框,他們分別和(圖書表)的各個列相對應。 功能的流程圖如下所示: 需要的問題說明: (1) 操作員填寫的相關信息必須符合要求。 (2) 可以一次性添加多條圖書的信息。 (3) 點擊工具欄上面的添加按鈕,并沒有把用戶所輸入的數(shù)據(jù)添加到數(shù)據(jù)庫里,只是把它放在內(nèi)存里面。最后要點擊保存按鈕。 (4) 只要沒有彈出“添加成功”信息提示框,表明沒有添加成功。 功能描述: (1) 功能類型:添加數(shù)據(jù), (2) 功
33、能概述:添加圖書的相關信息,操作簡單。 (3) 操作權限:圖書管理人員。 (4) 前提業(yè)務:管理模塊 (5) 后繼業(yè)務:無 界面設計描述: 1 動作說明: 添加:是文本框的內(nèi)容添加到內(nèi)存表里面。 取消操作:放棄添加的內(nèi)容 保存:把一添加的內(nèi)容保存到熟數(shù)據(jù)庫里 退出:點擊按鈕,退出該窗體 2 界面展示如下圖: 連接數(shù)據(jù)庫,查詢圖書表中的信息,把查詢的結(jié)果放在DataSet()里面,并取名的映射表明為(Table0)。 添加圖書代碼: DataRow data = Dataset.Tables["Table0"].NewRow(); //添加
34、一個新行 data["圖書編號"] = AddBookID.Text; data["圖書名"] = AddBookName.Text; data["作者"] = AddBookZuozhe.Text; data["出版社"] = AddBookShe.Text; data["類編號"] = Btun; data["出版日期"] = dateTimePicker1.Text; data["上架時間"] = dateT
35、ime.Text; data["價格"] = AddBookjiage.Text; data["上架編號"] = AddBookjiaNum.Text; data["是否借出"] = AddBookYesNo.Text; data["備注"] = AddBookbeizhu.Text; Dataset.Tables["Table0"].Rows.Add(data); 這段代碼是把文本框的內(nèi)容添加到Table0表里面還沒有保存到數(shù)據(jù)庫里面。 ddlStoreName的下
36、拉框是為吧圖書的類別類別添加到下拉列表中: SqlConnection con = new SqlConnection(); con.Open(); SqlCommand cmd = new SqlCommand(" select 類名稱 from Bookship",con); SqlDataReader sdr = cmd.ExecuteReader(); while (sdr.Read()) { dd
37、lStoreName.Items.Add(sdr.GetString(0)); } sdr.Close(); con.Close(); 維護圖書的方法與上面有相似一處,進行數(shù)據(jù)的網(wǎng)格綁定。在這里不一一介紹。 最后保存添加的以上的內(nèi)容,填寫的信息必須符合相關的要求如果出現(xiàn)填寫錯誤:就提示一下信息 如果是保存到數(shù)據(jù)庫成功就提示成功的操作。 (注意:添加讀者信息功能相似) 3.1.4 讀者編目模塊(讀者信息管理維護) 該模塊的功能就是添加用戶,修護讀者的信息;該模塊的功能與上面模塊的功能代碼相識。在這里講解讀者的
38、信息維護功能的實現(xiàn): 該窗體含有一個toolStrip工具欄(定位,修改,刪除等按鈕) 流程圖 :改流程圖與圖書編目模塊相識。 需要的問題說明: (1) 操作員填寫的讀者相關信息必須符合要求。 (2)可以一次性修改多條圖書的信息。 (3)點擊工具欄上面的修改按鈕,并沒有把用戶所修改的數(shù)據(jù)添加到數(shù)據(jù)庫里,只是把它放在內(nèi)存里面。最后要點擊保存按鈕。 (4)只要沒有彈出“修改成功”信息提示框,表明沒有修改該數(shù)據(jù)。 功能描述: (1) 功能類型: 修改數(shù)據(jù)和查詢數(shù)據(jù) (2) 功能概述:修改文本框里的內(nèi)容,更新讀者信息表文件信息 (3) 前提業(yè)務:管理模塊 (4) 后續(xù)業(yè)務:
39、無 (5) 權限操作:圖書管理人員 界面設計描述: 1操作說明 (1)定位按鈕:4個定位按鈕能夠快速定位到操作員所要維護的人員 (2)文本框:錄入讀者編號吧相應讀者的信息定位顯示出來 (3)修改:點擊按鈕式把修改后的數(shù)據(jù)添加到內(nèi)存表里面 (4)刪除:點擊按鈕把當前讀者從內(nèi)存表里刪除 (5)取消操作:放棄對該讀者信息的修改 (6)保存:把修改后的數(shù)據(jù)保存到數(shù)據(jù)庫里面 (7)退出:點擊按鈕,退出該窗體 2 界面展示如下圖所示: 思 想:先要把被修改的讀者的全部信息提取出來,方放進相應的為本框中,在選定文本框,修改文本框里的內(nèi)容。 ///
40、數(shù)據(jù)的綁定的網(wǎng)格功能 text_ID.DataBindings.Add("Text", Dataset, "Table.讀者編號"); text_name.DataBindings.Add("Text", Dataset, "Table.姓名"); text_sex.DataBindings.Add("Text", Dataset, "Table.性別"); text_phone.DataBindings.Add("Text", Dataset, "Table.聯(lián)系電話"); text_work.DataBindi
41、ngs.Add("Text", Dataset, "Table.工作單位"); text_home.DataBindings.Add("Text", Dataset, "Table.住址"); text_number.DataBindings.Add("Text", Dataset, "Table.證件號碼"); text_time.DataBindings.Add("Text", Dataset, "Table.登記日期"); text_ZT.DataBindings.Add("Text", Dataset, "Table.讀者狀態(tài)"
42、); bangD = this.BindingContext[Dataset, "Table"]; /// 修改功能 bangD.EndCurrentEdit(); /// 刪除功能 bangD.RemoveAt(bangD.Position); //取消操作 Dataset.RejectChanges(); 同樣:這段代碼是把文本框的內(nèi)容添加到Table0表里面還沒有保存到數(shù)據(jù)庫里面。最后調(diào)用 SqlDa.Update(Dataset, "Table");方法 3.1.5 圖書借閱模塊 這個模塊的功能就是讀者借書。 借書要求就是 1 每個讀者按照自
43、己的級別查詢出最多借書的數(shù)量,如果有超期沒有歸還的圖書,則不能借書;如果超過借書數(shù)量則不能借,如果圖書已經(jīng)被借出則不能借閱。 該模塊含有兩個文本框textbookID,textReadID用來寫入讀者的編號和圖書編號和一個確定借書按鈕,dataGridView用來顯示讀者要借的書籍,操作員只需要有鼠標點擊dataGridView上面的的網(wǎng)格就為讀者借閱的圖書。 為了代碼精簡,本系統(tǒng)采用借書的存儲過程(數(shù)據(jù)結(jié)構設計后面將詳細講解) 流程圖: 需要的問題說明: (1)在讀者進行借閱圖書時,先根據(jù)讀者的編號查詢該讀者的借閱情況;如果該讀者借書的數(shù)量已滿則不能再借,如果含有過期圖書未歸還
44、則拒絕借閱。 (2)如果該圖書已經(jīng)被借出,彈出相應的提示。 (3)可以一次性借閱多本圖書,接過的出書做好標識。 功能描述: (1) 功能類型:修改數(shù)據(jù)、查詢數(shù)據(jù)、添加數(shù)據(jù) (2) 功能描述:更新學生借閱文件(表),圖書信息文件(表) (3) 前提業(yè)務:管理模塊 (4) 后續(xù)業(yè)務:無 (5) 操作權限:圖書管理人員 界面設計描述: 操作說明: (1) 管理員根據(jù)讀者編號和圖書編號查詢相關的信息。讀者的借閱數(shù)量,是否有借書未歸還歷史。圖書是否借出。 (2) 確定借書按鈕:點擊此按鈕并提示:借閱是否成功 (3) 推出按鈕:退出當前窗體 界面展示如下圖:
45、借書功能的精簡代碼如下: sqlcommand = new SqlCommand(); sqlcommand.CommandType = CommandType.StoredProcedure; sqlcommand.Connection = sqlcon; sqlcommand.CommandText="qq11";//儲存過程 SqlParameter bookID = new SqlParameter("@BookID", Convert.ToInt32(textbookID.Tex
46、t)); SqlParameter readID = new SqlParameter("@ReaderID", Convert.ToInt32(textReadID.Text)); SqlParameter Bookxix = new SqlParameter("@Bookxinxi", SqlDbType.VarChar, 100); Bookxix.Direction = ParameterDirection.Output; sqlcommand.Parameters.Add(bo
47、okID); sqlcommand.Parameters.Add(readID); sqlcommand.Parameters.Add(Bookxix); sqlcon.Open(); sqlcommand.ExecuteNonQuery(); sqlcon.Close(); MessageBox.Show(Bookxix.Value.ToString()); 該代碼為借書功能的代碼,并還有輸出參數(shù)。如果借書沒有成功原因彈出如下圖
48、所示的提示: 如果有過期未還的圖書,借書不成功,彈出以下信息如下圖所示: 如果借書數(shù)量已滿或者借書成功也會彈出相應的提示框。 (流程圖見概要設計) 3.1.6 圖書歸還模塊 該模塊是為讀者歸還圖書。 歸還圖書思想:歸還讀書前要查詢該用戶是否借閱超期,如果已經(jīng)超期就要根據(jù)讀者的類型查詢出罰金公式和計算出超期天數(shù)及罰金的總金額;并把罰金的相關信息存儲起來;如果沒有超期就正常歸還。 該模塊含有兩個文本框textbookID,textReadID用來寫入讀者的編號和圖書編號和一個確定歸還按鈕,dataGridView用來顯示讀者已經(jīng)借的書籍,操作員只需要有鼠標點擊
49、dataGridView上面的的網(wǎng)格就為讀者要歸還閱的圖書。 textBox1_newmoney為本框時輸入讀者罰金金額。 流程圖如下: 需要的問題說明: (1) 根據(jù)該讀者歸還圖書的編號查詢該讀者是否借閱超期,如果超期結(jié)算處超期的金額。 (2) 根據(jù)讀者的編號,查詢讀者所借閱的圖書信息,并顯示在dataGridView表格里。用鼠標點擊歸還的圖書。 (3) 更新歷史借書表 功能描述: (1) 功能類型:修改數(shù)據(jù),添加數(shù)據(jù)信息 (2) 功能概述:完成讀者的還書業(yè)務并計算出超期天數(shù)和罰金金額,如果沒有超期,就不用計算。 (3) 前提業(yè)務:管理模塊 (4) 后繼業(yè)務:無
50、 (5) 操作權限:圖書管理人員 界面設計描述: 操作說明: (1) 輸入讀者編號查詢該讀者的當前借閱歷史,動鼠標點擊讀者要歸還的圖書。系統(tǒng)自動計算借閱是否超期和罰金金額。 (2) 讀者借閱超期,借提示下面的消息框 (3) 如有罰金,并輸入罰金金額和備注信息 (4) 確定歸還:歸還圖書按鈕 (5) 推出按鈕:推出該窗體 界面展示如下圖所示: 超期罰金提示框如下圖所示 計算超期罰金代碼函數(shù): private decimal calPenalty(DateTime rTime,double money) {
51、//計算過期天數(shù) int overDays = 365 * (System.DateTime.Now.Year - rTime.Year) + System.DateTime.Now.DayOfYear - rTime.DayOfYear; //根據(jù)過期天數(shù)計算罰金 decimal fee = (decimal) money * overDays; return (fee); } 歸還圖書也是采用存儲過程下面數(shù)據(jù)設計將詳細介紹。 3.1.7 圖書查詢模塊
52、該模塊給管理員和讀者都能使用的模塊。能夠快速的查詢到每本書的相關信息(是否被借閱、簡介)等等。 多功能的查詢,能夠根據(jù)圖書編號查詢、根據(jù)作者查詢、根據(jù)圖書名查詢、根據(jù)出版社查詢等等。 圖書查詢的流程圖為 需要問題說明: (1) 查詢:可以查詢?nèi)繄D書和未借閱圖書的范圍 (2) 精確查詢:可以按照圖書編號、圖書名稱、作者、出版社查詢圖書。 (3) 查詢的結(jié)果集放在dataGridView (4) 輸入信息正確 (5) 進行的是模糊精確匹配 (6) (讀者)可以查詢自己的借書歷史、熱門圖書查詢、新書查詢 (7) (管理員)可以查詢所有用戶的借書歷史、熱門圖書、新
53、書查詢。 功能描述: (1) 功能類型:查詢數(shù)據(jù) (2) 功能概述:顯示查詢結(jié)果集 (3) 前提業(yè)務:無 (4) 后繼業(yè)務:無 (5) 操作權限:面向所有用戶 界面設計描述: 操作說明: (1) 單選按鈕:用戶選擇查詢圖書的范圍(分為全部圖書和未接圖書,默認為全部圖書) (2) 下拉列表:用戶選擇查詢圖書的方式(圖書編號、圖書名稱、出版社、作者) (3) 下拉列表:用戶選擇的圖書類型 (4) 錄入文本框:用戶查詢的錄入相關信息 界面展示如下圖所示: 查詢?nèi)缦拢? 首先是把所有圖書查詢出來放入到內(nèi)存中再根據(jù)內(nèi)存中的表
54、查詢出來 放入到dataGridView中。 SqlDa = new SqlDataAdapter(sql, sqlcon); SqlCommandBuilder ScomdB = new SqlCommandBuilder(SqlDa); Dataset = new DataSet(); SqlDa.Fill(Dataset, "Table"); DataView dv_book = Dataset.Tables["Table"].DefaultView; switch
55、(comboBox2.SelectedItem.ToString()) { case "圖書編號": dv_book.RowFilter = " 圖書編號 like'" + textBox1.Text + "%'"; break; case "圖書名": dv_book.RowFilter = "圖書名 like '" + textBox1.Text + "%'"; break; case "作者":
56、 dv_book.RowFilter = "作者 like '" + textBox1.Text + "%'"; break; case "出版社": dv_book.RowFilter = "出版社 like '" + textBox1.Text + "%'"; break; default: dv_book.RowFilter = ""; break;
57、 } 3.1.8 管理員進行讀者查詢模塊 管理員可以查詢該模塊查詢讀者的相關信息(除讀者的密碼),例如(聯(lián)系方式)。該模塊于圖書查詢模塊基本相識 流程圖如下 需要問題說明: (1) 條件是按用戶編號進行查詢。 (2) 本窗體采用的是網(wǎng)格布局dataGridView;管理員根據(jù)用戶的編號查詢讀者的相關信息和預覽全部讀者的信息。 (3) 采用的是分頁操作 (4) 不可顯示用戶的密碼。 功能說明描述: (1) 功能類型:查詢數(shù)據(jù) (2) 功能概述:顯示查詢數(shù)據(jù)結(jié)構 (3) 前提業(yè)務:管理模塊 (4) 后繼業(yè)務:無 (5) 操作權
58、限:圖書管理人員 界面設計描述: 操作說明: (1) 文本框:錄入查詢信息的要求,條件是安讀者編號進行查詢 (2) 確定按鈕:保存錄入讀者信息 (3) 推出按鈕:退出操作界面 相關代碼在這里不在做相關的介紹介紹。 3.1.9 讀者自己信息維護模塊 這個模塊是只是針對讀者用的用來是讀者修改自己的密碼信息; 在用戶修改自己的密碼需要2次輸入新的密碼,判斷是否輸入一直,否則修改不成功。 需要的說明: (1) 修改密碼時要兩次輸入新的密碼和舊密碼 (2) 兩次輸入的密碼必須一致 (3) 密碼的長度必須大于6位 功能描述:
59、(1) 功能類型:修改數(shù)據(jù) (2) 功能概述:修改用戶或者管理員的密碼 (3) 前提業(yè)務:管理系統(tǒng) (4) 后繼業(yè)務:無 (5) 操作權限:面向所有用戶(只能修改自己的密碼) 界面設計描述: 操作說明: (1) 為本框:錄入密碼信息 (2) 確定修改按鈕:信息保存到數(shù)據(jù)庫。 窗體界面如下圖所示: 修改的基本操作代碼如下: if ((textBox2.Text.Trim())!=(textBox3.Text.Trim())) { MessageBox.Show("你的密碼輸入不一致");
60、 return; } if (textBox3.Text.Length < 6) { MessageBox.Show("密碼過短,請輸入大于6位數(shù)字的密碼"); return; } try { sqlcon.Open(); SqlCommand scd = new SqlCo
61、mmand("update ReadPassword_view set 密碼='" + textBox2.Text.Trim() + "' where 讀者編號='" + public_Class.NumID + "'", sqlcon); int res = scd.ExecuteNonQuery(); string s = res > 0 ? "操作成功!" : "找不到該用戶"; MessageBox.Show(s); } catch
62、(Exception ex) { MessageBox.Show("操作失敗,請檢查網(wǎng)絡連接是否正常!"); } finally { if (sqlcon.State == ConnectionState.Open) sqlcon.Close(); } 如果用戶輸入的密碼2次不一致或者密碼輸入過簡單,這不允許該用戶修改并彈出一下信息提示: 如果操作成功也彈出修改成功的提示:密碼修改成功。
63、 (管理員的的密碼修改于讀者的一直以后不在說明) 3.1.10 讀書類型和讀書類型設置模塊模 讀者類型和圖書分類的操作功能是:修改、添加、刪除讀者的分類或者圖書分類設置,分別是放在兩個窗體當中。流程圖和代碼編寫與讀者編目有許多相識之處,所以不在講解。 3.1.11 統(tǒng)計模塊 該模塊的作用是分別統(tǒng)計,統(tǒng)計出本年的借閱信息、熱門圖書信息,歷史的支出與收支金額信息。 A 本年度借閱信息設計: 需要說明: 1 這個統(tǒng)計的功能是根據(jù)借閱歷史表和圖書信息表里的相關信息統(tǒng)計出來的,條件是今年以內(nèi)。 2 統(tǒng)計出信息有:今年購書圖書總數(shù)、外借圖書總數(shù)、購置圖書總支出、預計罰款總收
64、入、實際罰款總收入、超期歸還總數(shù)、超期未歸還總數(shù)。 3 統(tǒng)計思想:采用數(shù)據(jù)庫的存儲過程統(tǒng)計(Stat_nowyear)。 功能描述: 1 功能類型:查詢數(shù)據(jù) 2 功能概述:統(tǒng)計顯示相關信息 3 操作權限:圖書管理員 界面設計描述: 1 操作說明: 2 界面展示如下圖所示: B熱門圖書統(tǒng)計設計(含有打印功能): 需要說明: 1 這個子模塊的功能是統(tǒng)計今年最好最熱門的圖書的全部信息。條件是今年。 2 統(tǒng)計出信息有:圖書的全部信息。 3 統(tǒng)計思想:采用數(shù)據(jù)庫的試圖,根據(jù)每本書被借的次數(shù)安降序排列。 4 統(tǒng)計出來的信息放入到dat
65、aGridView里面;并卻能夠支持打印出表格的數(shù)據(jù)。 功能說明描述: 1 功能類型:查詢數(shù)據(jù) 2 功能概述:統(tǒng)計顯示相關信息 3 操作權限:面向所有用戶 打印功能接口: public static void ExportData(DataGridView srcDgv, string fileName) //導出數(shù)據(jù),傳入一個datagridview和一個文件路徑 { Excel.Application excel = new Excel.Application(); excel.Appl
66、ication.Workbooks.Add(true); excel.Visible = true; for (int i = 0; i < srcDgv.ColumnCount; i++) { excel.Cells[1, i + 1] = srcDgv.Columns[i].HeaderText; } for (int i = 0; i < srcDgv.RowCount - 1; i++) { for (int j = 0; j < srcDgv.ColumnCount; j++) { excel.Cells[i + 2, j + 1] = srcDgv[j, i].Value.ToString(); } }
- 溫馨提示:
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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023年六年級數(shù)學下冊6整理和復習2圖形與幾何第7課時圖形的位置練習課件新人教版
- 2023年六年級數(shù)學下冊6整理和復習2圖形與幾何第1課時圖形的認識與測量1平面圖形的認識練習課件新人教版
- 2023年六年級數(shù)學下冊6整理和復習1數(shù)與代數(shù)第10課時比和比例2作業(yè)課件新人教版
- 2023年六年級數(shù)學下冊4比例1比例的意義和基本性質(zhì)第3課時解比例練習課件新人教版
- 2023年六年級數(shù)學下冊3圓柱與圓錐1圓柱第7課時圓柱的體積3作業(yè)課件新人教版
- 2023年六年級數(shù)學下冊3圓柱與圓錐1圓柱第1節(jié)圓柱的認識作業(yè)課件新人教版
- 2023年六年級數(shù)學下冊2百分數(shù)(二)第1節(jié)折扣和成數(shù)作業(yè)課件新人教版
- 2023年六年級數(shù)學下冊1負數(shù)第1課時負數(shù)的初步認識作業(yè)課件新人教版
- 2023年六年級數(shù)學上冊期末復習考前模擬期末模擬訓練二作業(yè)課件蘇教版
- 2023年六年級數(shù)學上冊期末豐收園作業(yè)課件蘇教版
- 2023年六年級數(shù)學上冊易錯清單十二課件新人教版
- 標準工時講義
- 2021年一年級語文上冊第六單元知識要點習題課件新人教版
- 2022春一年級語文下冊課文5識字測評習題課件新人教版
- 2023年六年級數(shù)學下冊6整理和復習4數(shù)學思考第1課時數(shù)學思考1練習課件新人教版