




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 課程設計 圖書館管理系統一、可行性研究報告1、引言 eq oac(,1)背景資料圖書館是為我們的學習工作提供服務的地方。圖書館里存放著大量的書籍資料,對這些書籍信息的有效的歸類整理與管理將大大提高圖書館的運作效率,降低圖書館工作人員的勞動強度,同時可以對圖書館的整個運作過程做到明細化,透明化,為各項工作有條不紊的進行提供保障。 eq oac(,2)報告目的 本報告旨在研究分析圖書館管理系統開發的可行性,為此軟件的開發人員提供可行性的驗證與編寫方法的指導。 eq oac(,3)軟件信息 軟件名稱:圖書館管理系統 開發平臺:Turbo C 2.0 用戶: 圖書館工作人員2、可行性研究的前提 eq
2、 oac(,1) 主要功能:通過計算機完成圖書館在庫書籍的管理,用計算機高效、安全的完成對圖書的信息處理,將工作人員從繁瑣的數據處理中解放。 eq oac(,2) 性能要求: a、書籍信息的錄入,將圖書名,庫存數量輸入系統,建立系統數據庫。 b、書籍信息的查詢,輸入書名,顯示此圖書的有關信息,包括庫存總量、借出數目、剩余數目。 c、書籍借出與歸還,輸入借出或歸還圖書的書名與數量后,對庫存信息進行相應修改。 d、書籍信息的插入與刪除,新書到庫時或清除庫存時,在數據庫內增加或刪減相應信息。 e、書籍信息的備份,將現有數據庫信息存檔,以備不時之需。 f、書籍信息的讀入,輸入文件名,從相應文件中把信息
3、讀入數據庫。 g、權限問題,進入系統之前輸入密碼,密碼不正確則退出系統。 eq oac(,3)開發目標:要求系統具有良好的可操作性,數據穩定性以及安全性,可以長期使用。3、對現有系統的分析 現用的管理系統在安全性,數據的讀入功能方面存在不同程度的缺陷,有必要進行改進4、所建議的系統 eq oac(,1)使用基本方法:該系統具有簡單易用的特點,只需按照菜單功能行操作。 eq oac(,2)系統流程圖:6、投資及效益分析該系統投資成本小,使用方法簡單易懂。該系統有效地提高圖書館工作人員的工作效率,節約人力物力。同時可以根據用戶的特殊需要,增添功能。具有成本低,功能強大,使用靈活的特點。7、社會因素
4、方的可行性 eq oac(,1)法律方面: 本系統的開發不會侵犯他人、集體或國家的利益,不違背當地法律法規。 eq oac(,2)使用方面: 本系統可以滿足圖書館管理的要求,而且對使用本軟件人員的計算機水平要求不高,只需了解軟件操作流程就可以使用本軟件,無需培訓。8、結論 該系統在各個方面的均具有可行性,可以立即開始進行。二、需求規格說明書1、引言 eq oac(,1)編寫目的: 為軟件開發者提供開發依據,在軟件的開發過程中起指向性功能。本說明書的讀者為此軟件的開發者。 eq oac(,2)項目背景: 該軟件由學生自行編寫,由個人全權負責。本軟件獨立于其它管理軟件。 eq oac(,3)參考資
5、料: 萬曉東 施玉霞 等著軟件技術基礎教程09年7月 2、任務概述 eq oac(,1)目標: 本軟件旨在為學校的圖書館管理人員提供一個可以方便管理庫存圖書的系統。可以對庫存圖書進行錄入、借還、查詢、修改功能。減少操作時間,提高工作效率。 該軟件適用于一般規模的圖書館管理操作。 eq oac(,2)用戶特點: 本系統的操作對象為圖書館管理人員。對管理人員的計算機水平不需要很高的要求。 eq oac(,3)條件與限制:本次開發工作無經費投入,開發期限為40小時。3、數據描述: eq oac(,1)靜態數據: 系統密碼,書籍名稱,庫存總數,剩余數,借出數。 eq oac(,2)動態數據: 使用者輸
6、入的信息,包括添加的書籍信息,查詢關鍵字。 eq oac(,3)數據庫描述:系統數據庫采用TXT文檔。 eq oac(,4)數據流圖: eq oac(,5)數據字典:數據流名:圖書別 名:圖書館庫存圖書組 成:書名+庫存總數+剩余數+借出數備 注:無4、功能要求: eq oac(,1)功能劃分 錄入功能瀏覽功能信息查詢功能 借出歸還功能 插入與刪除功能 信息的備份與讀入功能 設置訪問權限功能 eq oac(,2)功能描述錄入功能: 輸入相關數據瀏覽功能: 以列表方式列出所有記錄信息信息查詢功能: 根據書名匹配查詢,并將查詢結果列出借出歸還功能: 根據借出與歸還的書籍信息修改相應數據插入與刪除功
7、能: 插入一條新的圖書信息,刪除某圖書的信息信息的備份與讀入功能:將輸入文件進行備份和從指定文件讀入數據設置訪問權限功能:只有輸入正確密碼才可以進行操作 否則無權操作5、性能要求 eq oac(,1)數據精確度: 查詢時要確保查全率與查準率 eq oac(,2)時間特性: 系統運行時間應該在用戶能夠接受的范圍內 eq oac(,3)適應性: 本軟件屬于小型軟件,對不同的運行環境適應性很強,可以能夠滿足使用需求。6、運行需求 eq oac(,1)用戶界面:在Turbo C 2.0界面運行 eq oac(,2)硬件接口:普通PC機 eq oac(,3)軟件接口:運行于裝有Turbo C 2.0的操
8、作系統 eq oac(,4)故障處理:如果在使用過程中出現程序出錯,重新運行即可恢復三、概要設計說明書1、引言 eq oac(,1)編寫目的:設計一圖書館管理系統以代替現有的管理管理系統。本說明書讀者為軟件設計者。 eq oac(,2)項目背景:該軟件由學生個人設計,無開發部門和主管部門,主要供學生練習使用。該軟件獨立于其它軟件系統。 eq oac(,3)參考資料: 萬曉東 施玉霞 等著軟件技術基礎教程09年7月 譚浩強 著C語言程序設計 第三版 張志航 王珊珊等著程序設計語言C 07年9月2、概要設計: eq oac(,1)需求規定:本軟件提供一個既可以存儲信息,同時又具有瀏覽、插入、查詢、
9、修改、刪除功能,供使用者輕松管理圖書館的庫存圖書。數據庫信息由使用者進行輸入。 eq oac(,2)運行環境: 硬件 普通PC機 支持環境 WINDOWS操作系統,Turbo C 2.0軟件 eq oac(,3)基本設計概念:本系統由主單函數調用各個子函數(功能函數)來實現各項操作。功能函數包括插入函數,刪除函數,顯示函數,文件讀入函數,文件讀出函數,借出函數,歸還函數,退出函數函數調用關系圖如下圖所示: eq oac(,4)系統結構 eq oac(,5)模塊劃分與功能需求關系模塊編號模塊名稱功能M1身份驗證模塊輸入驗證信息M2主菜單模塊輸入選擇的功能M3插入模塊插入相關信息M4刪除模塊刪除指
10、定信息M5查詢模塊查詢指定信息M6顯示模塊以列表方式顯示所有信息M7借出模塊實現書籍借出M8歸還模塊實現書籍歸還M9讀入模塊從外部文件讀入信息M10備份模塊備份文件信息M11退出模塊退出程序 保存文件 eq oac(,6)人工處理過程:數據的錄入工作需人工完成3、接口設計 eq oac(,1)用戶接口:用戶輸入信息按 “書名”(空格)“庫存數量” 的格式輸入。TXT文件也按上述格式保存。 eq oac(,2)外部接口:用戶界面:DOS界面軟件接口:運行于Win95以上版本,且要求安裝Turbo C 2.04、運行設計 eq oac(,1)運行控制:系統運行后先進行身份驗證,驗證通過后,登錄,并
11、調用M2,進入服務選擇模塊,由用戶選擇的信息選擇激活M3M10等模塊,最后根據用戶輸入的接受信息退出程序,關閉系統。 eq oac(,2)運行時間:各模塊運行時間控制在1秒內。5系統數據結構設計書名char name 剩余數量 int sum6、系統出錯處理設計 eq oac(,1)出錯信息 出錯類型處理方法用戶輸入無效字符提示出錯,重新輸入借出數量過大提示出錯,重新輸入 eq oac(,2)維護設計本軟件必須按照軟件產品設計規范的步驟進行開發,充分考慮軟件的可維護性,以便于未來版本開發及移植等二次開發。在編寫過程中如果發現有的模塊沒有必要,或者實現比較困難,可以由開發者提出修改意見,決定是否
12、修改。四、詳細設計說明書1、引言 eq oac(,1)編寫目的:設計一圖書館管理系統以代替現有的管理管理系統。本說明書讀者為軟件設計者。 eq oac(,2)項目背景:該軟件由學生個人設計,無開發部門和主管部門,主要供學生練習使用。該軟件獨立于其它軟件系統。 eq oac(,3)參考資料: 萬曉東 施玉霞等著軟件技術基礎教程 09年7月 譚浩強 著C語言程序設計 第三版 張志航 王珊珊等著程序設計語言C 07年9月2、總體設計 eq oac(,1)需求概述錄入功能: 輸入相關數據瀏覽功能: 以列表方式列出所有記錄信息信息查詢功能: 根據書名匹配查詢,并將查詢結果列出借出歸還功能: 根據借出與歸
13、還的書籍信息修改相應數據插入與刪除功能:插入一條新的圖書信息,刪除某圖書的信息信息的備份與讀入功能:將輸入文件進行備份和從指定文件讀入數據設置訪問權限功能:只有輸入正確密碼才可以進行操作 否則無權操作 eq oac(,2)系統結構圖3、程序描述 eq oac(,1)M1身份驗證功能:驗證身份性能:輸入項:預設密碼輸出項:歡迎語句算法: int keyword=111,a; printf(Please input keyword:); scanf(%d,&a); if(a!=keyword) exit(0); else printf(Welcome!);測試要求:運行正常。 eq oac(,2)
14、M2主菜單模塊功能:選擇功能性能:輸入項:數字0-9輸出項:對應功能項算法: int Display_MainMenu() /*顯示菜單的函數*/char x; do system(cls); printf(*n); printf(1.Create BookListn); printf(2.Display All Booksn); printf(3.Insert a BookInformationn); printf(4.Delete a Bookn); printf(5.Borrow a Bookn); printf(6.Return a Bookn); printf(7.Queryn);
15、printf(8.Add Records From a Filen); printf(9.Write to a Filen); printf(0.Goodbyen); printf(*n); printf(Please choose from 0-9:); printf(n); x=getchar(); while(x9); return(x-0);測試要求:運行正常。 eq oac(,3)M3插入模塊功能:插入新信息性能:輸入項:書名 數量輸出項:成功提示算法: Book *Insert(Book *head,Book *s) /*插入結點的函數*/ Book *p0,*p1,*p2; p1
16、=head;p0=s; /*使p1指向第一個結點,p0指向要插入的結點*/ if(head=NULL) /*原來的鏈表是空表*/ head=p0;p0-next=NULL; /*使p0作為首結點*/ while(strcmp(p0-Name,p1-Name)0&(p1-next!=NULL) p2=p1; p1=p1-next; if(strcmp(p0-Name,p1-Name)next=p1; if(head=p1) head=p0; else p2-next=p0; elsep1-next=p0;p0-next=NULL; return(head);Book *Insert_a_reco
17、rd(Book *head) Book *newrecord; newrecord=(Book *)malloc(LEN); /*動態分配存儲空間*/ scanf(%s%d,newrecord-Name,&newrecord-all); newrecord-borrow=0; newrecord-left=newrecord-all; head=Insert(head,newrecord); printf(Insert successfullyn); /*輸出插入成功的信息*/ return(head);測試要求:運行正常。 eq oac(,4)刪除模塊功能:刪除信息性能:輸入項:所刪書名輸出
18、項:成功提示算法: Book *Delete(Book *head,char *name) Book *p1,*p2; if(head=NULL) printf(Sorry No record!n); p1=head; while(strcmp(p1-Name,name)!=0&p1-next!=NULL) /*p1不是要找的結點,且后面還有結點*/ p2=p1;p1=p1-next; /*p1后移一個結點*/ if(strcmp(p1-Name,name)=0) /*找到了*/ if(p1=head)head=p1-next; /*若p1為首指針,使下一結點為首指針*/ else p2-ne
19、xt=p1-next; /*否則將下一結點地址賦給前一結點地址*/ printf(delete %s successfullyn,name); /*輸出刪除成功的信息*/ return(head);Book *Delete_a_record(Book *head) char name20,ch; Book *p; scanf(%s,name); getchar(); /*接收回車*/ p=Query(head,name); if(p=NULL) printf(Cannot Find %sn,name); /*找不到結點*/ else printf(Delete %s, Y/N?n,name);
20、 ch=getchar(); system(pause); if(ch=y|ch=Y) while(p!=NULL) head=Delete(head,name); /*刪除所有與輸入相同的記錄*/ p=Query(head,name); return(head);測試要求:運行正常。 eq oac(,5)M5查詢模塊功能: 查詢功能性能:輸入項:查詢書名輸出項:相應書籍信息算法: Book *Query(Book *head,char *name) Book *p; p=head; while(strcmp(name,p-Name)!=0&p-next!=NULL) p=p-next; if
21、(strcmp(name,p-Name)=0) /*找到了,返回結點地址*/ return(p); else /*找不到返回空指針*/ return(NULL);void Query_a_record(Book *head) char name20; Book *p; scanf(%s,name); p=Query(head,name); if(p!=NULL) /*找到了*/ printf(Find successfullyn%s total:%d left:%d borrow:%dn, p-Name,p-all,p-left,p-borrow); else printf(Cant find
22、 the records of %sn,name); /*找不到*/測試要求:運行正常。 eq oac(,6)M6顯示功能功能: 顯示所有信息性能:輸入項:相應的菜單序號輸出項:所有書籍信息算法: void Display(Book *head) Book *p; int i; p=head; printf(Num BookName Total Left Borrown); for(i=1;p!=NULL;i+) printf(%-5d%-14s%-10d%-10d%-5dn, i,p-Name,p-all,p-left,p-borrow); p=p-next; if(i%10=0) syst
23、em(pause); /*按回車翻頁顯示*/ printf(Num BookName total left borrown); 測試要求:運行正常。 eq oac(,7)M7借出模塊功能:借出書籍性能:輸入項:所借書名 數量輸出項:成功信息算法: Book *Borrow_a_Book(Book *head) char name20,ch; int n; Book *p; scanf(%s%d,name,&n); getchar(); /*接收回車*/ p=Query(head,name); if(p=NULL) printf(Cannot Find %sn,name); /*找不到結點*/
24、else printf(Are you sure to borrow? %s, Y/N?n,name); ch=getchar(); system(pause); if(ch=y|ch=Y) head=Borrow(head,name,n); return(head);測試要求:運行正常。 eq oac(,8)M8歸還模塊功能:歸還書籍性能:輸入項:所換書名 數量輸出項:成功提示算法: Book *Return_a_Book(Book *head) char name20,ch; int n; Book *p; scanf(%s%d,name,&n); getchar(); /*接收回車*/
25、p=Query(head,name); if(p=NULL) printf(Cannot Find %sn,name); /*找不到結點*/ else printf(Are you sure to return? %s, Y/N?n,name); ch=getchar(); system(pause); if(ch=y|ch=Y) head=Return(head,name,n); return(head);Book *Return(Book *head,char *name,int sum) Book *p1; p1=head; while(strcmp(p1-Name,name)!=0&p
26、1-next!=NULL) /*p1不是要找的結點,且后面還有結點*/ p1=p1-next; /*p1后移一個結點*/ if(strcmp(p1-Name,name)=0) /*找到了*/ p1-borrow=p1-borrow-sum; p1-left=p1-left+sum; return(head);測試要求:運行正常。 eq oac(,9)M9讀入模塊功能:從文件讀入信息性能:輸入項:文件名輸出項:成功提示算法: Book *AddfromText(Book *head,char *filename) FILE *fp; int n,i; if(fp=fopen(filename,r
27、)=NULL) printf(Cannot find file:%sn,filename); /*打不開所指定文件*/ return(head); fscanf(fp,%d,&n); /*待插入記錄個數*/ for(i=0;iName,&p-all,&p-left,&p-borrow); head=Insert(head,p); /*插入結點*/ printf(Add from %s successfullyn,filename); fclose(fp);return(head);測試要求:運行正常。 eq oac(,10)M10備份模塊功能:數據備份性能:輸入項:所建文檔名輸出項:成功提示算
28、法: Book *WritetoText(Book *head,char *filename)FILE *fp;Book *p; if(head=NULL) printf(No Record!n); return(head); fp=fopen(filename,w); /*打開文件*/ p=head; while(p!=NULL) fprintf(fp,%-14s%-10d%-10d%-10dnn,p-Name,p-all,p-left,p-borrow); /*文件輸出*/ p=p-next; printf(Write to %s successfullyn,filename); /*輸出
29、寫到文件完畢的信息*/ fclose(fp); return(head);測試要求:運行正常。 eq oac(,11)M11退出模塊功能:退出程序性能:輸入項:數字0輸出項:再見語句算法: void Quit(Book *head)Book *p,*p1,*p2;FILE *fp; char filename=last; p2=p1=head; if(head!=NULL) fp=fopen(filename,w); /*打開文件*/ p=head; while(p!=NULL) fprintf(fp,%s %d %d %dn,p-Name,p-all,p-left,p-borrow); /*
30、文件輸出*/ p=p-next; printf(Write to %s successfullyn,filename); /*輸出寫到文件完畢的信息*/ fclose(fp); while(p1!=NULL) /*p1指向的結點不是空指針*/ p2=p1-next; free(p1); /*釋放存儲空間*/ p1=p2; /*p1后移一個結點*/ 測試要求:運行正常。五、測試報告1、引言 eq oac(,1)編寫目的:測試圖書館管理系統軟件的各項功能是否符合預期要求。本報告讀者為軟件設計者。 eq oac(,2)項目背景:該軟件由學生個人設計,無開發部門和主管部門,主要供學生練習使用。該軟件獨
31、立于其它軟件系統。 eq oac(,3)參考資料: 萬曉東 施玉霞 等著軟件技術基礎教程09年7月 譚浩強 著C語言程序設計 第三版 張志航 王珊珊等 著程序設計語言C 07年9月2、測試計劃執行情況 eq oac(,1)權限功能測試數據:輸入正確密111測試結果:成功進入主界面,說明本模塊功能正常 eq oac(,2)插入功能測試數據:無測試結果:菜單顯示正常。本模塊功能正常。 eq oac(,3)插入功能測試數據:history 100測試結果:調用顯示函數顯示結果。本模塊功能正常。 eq oac(,4)刪除操作測試數據:history 測試結果調用顯示函數顯示結果:輸出結果正確,說明本模
32、塊功能正常。 eq oac(,5)查詢模塊測試數據:預輸入數據 history 100 physics 200 查詢history測試結果:顯示結果 history 100 0 0說明本模塊運行正常。 eq oac(,6)顯示模塊上述過程已經對本功能進行了測試。結果:顯示模塊運行正常。 eq oac(,7)借出模塊測試數據:預輸入數據 history 100 physics 200 調用借出函數借 history 50 maths 100測試結果 調用顯示函數顯示結果: eq oac(,8)歸還模塊測試數據:預輸入數據 history 100 physics 200 調用歸還函數還 histo
33、ry 50 測試結果: eq oac(,9)文件讀入模塊測試數據:文本文檔 a.txt測試結果:調用顯示函數顯示結果測試結果正確。 eq oac(,10)文件備份模塊測試數據: 測試數據采用上一步寫入的數據測試結果 eq oac(,11)退出模塊測試數據: 無測試結果 成功退出程序 并生自動成備份文件 last.txt 退出模塊運行正常。3、評價結果 eq oac(,1)軟件能力: 軟件各項功能復合預期,各子程序運行正常 eq oac(,2)缺陷和限制:每次登陸后必須手工調入上一次的備份文件以恢復系統數據,給操作者帶來不便 eq oac(,3)建議: 完善系統的數據庫功能,提供安全可靠的數據保
34、存功能。 eq oac(,4)測試結論: 本軟件測試通過。附源程序代碼:#include#include#include#include#define NULL 0#define LEN sizeof(Book)struct A char Name20; int all,left,borrow; struct A *next; ;typedef struct A Book;int Display_Main_Menu(); /*主菜單顯示*/Book *Create(); /*功能函數聲明*/ void Display(Book *head);Book *Insert(Book *head,Bo
35、ok *s);Book *Insert_a_record(Book *head);Book *Delete(Book *head,char *name);Book *Delete_a_record(Book *head);Book *Borrow(Book *head,char *name,int sum);Book *Borrow_a_Book(Book *head);Book *Return(Book *head,char *name,int sum);Book *Return_a_Book(Book *head);Book *Query(Book *head,char *name); v
36、oid Query_a_record(Book *head);Book *AddfromText(Book *head,char *filename);Book *WritetoText(Book *head,char *filename); void Quit(Book *head);void main() /*主函數部分*/Book *head; /*定義變量*/ char filename20; int keyword=111,a; printf(Please input keyword:); scanf(%d,&a); if(a!=keyword) exit(0); else prin
37、tf(Welcome!); head=NULL; /*置首指針為空*/ for(;) switch(Display_MainMenu() case 1:printf(1.Create BookListn); /*調用Create函數創建鏈表*/ head=Create(); system(pause); break; case 2:printf(Display All Booksn); Display(head); /*調用Display函數顯示所有*/ system(pause);break; case 3:printf(Insert a Recordn); head=Insert_a_re
38、cord(head);/*調用Insert_a_record函數插入*/ system(pause);break; case 4:printf(Delete a Bookn); head=Delete_a_record(head);/*調用Delete_a_record函數刪除*/ system(pause);break; case 5:printf(Borrow a BooknInput BookName and sum you borrow:); head=Borrow_a_Book(head); system(pause);break; case 6:printf(Return a Bo
39、oknInput BookName and sum you return:); head=Return_a_Book(head); system(pause);break; case 7:printf(QuerynInput the BookName you want:); Query_a_record(head);/*調用查詢函數*/ system(pause);break; case 8:printf(Input the name of Text Filen); scanf(%s,filename);/*輸入文件名*/ head=AddfromText(head,filename); sy
40、stem(pause);break; case 9:printf(Input the name of the NewText Filen); scanf(%s,filename);/*輸入要寫入的文件名*/ head=WritetoText(head,filename); system(pause);break; case 0:printf(Goodbyen); Quit(head); exit(0); int Display_MainMenu() /*顯示菜單的函數*/char x; do system(cls); printf(*n); printf(1.Create BookListn)
41、; printf(2.Display All Booksn); printf(3.Insert a BookInformationn); printf(4.Delete a Bookn); printf(5.Borrow a Bookn); printf(6.Return a Bookn); printf(7.Queryn); printf(8.Add Records From a Filen); printf(9.Write to a Filen); printf(0.Goodbyen); printf(*n); printf(Please choose from 0-9:); printf
42、(n); x=getchar(); while(x9); return(x-0);Book *Create() /*創建鏈表的函數,返回首指針*/Book *head,*newrecord; char ch; printf(Input a Bookn); head=NULL;/*首指針置空*/ do newrecord=(Book *)malloc(LEN); /*動態分配存儲空間*/ scanf(%s%d,newrecord-Name,&newrecord-all); newrecord-left=newrecord-all; newrecord-borrow=0; head=Insert(
43、head,newrecord); /*調用Insert函數判斷位置插入*/ getchar(); / *接收最后輸入的回車符*/ printf(Add another Book Y/N?n); ch=getchar(); getchar(); /*接收回車符*/while(ch!=n&ch!=N); /*判斷是否繼續*/ return(head);Book *Insert(Book *head,Book *s)/*插入結點的函數*/ Book *p0,*p1,*p2; p1=head;p0=s; if(head=NULL) head=p0;p0-next=NULL; while(strcmp(
44、p0-Name,p1-Name)0&(p1-next!=NULL) p2=p p1=p1-next; if(strcmp(p0-Name,p1-Name)next=p1; if(head=p1) head=p0; else p2-next=p0; elsep1-next=p0;p0-next=NULL; return(head);Book *Insert_a_record(Book *head) Book *newrecord; newrecord=(Book *)malloc(LEN); /*動態分配存儲空間*/ scanf(%s%d,newrecord-Name,&newrecord-al
45、l); newrecord-borrow=0; newrecord-left=newrecord-all; head=Insert(head,newrecord); printf(Insert successfullyn);/*輸出插入成功的信息*/ return(head);Book *Delete(Book *head,char *name) /*刪除功能函數*/ Book *p1,*p2; if(head=NULL) printf(Sorry No record!n); p1=head; while(strcmp(p1-Name,name)!=0&p1-next!=NULL) / p2=
46、p1;p1=p1-next; if(strcmp(p1-Name,name)=0) if(p1=head)head=p1-next; else p2-next=p1-next; printf(delete %s successfullyn,name); return(head);Book *Delete_a_record(Book *head) char name20,ch; Book *p; scanf(%s,name); getchar(); p=Query(head,name); if(p=NULL) printf(Cannot Find %sn,name); else printf(D
47、elete %s, Y/N?n,name); ch=getchar(); system(pause); if(ch=y|ch=Y) while(p!=NULL) head=Delete(head,name); p=Query(head,name); return(head);Book *Borrow_a_Book(Book *head) char name20,ch; int n; Book *p; scanf(%s%d,name,&n); getchar(); / p=Query(head,name); if(p=NULL) printf(Cannot Find %sn,name); els
48、e printf(Are you sure to borrow? %s, Y/N?n,name); ch=getchar(); system(pause); if(ch=y|ch=Y) head=Borrow(head,name,n); return(head);Book *Borrow(Book *head,char *name,int sum) Book *p1; p1=head; while(strcmp(p1-Name,name)!=0&p1-next!=NULL) p1=p1-next; if(strcmp(p1-Name,name)=0) p1-borrow=sum; p1-lef
49、t=p1-all-sum; return(head);Book *Return_a_Book(Book *head) char name20,ch; int n; Book *p; scanf(%s%d,name,&n); getchar(); /*接收回車*/ p=Query(head,name); if(p=NULL) printf(Cannot Find %sn,name); /*找不到結點*/ else printf(Are you sure to return? %s, Y/N?n,name); ch=getchar(); system(pause); if(ch=y|ch=Y) h
50、ead=Return(head,name,n); return(head);Book *Return(Book *head,char *name,int sum) Book *p1; p1=head; while(strcmp(p1-Name,name)!=0&p1-next!=NULL) /*p1不是要找的結點,且后面還有結點*/ p1=p1-next; /*p1后移一個結點*/ if(strcmp(p1-Name,name)=0) /*找到了*/ p1-borrow=p1-borrow-sum; p1-left=p1-left+sum; return(head);void Display(Book *head) Book *p; int i; p=head; printf(Num BookName Total
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 能源檢測機構的八大可持續發展計劃
- 社交媒體廣告投放策略與效果預測-洞察闡釋
- 智能配送系統在O2O中的應用-洞察闡釋
- 旅游行業英文郵件格式范文
- 高三語文備課組下學期評價體系計劃
- 張掖肅南縣馬蹄生態文化旅游區招聘考試真題2024
- C語言選擇題復習試題含答案
- 魯中山河科技發展有限公司招聘筆試真題2024
- 嘉峪關市峪苑社區衛生服務中心招聘筆試真題2024
- 房地產管理系統的質量保證措施
- 2025年中國冷庫用叉車數據監測研究報告
- 2025年高考第二次模擬考試物理(浙江卷)(參考答案)-20250416-113627
- 2025年化妝師職業技能考試試題及答案
- GA 1812.1-2024銀行系統反恐怖防范要求第1部分:人民幣發行庫
- 2025中信建投證券股份限公司校園招聘易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年山東省泰安市新泰市中考二模化學試題(原卷版+解析版)
- 2025年雞蛋市場調查報告
- 2025年職業技能競賽(計算機程序員賽項)參考試題(附答案)
- 湖北省武漢市2025屆高中畢業生四月調研考試語文試卷及答案(武漢四調)
- 2025年全國中小學生百科知識競賽題庫及答案(480題)
- 測控技術培訓課件
評論
0/150
提交評論