版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、基于c#的圖書館管理系統(tǒng)課程設(shè)計(jì)報(bào)告書專 業(yè):信息管理與信息系統(tǒng) 課程設(shè)計(jì)名稱:可視化編程技術(shù)課程設(shè)計(jì)題 目:圖書館管理系統(tǒng)班 級(jí):0634081班設(shè) 計(jì) 者:063408113 同 組 人 員: 指 導(dǎo) 老 師:】完 成 時(shí) 間:2011-1-5摘要隨著社會(huì)的發(fā)展,人們生活水平的不斷提高,物質(zhì)文化的發(fā)展已經(jīng)遠(yuǎn)遠(yuǎn)滿足不了人們的需求,精神文明有了飛速的發(fā)展,因此圖書事業(yè)的發(fā)展就成為了精神文明進(jìn)步的一個(gè)動(dòng)力。在邁入二十一世紀(jì)的今天,對(duì)圖書館的管理顯得極其重要,合理的管理不但反映了一個(gè)國(guó)家的科技水平,而且影響人們對(duì)知識(shí)掌握的速度和質(zhì)量。在知識(shí)經(jīng)濟(jì)時(shí)代到來的今天,用計(jì)算機(jī)管理圖書館的工作由自動(dòng)化系統(tǒng)運(yùn)
2、行而完成。這不僅節(jié)省了人力,還提高了工作效率和服務(wù)質(zhì)量,而且還加速了圖書的流通。本圖書館管理系統(tǒng)是按基本圖書館系統(tǒng)結(jié)構(gòu)開發(fā)的,本文重點(diǎn)描述圖書添加、圖書信息更新、刪除圖書、圖書查詢等功能。前言部分論述了圖書館系統(tǒng)的發(fā)展以及圖書館用計(jì)算機(jī)自動(dòng)化管理的前景。正文論述了圖書館管理系統(tǒng)的特點(diǎn)及圖書館自動(dòng)化管理的重要性和圖書館管理系統(tǒng)軟件需要實(shí)現(xiàn)的主要功能,分析圖書館管理系統(tǒng)以及實(shí)現(xiàn)軟件開發(fā)的系統(tǒng)要求,簡(jiǎn)述了實(shí)現(xiàn)圖書館管理系統(tǒng)設(shè)計(jì)需要,圖書館系統(tǒng)數(shù)據(jù)庫(kù)的設(shè)計(jì),程序流程圖以及詳細(xì)設(shè)計(jì),并陳列了改系統(tǒng)開發(fā)所應(yīng)用的主要參考文獻(xiàn)。關(guān)鍵詞:理信息系統(tǒng) 圖書館 c# 數(shù)據(jù)庫(kù)表 sql server2000目錄目錄1
3、第一章開發(fā)環(huán)境和開發(fā)工具21.1c#語(yǔ)言簡(jiǎn)介21.2 開發(fā)背景21.3 開發(fā)環(huán)境3第二章 圖書館管理系統(tǒng)的分析與設(shè)計(jì)32.1 系統(tǒng)需求分析32.2 系統(tǒng)總體設(shè)計(jì)42.2.1 系統(tǒng)設(shè)計(jì)目標(biāo)42.2.2 開發(fā)設(shè)計(jì)思想42.2.3 系統(tǒng)功能模塊設(shè)計(jì)5第三章數(shù)據(jù)庫(kù)設(shè)計(jì)63.1 引入背景63.2 數(shù)據(jù)庫(kù)需求分析73.3 數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)83.4 數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)9第四章系統(tǒng)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)114.1 公共類設(shè)計(jì)與實(shí)現(xiàn)124.2 數(shù)據(jù)訪問層類設(shè)計(jì)與實(shí)現(xiàn)134.3 業(yè)務(wù)邏輯層類設(shè)計(jì)與實(shí)現(xiàn)194.4 界面設(shè)計(jì)及實(shí)現(xiàn)204.4.1 登陸界面及代碼204.4.2 主界面及代碼21結(jié) 論24心得體會(huì)25參考文獻(xiàn)2
4、6第一章 系統(tǒng)開發(fā)環(huán)境和開發(fā)工具1.1 c#語(yǔ)言簡(jiǎn)介 c#是美國(guó)微軟公司推出的windows操作系統(tǒng)下的應(yīng)用程序開發(fā)平臺(tái)visualstudio.net(簡(jiǎn)稱vs.net)家族中的一員c#是對(duì)c+進(jìn)行了很大改進(jìn)的一種完全面向?qū)ο蟮目梢暬绦蛟O(shè)計(jì)語(yǔ)言。由于c#采用了類似于visual basic 的較易使用的程序設(shè)計(jì)界面,從而成為了一種更加簡(jiǎn)單易學(xué)、功能強(qiáng)大的應(yīng)用程序開發(fā)工具。c#是一種先進(jìn)的、面向?qū)ο蟮恼Z(yǔ)言,使用c#語(yǔ)言可以讓開發(fā)人員快速的建立大范圍的基于ms網(wǎng)絡(luò)平臺(tái)的應(yīng)用,并且提供大量的開發(fā)工具和服務(wù),幫助開發(fā)人員開發(fā)機(jī)基于計(jì)算和通信的各種應(yīng)用。由于c#是一種面向?qū)ο蟮拈_發(fā)語(yǔ)言,所以c#可以
5、大范圍地適用于高層商業(yè)應(yīng)用和底層系統(tǒng)的開發(fā)。即使是通過簡(jiǎn)單的c#構(gòu)造,也可以讓各種組件方便的轉(zhuǎn)變?yōu)榛趙eb的應(yīng)用,并且能夠通過internet被各種系統(tǒng)或是其他開發(fā)語(yǔ)言所開發(fā)的應(yīng)用調(diào)用。1.2 開發(fā)背景圖書館在正常運(yùn)營(yíng)中面對(duì)大量書籍、讀者信息以及兩者間相互聯(lián)系產(chǎn)生的借書信息、還書信息?,F(xiàn)有的人工記錄方法既效率低又錯(cuò)誤過多,大大影響了圖書館的正常管理工作。因此需要對(duì)書籍資源、讀者資源、借書信息、還書信息進(jìn)行管理,及時(shí)了解各個(gè)環(huán)節(jié)中信息的變更,有利用管理效率的提高。目前社會(huì)上信息管理系統(tǒng)發(fā)展飛快,各個(gè)企事業(yè)單位都引入了信息管理軟件來管理自己日益增長(zhǎng)的各種信息,圖書管理系統(tǒng)也是有了很大的發(fā)展,商業(yè)
6、化的圖書信息管理軟件也不少。但本系統(tǒng)完全獨(dú)立開發(fā),力求使系統(tǒng)功能簡(jiǎn)潔明了,但功能齊全且易于操作。1.3 開發(fā)環(huán)境本文所采用的開發(fā)環(huán)境主要是基于數(shù)據(jù)庫(kù)系統(tǒng)的sql server 2000 和基于面向?qū)ο蟪绦蛟O(shè)計(jì)的c#。利用sql server 2000創(chuàng)建圖書館管理各信息表用戶信息表、圖書信息表。利用c#和數(shù)據(jù)庫(kù)建立連接之后,利用c#中的控件按鈕以及一些程序代碼實(shí)現(xiàn)一些特定的功能,例如用戶圖書信息查詢、書庫(kù)借出查詢、密碼修改、查找圖書、個(gè)人信息查詢、添加用戶等,極大地提高了圖書館管理的效率。第二章 圖書館管理系統(tǒng)的析與設(shè)計(jì)2.1 系統(tǒng)需求分析 隨著經(jīng)濟(jì)全球化的推進(jìn)以及企業(yè)激烈的競(jìng)爭(zhēng),各大高校的圖
7、書管理系統(tǒng)已經(jīng)越來越不能夠適應(yīng)讀者和圖書信息劇增的局面了,所以我們現(xiàn)在需要一個(gè)檢索迅速、查找方便、易修改功能齊全方便的系統(tǒng)來適應(yīng)我們的需求。系統(tǒng)采用先進(jìn)的兩層體系結(jié)構(gòu),client(客戶端)負(fù)責(zé)提供表達(dá)邏輯、顯示用戶界面信息、基本操作;server(服務(wù)器端)負(fù)責(zé)實(shí)現(xiàn)數(shù)據(jù)服務(wù)。問題的提出:為了減少人工工作量,提高工作效率,使圖書館管理員的工作更加有效地進(jìn)行。2.2 系統(tǒng)總體設(shè)計(jì)2.2.1 系統(tǒng)設(shè)計(jì)目該圖書管管理系統(tǒng)的核心思想是實(shí)現(xiàn)對(duì)圖書信息增、刪、改、查的管理。根據(jù)圖書館日常圖書管理工作的需求和圖書借閱的管理流程,該系統(tǒng)實(shí)施后,應(yīng)該達(dá)到以下目標(biāo):1. 充分了解用戶需求及當(dāng)前形式,功能齊備,能完
8、成圖書處理;2. 要有詳細(xì)的設(shè)計(jì)說明書;3. 每一模塊的流程圖要很清晰;4. 系統(tǒng)能夠正常的運(yùn)行,能較好的完成預(yù)定的功能;5. 系統(tǒng)要有完整的幫助文件,供前臺(tái)操作員能方便的操作本系統(tǒng)。6. 系統(tǒng)應(yīng)該具備管理用戶的信息,對(duì)用戶的信息進(jìn)行管理,實(shí)現(xiàn)用戶圖書的借閱功能。2.2.2 開發(fā)設(shè)計(jì)思想基于以上系統(tǒng)設(shè)計(jì)目標(biāo),本文在開發(fā)人事管理信息系統(tǒng)時(shí)遵循了以下開發(fā)設(shè)計(jì)思想:(1)采用現(xiàn)有的軟硬件環(huán)境及先進(jìn)的管理系統(tǒng)開發(fā)方案,從而達(dá)到充分利用現(xiàn)有資源,提高系統(tǒng)開發(fā)水平和應(yīng)用效果的目的。(2)盡量達(dá)到操作過程中的直觀、方便、實(shí)用、安全等要求。(3)系統(tǒng)采用c/s體系結(jié)構(gòu),clinet(客戶端)負(fù)責(zé)提供表達(dá)邏輯、
9、顯示用戶界面信息、訪問數(shù)據(jù)庫(kù)服務(wù)器;server(服務(wù)器端)則用于提供數(shù)據(jù)服務(wù)。三層體系的應(yīng)用程序?qū)I(yè)務(wù)規(guī)則、數(shù)據(jù)訪問、合法性校驗(yàn)等工作放到了中間層進(jìn)行處理。通常情況下,客戶端不直接與數(shù)據(jù)庫(kù)進(jìn)行交互,而是中間層向外提供接口,通過com/dcom通訊或者h(yuǎn)ttp等方式與中間層建立連接,再經(jīng)由中間層與數(shù)據(jù)庫(kù)進(jìn)行交互。當(dāng)然數(shù)據(jù)通過中間層的中轉(zhuǎn)無疑是降低了效率,但是它脫離于界面與數(shù)據(jù)庫(kù)的完美封裝,使得它的缺點(diǎn)顯然不值得一提。典型的三層結(jié)構(gòu)分為表示(presentation)層, 領(lǐng)域(domain)層, 以及基礎(chǔ)架構(gòu)(infrastructure)層,而微軟的dna架構(gòu)定義了三個(gè)層:表示層(prese
10、ntation),業(yè)務(wù)層(business),和數(shù)據(jù)存儲(chǔ)層(data access)。(4)系統(tǒng)采用模塊化程序設(shè)計(jì)方法,既便于系統(tǒng)功能的各種組合和修改,又便于未參與開發(fā)的技術(shù)維護(hù)人員補(bǔ)充、維護(hù)。(5)系統(tǒng)應(yīng)具備數(shù)據(jù)庫(kù)維護(hù)功能,及時(shí)根據(jù)用戶需求進(jìn)行數(shù)據(jù)的添加、刪除、修改、備份等操作。2.2.3 系統(tǒng)功能模塊設(shè)計(jì)本系統(tǒng)分為普通用戶(讀者)和管理員,普通用戶的職能模塊包括查詢圖書、借閱圖書和查詢已借圖書信息,管理員職能模塊包括用戶管理、圖書管理、借閱管理、登錄管理,得到如圖系統(tǒng)功能模塊:第三章 數(shù)據(jù)庫(kù)設(shè)計(jì)3.1 引入背景圖書館管理系統(tǒng)是一個(gè)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng),用戶及圖書的所有信息都保存在數(shù)據(jù)庫(kù)中。數(shù)據(jù)庫(kù)
11、結(jié)構(gòu)設(shè)計(jì)是圖書館管理信息系統(tǒng)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)開發(fā)過程中一個(gè)非常重要的環(huán)節(jié),設(shè)計(jì)的好壞將直接對(duì)所開發(fā)的圖書館管理信息系統(tǒng)的效率以及實(shí)現(xiàn)的效果產(chǎn)生影響。好的數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)會(huì)減少數(shù)據(jù)庫(kù)的存儲(chǔ)量,數(shù)據(jù)的完整性和一致性比較高,系統(tǒng)具有較快的響應(yīng)速度,簡(jiǎn)化基于此數(shù)據(jù)庫(kù)的應(yīng)用程序的實(shí)現(xiàn)等等。數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)主要就是要設(shè)計(jì)好數(shù)據(jù)庫(kù)中各個(gè)表的結(jié)構(gòu),包括信息保存在哪些表格中、各個(gè)表的結(jié)構(gòu)如何以及各個(gè)表之間的關(guān)系。由于數(shù)據(jù)庫(kù)設(shè)計(jì)的重要性,人們提出了許多數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)的技術(shù)。3.2 數(shù)據(jù)庫(kù)需求分析數(shù)據(jù)庫(kù)需求分析是數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)的第一個(gè)階段,也是非常重要的一個(gè)階段。在這個(gè)階段主要工作是收集基本數(shù)據(jù)以及數(shù)據(jù)處理的流程,為以后
12、進(jìn)一步設(shè)計(jì)一打下基礎(chǔ)。需求分析主要解決兩個(gè)問題:(1)內(nèi)容要求。調(diào)查應(yīng)用系統(tǒng)用戶所需要操作的數(shù)據(jù),決定在數(shù)據(jù)庫(kù)中存儲(chǔ)什么數(shù)據(jù)。(2)處理要求。調(diào)查應(yīng)用系統(tǒng)用戶要求對(duì)數(shù)據(jù)庫(kù)進(jìn)行什么樣的處理,理清數(shù)據(jù)庫(kù)中各種數(shù)據(jù)之間的關(guān)系。在數(shù)據(jù)庫(kù)需求分析后,得到一個(gè)數(shù)據(jù)字典文檔,包括3方面內(nèi)容:(1)數(shù)據(jù)項(xiàng)。包括名稱、含義、類型、取值范圍、長(zhǎng)度以及和其他數(shù)據(jù)項(xiàng)之間的邏輯關(guān)系。(2)數(shù)據(jù)結(jié)構(gòu)。若干個(gè)數(shù)據(jù)項(xiàng)的有意義的集合,包括名稱、含義以及組成數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)項(xiàng)。(3)數(shù)據(jù)流。指數(shù)據(jù)中數(shù)據(jù)的處理過程,包括輸入、處理和輸出。本系統(tǒng)數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)如下:(1)圖書基本情況。包括的數(shù)據(jù)項(xiàng)有圖書id、圖書名稱、圖書類別類
13、別、作者、價(jià)格、出版社、內(nèi)容簡(jiǎn)介、圖書指定訪問碼。(2)圖書借閱信息。包括的數(shù)據(jù)項(xiàng)有圖書指定訪問碼、圖書id、圖書名稱、圖書類別、作者、出版社、借閱者權(quán)限、借出時(shí)間、用戶編號(hào)。(3)用戶登錄信息。包括用戶id、用戶名、密碼、借閱者權(quán)限。3.3 數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)是在需求分析的基礎(chǔ)上,設(shè)計(jì)出能夠滿足用戶需求的各種實(shí)體,以及它們之間的關(guān)系,為后面的邏輯結(jié)構(gòu)設(shè)計(jì)打下基礎(chǔ)。用e-r圖是描述數(shù)據(jù)實(shí)體關(guān)系的一種直觀描述工具,所以本系統(tǒng)采用了e-r圖的方法進(jìn)行數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)。用戶實(shí)體e-r圖:圖書實(shí)體e-r圖:圖書借閱實(shí)體e-r圖:3.4 數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)概念結(jié)構(gòu)是獨(dú)立于實(shí)際數(shù)據(jù)模型
14、的信息結(jié)構(gòu),必須將其轉(zhuǎn)化為邏輯結(jié)構(gòu)后才能進(jìn)行數(shù)據(jù)庫(kù)應(yīng)用的設(shè)計(jì)。也就是要將概念上的結(jié)構(gòu)轉(zhuǎn)化為bp數(shù)據(jù)庫(kù)系統(tǒng)所支持的實(shí)際數(shù)據(jù)模型。根據(jù)需求分析進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì),數(shù)據(jù)庫(kù)名稱為 bookmanage ,共需要三張表:用戶表(userinfo)、 圖書信息表(bookinfo)、圖書借閱信息表(bookout)。用戶表存放用戶賬號(hào)的信息,一個(gè)用戶可以對(duì)應(yīng)一個(gè)賬戶,包括用戶名、密碼、借閱證號(hào)和用戶權(quán)限。通過用戶表查閱用戶權(quán)限和借閱證號(hào),判斷是否是管理員,是否擁有修改圖書和用戶信息的權(quán)限。圖書信息表里每條記錄都是一本書,包括圖書名稱、圖書類別、作者、價(jià)格、內(nèi)容簡(jiǎn)介和圖書的訪問碼。通過圖書信息表可以獲取圖書信息
15、。 圖書借閱表記錄用戶借閱圖書的信息,包括借閱的圖書、借閱時(shí)間、借閱人。通過圖書借閱信息表可以獲取圖書借閱的信息。圖書借閱情況表:在此三個(gè)表的基礎(chǔ)上輸入數(shù)據(jù)完成表的創(chuàng)建。第四章 系統(tǒng)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn) 為實(shí)現(xiàn)該系統(tǒng),建立名為book的解決方案,建立三層架構(gòu),用戶訪問層(bookui)、數(shù)據(jù)訪問層(bookdal)、邏輯業(yè)務(wù)層(bookbll)4.1 公共類設(shè)計(jì)與實(shí)現(xiàn)用戶訪問層用戶訪問層(bookui),位于最外層,離用戶最近。用于顯示數(shù)據(jù)和接收用戶輸入的數(shù)據(jù),為用戶提供一種交互式操作的界面。本系統(tǒng)創(chuàng)建窗口,實(shí)現(xiàn)圖書信息和用戶信息的增、刪、改、查操作。實(shí)體類model:book.cs、user.cs
16、、bookout.cs, 是關(guān)系數(shù)據(jù)庫(kù)和對(duì)象之間架起一座橋梁,幫助我們完成傳遞參數(shù)功能,實(shí)現(xiàn)按某一字段進(jìn)行查詢。如圖所示: 4.2 數(shù)據(jù)訪問層類設(shè)計(jì)與實(shí)現(xiàn) 數(shù)據(jù)訪問層(bookdal):該層所做事務(wù)直接操作數(shù)據(jù)庫(kù),針對(duì)數(shù)據(jù)的增添、刪除、修改、更新、查找等。本實(shí)例系統(tǒng)的主要操作都需要與數(shù)據(jù)庫(kù)發(fā)生交互,操作數(shù)據(jù)庫(kù)是必不可少的,為了減少 重復(fù)代碼提高代碼的重用性和規(guī)范性,把與數(shù)據(jù)庫(kù)交互的功能單獨(dú)放在一個(gè)類中,在該類中 實(shí)現(xiàn)數(shù)據(jù)庫(kù)的增加、刪除、修改、查詢等通用功能。因此創(chuàng)建databa.cs類,放在bookutility方案下,實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的操作,代碼如下:namespace bookutility
17、public class database private static string _connstr = data source=.;initial catalog=bookmanage;integrated security=true; private static sqlconnection sqlcon = null; private static void createconnection() if (sqlcon = null) sqlcon = new sqlconnection(_connstr); sqlcon.open(); else if (sqlcon.state =
18、 connectionstate.closed | sqlcon.state = connectionstate.broken) sqlcon.close(); sqlcon.open(); public static sqlcommand querry(string strsql) try createconnection(); sqlcommand sqlcmd = new sqlcommand(strsql, sqlcon); sqlcmd.commandtext = strsql; return sqlcmd; catch return null; /執(zhí)行insert/update/d
19、elete,不帶參數(shù) public static int executenoquery(string strsql) int i; try createconnection(); sqlcommand sqlcmd = new sqlcommand(strsql, sqlcon); i = sqlcmd.executenonquery(); sqlcon.close(); return i; catch return -1; /執(zhí)行insert/update/delete,帶參數(shù) public static int executenoquery(string strsql, params sq
20、lparameter param) int i; try createconnection(); sqlcommand sqlcmd = new sqlcommand(strsql, sqlcon); /sqlcmd.parameters.add(param); foreach (sqlparameter par in param) /遍歷數(shù)組將參數(shù)對(duì)象添加到操作命令中 sqlcmd.parameters.add(par); i = sqlcmd.executenonquery(); return i; catch return -1; public static dataset getdat
21、aset(string strsql) createconnection(); sqldataadapter sda = new sqldataadapter(strsql, sqlcon); dataset ds = new dataset(); try sda.fill(ds); return ds; catch return null; public static dataset getdataset(string strsql, params sqlparameter param) createconnection(); sqldataadapter sda = new sqldata
22、adapter(strsql, sqlcon); dataset ds = new dataset(); foreach (sqlparameter par in param) sda.selectcommand.parameters.add(par); try sda.fill(ds); return ds; catch return null; public static datatable gettable(string strsql) try createconnection(); sqldataadapter sda = new sqldataadapter(strsql, sqlc
23、on); dataset ds = new dataset(); sda.fill(ds, temp); sqlcon.close(); return ds.tablestemp; catch return null; public static datatable gettable(string strsql, params sqlparameter param) try createconnection(); string str = strsql; sqldataadapter sda = new sqldataadapter(strsql, sqlcon); foreach (sqlp
24、arameter par in param) sda.selectcommand.parameters.add(par); dataset ds = new dataset(); sda.fill(ds, temp); sqlcon.close(); return ds.tablestemp; catch return null; 數(shù)據(jù)訪問層創(chuàng)建了兩個(gè)類,bookaccess.cs和useraccess.cs,分別實(shí)現(xiàn)訪問存放書籍和用戶的信息的功能,代碼如下:namespace bookdal public class bookaccess public datatable bookquarr
25、y(book b) string str = select * from bookinfo where booktype= + b.booktype + or bookname like% + b.bookname + % or bookauthor=% + b.bookauthor + %or bookid= + b.bookid + ; return database.gettable(str); public datatable quarryall() string str = select * from bookinfo; return database.gettable(str);
26、public datatable quarrymybook(string id) sqlparameter param = new sqlparameter new sqlparameter(uid,id); string str = select bookissue,bookid,bookname,booktype,bookauthor,bookpub,bookouttime from bookout where uid=uid; return database.gettable(str,param); public datatable quarryallout() string str =
27、 select * from bookout; return database.gettable(str); public sqlcommand quarrybyid(string id) string str = select * from bookinfo where bookid= + id + ; return database.querry(str); public int addbook(book b) sqlparameter parm = new sqlparameter new sqlparameter(bookid, b.bookid), new sqlparameter(
28、bookname, b.bookname), new sqlparameter(booktype, b.booktype), new sqlparameter(bookauthor, b.bookauthor), new sqlparameter(bookprice, b.bookprice), new sqlparameter(bookpub, b.bookpub), new sqlparameter(bookcontent, b.bookcontent), new sqlparameter(bookissue, b.bookissue) ; string str = insert into
29、 bookinfo values(bookid,bookname,booktype,bookauthor,bookprice,bookpub,bookcontent,bookissue); int i = database.executenoquery(str, parm); return i; public int bookout(bookout bo) sqlparameter parm = new sqlparameter new sqlparameter(bookissue, bo.bookissue), new sqlparameter(bookid, bo.bookid), new
30、 sqlparameter(bookname, bo.bookname), new sqlparameter(booktype, bo.booktype), new sqlparameter(bookauthor, bo.bookauthor), new sqlparameter(bookpub, bo.bookpub), new sqlparameter(uidentify, bo.uidentify), new sqlparameter(bookouttime, bo.bookouttime),new sqlparameter(uid, bo.uid) ; string str = ins
31、ert into bookout values(bookissue,bookid,bookname,booktype,bookauthor,bookpub,uidentify,bookouttime,uid); int i = database.executenoquery(str, parm); return i; public int updatebook(book b) sqlparameter parm = new sqlparameter new sqlparameter(bookid, b.bookid), new sqlparameter(bookname, b.bookname
32、), new sqlparameter(booktype, b.booktype), new sqlparameter(bookauthor, b.bookauthor), new sqlparameter(bookprice, b.bookprice), new sqlparameter(bookpub, b.bookpub), new sqlparameter(bookcontent, b.bookcontent), new sqlparameter(bookissue, b.bookissue) ; string str = update bookinfo set bookname=bo
33、okname,booktype=booktype,bookauthor=bookauthor,bookprice=bookprice,bookpub=bookpub,bookcontent=bookcontent,bookissue=bookissue where bookid=bookid; int i = database.executenoquery(str, parm); return i; public int deletebook(string bookid) string str = delete bookinfo where bookid= + bookid + ; int i
34、 = database.executenoquery(str); return i; public datatable deletemybook(string bookissue) sqlparameter param = new sqlparameter new sqlparameter(bookissue, bookissue) ; string str = delete bookout where bookissue=bookissue; return database.gettable(str, param); 4.3 業(yè)務(wù)邏輯層類設(shè)計(jì)與實(shí)現(xiàn) 業(yè)務(wù)邏輯層(bookbll)在體系架構(gòu)中的
35、位置很關(guān)鍵,負(fù)責(zé)關(guān)鍵業(yè)務(wù)的處理和數(shù)據(jù)傳遞,它處于數(shù)據(jù)訪問層與表示層中間,起到了數(shù)據(jù)交換中承上啟下的作用。由于層是一種弱耦合結(jié)構(gòu),層與層之間的依賴是向下的,底層對(duì)于上層而言是“無知”的,改變上層的設(shè)計(jì)對(duì)于其調(diào)用的底層而言沒有任何影響。如果在分層設(shè)計(jì)時(shí),遵循了面向接口設(shè)計(jì)的思想,那么這種向下的依賴也應(yīng)該是一種弱依賴關(guān)系。因而在不改變接口定義的前提下,理想的分層式架構(gòu),應(yīng)該是一個(gè)支持可抽取、可替換的“抽屜”式架構(gòu)。正因?yàn)槿绱?,業(yè)務(wù)邏輯層的設(shè)計(jì)對(duì)于一個(gè)支持可擴(kuò)展的架構(gòu)尤為關(guān)鍵,因?yàn)樗缪萘藘蓚€(gè)不同的角色。對(duì)于數(shù)據(jù)訪問層而言,它是調(diào)用者;對(duì)于表示層而言,它卻是被調(diào)用者。 本管理系統(tǒng)創(chuàng)建bookmessa
36、ge、usermessage兩個(gè)類,實(shí)現(xiàn)數(shù)據(jù)訪問層和用戶訪問層之間的數(shù)據(jù)傳遞。4.4 界面設(shè)計(jì)及實(shí)現(xiàn)4.4.1 登錄界面及代碼本系統(tǒng)的用戶分為普通用戶(讀者)和管理員用戶,管理員用戶具有系統(tǒng)提供的所有權(quán)限,普通用戶可以查詢圖書、借閱圖書、查詢個(gè)人借閱信息。系統(tǒng)登錄界面是判斷用戶身份的一個(gè)交互窗體,在其中輸入正確的用戶名和密碼后,單擊“確定”按鈕,可根據(jù)用戶角色在主界面中擁有相應(yīng)的權(quán)限。登錄界面如圖所示:4.4.2 主界面及代碼 菜單界面,添加menustrip菜單控件,實(shí)現(xiàn)各操作界面的連接,本圖書館管理系統(tǒng)有兩個(gè)菜單界面,管理員窗口和讀者窗口,完成不同權(quán)限用戶的交互操作界面。圖書管理窗口,瀏覽
37、圖書信息,實(shí)現(xiàn)管理員對(duì)圖書的增刪改查操作。添加圖書窗口:完成圖書的入庫(kù)操作管理員有權(quán)限可以將圖書添加到數(shù)據(jù)庫(kù)中,圖書入庫(kù)界面如上圖所示。在分組框中添加標(biāo)簽和文本框,用來接收管理員輸人的圖書信息,以便保存到數(shù)據(jù)庫(kù)中。代碼如下:public partial class addbook : form public addbook() initializecomponent(); bookmessage bm = new bookmessage(); book books = new book(); private void button1_click(object sender, eventargs
38、 e) if (textbox1.text.trim() = | textbox2.text.trim() = | textbox3.text.trim() = | textbox4.text.trim() = | textbox5.text.trim() = | textbox6.text.trim() = | textbox7.text.trim() = | combobox1.text.trim() = ) messagebox.show(信息輸入不完整,請(qǐng)重新輸入, 確定); else books.bookid = textbox1.text.trim(); books.booknam
39、e = textbox2.text.trim(); books.booktype = combobox1.text.trim(); books.bookauthor = textbox5.text.trim(); books.bookprice = textbox4.text.trim(); books.bookpub = textbox3.text.trim(); books.bookcontent = textbox7.text.trim(); books.bookissue = textbox6.text.trim(); sqlcommand cm = bm.qurrybyid(books.bookid); if (null!=cm.executescalar() messagebox.show(此圖書已存在, 確定); else int i = bm.addbook(books); if (i!= 0) messagebox.show(添加圖書成功, 確定); 查詢用戶信息界面: 結(jié)論本系統(tǒng)用sql server 2000做為后臺(tái)數(shù)據(jù)庫(kù)創(chuàng)建所需要的數(shù)據(jù)庫(kù)和表,用c#語(yǔ)言進(jìn)行連接,以及對(duì)數(shù)據(jù)庫(kù)進(jìn)行檢索、添加和刪除。從最后設(shè)計(jì)出的測(cè)試結(jié)果來看,效果比較明顯,檢索迅速、查找方便、可靠性高、存儲(chǔ)量大、信
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版農(nóng)業(yè)機(jī)械租賃與農(nóng)業(yè)大數(shù)據(jù)應(yīng)用合同3篇
- 二零二五年度鎳礦石開采環(huán)境保護(hù)與生態(tài)修復(fù)合同4篇
- 二零二五年度畜牧產(chǎn)業(yè)園區(qū)入駐項(xiàng)目買賣合同范本4篇
- 二零二五年度智慧社區(qū)農(nóng)民工就業(yè)管理合同3篇
- 28、2025年度建筑起重機(jī)械安裝與拆卸施工安全防護(hù)方案合同3篇
- 2025版農(nóng)用拖拉機(jī)零部件定制加工合同書2篇
- 職場(chǎng)溝通中的語(yǔ)言策略與運(yùn)用研究
- 教育科技助力家庭情感教育
- 新常態(tài)下公共健康教育戰(zhàn)略研究含尿毒癥篇
- 二零二四年度新型墻體材料砌筑施工合同范本3篇
- 五年級(jí)上冊(cè)寒假作業(yè)答案(人教版)
- 2025年山東浪潮集團(tuán)限公司招聘25人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025年江西省港口集團(tuán)招聘筆試參考題庫(kù)含答案解析
- (2024年)中國(guó)傳統(tǒng)文化介紹課件
- 液化氣安全檢查及整改方案
- 《冠心病》課件(完整版)
- 2024年云網(wǎng)安全應(yīng)知應(yīng)會(huì)考試題庫(kù)
- 公園保潔服務(wù)投標(biāo)方案
- 光伏電站項(xiàng)目合作開發(fā)合同協(xié)議書三方版
- 禪密功筑基功法
- 2024年秋季新滬教版九年級(jí)上冊(cè)化學(xué)課件 第2章 空氣與水資源第1節(jié) 空氣的組成
評(píng)論
0/150
提交評(píng)論