UML課程設(shè)計(jì)-圖書管理系統(tǒng)設(shè)計(jì)_第1頁(yè)
UML課程設(shè)計(jì)-圖書管理系統(tǒng)設(shè)計(jì)_第2頁(yè)
UML課程設(shè)計(jì)-圖書管理系統(tǒng)設(shè)計(jì)_第3頁(yè)
UML課程設(shè)計(jì)-圖書管理系統(tǒng)設(shè)計(jì)_第4頁(yè)
UML課程設(shè)計(jì)-圖書管理系統(tǒng)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩13頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第一章 緒論1.1概述1.1.1 開(kāi)發(fā)背景業(yè)務(wù)建模和需求分析的目的是對(duì)數(shù)字圖書館進(jìn)行評(píng)估,采集和分析系統(tǒng)的需求,理解系統(tǒng)要解決的問(wèn)題,重點(diǎn)是充分考慮系統(tǒng)的實(shí)用性。結(jié)果可以用一個(gè)Use Case模型表達(dá)(圖2), 模型中的活動(dòng)者代表外部與系統(tǒng)交互的單元,包括用戶、圖書館工作人員和外部信息源;UseCase是對(duì)系統(tǒng)需求的描述,表達(dá)了系統(tǒng)的功能和所提供的服務(wù),包括采購(gòu)子系統(tǒng)、編目子系統(tǒng)和流通子系統(tǒng)。對(duì)于數(shù)字圖書館而言,流通子系統(tǒng)還應(yīng)該考慮到普通書刊流通和電子書刊流通的區(qū)別。電子書刊是指內(nèi)容為數(shù)字格式、發(fā)行為電子方式、用計(jì)算機(jī)閱讀和存儲(chǔ)的電子讀物,可以實(shí)現(xiàn)普通書刊所沒(méi)有的全文檢索、頁(yè)面批注、摘要、字體

2、縮放等功能。用戶無(wú)論何時(shí)何地,都可以在線借還,這是數(shù)字圖書館服務(wù)功能的一個(gè)重要組成部分,也是對(duì)傳統(tǒng)圖書館服務(wù)功能的延伸和拓展,其中的關(guān)鍵是流通子系統(tǒng)在實(shí)現(xiàn)時(shí)必須能對(duì)電子書刊的版權(quán)、以及可以同時(shí)借閱的用戶數(shù)進(jìn)行保護(hù)和控制。 1.1.2 圖書管理系統(tǒng)的特點(diǎn)圖書管理系統(tǒng)是圖書管理人員對(duì)圖書有效的管理的一種不可缺少的工具,具有著手工管理所無(wú)法比擬的優(yōu)點(diǎn).例如:檢索迅速、查找方便、可靠性高、存儲(chǔ)量大、保密性好、壽命長(zhǎng)、成本低等。這些優(yōu)點(diǎn)能夠極大地提高圖書管理的效率,也是企業(yè)的科學(xué)化、正規(guī)化管理,與世界接軌的重要條件。因此,開(kāi)發(fā)這樣一套管理軟件成為很有必要的事情,在下面的各章中我們將以開(kāi)發(fā)一套圖書管理系統(tǒng)

3、為例,談?wù)勂溟_(kāi)發(fā)過(guò)程和所涉及到的問(wèn)題及解決方法。1.2 圖書管理系統(tǒng)需求分析1.2.1 圖書管理系統(tǒng)需求大體描述圖書信息管理系統(tǒng)是使用計(jì)算機(jī)實(shí)現(xiàn)圖書大量信息處理的電子檔案管理系統(tǒng),在本系統(tǒng)中主要滿足借書者、圖書管理員和系統(tǒng)管理員3方面的需求。對(duì)借書者來(lái)說(shuō)主要是查詢個(gè)人信息、查詢圖書信息、預(yù)定當(dāng)前正在被別人借閱的圖書、借閱圖書和返還圖書等;圖書管理員是系統(tǒng)的主要使用者,負(fù)責(zé)借書處理和還書處理,當(dāng)讀者預(yù)定的圖書借出給定預(yù)定者后取消圖書預(yù)定;系統(tǒng)管理員主要負(fù)責(zé)系統(tǒng)的維護(hù)工作,涉及到讀者信息管理,圖書信息管理,系統(tǒng)狀態(tài)維護(hù)等。系統(tǒng)的功能分析如圖1所示。圖1.1 2.圖書管理系統(tǒng)的用例圖建立用例模型首先

