軟件工程 系統(tǒng)設(shè)計(jì)
《軟件工程 系統(tǒng)設(shè)計(jì)》由會(huì)員分享,可在線閱讀,更多相關(guān)《軟件工程 系統(tǒng)設(shè)計(jì)(35頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、軟件工程 系統(tǒng)設(shè)計(jì) 一、實(shí)驗(yàn)?zāi)康? n 掌握軟件體系結(jié)構(gòu)模型; n 掌握使用過程設(shè)計(jì)工具描述模塊的數(shù)據(jù)結(jié)構(gòu)和算法; n 了解人機(jī)界面設(shè)計(jì); n 掌握概要設(shè)計(jì)說明書和詳細(xì)設(shè)計(jì)說明書的撰寫 二、實(shí)驗(yàn)原理—概要設(shè)計(jì) n ⑴軟件概要設(shè)計(jì)的基本要點(diǎn) n 基本目的是用比較抽象概括的方式確定系統(tǒng)如何完成預(yù)定的任務(wù),確定系統(tǒng)的物理配置方案,確定系統(tǒng)的結(jié)構(gòu)。 n ⑵系統(tǒng)分析與設(shè)計(jì)的關(guān)系 n 系統(tǒng)分析的基本任務(wù)是定義用戶所需要的軟件任務(wù),也就是回答系統(tǒng)必須“做什么”這個(gè)問題。系統(tǒng)設(shè)計(jì)的基本任務(wù)是設(shè)計(jì)實(shí)現(xiàn)目標(biāo)系統(tǒng)的具體方案,也就是回答“怎樣做”這個(gè)問題。 二、實(shí)驗(yàn)原理—詳細(xì)設(shè)計(jì) n ⑴軟件詳細(xì)
2、設(shè)計(jì)的基本要點(diǎn) n 關(guān)鍵任務(wù)是確定怎樣具體地實(shí)現(xiàn)用戶需要的軟件系統(tǒng)。 n 除了保證軟件可靠性之外,使程序可讀性好、容易理解、容易測(cè)試、容易修改和維護(hù)。 n 結(jié)構(gòu)化程序設(shè)計(jì)技術(shù)是實(shí)現(xiàn)上述目標(biāo)的基本保證,是進(jìn)行詳細(xì)設(shè)計(jì)的邏輯基礎(chǔ)。 n 人機(jī)界面設(shè)計(jì)是接口設(shè)計(jì)的一個(gè)重要組成部分。在設(shè)計(jì)人機(jī)界面的過程中,必須充分重視并認(rèn)真處理好系統(tǒng)響應(yīng)時(shí)間、用戶幫助設(shè)施、出錯(cuò)信息處理和命令交互等4個(gè)設(shè)計(jì)問題。 n 過程設(shè)計(jì)在數(shù)據(jù)設(shè)計(jì)、體系結(jié)構(gòu)設(shè)計(jì)和接口設(shè)計(jì)完成之后進(jìn)行,任務(wù)是設(shè)計(jì)算法。 n 過程設(shè)計(jì)的工具可分為圖形、表格和語言3類,應(yīng)根據(jù)需要選用適當(dāng)?shù)墓ぞ摺? n ⑵人機(jī)界面設(shè)計(jì) n 人機(jī)界面的設(shè)計(jì)質(zhì)量
3、,直接影響用戶對(duì)軟件產(chǎn)品的評(píng)價(jià)。 n 人機(jī)界面設(shè)計(jì)是接口設(shè)計(jì)的一個(gè)重要的組成部分。對(duì)于交互式系統(tǒng)來說,人機(jī)界面設(shè)計(jì)和數(shù)據(jù)設(shè)計(jì)、體系結(jié)構(gòu)設(shè)計(jì)及過程設(shè)計(jì)一樣重要。 n 使用基于原型的系統(tǒng)化的設(shè)計(jì)策略,是成功地設(shè)計(jì)人機(jī)界面的關(guān)鍵。 n 用戶界面設(shè)計(jì)是一個(gè)迭代的過程,也就是說,通常先創(chuàng)建設(shè)計(jì)模型,再用原型實(shí)現(xiàn)這個(gè)設(shè)計(jì)模型,并由用戶試用和評(píng)估,然后根據(jù)用戶意見進(jìn)行修改,直到用戶滿意為止。 n ⑶過程設(shè)計(jì) n 過程設(shè)計(jì)的任務(wù)是要設(shè)計(jì)出程序的“藍(lán)圖”,以后程序員將根據(jù)這個(gè)藍(lán)圖寫出實(shí)際的程序代碼。過程設(shè)計(jì)的結(jié)果基本上決定了最終的程序代碼的質(zhì)量。 n 衡量程序的質(zhì)量不僅要看它的邏輯是否正確,性能是否
4、滿足要求,更主要的是要看它是否容易閱讀和理解。 n 過程設(shè)計(jì)的目標(biāo)不僅僅是正確實(shí)現(xiàn)每個(gè)模塊的功能,更重要的是盡可能簡(jiǎn)明易懂。 n 結(jié)構(gòu)程序設(shè)計(jì)技術(shù)是實(shí)現(xiàn)上述目標(biāo)的關(guān)鍵技術(shù)。 n ⑷過程設(shè)計(jì)工具 n 描述程序處理過程的工具稱為過程設(shè)計(jì)工具,它們可以分為圖形、表格和語言三類。 n 不論是哪類工具,對(duì)它們的基本要求都是要提供對(duì)設(shè)計(jì)的無歧義的描述,也就是應(yīng)該指明控制流程、處理功能、數(shù)據(jù)組織以及其他方面的實(shí)現(xiàn)細(xì)節(jié),從而在編碼階段能把對(duì)設(shè)計(jì)的描述直接翻譯成程序代碼。 n 這類工具應(yīng)該盡可能直觀、易學(xué)、易懂。 三、實(shí)驗(yàn)內(nèi)容與步驟 n 軟件體系結(jié)構(gòu)模型 n 模塊過程設(shè)計(jì)與界面設(shè)計(jì) n 撰寫
5、系統(tǒng)設(shè)計(jì)說明書 圖書館管理系統(tǒng) C.概要設(shè)計(jì)說明書 一、引言 1.1編寫目的 為完善圖書管理系統(tǒng)軟件的開發(fā)途徑及應(yīng)用方法,以提高開發(fā)效率,使應(yīng)用更為方便。根據(jù)《需求規(guī)格說明書》,在仔細(xì)考慮討論之后,我們又進(jìn)一步對(duì)《圖書管理系統(tǒng)》軟件的功能劃分、數(shù)據(jù)結(jié)構(gòu)、軟件總體結(jié)構(gòu)有了進(jìn)一步的認(rèn)識(shí)。我們把討論的結(jié)果記錄下來,作為概要設(shè)計(jì)說明書,并作為進(jìn)一步詳細(xì)設(shè)計(jì)軟件的基礎(chǔ)。 1.2背景 說明: a. 待開發(fā)軟件系統(tǒng)的名稱:圖書管理系統(tǒng) b. 列出此項(xiàng)目的任務(wù)提出者是本小組成員,開發(fā)者也為本小組成員、用戶是學(xué)校圖書館。 1.3定義 開發(fā)(develop):除了單純的開發(fā)活動(dòng)外,還包括維
6、護(hù)活動(dòng)。 項(xiàng)目(project):向顧客交付的最終的全部產(chǎn)品,包括程序及各種文檔,以及開發(fā)活動(dòng)所需資源經(jīng)費(fèi)等各種信息。 項(xiàng)目開發(fā)計(jì)劃(project development plan):把項(xiàng)目與過程聯(lián)系起來的計(jì)劃方案。 產(chǎn)品生命周期(product life cycle):產(chǎn)品從構(gòu)思到不可在使用的持續(xù)時(shí)間。 1.4參考資料 《軟件工程導(dǎo)論》 —— 張海藩 編著 清華大學(xué)出版社 《數(shù)據(jù)庫系統(tǒng)概論》 —— 薩師煊 王 珊 編著 高等教育出版社 《Visual Basic 數(shù)據(jù)庫系統(tǒng)開發(fā)實(shí)例導(dǎo)航(第二版)》 —— 劉 韜駱娟何旭洪 編著 人民郵電出版社 《C#
7、程序設(shè)計(jì)教程》——曾強(qiáng)聰編著中國水利水電出版社 二總體設(shè)計(jì) 2.1需求規(guī)定 主要輸入輸出項(xiàng)目: 圖書信息:(圖書編號(hào)、圖書名稱、圖書ISBN號(hào)、作者、出版社、類型、價(jià)格、庫存量、副本總量、圖書總數(shù)) 學(xué)生信息:(學(xué)生編號(hào)、學(xué)生姓名、性別、入校時(shí)間、畢業(yè)時(shí)間) 借書登記:(借書編號(hào)、學(xué)生編號(hào)、結(jié)束時(shí)間、歸還時(shí)間、是否歸還) 還書登記:(圖書編號(hào)、圖書名稱、歸還時(shí)間、作者、出版社、 2.2運(yùn)行環(huán)境 硬件環(huán)境: PC機(jī)配置:奔騰133 、內(nèi)存1GB以上PC機(jī),內(nèi)存要求不得低于1GB,硬盤大于20G的PC臺(tái)式機(jī)和便攜式電腦; 軟件環(huán)境: Windows2000\XP
8、 SQL Server2000 C# 2.3基本設(shè)計(jì)概念和處理流程 該系統(tǒng)的主程序流程圖如下圖所示: 2.4功能需求與程序的關(guān)系 本條用一張如下的矩陣圖說明各項(xiàng)功能需求的實(shí)現(xiàn)同各塊程序的分配關(guān)系: 創(chuàng)建 查找 修改 刪除 圖書信息管理(管理員) √ √ √ √ 學(xué)生信息管理(管理員) √ √ √ √ 學(xué)生信息查詢(學(xué)生) √ 查詢圖書信息(學(xué)生) √ 歸還圖書(管理員) √ √ √ √ 借閱圖書(管理員) √ √ √ √ 2.5人工處理過程 管理員登錄:圖書管理員需要手動(dòng)輸入
9、登錄信息驗(yàn)證身份登錄系統(tǒng)后方能進(jìn)行操作。 圖書入庫:對(duì)于新購圖書,管理員需要手動(dòng)對(duì)其進(jìn)行分類進(jìn)行編號(hào),并把圖書基本信息錄入計(jì)算機(jī)。 修改圖書信息:學(xué)生借閱圖書時(shí),管理員需要對(duì)該圖書進(jìn)行登記,記錄被借閱圖書信息和學(xué)生信息。當(dāng)學(xué)生歸還圖書時(shí),同樣需要對(duì)圖書信息進(jìn)行修改。 三接口設(shè)計(jì) 3.1用戶接口 向用戶提供命令軟件回答對(duì)應(yīng)信息 操作員登記添加用戶 學(xué)生登記添加學(xué)生信息 學(xué)生查詢學(xué)生信息查詢 圖書登記管理員登記圖書信息 借閱登記管理員登記學(xué)生的借閱信息 借閱查詢管理員查詢學(xué)生的借閱情況 3.2外部接口 接口傳遞信息 軟件接口:與數(shù)據(jù)庫接口圖書信息學(xué)生信息 3.3內(nèi)
10、部接口 接口 傳遞信息 圖書信息管理 錄入 圖書信息:(圖書編號(hào)、圖書名稱、圖書ISBN號(hào)、作者、出版社、類型、價(jià)格、庫存量、副本總量、圖書總數(shù)) 圖書信息管理 修改 圖書信息:(圖書編號(hào)、圖書名稱、圖書ISBN號(hào)、作者、出版社、類型、價(jià)格、庫存量、副本總量、圖書總數(shù)) 學(xué)生信息管理 添加 學(xué)生信息:(學(xué)生編號(hào)、學(xué)生姓名、性別、入校時(shí)間、畢業(yè)時(shí)間) 學(xué)生信息管理 修改 學(xué)生信息:(學(xué)生編號(hào)、學(xué)生姓名、性別、入校時(shí)間、畢業(yè)時(shí)間) 借書登記 登記借閱圖書以及學(xué)生信息 借書登記:(借書編號(hào)、學(xué)生編號(hào)、結(jié)束時(shí)間、歸還時(shí)間、是否歸還) 還書登記 修改借書登記的信息
11、 還書登記:(圖書編號(hào)、圖書名稱、歸還時(shí)間、作者、出版社、) 四 運(yùn)行設(shè)計(jì) 4.1運(yùn)行模塊組合 對(duì)系統(tǒng)施加不同的外界運(yùn)行控制時(shí)所引起的各種不同的運(yùn)行模塊組合,以及每種運(yùn)行所歷經(jīng)的內(nèi)部模塊和支持軟件。 4.2運(yùn)行控制 運(yùn)行控制 控制方法 學(xué)生信息管理 管理員對(duì)學(xué)生信心進(jìn)行管理,包括增加學(xué)生用戶,修改用戶信息,以及刪除學(xué)生信息 學(xué)生信息查詢 用戶可以對(duì)學(xué)生的信息進(jìn)行查詢 圖書信息登記 錄入新的圖書信息,以及對(duì)已有圖書的各項(xiàng)信息進(jìn)行修改,查詢,刪除等 圖書信息查詢 用戶對(duì)所要借閱的圖書信息進(jìn)行查詢 借閱登記 管理員登記學(xué)生所借圖書以及學(xué)生本人的信息 借閱查詢
12、 管理員對(duì)學(xué)生或者所對(duì)應(yīng)圖書的信息進(jìn)行查詢 4.3運(yùn)行時(shí)間 檢索任務(wù)所需時(shí)間:<3秒 執(zhí)行任務(wù)所需時(shí)間:<3秒 五系統(tǒng)數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì) 5.1邏輯結(jié)構(gòu)設(shè)計(jì)要點(diǎn) 1.圖書信息表(tBook),其字段列表如表5-1-1所示。 表5-1-1 圖書信息表的結(jié)構(gòu) 序號(hào) 字段名稱 字段說明 類型 位數(shù) 屬性 備注 1 cBooksID 圖書編號(hào) 文本 7 必須非空 2 cBooksName 圖書名稱 文本 20 必須非空 3 cBooksISBN 圖書ISBN號(hào) 文本 15 可為空 4 cBooksAuthor 圖書作者
13、文本 10 可為空 5 cBooksPublisher 圖書出版社 文本 20 可為空 6 cBooksType 圖書類型 文本 16 可為空 7 smBooksPrice 圖書價(jià)格 貨幣 可為空 8 iBooksStoreQuan 圖書庫存量 整數(shù) 可為空 9 iBooksLeftQuant 圖書副本數(shù)量 整數(shù) 可為空 10 iBooksTotalQuan 圖書總數(shù) 整數(shù) 可為空 2.圖書借閱登記表(tBorrow),其字段列表如表5-1-2所示。 表5-1-2 圖書借閱登
14、記表的結(jié)構(gòu) 序號(hào) 字段名稱 字段說明 類型 位數(shù) 屬性 備注 1 cBorrowID 借書編號(hào) 文本 6 必須非空 2 cVipID 學(xué)生編號(hào) 文本 6 必須非空 3 cBooksID 圖書編號(hào) 文本 7 必須非空 4 cBorrwTime 借書時(shí)間 時(shí)間日期 可為空 5 cReturnTime 還書時(shí)間 時(shí)間日期 可為空 6 cReturn 是否歸還 文本 1 可為空 3.圖書歸還登記表(tReturn),其字段列表如表5-1-3所示。 表5-1-3 圖書歸還登記表的結(jié)構(gòu)
15、 序號(hào) 字段名稱 字段說明 類型 位數(shù) 屬性 備注 1 cBorrowID 借書編號(hào) 文本 6 必須非空 2 cVipID 學(xué)生編號(hào) 文本 6 必須非空 3 cBooksID 圖書編號(hào) 文本 7 必須非空 4 cBorrwTime 借書時(shí)間 時(shí)間日期 可為空 5 cReturnTime 還書時(shí)間 時(shí)間日期 必須非空 6 cReturn 是否歸還 文本 1 必須非空 7 cNoReturn 歸還異常 文本 8 可為空 4.學(xué)生信息表(tVip),其字段列表如表5
16、-1-4所示。 表5-1-4 學(xué)生信息表的結(jié)構(gòu) 序號(hào) 字段名稱 字段說明 類型 位數(shù) 屬性 備注 1 cVipID 學(xué)生編號(hào) 文本 6 必須非空 2 cVipName 學(xué)生姓名 文本 10 必須非空 4 cVipSex 學(xué)生性別 文本 1 可為空 5 vipAddTime 學(xué)生入學(xué)時(shí)間 時(shí)間日期 必須非空 6 vipEndTime 學(xué)生畢業(yè)時(shí)間 時(shí)間日期 必須非空 5.管理員信息表(tOperators),其字段列表如表5-1-5所示。 表5-1-5 管理員信息表的結(jié)構(gòu) 序號(hào) 字段名
17、稱 字段說明 類型 位數(shù) 屬性 備注 1 cOperatorID 管理員編號(hào) 文本 5 必須非空 2 cOperatorName 管理員姓名 文本 10 必須非空 3 cOperatorPassword 密碼 文本 6 必須非空 4 cOperatorAddTime 管理員加入時(shí)間 時(shí)間日期 10 必須非空 5.2數(shù)據(jù)結(jié)構(gòu)與程序的關(guān)系 主模塊:連接數(shù)據(jù)庫 學(xué)生管理模塊: 學(xué)生信息管理模塊:管理員輸入帳號(hào)密碼進(jìn)入系統(tǒng)后可以對(duì)學(xué)生信息進(jìn)行管理,包括修改,插入,刪除等。 學(xué)生信息查詢模塊:管理員可以對(duì)學(xué)生信息進(jìn)行查詢
18、,學(xué)生輸入學(xué)生的賬號(hào)密碼后,成功登陸后,學(xué)生可以對(duì)其信息進(jìn)行查詢,輸入學(xué)生編號(hào)后,對(duì)應(yīng)輸出學(xué)生姓名,性別,入校時(shí)間,畢業(yè)時(shí)間等。 圖書管理模塊: 圖書信息登記模塊:管理員對(duì)圖書信息進(jìn)行登記,輸入相應(yīng)的圖書信息,如圖書書名,作者,出版社。單價(jià)等信息。 圖書信息查詢模塊:學(xué)生和管理員都可以進(jìn)行此操作,通過查詢數(shù)據(jù)庫,匹配要查找的圖書信息,包括讀入圖書號(hào),圖書作者,圖書出版社 ,圖書單價(jià)等基本信息。 借閱管理模塊: 借閱登記模塊:管理員對(duì)圖書的借閱情況進(jìn)行登記,記錄借書者的學(xué)生編號(hào),學(xué)生姓名等學(xué)生信息以及圖書編號(hào),圖書名稱,作者,出版社等圖書信息,并修改圖書狀態(tài)。 借閱查詢模塊:管理員和
19、學(xué)生都可以對(duì)圖書的借閱情況進(jìn)行查詢,輸入讀者號(hào),對(duì)應(yīng)輸出學(xué)生姓名,性別,入校時(shí)間,畢業(yè)時(shí)間。輸入圖書號(hào),對(duì)應(yīng)輸出圖書書名,圖書作者,圖書出版社,圖書單價(jià),圖書狀態(tài)。 歸還管理模塊: 讀入圖書編號(hào),對(duì)應(yīng)輸出借書記錄表中的學(xué)生編號(hào),借書時(shí)間,應(yīng)歸還時(shí)間等,修改圖書狀態(tài),刪除借書記錄表中的學(xué)生編號(hào),圖書編號(hào),借書時(shí)間等信息。 六 系統(tǒng)出錯(cuò)處理設(shè)計(jì) 6.1出錯(cuò)信息 出錯(cuò)的位置 出錯(cuò)的原因 提示信息 用戶名 輸入數(shù)據(jù)庫中不存在的用戶名 You are a not system user 用戶名密碼 輸入的密碼不正確 Password eroor,please check y
20、our passwprd 添加用戶 輸入已存在的用戶信息 用戶已存在 添加信息 添加信息必填信息不完整 信息必須完整 普通用戶操作權(quán)限 使用管理員的 你沒有該權(quán)限 出錯(cuò)信息處理:學(xué)生或管理人員輸入的帳號(hào)和密碼不匹配或輸入不存在的帳號(hào),系統(tǒng)應(yīng)友好進(jìn)行提示,如提示"您輸入的帳號(hào)或密碼錯(cuò)誤,請(qǐng)重新輸入?。? 6.2補(bǔ)救措施 故障出現(xiàn)后可能采取的變通措施,包括: a. 后備技術(shù)說明準(zhǔn)備采用的后備技術(shù),當(dāng)原始系統(tǒng)數(shù)據(jù)萬一丟失時(shí)啟用的副本的建立和啟動(dòng)的技術(shù),例如周期性地把磁盤信息記錄到磁帶上去就是對(duì)于磁盤媒體的一種后備技術(shù); b. 降效技術(shù)說明準(zhǔn)備采用的后備技術(shù),使用另一個(gè)效率稍
21、低的系統(tǒng)或方法來求得所需結(jié)果的某些部分,例如一個(gè)自動(dòng)系統(tǒng)的降效技術(shù)可以是手工操作和數(shù)據(jù)的人工記錄; c. 恢復(fù)及再啟動(dòng)技術(shù)說明將使用的恢復(fù)再啟動(dòng)技術(shù),使軟件從故障點(diǎn)恢復(fù)執(zhí)行或使軟件從頭開始重新運(yùn)行的方法。 圖書管理系統(tǒng) D.詳細(xì)設(shè)計(jì)說明 1.1 編寫目的 圖書管理系統(tǒng)詳細(xì)設(shè)計(jì)是設(shè)計(jì)的第三個(gè)階段,這個(gè)階段的主要任務(wù)是在圖書管理系統(tǒng)概要設(shè)計(jì)書基礎(chǔ)上,對(duì)概要設(shè)計(jì)中產(chǎn)生的功能模塊進(jìn)行過程描述,設(shè)計(jì)功能模塊的內(nèi)部細(xì)節(jié),包括算法和詳細(xì)數(shù)據(jù)結(jié)構(gòu),為編寫源代碼提供必要的說明。 概要設(shè)計(jì)解決了軟件系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)的問題,包括整個(gè)軟件系統(tǒng)的結(jié)構(gòu)、模塊劃分、模塊功能和模塊間的聯(lián)系等。詳細(xì)設(shè)計(jì)則要解決
22、如何實(shí)現(xiàn)各個(gè)模塊的內(nèi)部功能,即模塊設(shè)計(jì)。具體的說,模塊設(shè)計(jì)就是要為已經(jīng)產(chǎn)生的圖書管理各子系統(tǒng)設(shè)計(jì)詳細(xì)的算法。但這并不等同于系統(tǒng)實(shí)現(xiàn)階段用具體的語言編碼,它只是對(duì)實(shí)現(xiàn)細(xì)節(jié)作精確的描述,這樣編碼階段就可以將詳細(xì)設(shè)計(jì)中對(duì)功能實(shí)現(xiàn)的描述,直接翻譯、轉(zhuǎn)化為用某種程序設(shè)計(jì)語言書寫的程序。 1.2 項(xiàng)目背景 為提高圖書信息的管理,借閱管理,查詢管理,統(tǒng)計(jì)及工作效率,給予用戶的要求開發(fā)《圖書管理系統(tǒng)》 1.3 定義 SQL :數(shù)據(jù)庫 C# :開發(fā)工具 2 總體設(shè)計(jì) 2.1 需求概述 按照需求分析文檔中的規(guī)格要求,使用給定圖書編號(hào)添加進(jìn)書、借書、還書等等,使得信息傳遞準(zhǔn)確、流暢。同時(shí),系統(tǒng)最大限
23、度地實(shí)現(xiàn)易安裝,易維護(hù)性,易操作性,運(yùn)行穩(wěn)定,安全可靠。 2.2 軟件結(jié)構(gòu)模塊(軟件總體結(jié)構(gòu)細(xì)化) 3 程序界面和代碼描述 3.1.1登錄模塊設(shè)計(jì) 登陸界面是圖書管理管理系統(tǒng)運(yùn)行后首先打開的界面。在這個(gè)界面,用戶必須輸入預(yù)先設(shè)定好的用戶名以及密碼才能進(jìn)入,這樣有利于防止他人在沒有授權(quán)的情況下進(jìn)入系統(tǒng)。 1 功能說明: 用戶輸入登錄帳號(hào)和密碼,連接數(shù)據(jù)庫進(jìn)入到操作界面。 2 流程圖: 需要的問題說明: (1) 錄入的密碼和用戶名不能為空; (2) 錄入數(shù)據(jù)后根據(jù)用戶的編號(hào)判斷授權(quán)。 登錄界面如圖所示: 問題說明:本窗體有兩個(gè)文本框textBoxIP,t
24、extBoxpassword是用作用戶輸入用戶名和密碼。查詢?cè)撚脩羰欠駷楹戏ǖ挠脩?,并判斷用戶的類別和權(quán)限。合法用戶進(jìn)入系統(tǒng)的操作界面區(qū)。pub.dataSql()為連接數(shù)據(jù)庫的方法函數(shù),以后就不在講解 sqlselsect = "select * from Main_view where 登陸編號(hào)='"; 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("密碼錯(cuò)誤!"); textBoxpassword.Text = ""; textBoxpassword.Focus();
27、 return; } } sqlcon.Close(); MessageBox.Show("無此用戶名,請(qǐng)注冊(cè)后再登陸"); 當(dāng)用戶沒有沒有填寫textBoxIP,textBoxpassword兩個(gè)文本框時(shí)而點(diǎn)擊登錄按鈕將不做任何操作。 3.1.2 圖書管理系統(tǒng)模塊(系統(tǒng)主操作界面) 管理系統(tǒng)模塊是用戶成功進(jìn)入系統(tǒng)的操作界面:該界面包括了讀者下拉菜單、管理員的下拉菜單和一個(gè)工具欄。該窗體使用的是MDI容器,在這里不在說明怎么調(diào)用各個(gè)窗體。MDI容器防止相同的子窗體的重復(fù)出現(xiàn)的處理方法是: 構(gòu)造一個(gè)
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; } 這個(gè)函數(shù)會(huì)把顯示的每個(gè)子窗體的名字存放在一個(gè)數(shù)組里面,在連接一個(gè)新的子窗體時(shí)先判斷該窗體是否以顯示(MdiChildren[i]里是否存在這個(gè)窗體的名字),如果該窗體已經(jīng)顯示就不用再彈出該窗體否則就彈出該子窗體。 最后根據(jù)用戶的權(quán)限顯示相應(yīng)的下拉列名。權(quán)限是根據(jù)用戶登錄時(shí)從數(shù)據(jù)庫里面讀取的數(shù)據(jù)和用戶的登錄編號(hào)等數(shù)據(jù)傳入到系統(tǒng)操作界面當(dāng)中,進(jìn)行相應(yīng)的處理。根據(jù)傳入的數(shù)據(jù)顯示相應(yīng)的下拉
30、列表: if (public_Class.NU == "1") { this.toolStrip_Xiaoxi.Text = " 讀者編號(hào): " + public_Class.NumID.ToString(); this.menuStrip2.Visible = true; //讀者下拉菜單 this.menuStrip1.Visible = false; } else if (p
31、ublic_Class.NU == "2") { this.toolStrip_Xiaoxi.Text = " 操作員編號(hào): " + public_Class.NumID.ToString(); this.menuStrip1.Visible = true; //操作員下來菜單 this.menuStrip2.Visible = false; } 3.1.3 圖書編目模塊(書籍信息管理) 該模塊是給管理員或者操作員用的。功能是
32、管理員用作添加、修改、刪除相關(guān)信息的模塊。 實(shí)現(xiàn)該模塊首先是要把要維護(hù)圖書的存放的表查詢出來。然后給據(jù)文本框的一一對(duì)應(yīng)相應(yīng)的添加。本窗體共有7個(gè)文本框1個(gè)下拉框和兩個(gè)時(shí)間框,他們分別和(圖書表)的各個(gè)列相對(duì)應(yīng)。 功能的流程圖如下所示: 需要的問題說明: (1) 操作員填寫的相關(guān)信息必須符合要求。 (2) 可以一次性添加多條圖書的信息。 (3) 點(diǎn)擊工具欄上面的添加按鈕,并沒有把用戶所輸入的數(shù)據(jù)添加到數(shù)據(jù)庫里,只是把它放在內(nèi)存里面。最后要點(diǎn)擊保存按鈕。 (4) 只要沒有彈出“添加成功”信息提示框,表明沒有添加成功。 功能描述: (1) 功能類型:添加數(shù)據(jù), (2) 功
33、能概述:添加圖書的相關(guān)信息,操作簡(jiǎn)單。 (3) 操作權(quán)限:圖書管理人員。 (4) 前提業(yè)務(wù):管理模塊 (5) 后繼業(yè)務(wù):無 界面設(shè)計(jì)描述: 1 動(dòng)作說明: 添加:是文本框的內(nèi)容添加到內(nèi)存表里面。 取消操作:放棄添加的內(nèi)容 保存:把一添加的內(nèi)容保存到熟數(shù)據(jù)庫里 退出:點(diǎn)擊按鈕,退出該窗體 2 界面展示如下圖: 連接數(shù)據(jù)庫,查詢圖書表中的信息,把查詢的結(jié)果放在DataSet()里面,并取名的映射表明為(Table0)。 添加圖書代碼: DataRow data = Dataset.Tables["Table0"].NewRow(); //添加
34、一個(gè)新行 data["圖書編號(hào)"] = AddBookID.Text; data["圖書名"] = AddBookName.Text; data["作者"] = AddBookZuozhe.Text; data["出版社"] = AddBookShe.Text; data["類編號(hào)"] = Btun; data["出版日期"] = dateTimePicker1.Text; data["上架時(shí)間"] = dateT
35、ime.Text; data["價(jià)格"] = AddBookjiage.Text; data["上架編號(hào)"] = 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(); 維護(hù)圖書的方法與上面有相似一處,進(jìn)行數(shù)據(jù)的網(wǎng)格綁定。在這里不一一介紹。 最后保存添加的以上的內(nèi)容,填寫的信息必須符合相關(guān)的要求如果出現(xiàn)填寫錯(cuò)誤:就提示一下信息 如果是保存到數(shù)據(jù)庫成功就提示成功的操作。 (注意:添加讀者信息功能相似) 3.1.4 讀者編目模塊(讀者信息管理維護(hù)) 該模塊的功能就是添加用戶,修護(hù)讀者的信息;該模塊的功能與上面模塊的功能代碼相識(shí)。在這里講解讀者的
38、信息維護(hù)功能的實(shí)現(xiàn): 該窗體含有一個(gè)toolStrip工具欄(定位,修改,刪除等按鈕) 流程圖 :改流程圖與圖書編目模塊相識(shí)。 需要的問題說明: (1) 操作員填寫的讀者相關(guān)信息必須符合要求。 (2)可以一次性修改多條圖書的信息。 (3)點(diǎn)擊工具欄上面的修改按鈕,并沒有把用戶所修改的數(shù)據(jù)添加到數(shù)據(jù)庫里,只是把它放在內(nèi)存里面。最后要點(diǎn)擊保存按鈕。 (4)只要沒有彈出“修改成功”信息提示框,表明沒有修改該數(shù)據(jù)。 功能描述: (1) 功能類型: 修改數(shù)據(jù)和查詢數(shù)據(jù) (2) 功能概述:修改文本框里的內(nèi)容,更新讀者信息表文件信息 (3) 前提業(yè)務(wù):管理模塊 (4) 后續(xù)業(yè)務(wù):
39、無 (5) 權(quán)限操作:圖書管理人員 界面設(shè)計(jì)描述: 1操作說明 (1)定位按鈕:4個(gè)定位按鈕能夠快速定位到操作員所要維護(hù)的人員 (2)文本框:錄入讀者編號(hào)吧相應(yīng)讀者的信息定位顯示出來 (3)修改:點(diǎn)擊按鈕式把修改后的數(shù)據(jù)添加到內(nèi)存表里面 (4)刪除:點(diǎn)擊按鈕把當(dāng)前讀者從內(nèi)存表里刪除 (5)取消操作:放棄對(duì)該讀者信息的修改 (6)保存:把修改后的數(shù)據(jù)保存到數(shù)據(jù)庫里面 (7)退出:點(diǎn)擊按鈕,退出該窗體 2 界面展示如下圖所示: 思 想:先要把被修改的讀者的全部信息提取出來,方放進(jìn)相應(yīng)的為本框中,在選定文本框,修改文本框里的內(nèi)容。 ///
40、數(shù)據(jù)的綁定的網(wǎng)格功能 text_ID.DataBindings.Add("Text", Dataset, "Table.讀者編號(hào)"); 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.證件號(hào)碼"); 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 圖書借閱模塊 這個(gè)模塊的功能就是讀者借書。 借書要求就是 1 每個(gè)讀者按照自
43、己的級(jí)別查詢出最多借書的數(shù)量,如果有超期沒有歸還的圖書,則不能借書;如果超過借書數(shù)量則不能借,如果圖書已經(jīng)被借出則不能借閱。 該模塊含有兩個(gè)文本框textbookID,textReadID用來寫入讀者的編號(hào)和圖書編號(hào)和一個(gè)確定借書按鈕,dataGridView用來顯示讀者要借的書籍,操作員只需要有鼠標(biāo)點(diǎn)擊dataGridView上面的的網(wǎng)格就為讀者借閱的圖書。 為了代碼精簡(jiǎn),本系統(tǒng)采用借書的存儲(chǔ)過程(數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)后面將詳細(xì)講解) 流程圖: 需要的問題說明: (1)在讀者進(jìn)行借閱圖書時(shí),先根據(jù)讀者的編號(hào)查詢?cè)撟x者的借閱情況;如果該讀者借書的數(shù)量已滿則不能再借,如果含有過期圖書未歸還
44、則拒絕借閱。 (2)如果該圖書已經(jīng)被借出,彈出相應(yīng)的提示。 (3)可以一次性借閱多本圖書,接過的出書做好標(biāo)識(shí)。 功能描述: (1) 功能類型:修改數(shù)據(jù)、查詢數(shù)據(jù)、添加數(shù)據(jù) (2) 功能描述:更新學(xué)生借閱文件(表),圖書信息文件(表) (3) 前提業(yè)務(wù):管理模塊 (4) 后續(xù)業(yè)務(wù):無 (5) 操作權(quán)限:圖書管理人員 界面設(shè)計(jì)描述: 操作說明: (1) 管理員根據(jù)讀者編號(hào)和圖書編號(hào)查詢相關(guān)的信息。讀者的借閱數(shù)量,是否有借書未歸還歷史。圖書是否借出。 (2) 確定借書按鈕:點(diǎn)擊此按鈕并提示:借閱是否成功 (3) 推出按鈕:退出當(dāng)前窗體 界面展示如下圖:
45、借書功能的精簡(jiǎn)代碼如下: sqlcommand = new SqlCommand(); sqlcommand.CommandType = CommandType.StoredProcedure; sqlcommand.Connection = sqlcon; sqlcommand.CommandText="qq11";//儲(chǔ)存過程 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ù)量已滿或者借書成功也會(huì)彈出相應(yīng)的提示框。 (流程圖見概要設(shè)計(jì)) 3.1.6 圖書歸還模塊 該模塊是為讀者歸還圖書。 歸還圖書思想:歸還讀書前要查詢?cè)撚脩羰欠窠栝喅?,如果已?jīng)超期就要根據(jù)讀者的類型查詢出罰金公式和計(jì)算出超期天數(shù)及罰金的總金額;并把罰金的相關(guān)信息存儲(chǔ)起來;如果沒有超期就正常歸還。 該模塊含有兩個(gè)文本框textbookID,textReadID用來寫入讀者的編號(hào)和圖書編號(hào)和一個(gè)確定歸還按鈕,dataGridView用來顯示讀者已經(jīng)借的書籍,操作員只需要有鼠標(biāo)點(diǎn)擊
49、dataGridView上面的的網(wǎng)格就為讀者要?dú)w還閱的圖書。 textBox1_newmoney為本框時(shí)輸入讀者罰金金額。 流程圖如下: 需要的問題說明: (1) 根據(jù)該讀者歸還圖書的編號(hào)查詢?cè)撟x者是否借閱超期,如果超期結(jié)算處超期的金額。 (2) 根據(jù)讀者的編號(hào),查詢讀者所借閱的圖書信息,并顯示在dataGridView表格里。用鼠標(biāo)點(diǎn)擊歸還的圖書。 (3) 更新歷史借書表 功能描述: (1) 功能類型:修改數(shù)據(jù),添加數(shù)據(jù)信息 (2) 功能概述:完成讀者的還書業(yè)務(wù)并計(jì)算出超期天數(shù)和罰金金額,如果沒有超期,就不用計(jì)算。 (3) 前提業(yè)務(wù):管理模塊 (4) 后繼業(yè)務(wù):無
50、 (5) 操作權(quán)限:圖書管理人員 界面設(shè)計(jì)描述: 操作說明: (1) 輸入讀者編號(hào)查詢?cè)撟x者的當(dāng)前借閱歷史,動(dòng)鼠標(biāo)點(diǎn)擊讀者要?dú)w還的圖書。系統(tǒng)自動(dòng)計(jì)算借閱是否超期和罰金金額。 (2) 讀者借閱超期,借提示下面的消息框 (3) 如有罰金,并輸入罰金金額和備注信息 (4) 確定歸還:歸還圖書按鈕 (5) 推出按鈕:推出該窗體 界面展示如下圖所示: 超期罰金提示框如下圖所示 計(jì)算超期罰金代碼函數(shù): private decimal calPenalty(DateTime rTime,double money) {
51、//計(jì)算過期天數(shù) int overDays = 365 * (System.DateTime.Now.Year - rTime.Year) + System.DateTime.Now.DayOfYear - rTime.DayOfYear; //根據(jù)過期天數(shù)計(jì)算罰金 decimal fee = (decimal) money * overDays; return (fee); } 歸還圖書也是采用存儲(chǔ)過程下面數(shù)據(jù)設(shè)計(jì)將詳細(xì)介紹。 3.1.7 圖書查詢模塊
52、該模塊給管理員和讀者都能使用的模塊。能夠快速的查詢到每本書的相關(guān)信息(是否被借閱、簡(jiǎn)介)等等。 多功能的查詢,能夠根據(jù)圖書編號(hào)查詢、根據(jù)作者查詢、根據(jù)圖書名查詢、根據(jù)出版社查詢等等。 圖書查詢的流程圖為 需要問題說明: (1) 查詢:可以查詢?nèi)繄D書和未借閱圖書的范圍 (2) 精確查詢:可以按照?qǐng)D書編號(hào)、圖書名稱、作者、出版社查詢圖書。 (3) 查詢的結(jié)果集放在dataGridView (4) 輸入信息正確 (5) 進(jìn)行的是模糊精確匹配 (6) (讀者)可以查詢自己的借書歷史、熱門圖書查詢、新書查詢 (7) (管理員)可以查詢所有用戶的借書歷史、熱門圖書、新
53、書查詢。 功能描述: (1) 功能類型:查詢數(shù)據(jù) (2) 功能概述:顯示查詢結(jié)果集 (3) 前提業(yè)務(wù):無 (4) 后繼業(yè)務(wù):無 (5) 操作權(quán)限:面向所有用戶 界面設(shè)計(jì)描述: 操作說明: (1) 單選按鈕:用戶選擇查詢圖書的范圍(分為全部圖書和未接圖書,默認(rèn)為全部圖書) (2) 下拉列表:用戶選擇查詢圖書的方式(圖書編號(hào)、圖書名稱、出版社、作者) (3) 下拉列表:用戶選擇的圖書類型 (4) 錄入文本框:用戶查詢的錄入相關(guān)信息 界面展示如下圖所示: 查詢?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 "圖書編號(hào)": dv_book.RowFilter = " 圖書編號(hào) 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 管理員進(jìn)行讀者查詢模塊 管理員可以查詢?cè)撃K查詢讀者的相關(guān)信息(除讀者的密碼),例如(聯(lián)系方式)。該模塊于圖書查詢模塊基本相識(shí) 流程圖如下 需要問題說明: (1) 條件是按用戶編號(hào)進(jìn)行查詢。 (2) 本窗體采用的是網(wǎng)格布局dataGridView;管理員根據(jù)用戶的編號(hào)查詢讀者的相關(guān)信息和預(yù)覽全部讀者的信息。 (3) 采用的是分頁操作 (4) 不可顯示用戶的密碼。 功能說明描述: (1) 功能類型:查詢數(shù)據(jù) (2) 功能概述:顯示查詢數(shù)據(jù)結(jié)構(gòu) (3) 前提業(yè)務(wù):管理模塊 (4) 后繼業(yè)務(wù):無 (5) 操作權(quán)
58、限:圖書管理人員 界面設(shè)計(jì)描述: 操作說明: (1) 文本框:錄入查詢信息的要求,條件是安讀者編號(hào)進(jìn)行查詢 (2) 確定按鈕:保存錄入讀者信息 (3) 推出按鈕:退出操作界面 相關(guān)代碼在這里不在做相關(guān)的介紹介紹。 3.1.9 讀者自己信息維護(hù)模塊 這個(gè)模塊是只是針對(duì)讀者用的用來是讀者修改自己的密碼信息; 在用戶修改自己的密碼需要2次輸入新的密碼,判斷是否輸入一直,否則修改不成功。 需要的說明: (1) 修改密碼時(shí)要兩次輸入新的密碼和舊密碼 (2) 兩次輸入的密碼必須一致 (3) 密碼的長(zhǎng)度必須大于6位 功能描述:
59、(1) 功能類型:修改數(shù)據(jù) (2) 功能概述:修改用戶或者管理員的密碼 (3) 前提業(yè)務(wù):管理系統(tǒng) (4) 后繼業(yè)務(wù):無 (5) 操作權(quán)限:面向所有用戶(只能修改自己的密碼) 界面設(shè)計(jì)描述: 操作說明: (1) 為本框:錄入密碼信息 (2) 確定修改按鈕:信息保存到數(shù)據(jù)庫。 窗體界面如下圖所示: 修改的基本操作代碼如下: if ((textBox2.Text.Trim())!=(textBox3.Text.Trim())) { MessageBox.Show("你的密碼輸入不一致");
60、 return; } if (textBox3.Text.Length < 6) { MessageBox.Show("密碼過短,請(qǐng)輸入大于6位數(shù)字的密碼"); return; } try { sqlcon.Open(); SqlCommand scd = new SqlCo
61、mmand("update ReadPassword_view set 密碼='" + textBox2.Text.Trim() + "' where 讀者編號(hào)='" + public_Class.NumID + "'", sqlcon); int res = scd.ExecuteNonQuery(); string s = res > 0 ? "操作成功!" : "找不到該用戶"; MessageBox.Show(s); } catch
62、(Exception ex) { MessageBox.Show("操作失敗,請(qǐng)檢查網(wǎng)絡(luò)連接是否正常!"); } finally { if (sqlcon.State == ConnectionState.Open) sqlcon.Close(); } 如果用戶輸入的密碼2次不一致或者密碼輸入過簡(jiǎn)單,這不允許該用戶修改并彈出一下信息提示: 如果操作成功也彈出修改成功的提示:密碼修改成功。
63、 (管理員的的密碼修改于讀者的一直以后不在說明) 3.1.10 讀書類型和讀書類型設(shè)置模塊模 讀者類型和圖書分類的操作功能是:修改、添加、刪除讀者的分類或者圖書分類設(shè)置,分別是放在兩個(gè)窗體當(dāng)中。流程圖和代碼編寫與讀者編目有許多相識(shí)之處,所以不在講解。 3.1.11 統(tǒng)計(jì)模塊 該模塊的作用是分別統(tǒng)計(jì),統(tǒng)計(jì)出本年的借閱信息、熱門圖書信息,歷史的支出與收支金額信息。 A 本年度借閱信息設(shè)計(jì): 需要說明: 1 這個(gè)統(tǒng)計(jì)的功能是根據(jù)借閱歷史表和圖書信息表里的相關(guān)信息統(tǒng)計(jì)出來的,條件是今年以內(nèi)。 2 統(tǒng)計(jì)出信息有:今年購書圖書總數(shù)、外借圖書總數(shù)、購置圖書總支出、預(yù)計(jì)罰款總收
64、入、實(shí)際罰款總收入、超期歸還總數(shù)、超期未歸還總數(shù)。 3 統(tǒng)計(jì)思想:采用數(shù)據(jù)庫的存儲(chǔ)過程統(tǒng)計(jì)(Stat_nowyear)。 功能描述: 1 功能類型:查詢數(shù)據(jù) 2 功能概述:統(tǒng)計(jì)顯示相關(guān)信息 3 操作權(quán)限:圖書管理員 界面設(shè)計(jì)描述: 1 操作說明: 2 界面展示如下圖所示: B熱門圖書統(tǒng)計(jì)設(shè)計(jì)(含有打印功能): 需要說明: 1 這個(gè)子模塊的功能是統(tǒng)計(jì)今年最好最熱門的圖書的全部信息。條件是今年。 2 統(tǒng)計(jì)出信息有:圖書的全部信息。 3 統(tǒng)計(jì)思想:采用數(shù)據(jù)庫的試圖,根據(jù)每本書被借的次數(shù)安降序排列。 4 統(tǒng)計(jì)出來的信息放入到dat
65、aGridView里面;并卻能夠支持打印出表格的數(shù)據(jù)。 功能說明描述: 1 功能類型:查詢數(shù)據(jù) 2 功能概述:統(tǒng)計(jì)顯示相關(guān)信息 3 操作權(quán)限:面向所有用戶 打印功能接口: public static void ExportData(DataGridView srcDgv, string fileName) //導(dǎo)出數(shù)據(jù),傳入一個(gè)datagridview和一個(gè)文件路徑 { 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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 六年級(jí)科學(xué)下冊(cè)第三單元宇宙5太陽系課件(教科版)
- 餐飲服務(wù)意識(shí)
- 第3章 鋼筋和混凝土的材料力學(xué)性能
- 《遠(yuǎn)離有毒物質(zhì)》課件-(市優(yōu))2022年九年級(jí)化學(xué)課件
- 綠色發(fā)展答辯
- 師德修養(yǎng)及相關(guān)法律法規(guī)介紹 (2)
- 汽車檢測(cè)診斷技術(shù)與設(shè)備第9章-汽車前照燈的檢測(cè)與檢測(cè)設(shè)備-PPT
- 消費(fèi)行為與廣告心理專業(yè)基礎(chǔ)知識(shí)
- 備戰(zhàn)2010高考課件:2009年全國高考名句名篇默寫匯總
- 信息倫與編碼
- 奔馳傳奇歷史
- 鮑曼不動(dòng)桿菌專家共識(shí)解讀課件
- 衛(wèi)生系統(tǒng)績(jī)效評(píng)價(jià)培訓(xùn)課件
- 高考數(shù)學(xué)二輪復(fù)習(xí)第1部分重點(diǎn)強(qiáng)化專題專題1三角函數(shù)與平面向量突破點(diǎn)1三角函數(shù)問題課件文
- 小兒腹瀉講解匯總