程序設(shè)計(jì)基礎(chǔ)課程設(shè)計(jì)報(bào)告_第1頁(yè)
程序設(shè)計(jì)基礎(chǔ)課程設(shè)計(jì)報(bào)告_第2頁(yè)
程序設(shè)計(jì)基礎(chǔ)課程設(shè)計(jì)報(bào)告_第3頁(yè)
程序設(shè)計(jì)基礎(chǔ)課程設(shè)計(jì)報(bào)告_第4頁(yè)
程序設(shè)計(jì)基礎(chǔ)課程設(shè)計(jì)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩17頁(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、仲愷農(nóng)業(yè)工程學(xué)院課 程 設(shè) 計(jì)課 程 程序設(shè)計(jì)基礎(chǔ)姓 名 金峰院(系) 計(jì)算機(jī)科學(xué)與工程學(xué)院專(zhuān)業(yè)班級(jí) 計(jì)算機(jī)093學(xué) 號(hào) 200910214308指導(dǎo)教師 黃明志職 稱(chēng) 副教授日 期 2010年06 月26日仲愷農(nóng)業(yè)工程學(xué)院教務(wù)處制21n 題目:圖書(shū)信息管理系統(tǒng)設(shè)計(jì)圖書(shū)信息包括:登錄號(hào)、書(shū)名、作者名、分類(lèi)號(hào)、出版單位、出版時(shí)間、價(jià)格等。試設(shè)計(jì)一圖書(shū)信息管理系統(tǒng),使之能提供以下功能: 1 系統(tǒng)以菜單方式工作2 圖書(shū)信息錄入功能(圖書(shū)信息用文件保存)輸入3 圖書(shū)信息瀏覽功能輸出4 圖書(shū)信息查詢功能算法查詢方式:l 按書(shū)名查詢l 按作者名查詢5 圖書(shū)信息的刪除與修改(可選項(xiàng))n 總體設(shè)計(jì): 程序分為

2、六個(gè)模塊u 主菜單u 圖書(shū)信息錄入u 圖書(shū)信息瀏覽u 圖書(shū)信息查詢u 圖書(shū)信息修改u 系統(tǒng)說(shuō)明 程序框圖如下:n 詳細(xì)設(shè)計(jì):u 主菜單void title(void)/*標(biāo)題函數(shù)*/void menu(void)/*菜單顯示函數(shù)*/char input_menu(void) /*菜單選擇函數(shù)*/程序框圖:u 圖書(shū)信息錄入void input_bookdata(void)/*圖書(shū)錄入函數(shù)*/程序框圖:u 圖書(shū)信息瀏覽void output(void)/*信息輸出函數(shù)*/程序框圖:u 圖書(shū)信息查詢void search(void)/*查詢函數(shù)*/void search_output(char x)

3、/*查找函數(shù)內(nèi)嵌的輸出函數(shù)。 有一缺陷,此算法放書(shū)名和作者名一樣時(shí),或出錯(cuò)。*/程序框圖:u 圖書(shū)信息修改void change(void)/*修改函數(shù)修單*/void amend(char x)/*修改函數(shù)修單內(nèi)嵌修改函數(shù)*/void delect(char x)/*修改函數(shù)修單內(nèi)嵌刪除函數(shù)*程序框圖:u 系統(tǒng)說(shuō)明void about(void)程序框圖:n 軟件測(cè)試:主界面:信息錄入: 信息瀏覽: 信息查詢: 信息修改: n 綜合設(shè)計(jì)總結(jié):1. 制作菜單時(shí),使用getchar()函數(shù),結(jié)果導(dǎo)致功能選擇多了回車(chē)輸入,導(dǎo)致下次選擇出錯(cuò)。解決方法是更換為getch()函數(shù),此函數(shù)不需要回車(chē)確認(rèn),

4、故避免此問(wèn)題。2. 寫(xiě)輸出函數(shù)時(shí),遇到選擇輸出時(shí),屏幕沒(méi)有反應(yīng),檢查函數(shù)沒(méi)有錯(cuò)誤。發(fā)現(xiàn)為程序執(zhí)行過(guò)快,閃一下就過(guò)去。引入了system()函數(shù)中的”pause”參數(shù),在瀏覽輸出后暫停。3. 搜索資料時(shí),算法有點(diǎn)問(wèn)題,導(dǎo)致不夠準(zhǔn)確。所以在后面修改功能里,忽略其它查詢方法,只采用isbn搜索。4. 在定義指針數(shù)組時(shí),有時(shí)會(huì)忘記是指針或者是指針變量。5. 生成儲(chǔ)存文件時(shí),有時(shí)的fopen或者fclose會(huì)用錯(cuò)參數(shù)或者放錯(cuò)位置。n 附錄:(源程序)/* 題目36:圖書(shū)信息管理系統(tǒng)設(shè)計(jì)圖書(shū)信息包括:登錄號(hào)、書(shū)名、作者名、分類(lèi)號(hào)、出版單位、出版時(shí)間、價(jià)格等。試設(shè)計(jì)一圖書(shū)信息管理系統(tǒng),使之能提供以下功能:1

5、、系統(tǒng)以菜單方式工作2、圖書(shū)信息錄入功能(圖書(shū)信息用文件保存)輸入3、圖書(shū)信息瀏覽功能輸出4、圖書(shū)信息查詢功能算法查詢方式:按書(shū)名查詢按作者名查詢5、圖書(shū)信息的刪除與修改(可選項(xiàng)) */#include#include /*system函數(shù)用*/#include /*調(diào)用getch函數(shù),避開(kāi)gechar函數(shù)的回車(chē)問(wèn)題*/#define n 2struct libarychar isbn20,book_name20,writer20,publishing20,id10,date10;float price;int order;/*序號(hào)*/bookn;/*定義結(jié)構(gòu)體,存放書(shū)籍?dāng)?shù)據(jù)*/void ti

6、tle(void);void menu(void);char input_menu(void);void input_bookdata(void);void output(void);void search(void);void search_output(char x);void change(void);void about(void);void amend(char x);void delect(char x);/*以上n行為函數(shù)聲明*/void main()char i;int flag=0;dosystem(cls);title();menu();i=input_menu();/*選

7、擇*/switch(i)case1:input_bookdata();/*輸入*/flag=1;break;case2:output();/*輸出*/break;case3:search();/*查找*/break;case4:change();/*修改*/break;case5:about();/*系統(tǒng)說(shuō)明*/break;case6:exit(0);/*退出*/break;default:printf(輸入錯(cuò)誤。n);printf(n);while(flag=1);void title(void)/*標(biāo)題函數(shù)*/printf(n);printf(t*n);printf(t* *n);prin

8、tf(t* 歡迎使用圖書(shū)信息管理系統(tǒng) *n);printf(t* *n);printf(t* welcome to library information management system *n);printf(t* *n);printf(t* 計(jì)機(jī)093 金峰 200910214309 *n);printf(t*n);printf(n);void menu(void)/*菜單顯示函數(shù)*/printf(t請(qǐng)按序號(hào)選擇功能:n);printf(n);printf(tttt1.圖書(shū)信息錄入n);printf(n);printf(tttt2.圖書(shū)信息瀏覽n);printf(n);printf(tt

9、tt3.圖書(shū)信息查詢n);printf(n);printf(tttt4.圖書(shū)信息修改n);printf(n);printf(tttt5.系統(tǒng)說(shuō)明n);printf(n);printf(tttt6.退出系統(tǒng)n);printf(n);char input_menu(void) /*菜單選擇函數(shù)*/char i;printf(t請(qǐng)輸入:);i=getch();system(cls);title();return(i);void about(void)system(cls);title();printf(n);printf(tt系統(tǒng)說(shuō)明:n);printf(n);printf(ttt1.本系統(tǒng)在vis

10、ual c+ 2010 編譯通過(guò)。n);printf(n);printf(ttt2.本系統(tǒng)只作為課程設(shè)計(jì)作品。n);printf(n);printf(ttt3.由于編寫(xiě)時(shí)間較短,不排除bug的存在。n);printf(n);printf(n);system(pause);main();void input_bookdata(void)/*圖書(shū)錄入函數(shù)*/file *fp;int i=0;char j;system(cls);title();printf(n);printf(n);printf(請(qǐng)輸入圖書(shū)信息:n);printf(n);doprintf(n);printf(序號(hào):);scanf(

11、%d,&booki.order);printf(n);printf(isbn:);scanf(%s,booki.isbn);printf(n);printf(書(shū)名:);scanf(%s,booki.book_name);printf(n);printf(作者:);scanf(%s,booki.writer);printf(n);printf(分類(lèi)號(hào):);scanf(%s,booki.id);printf(n);printf(出版單位:);scanf(%s,booki.publishing);printf(n);printf(出版時(shí)間:);scanf(%s,booki.date);printf(

12、n);printf(書(shū)本價(jià)格:);scanf(%f,&booki.price);printf(n);printf(是否繼續(xù)輸入? y or n ?: );j=getch();i+;printf(n);printf(n);while(j=y|j=y)&in);if(fp=fopen(books_data,wb)=null)printf(不能打開(kāi)存儲(chǔ)文件。n);return;for(i=0;in;i+)if(fwrite(&booki,sizeof(struct libary),1,fp)!=1)printf(無(wú)法寫(xiě)入文件!n);return;fclose(fp);/*以上幾行為向文件輸出數(shù)據(jù)*/

