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

下載本文檔

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

文檔簡介

1、高級語言程序設(shè)計(1)課程設(shè)計專業(yè) 班級 學(xué)號 姓名 完成日期 指導(dǎo)教師(簽名)1、程序設(shè)計說明書【設(shè)計題目】 圖書管理系統(tǒng) 【問題描述】 圖書館有未知數(shù)本書,每個書的情況用該軟件通過鍵盤敲入并以文本文件方式存放在磁盤,內(nèi)容為六列:書本名稱、圖書編號、作者、所屬類別、出版社、價格。編寫程序,可以進行錄入、瀏覽、查詢、修改、刪除等操作?!净疽蟆?(1)通過此軟件可以將圖書的各種情況錄入,并且會將各個情況自動保存到磁盤上。 (2)通過此軟件可以一一瀏覽圖書信息。 (3)通過此軟件可以對圖書進行查詢,有兩種查詢方式,分別為按書名查詢和按作者名查詢。 (4)通過此軟件可以對已錄入的每本書情況進行修

2、改、刪除,并且修改完成后會將更改后的圖書情況自動保存到原磁盤文件中?!舅惴ㄋ枷搿浚?)構(gòu)造一個結(jié)構(gòu)體類型,成員包括六項。五個字符型數(shù)組:書本名稱、圖書編號、作者、所屬類別、出版社,一個浮點型變量:價格。(2)錄入每本書的情況時,通過循環(huán)語句將每本書情況輸入到結(jié)構(gòu)體中,并將其寫入文本文件中,并存入磁盤。(3)查詢某書本情況時,先將文件讀出到結(jié)構(gòu)體中,可以通過輸入函數(shù),用書名或作者名進行查詢。若沒有其相關(guān)信息,則輸出警告語句;若有,通過條件語句輸出結(jié)果,并將結(jié)果顯示在屏幕上。(4)修改每本圖書情況時,先將文件讀出到結(jié)構(gòu)體中,通過字符的比較查找所修改的圖書所在處,如果沒有找到則輸出警告語句,找到后則

3、通過輸入輸出函數(shù)進行修改,并將修改過后的圖書情況寫入文本文件中,并存入磁盤?!灸K化分及調(diào)用關(guān)系】main函數(shù) input函數(shù)list函數(shù)exit函數(shù)append函數(shù)revise函數(shù)search函數(shù) main函數(shù)分別調(diào)用: input( ); /圖書信息錄入list( ); /圖書瀏覽信息 search( ); /圖書查詢信息 revise( ); /圖書修改信息 append( ); /圖書增添信息 【模塊流程圖】 main函數(shù) 輸入a1=>a 2=>a 3=>a 4=>a 5=>a 0=>aelseinput list search revise app