4、要確定角色(Actors),Actors表示提供或接收系統(tǒng)信息的人或系統(tǒng),他們是與系統(tǒng)有交互作用的人或事務(wù),代表一個(gè)系統(tǒng)的使用者或外部通信的目標(biāo)。用例是系統(tǒng)中的一個(gè)功能單元,可以被描述為參與系統(tǒng)之間的一次交互作用。用例模型的用途是列出系統(tǒng)中的用例和參與者,并且顯示哪個(gè)是用例的執(zhí)行。根據(jù)以上的系統(tǒng)分析,本系統(tǒng)確定的角色有借書者、圖書管理員和系統(tǒng)管理員。用例圖如圖2所示圖1.23.系統(tǒng)的狀態(tài)圖圖書管理系統(tǒng)的流程是用戶先輸入自己的帳號(hào)密碼及系統(tǒng)顯示的驗(yàn)證碼進(jìn)入系統(tǒng)如有一項(xiàng)不符合則不能進(jìn)入系統(tǒng),成功登陸系統(tǒng)后系統(tǒng)根劇登陸的帳號(hào)信息從數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行對(duì)比判斷是讀者還是管理員,如果是讀者則能進(jìn)行信息查詢

5、,及修改自己的相關(guān)信息,查詢到自己所需要的圖書就能通過(guò)管理員進(jìn)行借閱圖書、歸還圖書也是通過(guò)管理員完成的。如果不是讀者而是管理員,那管理員可以進(jìn)行相關(guān)信息的查詢、添加刪除圖書及讀者的所有信息、設(shè)置相應(yīng)的權(quán)限、為圖書更新排行榜的信息、以及完成讀者的圖書借閱與歸還。圖書管理系統(tǒng)的系統(tǒng)流程圖如圖登陸系統(tǒng)是否登陸判斷身份管理員讀者圖書歸還圖書借閱信息查詢排行榜信息圖書信息讀者信息否4.系統(tǒng)交互模型(1)系統(tǒng)設(shè)置模塊:添加刪除管理員、設(shè)置管理員的權(quán)限、說(shuō)明圖書存放書架信息添加刪除書架信息。(2)讀者管理模塊:添加刪除不同類型的讀者及注明可借圖書的數(shù)量、添加刪除讀者的檔案。(3)圖書管理模塊:添加刪除不同類

6、型的的圖書及注明圖書可借的天數(shù)庫(kù)存數(shù)量、添加刪除圖書的檔案。(4)圖書借還模塊:可查詢讀者借閱和歸還圖書的信息及圖書的現(xiàn)有庫(kù)存量。(5)系統(tǒng)查詢模塊:可根據(jù)不同的條件(條形碼、書名、類別、作者、書架、出版社)查詢讀者需要的圖書、讀者可根據(jù)不同的條件(圖書條形碼、圖書名稱、讀者編號(hào)、讀者名字、到期時(shí)間)查詢自己借閱圖書信息。(6)排行榜模塊:可以讓讀者知道圖書借閱的排行榜及讀者借閱的排行榜。5.圖書管理系統(tǒng)的系統(tǒng)E-R圖6.用戶登錄界面及代碼#include #include #include #include #define M 2 #define PAGE 3 /*圖書結(jié)構(gòu)體類型*/ typ

7、edef struct int num; /*圖書號(hào)*/ char name20; /*書名*/ char zuozhe20; /*作者姓名*/ char chubanshe20; /*出版社*/ int price; /*價(jià)格*/ BOOKS; int read_file(BOOKS books) FILE *fp; int i=0; if(fp=fopen(project choose.txt,rt)=NULL) printf(nn*庫(kù)存文件不存在!請(qǐng)創(chuàng)建); return 0; while(feof(fp)!=1) fread(&booksi,sizeof(BOOKS),1,fp); i

8、f(booksi.num=0) break; else i+; fclose(fp); return i; void save_file(BOOKS books,int sum) FILE *fp; int i; if(fp=fopen(project choose.txt,wb)=NULL) printf(讀文件錯(cuò)誤!n); return; for(i=0;isum;i+) if(fwrite(&booksi,sizeof(BOOKS),1,fp)!=1) printf(寫文件錯(cuò)誤!n); fclose(fp); /*輸入模塊*/ int input(BOOKS books) int i=0

