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

下載本文檔

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

文檔簡介

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

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

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

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

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

6、型的的圖書及注明圖書可借的天數(shù)庫存數(shù)量、添加刪除圖書的檔案。(4)圖書借還模塊:可查詢讀者借閱和歸還圖書的信息及圖書的現(xiàn)有庫存量。(5)系統(tǒng)查詢模塊:可根據(jù)不同的條件(條形碼、書名、類別、作者、書架、出版社)查詢讀者需要的圖書、讀者可根據(jù)不同的條件(圖書條形碼、圖書名稱、讀者編號、讀者名字、到期時間)查詢自己借閱圖書信息。(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; /*圖書號*/ char name20; /*書名*/ char zuozhe20; /*作者姓名*/ char chubanshe20; /*出版社*/ int price; /*價格*/ books; int read_file(books books) file *fp; int i=0; if(fp=fopen(project choose.txt,rt)=null) printf(nn*庫存文件不存在!請創(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(讀文件錯誤!n); return; for(i=0;isum;i+) if(fwrite(&booksi,sizeof(books),1,fp)!=1) printf(寫文件錯誤!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 圖書編號:); 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 圖書價格:); 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頁nn,page); printf(圖書編號-圖書名稱-作者- 出版社-圖書價格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頁nn,+page); printf(圖書編號-圖書名稱-作者- 出版社-圖書價格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( ); /*給定編號,作者,出版社查找信息模塊*/ void find_by_num(books books,int sum) int i,find_num; system(cls); printf(n 請輸入要查找的圖書編號:); fflush(stdin); scanf(%d,&find_num); for(i=0;isum;i+) if(booksi.num=f

13、ind_num) printf(這是您所查找到的圖書:n); printf(圖書編號-圖書名稱-作者- 出版社-圖書價格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 請輸入要查找的作者姓名:); scanf(%s,find_zuozhe); for(i=0;isum-1;i+) fflush(stdin); getch(); if(strcmp(booksi.zuozhe,find_zuozhe)=0) printf(這是您所查找到屬于該作者的圖書:); printf(圖書編號-圖書名稱-作者- 出版社-圖書價格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 請輸入要查找的出版社名稱:); scanf(%s,find_chubanshe); for(i=0;isum;i+) fflu

16、sh(stdin); getch(); if(strcmp(booksi.chubanshe,find_chubanshe)=0) printf(這是您所查找到屬于該出版社的圖書:); printf(圖書編號-圖書名稱-作者- 出版社-圖書價格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.按圖書編號查找 n); printf(n 2.按圖書作者查找 n); printf(n 3.按出版社查找 n); printf(n 0. 退出n); printf(n 請選擇(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 請輸入要刪除的圖書編號:); 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(這是您所要刪除圖書信息:n); printf(圖書編號-圖書名稱-作者- 出版社-圖書價格n); printf(-n); printf(%8d %10s %10s %10s %8d n,booksi.num,, booksi.zuozhe, booksi.chubanshe,booksi.price); printf(-n); fflush(stdin); getch(); printf(您確認要刪除嗎?); 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(請輸入要修改的圖書編號:); scanf(%d,&modify_num); for(i=0;isum;i+) if(booksi.num=modify_num) printf(nn -圖書信息- nn); printf(圖書編號-圖書名稱-作者- 出版社-圖書價格n); printf(-n); printf(%8d %10s %10s

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

22、reak; case 2: printf(n 請輸入修改后的作者姓名:); scanf(%s,booksi.zuozhe); break; case 3: printf(n 請輸入修改后的出版社名稱:); scanf(%s,booksi.chubanshe); break; case 4: printf(n 請輸入修改后的圖書價格:); scanf(%d,&booksi.price); break; fflush(stdin); getch(); printf(nn -圖書信息- nn); printf(圖書編號-圖書名稱-作者- 出版社-圖書價格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)計模塊*/ void count(books books,int sum) /*統(tǒng)計某個出版社的圖書數(shù)*/ int i; char count_chubanshe20; int n=0; system(cls); printf(請輸入一個出版社名稱: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)計出屬于該出版社一共有%d本書n,n); getch(); /*排序模塊*/ void sort(books books,int sum) /*按圖書編號排序模塊*/ books t; int i,j,k; system(cls); printf(n -圖書信息- n); printf(n 排名 圖書編號 圖書名稱 作者 出版社 圖書價格n); for(i=0;isum-1;i+) k=i; for(j=i+1;jbooksj.num) t=booksj; booksj=book

溫馨提示

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

評論

0/150

提交評論