4、end exit input函數(shù) 創(chuàng)建文件“圖書信息”文件創(chuàng)建成功文件創(chuàng)建失敗輸入 書本名稱(name)圖書編號(number)作者(writer) 所屬類別(category)出版社(publisher)價格(price) 直到輸入完N個物品的信息 通過循環(huán),將所輸入的內(nèi)容寫入文件中,保存在磁盤里 list函數(shù) 讀取文件 讀取文件成功 讀取文件失敗通過循環(huán)語句,將各個物品的信息情況進行輸出 關(guān)閉文件 search函數(shù) 讀取文件讀取文件成功 讀取文件失敗 通過switch語句選擇查詢方式 在文件中找到 在文件中未找到 輸出查詢到的圖書信息:書本名稱(name)圖書編號(number)作者(wr

5、iter)所屬類別(category)出版社(publisher)價格(price) 關(guān)閉文件 revise函數(shù)讀取文件讀取文件成功 讀取文件失敗 輸入要修改的圖書名稱 在文件中找到 在文件中未找到 輸入要修改的圖書信息:書本名稱(name)圖書編號(number)作者(writer)所屬類別(category)出版社(publisher)價格(price) 再將修改后的內(nèi)容寫入文件 關(guān)閉文件 append函數(shù)讀取文件讀取文件成功 讀取文件失敗 輸入追加圖書的數(shù)目 在文件中找到 在文件中未找到輸入要追加的圖書信息:書本名稱(name)圖書編號(number)作者(writer)所屬類別(cat

6、egory)出版社(publisher)價格(price) 再將增添的內(nèi)容寫入文件 關(guān)閉文件 【程序使用方法】 (1)執(zhí)行程序,按照界面提示進行選擇。輸入 “1”,進入圖書錄入。(2)按照程序提示,分別輸入書本名稱、圖書編號、作者、所屬類別、出版社、價格。(注:這里默認為有兩本圖書,可以通過宏定義進行修改。)(3)輸入成功后,按任意鍵返回主界面。輸入“2”,進入圖書信息瀏覽,程序自動將各書本信息情況輸出到屏幕上。(4)瀏覽成功后,按任意鍵返回主界面。輸入“3”,進入圖書信息查詢,按照提示選擇一種查詢方式,將所查詢的本書信息輸出到屏幕上。(5)查詢成功后,按任意鍵返回主界面。輸入“4”,進入圖書

7、信息修改,程序?qū)⒁薷牡奈锲沸畔⑶闆r輸出到屏幕上。(6)修改成功后,按任意鍵返回主界面。輸入“5”,進入圖書信息追加,程序?qū)⒁芳拥膱D書信息情況輸出到屏幕上。(7)追擊成功后,按任意鍵返回主界面。輸入“0”,退出程序。2、程序上機調(diào)試報告【語法錯誤及其排除】 (1)宏定義時在末尾處加上了分號,應(yīng)該不加分號。 (2)scanf中輸入地址符號時忘了輸入,應(yīng)該輸入地址符號?!舅惴ㄥe誤及其排除】 (1)定義圖書全程變量時直接賦值為0,導(dǎo)致在第二次讀取文件時圖書數(shù)值多出一倍,應(yīng)該在取消對全程變量的賦值。(2)在查詢圖書信息時,if語句的子語句缺少了括號,程序沒有提示錯誤,但實際上程序按if緊接的語句執(zhí)行

8、,應(yīng)該加上括號。 3、程序測試錯誤【測試數(shù)據(jù)】 挪威的森林 村上春樹 文學(xué) 上海譯文出版社圍城 錢學(xué)森 文學(xué) 上海晨光出版公司【輸出結(jié)果】【收獲與體會】 4、源程序代碼 #include"stdio.h"#include"stdlib.h"#include"string.h"#include"conio.h"#define N 2typedef struct system char name20; /書本名稱 char number20; /書本編號 char writer10; /書本作者 char catego