9、; system(cls); printf(nn 錄入圖書信息 (最多%d種)n,M); printf(-n); do printf(n 第%d本圖書,i+1); printf(n 圖書編號(hào):); scanf(%d,&booksi.num); if(booksi.num=0) break; printf(n 圖書名稱:); scanf(%s,); printf(n 作者:); scanf(%s,booksi.zuozhe); printf(n 出版社:); scanf(%s,&booksi.chubanshe); printf(n 圖書價(jià)格:); scanf(%d,&bo

10、oksi.price); i+; while(iM); fflush(stdin); getch(); printf(n -%d種圖書信息輸入完畢!-n,i); printf(n 按任意鍵返回主菜單!); getchar(); return i; /*輸出模塊*/ void output(BOOKS books) int i=0,j=0,page=1; system(cls); printf(nn -圖書信息表- 第%d頁(yè)nn,page); printf(圖書編號(hào)-圖書名稱-作者- 出版社-圖書價(jià)格n); printf(-n); do if(booksi.num!=0) j+; if(j%PA

11、GE!=0) printf(%4d %10s %10s %10s %8d n,booksi.num,, booksi.zuozhe, booksi.chubanshe,booksi.price); printf(-n); else printf(按任意鍵繼續(xù)!); getchar(); system(cls); printf(nn -圖書信息表- 第%d頁(yè)nn,+page); printf(圖書編號(hào)-圖書名稱-作者- 出版社-圖書價(jià)格n); printf(-n); printf(%4d %10s %10s %10s %8d n,booksi.num,

12、, booksi.zuozhe, booksi.chubanshe,booksi.price); printf(-n); i+; while(booksi.num!=0); printf(按任意鍵返回主菜單!); getchar( ); /*給定編號(hào),作者,出版社查找信息模塊*/ void find_by_num(BOOKS books,int sum) int i,find_num; system(cls); printf(n 請(qǐng)輸入要查找的圖書編號(hào):); fflush(stdin); scanf(%d,&find_num); for(i=0;isum;i+) if(booksi.num=f

13、ind_num) printf(這是您所查找到的圖書:n); printf(圖書編號(hào)-圖書名稱-作者- 出版社-圖書價(jià)格n); printf(-n); printf(%4d %10s %10s %10s %8d n,booksi.num,, booksi.zuozhe, booksi.chubanshe,booksi.price); printf(-n); break; else printf(n 未找到要查找的圖書信息,按任意鍵返回!); getchar(); system(cls); fflush(stdin); getchar(); void find_by_zuo

14、zhe(BOOKS books,int sum) int i; char find_zuozhe20; system(cls); printf(n 請(qǐng)輸入要查找的作者姓名:); scanf(%s,find_zuozhe); for(i=0;isum-1;i+) fflush(stdin); getch(); if(strcmp(booksi.zuozhe,find_zuozhe)=0) printf(這是您所查找到屬于該作者的圖書:); printf(圖書編號(hào)-圖書名稱-作者- 出版社-圖書價(jià)格n); printf(-n); printf(%8d %10s %10s %10s %8d n,bo

15、oksi.num,, booksi.zuozhe, booksi.chubanshe,booksi.price); printf(-n); else printf(n 未找到要查找的圖書信息,按任意鍵返回!); getchar(); system(cls); void find_by_chubanshe(BOOKS books,int sum) int i; char find_chubanshe20; system(cls); printf(n 請(qǐng)輸入要查找的出版社名稱:); scanf(%s,find_chubanshe); for(i=0;isum;i+) fflu

16、sh(stdin); getch(); if(strcmp(booksi.chubanshe,find_chubanshe)=0) printf(這是您所查找到屬于該出版社的圖書:); printf(圖書編號(hào)-圖書名稱-作者- 出版社-圖書價(jià)格n); printf(-n); printf(%8d %10s %10s %10s %8d n,booksi.num,, booksi.zuozhe, booksi.chubanshe,booksi.price); printf(-n); else printf(n 未找到要查找的圖書信息,按任意鍵返回!); getchar();

