圖書借閱管理系統數據結構課程設計說明書.doc_第1頁
圖書借閱管理系統數據結構課程設計說明書.doc_第2頁
圖書借閱管理系統數據結構課程設計說明書.doc_第3頁
圖書借閱管理系統數據結構課程設計說明書.doc_第4頁
圖書借閱管理系統數據結構課程設計說明書.doc_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

中北大學數據結構課 程 設 計 說 明 書學生姓名:周西財學 號:0706054236學 院:電子與計算機科學技術學院專 業(yè):軟件工程題 目:圖書借閱管理系統成績指導教師周海英2009 年 6 月 24 日1 設計目的通過設計掌握數據結構課程 中學到的基本理論和算法并綜合運用于理論實際問題中,它是理論與實踐結合的重要過程.設計要求學會對實際問題定義相關數據結構,并采用恰當的設計方法和算法解決問題,同時訓練學生進行復雜程序設計的技能和培養(yǎng)良好的程序設計習慣.人工管理圖書的手續(xù)繁索、效率低下給具有強烈時間觀念的管理人員帶來了諸多不便,學校圖書館缺少一套完善的圖書管理軟件,為了對圖書的管理方便,因此必須開發(fā)圖書管理系統。2. 設計內容和要求內容:1)圖書管理(增加圖書、查詢圖書、刪除圖書、圖書借閱、還書);2)會員管理(增加會員、查詢會員、刪除會員、借書信息);要求:根據設計內容建立相關數據的動態(tài)鏈表存儲結構3本設計所采用的數據結構采用兩條單鏈表,其頭結點分別為head、mhead的全局變量來存儲圖書信息和會員信息。其定義數據結構如下:/*圖書信息結構體*/typedef struct elemchar bookid5;char bookname50;char bookauthor20;char bookmark2;char memberid4;elemtype;/*圖書鏈表結點結構體*/typedef struct nodeelemtype data;struct node *next;lnode,*linknode;/*會員信息結構體*/typedef struct memberelemchar memberid4;char membername20;memberelemtype;/*會員鏈表結點結構體*/typedef struct membernodememberelemtype data;struct membernode *next;mlnode,*mlinknode;4功能模塊詳細設計圖書借閱管理系統圖書管理模塊會員管理模塊增加圖書查詢圖書刪除圖書圖書借閱還書增加會員查詢會員借書信息刪除會員4.1 詳細設計思想系統啟動時,通過讀取文件完成對以head、mhead為表頭的單鏈表完成初始化。初始化后系統進入系統菜單,其運行界面如下: 當選擇功能1時,進入圖書管理模塊,其運行界面如下:當選擇功能2時,進入會員管理模塊,其運行界面如下: 為了實現上述功能,特定義以下函數原型,具體代碼參見源代碼部分:void main() /*入口*/void initallinfo() /*初始化圖書和會員鏈表*/void welform() /*系統總菜單*/void printbookinfo(linknode head) /*輸出圖書信息函數*/void addbook() /*增加圖書模塊*/void select() /*按編號查詢圖書*/void delete() /*按編號刪除圖書*/void borrow() /*借閱圖書*/void returnbook() /*還書*/void bookmanagetitle() /*圖書管理二級菜單*/void bookmanage() /*二級圖書管理功能選擇函數*/void printmemberinfo(mlinknode head) /*輸出會員信息函數*/void addmember() /*增加會員模塊*/void selectmember() /*按編號查詢會員*/void deletemember() /*按編號刪除會員*/void membermanagetitle() /*會員管理二級菜單*/void membermanage() /*二級會員管理功能選擇函數*/程序調試運用數據如下:圖書初始數據表bookidbooknamebookauthorbookmarkmemberid0001sanguoyanyiluoguanzhongN00002hongloumengcaoxueqinN00003xiyoujiwuchengenY0010004shuihuzhuanshinaianN00005javascriptJoinN00006cprogromtanghaoqiangN00007liaozhaizhiyipusonglingY0070008jiabajinN00009richucaoyuY0030010nahanluxunN0會員信息表memberidmembername001zhouxicai002longqidong003lipengfei004gaopeng005chenwentang006yangminghao4.2 源代碼main.c文件:#include#includetype.c#includeinit.c#includebook.c#includemember.c/*系統總菜單*/void welform() clrscr(); printf( SYSTEM MAIN MENU n); printf(*n); printf(* 1: book manage *n); printf(*-*n); printf(* 2: member manage *n); printf(*-*n); printf(* 0: quit *n); printf(*n); printf(nnPlease input order:n);void main() int ch; initallinfo(); /*初始化鏈表*/ while(1) welform(); scanf(%d,&ch); switch(ch) case 1:bookmanage();break; case 2:membermanage();break; case 0:exit(0); default: printf(nYou hava input the wrong order!n); printf(Press anykey return.); getchar(); getchar(); BOOK.C文件:/*輸出圖書信息函數*/void printbookinfo(linknode head) linknode p=head-next; clrscr(); printf(The book informations are:nn); printf(%-7s%-20s%-15s%-6s%sn,id,title,author,mark,borower);printf(*nn); for(;p!=NULL;p=p-next)printf(%-7s%-20s%-15s%-6s%sn,p-data.bookid,p-data.bookname,p-data.bookauthor,p-data.bookmark,p-data.memberid); printf(nPress anykey retrun.); getchar();getchar();/*增加圖書模塊*/void addbook() linknode p=(lnode *)malloc(sizeof(lnode); clrscr(); printf(Add books.n); printf(please input bookinfo:nn); printf(%-7s%-20s%-15sn,id(4),title,author); printf(*n); scanf(%s%s%s,p-data.bookid,p-data.bookname,p-data.bookauthor); p-data.bookmark0=N; p-data.bookmark1=0; p-data.memberid0=0; p-data.memberid1=0; p-next=head-next; head-next=p; printf(nnAdd success!n); printf(nPress anykey retrun.); getchar(); getchar();/*按編號查詢圖書*/void select() char id5; linknode p; clrscr(); p=head-next; printf(select book by id.nn); printf(Please input book id:n); scanf(%s,id); while(p!=NULL) if(strcmp(p-data.bookid,id)=0) break; else p=p-next; if(p=NULL) printf(nThe book not exit!n); else printf(n%-7s%-20s%-15s%-3s%sn,id,title,author,borowed,borower); printf(*n); printf(n%-7s%-20s%-15s%-3s%sn,p-data.bookid,p-data.bookname,p-data.bookauthor,p-data.bookmark,p-data.memberid); printf(nPress anykey retrun.); getchar();getchar(); /*按編號刪除圖書*/void delete() char id5; linknode p,q; clrscr(); p=head-next;q=head; printf(delete book by id.nn); printf(Please input book id:n); scanf(%s,id); while(p!=NULL) if(strcmp(p-data.bookid,id)=0) break; else q=p;p=p-next; if(p=NULL) printf(nThe book you want to delete are not exit!n); else q-next=p-next; free(p); printf(nDelete success!n); printf(nPress anykey retrun.); getchar(); getchar();/*借閱圖書*/void borrow() char id5; char mid4; linknode p; mlinknode q; clrscr(); printf(borrow book.nn); do p=head-next; printf(Please input book id:n); scanf(%s,id); while(p!=NULL) if(strcmp(p-data.bookid,id)=0) break; else p=p-next; if(p=NULL) printf(nThe book doesnt exit! please input it again!nn); while(p=NULL); if(p!=NULL) do q=mhead-next; printf(nPlease input member id:n); scanf(%s,mid); while(q!=NULL) if(strcmp(q-data.memberid,mid)=0) break; else q=q-next; if(q=NULL) printf(nYou are not member! input againn); while(q=NULL); if(q!=NULL&(strcmp(p-data.bookmark,Y)!=0) strcpy(p-data.bookmark,Y); strcpy(p-data.memberid,q-data.memberid); printf(nsuccessed!n);getchar(); else printf(nnThe book have borrowed, please wait a few days.); getchar(); printf(nnPress anykey retrun.); getchar();/*還書*/void returnbook() char id5; linknode p; clrscr(); p=head-next; printf(return book.nn); printf(Please input book id:n); scanf(%s,id); while(p!=NULL) if(strcmp(p-data.bookid,id)=0) break; else p=p-next; if(p=NULL) printf(nThe book you want to return are not exit!n); else strcpy(p-data.bookmark,N);strcpy(p-data.memberid,0); printf(nsuccessed!n); printf(nPress anykey retrun.); getchar();getchar();/*圖書管理二級菜單*/void bookmanagetitle() clrscr(); printf( BOOK MANAGE MENU n); printf(*n); printf(* 1: Look all books *n); printf(*-*n); printf(* 2: Add book *n); printf(*-*n); printf(* 3: Select book by id *n); printf(*-*n); printf(* 4: Delete book by id *n); printf(*-*n); printf(* 5: Borrow book *n); printf(*-*n); printf(* 6: Return book *n); printf(*-*n); printf(* 0: Return to main form *n); printf(*n); printf(nPlease input order:n);void bookmanage() int ch; while(1) bookmanagetitle(); scanf(%d,&ch); if(ch=0) break; switch(ch) case 1: printbookinfo(head);break; case 2: addbook();break; case 3: select();break; case 4: delete();break; case 5: borrow();break; case 6: returnbook();break; case 0:break; default: printf(nnYou hava input the wrong order!n);printf(Press anykey return.);getchar();getchar(); MEMBER.C文件:/*輸出會員信息函數*/void printmemberinfo(mlinknode head) mlinknode mp=head-next; clrscr(); printf(The member infomations are.nn); printf(%-7s%sn,id,name); printf(*nn); for(;mp!=NULL;mp=mp-next)printf(%-7s%sn,mp-data.memberid,mp-data.membername); printf(nPress anykey retrun.); getchar();getchar();/*增加會員模塊*/void addmember() mlinknode p=(mlnode *)malloc(sizeof(mlnode); clrscr(); printf(Add member.n); printf(please input memberinfo:nn); printf(%-7s%sn,id,name); printf(*n); scanf(%s%s,p-data.memberid,p-data.membername); p-next=mhead-next; mhead-next=p; printf(nnAdd success!); printf(nPress anykey retrun.); getchar(); getchar();/*按編號查詢會員*/void selectmember() char id4; mlinknode p; clrscr(); printf(select member by id.nn); p=mhead-next; printf(Please input member id:n); scanf(%s,id); while(p!=NULL) if(strcmp(p-data.memberid,id)=0) break; else p=p-next; if(p=NULL) printf(nThe member not exit!n); else printf(n%-7s%sn,id,name); printf(*nn); printf(%-7s%sn,p-data.memberid,p-data.membername); printf(nnPress anykey retrun.); getchar(); getchar();/*按編號刪除會員*/void deletemember() char id4; mlinknode p,q; clrscr(); printf(delete member.nn); p=mhead-next;q=mhead; printf(Please input member id:n); scanf(%s,id); while(p!=NULL) if(strcmp(p-data.memberid,id)=0) break; else q=p;p=p-next; if(p=NULL) printf(nThe member you want to delete are not exit!n); else q-next=p-next; free(p); printf(nDelete success!n); printf(nPress anykey retrun.); getchar(); getchar();/*會員管理二級菜單*/void membermanagetitle() clrscr(); printf( MEMBER MANAGE MENU n); printf(*n); printf(* 1: Look all memberinfo *n); printf(*-*n); printf(* 2: Add member *n); printf(*-*n); printf(* 3: Select member by id *n); printf(*-*n); printf(* 4: Delete member by id *n); printf(*-*n); printf(* 0: Return to main form *n); printf(*n); printf(nPlease input order:n);void membermanage() int ch; while(1) membermanagetitle(); scanf(%d,&ch); if(ch=0) break; switch(ch) case 1: printmemberinfo(mhead);break; case 2: addmember();break; case 3: selectmember();break; case 4: deletemember();break; case 0:break; default: printf(nYou hava input the wrong order!n);printf(Press anykey return.);getchar();getcha

溫馨提示

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

評論

0/150

提交評論