13、main();/*返回菜單*/void output(void)/*信息輸出函數(shù)*/file *fp;int i;fp=fopen(books_data,rb);printf(圖書(shū)信息:n);printf(n);printf(序號(hào)tisbnt書(shū)名t作者t分類(lèi)號(hào)t出版單位t出版時(shí)間t書(shū)本價(jià)格tn);printf(-n);for(i=0;in;i+)fread(&booki,sizeof(struct libary),1,fp);printf( %dt,booki.order);printf(%st,booki.isbn);printf(%st,booki.book_name);printf(%s

14、t,booki.writer);printf(%st,booki.id);printf(%stt,booki.publishing);printf(%st,booki.date);printf(%4.1ftnn,booki.price);fclose(fp);system(pause);main();void search(void)/*查詢函數(shù)*/file *fp;char i,book_name,writer,isbn;int flag=1;dosystem(cls);title();if(fp=fopen(books_data,wb)=null)printf(不能打開(kāi)存儲(chǔ)文件。n);re

15、turn;/*打開(kāi)文件,為了搜索。*/printf(n);printf(t歡迎使用查找功能,請(qǐng)選擇:n);printf(n);printf(t1.按isbn查詢n);printf(n);printf(t2.按書(shū)名查詢n);printf(n);printf(t3.按作者查詢n);printf(n);printf(t4.返回主菜單n);printf(n);printf(請(qǐng)輸入:);i=getch();system(cls);title();switch(i)case1:printf(n);printf(請(qǐng)輸入要查找的isbn號(hào):);scanf(%s,&isbn);printf(n);printf(

16、n);search_output(isbn);break;case2:printf(n);printf(請(qǐng)輸入要查找的書(shū)名:);scanf(%s,&book_name);printf(n);printf(n);search_output(book_name);break;case3:printf(n);printf(請(qǐng)輸入要查找的作者:);scanf(%s,&writer);printf(n);printf(n);search_output(writer);break;case4:main();break;default:printf(n);printf(輸入錯(cuò)誤!);flag=0;fclos