9、ry10; /所屬類別 char publisher20; /出版社 double price; /書本價格BOOK;BOOK a;/定義一個全局變量 void input() /*定義錄入函數(shù)*/ int i; FILE *fp; system("cls"); if(fp=fopen("e:file","w")=NULL) printf("error!n");exit(1); for(i=1;i<=N;i+) printf("t請輸入書名:"); scanf("%s"

10、,&); printf("t請輸入圖書編號:"); scanf("%s",&a.number); printf("t請輸入作者名:"); scanf("%s",&a.writer); printf("t請輸入圖書的所屬類別:"); scanf("%s",&a.category); printf("t請輸入出版社:"); scanf("%s",&a.publisher); printf(

11、"t請輸入該書的價格:"); scanf("%lf",&a.price); fwrite(&a,sizeof(BOOK),1,fp); fclose(fp);void list() /*定義瀏覽函數(shù)*/ FILE *fp; system("cls"); if(fp=fopen("e:file","r")=NULL) printf("error!n");exit(1); printf("nnnnnntbooknametnumbertwritertcat

12、egorytpublishertpricenn"); while(fread(&a,sizeof(BOOK),1,fp)!=0) printf("t%st%st%st%st%st%fn",,a.number,a.writer,a.category,a.publisher,a.price); fclose(fp); printf("nt press any key to continue."); getch();void search_by_name() /*定義按書名查詢*/ FILE *fp; int i; int fla

13、g=0; BOOK bN; char s220; fp=fopen("e:file","r"); if(fp=NULL) printf("file open error!n");exit(1); for(i=0;i<N;i+) fread(&bi,sizeof(BOOK),1,fp); printf("請輸入要查詢的書名: "); scanf("%s",s2); for(i=0;i<N;i+ ) if(strcmp(s2,)=0) flag=1; printf(

14、"書名 編號 作者 類別 出版社 價格 n"); printf("%st%st%st%st%st%lftnn",,bi.number,bi.writer,bi.category,bi.publisher,bi.price); getch(); break; if(flag=0) printf("cannot found!"); getch(); fclose(fp);void search_by_writer() /*定義按作者名查詢*/ int i; int flag1=0; FILE *fp; BOOK bN; ch

15、ar s320; fp=fopen("e:file","r"); if(fp=NULL) printf("file open error!n");exit(1); for(i=0;i<N;i+) fread(&bi,sizeof(BOOK),1,fp); printf("請輸入要查詢的書的作者: "); scanf("%s",&s3); for(i=0;i<N;i+ ) if(strcmp(s3,bi.writer)=0) flag1=1; printf("

16、書名 編號 作者 類別 出版社 價格 n"); printf("%st%st%st%st%st%lftnn",,bi.number,bi.writer,bi.category,bi.publisher,bi.price); getch(); break; if(flag1=0) printf("cannot found!"); getch(); fclose(fp); void search() /*定義查詢函數(shù)*/ int chax; system("cls"); /*進行清屏*/ printf("

17、tt*n"); printf("開始查詢n"); printf("ttt1-search_by_namen"); printf("ttt2-search_by_writern"); printf("ttt0-exitn"); printf("tt*n") ; printf("tt請選擇你想要的查詢方式:"); scanf("%d",&chax); switch(chax) case 1:search_by_name();break; ca

18、se 2:search_by_writer();break; case 0:return; void revise() /*定義修改函數(shù)*/ int i,k; char s120; BOOK bN; FILE *fp; system("cls"); if(fp=fopen("e:file","w+")=NULL) printf("error!"); exit(1); for(i=0;i<N;i+) fread(&bi,sizeof(BOOK),1,fp); printf("tt歡迎進入修改界

19、面n"); printf("nnntt請輸入所要修改的圖書名:n"); getchar(); gets(s1); for(i=0;i<N;i+) if(strcmp(s1,)=0) k=i; break; if (i>N) printf("未找到!"); exit(0); else printf("tt請輸入 書名 編號 作者 類別 出版社 價格 n"); scanf("ttttttt%20st%20st%10st%10st%20st%lfn",,bi.number

20、,bi.writer,bi.category,bi.publisher,bi.price); for(i=0;i<N;i+) fwrite(&bi,sizeof(BOOK),1,fp); fclose(fp); printf("修改成功!"); void append() /*定義追加函數(shù)*/ int i,n; BOOK a; FILE *fp; system("cls"); if(fp=fopen("e:file","a")=NULL) printf("error!n");exi

21、t(1); printf("nnt請輸入追加圖書的個數(shù):"); scanf("%d",&n); for(i=0;i<n;i+) printf("t請輸入追加圖書書名:"); scanf("%s",&); printf("t請輸入追加圖書的編號:"); scanf("%s",&a.number); printf("t請輸入追加圖書的作者名:"); scanf("%s",&a.writer); printf("t請輸入追加圖書的所屬類別:"); scanf("%s",&a.category); printf("t請輸入追加圖書出版社:"); scanf("%s",&a.publisher); printf

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論