17、system(cls); void find(BOOKS books,int sum) int choice; system(cls); printf(n 您要按照哪種方式查找? n); printf(n 1.按圖書編號(hào)查找 n); printf(n 2.按圖書作者查找 n); printf(n 3.按出版社查找 n); printf(n 0. 退出n); printf(n 請(qǐng)選擇(0-3): n); scanf(%d,&choice); switch(choice) case 1: find_by_num(books,sum); break; case 2: find_by_zuozhe(b

18、ooks,sum); break; case 3: find_by_chubanshe(books,sum); break; case 0: break; /*刪除信息模塊*/ void del(BOOKS books) int i,g,sum; int del_num; system(cls); printf(n 請(qǐng)輸入要?jiǎng)h除的圖書編號(hào):); scanf(%d,&del_num); fflush(stdin); getch(); for(i=0;isum;i+) if(booksi.num=del_num) g=i; for(g=i;gsum;g+) booksg+1=booksg; ffl

19、ush(stdin); getch(); printf(這是您所要?jiǎng)h除圖書信息:n); printf(圖書編號(hào)-圖書名稱-作者- 出版社-圖書價(jià)格n); printf(-n); printf(%8d %10s %10s %10s %8d n,booksi.num,, booksi.zuozhe, booksi.chubanshe,booksi.price); printf(-n); fflush(stdin); getch(); printf(您確認(rèn)要?jiǎng)h除嗎?); printf(按任意鍵繼續(xù)!); getchar(); fflush(stdin); getch(); pr

20、intf(已成功刪除圖書信息!); booksi.num=0; /*信息修改模塊*/ void modify(BOOKS books,int sum) int i=0,choice,modify_num,flag; do system(cls); printf(請(qǐng)輸入要修改的圖書編號(hào):); scanf(%d,&modify_num); for(i=0;isum;i+) if(booksi.num=modify_num) printf(nn -圖書信息- nn); printf(圖書編號(hào)-圖書名稱-作者- 出版社-圖書價(jià)格n); printf(-n); printf(%8d %10s %10s

21、%10s %8d n,booksi.num,, booksi.zuozhe, booksi.chubanshe,booksi.price); printf(-n); printf(n 您要修改哪一項(xiàng)?n); printf(n 1.圖書名稱n); printf(n 2.作者n); printf(n 3.出版社n); printf(n 4.圖書價(jià)格n); printf(n 請(qǐng)選擇(1-4):n); scanf(%d,&choice); switch(choice) case 1: printf(n 請(qǐng)輸入修改后的圖書名稱:); scanf(%s,); b

22、reak; case 2: printf(n 請(qǐng)輸入修改后的作者姓名:); scanf(%s,booksi.zuozhe); break; case 3: printf(n 請(qǐng)輸入修改后的出版社名稱:); scanf(%s,booksi.chubanshe); break; case 4: printf(n 請(qǐng)輸入修改后的圖書價(jià)格:); scanf(%d,&booksi.price); break; fflush(stdin); getch(); printf(nn -圖書信息- nn); printf(圖書編號(hào)-圖書名稱-作者- 出版社-圖書價(jià)格n); printf(-n); printf(

23、%8d %10s %10s %10s %8d n,booksi.num,, booksi.zuozhe, booksi.chubanshe,booksi.price); printf(-n); break; else printf(n 該書不存在!); getchar(); printf(n 修改成功!n); printf(您要繼續(xù)修改嗎?(Y/N); if (choice=Y|choice=y) flag=1; printf(n 繼續(xù)!n); else flag=0; while( flag=1); fflush(stdin); getch(); printf(n 按任

24、意鍵返回主菜單!); getchar(); /*圖書信息統(tǒng)計(jì)模塊*/ void count(BOOKS books,int sum) /*統(tǒng)計(jì)某個(gè)出版社的圖書數(shù)*/ int i; char count_chubanshe20; int n=0; system(cls); printf(請(qǐng)輸入一個(gè)出版社名稱:n); fflush(stdin); scanf(%s,count_chubanshe); for(i=0;isum;i+) if( strcmp(booksi.chubanshe,count_chubanshe)=0) n+; break; fflush(stdin); printf(統(tǒng)計(jì)出屬于該出版社一共有%d本書n,n); getch(); /*排序模塊*/ void sort(BOOKS books,int sum) /*按圖書編號(hào)排序模塊*/ BOOKS t; int i,j,k; system(cls); printf(n -圖書信息- n); printf(n 排名 圖書編號(hào) 圖書名稱 作者 出版社 圖書價(jià)格n); for(i=0;isum-1;i+) k=i; for(j=i+1;jbooksj.num) t=booksj; booksj=book

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論