17、e(fp);/*關(guān)閉用于搜索用的文件*/while(flag=0);void search_output(char x)/*查找函數(shù)內(nèi)嵌的輸出函數(shù)。 有一缺陷,此算法放書(shū)名和作者名一樣時(shí),或出錯(cuò)。*/int i;printf(序號(hào)tisbnt書(shū)名t作者t分類(lèi)號(hào)t出版單位t出版時(shí)間t書(shū)本價(jià)格tn);printf(-n);for(i=0;in;i+)if(x=*booki.book_name|x=*booki.writer|x=*booki.isbn)/*由于使用了不準(zhǔn)確的判斷標(biāo)準(zhǔn),輸入查找信息,或出現(xiàn)混亂的結(jié)果*/printf(n);printf( %dt,booki.order);printf

18、(%st,booki.isbn);printf(%st,booki.book_name);printf(%st,booki.writer);printf(%st,booki.id);printf(%stt,booki.publishing);printf(%st,booki.date);printf(%4.1ftnn,booki.price);/*此處不加else來(lái)說(shuō)明查詢不到信息,是因?yàn)椴恢纍的數(shù)值,循環(huán)后,假如n之前輸入的數(shù)值,則多輸出幾次esle的內(nèi)容,影響過(guò)莫!*/system(pause);void change(void)/*修改函數(shù)修單*/char i,isbn,book_na

19、me,writer;int flag=1;dosystem(cls);title();printf(n);printf(t歡迎使用修改功能(暫提供一種修改方式),請(qǐng)選擇:n);printf(n);printf(t1.按isbn修改n);printf(n);printf(t2.返回主菜單n);printf(n);printf(請(qǐng)輸入:);i=getch();system(cls);title();switch(i)case1:printf(請(qǐng)輸入isbn:);scanf(%s,&isbn);printf(n);search_output(isbn);/*顯示要修改的項(xiàng)目*/amend(isbn)

20、;/*修改項(xiàng)目*/break;case2:main();break;default:printf(n);printf(輸入錯(cuò)誤!);flag=0;while(flag=0);void amend(char x)/*修改函數(shù)修單內(nèi)嵌修改函數(shù)*/file *fp;int i;char j=n,k;/*如果不初始化j的值,在后面重新輸入數(shù)據(jù)那選了n,則j沒(méi)有值,會(huì)出錯(cuò)*/printf(n);printf(是否刪除數(shù)據(jù)? y or n?:);k=getch();if(k=y|j=y)delect(x);elseprintf(n);printf(n);printf(是否重新輸入數(shù)據(jù)? y or n?:)

21、;j=getch();printf(n);if(j=y|j=y)system(cls);for(i=0;in;i+)if(x=*booki.isbn)printf(n);printf(序號(hào):);scanf(%d,&booki.order);printf(n);printf(isbn:);scanf(%s,booki.isbn);printf(n);printf(書(shū)名:);scanf(%s,booki.book_name);printf(n);printf(作者:);scanf(%s,booki.writer);printf(n);printf(分類(lèi)號(hào):);scanf(%s,booki.id);printf(n);printf(出版單位:);s

溫馨提示

  • 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)論