




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、德州學(xué)院計(jì)算機(jī)系課程設(shè)計(jì)報(bào)告實(shí)習(xí)名稱 C語(yǔ)言課程設(shè)計(jì) _設(shè)計(jì)題目 圖書信息管理系統(tǒng) _實(shí)習(xí)時(shí)間2012.3.5-2012.3.11 專業(yè)班級(jí) 2012級(jí)信息管理與信息系統(tǒng)_指導(dǎo)老師教學(xué)單位(蓋章) 小組分工情況:學(xué)號(hào)姓名分工二0一二年五月二十五日目錄1 實(shí)習(xí)目的12 需求分析12.1 模塊劃分及功能12.2 題目分析23 概要設(shè)計(jì)23.1總體設(shè)計(jì)方案說(shuō)明:23.2程序采用的結(jié)構(gòu):23.3 各個(gè)功能的函數(shù):34.詳細(xì)設(shè)計(jì)34.1主函數(shù)的算法設(shè)計(jì)34.2各子函數(shù)的算法設(shè)計(jì)4圖書信息錄入函數(shù)4圖書信息瀏覽函數(shù)5圖書信息的查詢函數(shù)5圖書信息的刪除函數(shù)6圖書信息的修改函數(shù)75.調(diào)試與測(cè)試結(jié)果分析85.1
2、圖書信息錄入95.2圖書信息瀏覽105.3圖書信息查詢115.4 圖書信息刪除135.5圖書信息修改145.6退出圖書信息管理系統(tǒng)155.7上機(jī)調(diào)試感想156 總結(jié)15參考文獻(xiàn)16學(xué)生信息管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)1 實(shí)習(xí)目的課程設(shè)計(jì)是課程學(xué)習(xí)后的一個(gè)綜合性實(shí)踐教學(xué)環(huán)節(jié),是對(duì)課程理論和課程實(shí)驗(yàn)的綜合和補(bǔ)充。它主要培養(yǎng)綜合運(yùn)用已學(xué)過(guò)的理論和技能去分析和解決實(shí)際問(wèn)題的能力,對(duì)加深課程理論的理解和應(yīng)用、切實(shí)加強(qiáng)實(shí)踐動(dòng)手能力和創(chuàng)新能力具有重要意義。課程設(shè)計(jì)是我們必不可少的一個(gè)綜合性理論實(shí)踐環(huán)節(jié)。 為了融會(huì)貫通本課程所學(xué)專業(yè)理論知識(shí),完成一個(gè)較完整的程序設(shè)計(jì)與計(jì)算和程序調(diào)試過(guò)程,以加深對(duì)所學(xué)理論的理解與應(yīng)用,
3、進(jìn)一步認(rèn)識(shí)和熟悉C語(yǔ)言程序設(shè)計(jì)中的語(yǔ)句的應(yīng)用和用途,了解解決實(shí)際問(wèn)題的一般過(guò)程,培養(yǎng)綜合運(yùn)用基礎(chǔ)理論知識(shí)和專業(yè)知識(shí)去解決實(shí)際應(yīng)用設(shè)計(jì)問(wèn)題的能力。通過(guò)綜合性課程設(shè)計(jì)訓(xùn)練,達(dá)到以下的目的和要求:1、結(jié)合該課程中所學(xué)的C語(yǔ)言理論知識(shí),設(shè)計(jì)一個(gè)綜合的程序解決具體的實(shí)際問(wèn)題,按要求獨(dú)立完成設(shè)計(jì)方案,培養(yǎng)獨(dú)立分析與解決問(wèn)題的能力;2、學(xué)會(huì)查閱相關(guān)手冊(cè)和資料,通過(guò)查閱手冊(cè)和資料,進(jìn)一步熟悉常用方法的用途和技巧,并掌握這些方法的具體含義和如何使用這些方法解決實(shí)際問(wèn)題;3、掌握綜合性程序設(shè)計(jì)的基本過(guò)程;4、掌握綜合性程序開發(fā)的調(diào)試技術(shù),熟悉常用調(diào)試方法的使用;5、認(rèn)真撰寫總結(jié)報(bào)告,培養(yǎng)嚴(yán)謹(jǐn)?shù)淖黠L(fēng)和科學(xué)的態(tài)度。2
4、 需求分析2.1 模塊劃分及功能根據(jù)圖書信息管理的需要,建立一個(gè)圖書管理系統(tǒng),可將程序分為以下幾個(gè)模塊:圖書信息錄入、圖書信息瀏覽、圖書信息查詢、圖書信息刪除、圖書信息修改、退出圖書信息系統(tǒng)。應(yīng)該實(shí)現(xiàn)的主要功能有:1 系統(tǒng)以菜單方式工作v2 圖書信息錄入功能輸入v3 圖書信息瀏覽功能輸出v4 查詢和排序功能算法v(1)按書名查詢(2)按作者名查詢5 圖書信息的刪除與修改2.2 題目分析根據(jù)題目的要求,應(yīng)當(dāng)把圖書信息用結(jié)構(gòu)形式輸入,再定義一個(gè)全局變量和文件指針進(jìn)行整個(gè)程序的運(yùn)行,然后 ,吧圖書信息送到文件中。在程序中需實(shí)現(xiàn)圖書信息錄入、瀏覽、查詢、刪除和修改等功能的操作,所以需要建立相應(yīng)的模塊來(lái)
5、實(shí)現(xiàn),并且還需要提供選擇菜單來(lái)實(shí)現(xiàn)功能,在運(yùn)行時(shí)達(dá)到預(yù)定的目的。3 概要設(shè)計(jì)3.1總體設(shè)計(jì)方案說(shuō)明:圖書信息管理系統(tǒng)管理員的登錄系統(tǒng)菜單選擇圖書信息錄入圖書信息瀏覽圖書信息查詢圖書信息刪除圖書信息修改圖1 程序功能圖3.2程序采用的結(jié)構(gòu): typedef struct char number10; 定義登錄號(hào)char name20; 定義書名char author20; 定義作者名char publish50; 定義出版單位char time20; 定義出版時(shí)間float price; 定義價(jià)格int count; 定義書的本數(shù)3.3 各個(gè)功能的函數(shù):void putin() 定義錄入函數(shù)vo
6、id search_by_name() 定義按書名查詢void search_by_author() 定義按作者名查詢void search() 定義查詢函數(shù)void del() 定義刪除函數(shù)void update() 修改圖書信息4.詳細(xì)設(shè)計(jì)4.1主函數(shù)的算法設(shè)計(jì)首先運(yùn)行程序,進(jìn)入菜單,然后選擇操作(運(yùn)用swith語(yǔ)句),調(diào)用各子函數(shù)。在返回操作中運(yùn)用while語(yǔ)句進(jìn)行控制返回菜單。開始輸入選擇圖書信息錄入圖書信息瀏覽圖書信息查詢圖書信息刪除圖書信息修改退出圖書信息系統(tǒng)結(jié)束圖2 程序總體運(yùn)行功能示意圖4.2各子函數(shù)的算法設(shè)計(jì)圖書信息錄入函數(shù)程序運(yùn)行后輸入數(shù)字“1”,進(jìn)行圖書信息錄入功能開始i
7、nt1輸入圖書信息if函數(shù)輸入圖書信息結(jié)束是否圖3 圖書信息錄入函數(shù)示意圖圖書信息瀏覽函數(shù)在主菜單進(jìn)行操作,輸入2進(jìn)入圖書信息瀏覽界面,圖書信息進(jìn)行顯示,按任意鍵返回;圖書信息的查詢函數(shù)void search()選擇查詢方式,1按書號(hào)查詢,2按書名查詢,然后定位,在調(diào)用輸出函數(shù);開始輸入3int ii=1輸入書名if函數(shù)輸出圖書查詢信息結(jié)束是否是否圖4 圖書信息查詢函數(shù)示意圖圖書信息的刪除函數(shù)在主菜單進(jìn)行操作,輸入4進(jìn)入圖書信息刪除界面,圖書信息提示輸入要?jiǎng)h除信息的編號(hào),按要求輸入索要?jiǎng)h除圖書信息的編號(hào),按回車鍵進(jìn)行返回;圖5 圖書信息刪除函數(shù)示意圖開始輸入4輸出Please type in
8、the number of the book you want to deleteint numberint ii<library.count是否i+i<library.count-1是輸出count found刪除保存刪除后的信息結(jié)束否圖書信息的修改函數(shù)在主界面進(jìn)行操作,輸入5進(jìn)入圖書信息修改界面,按顯示信息的提示,輸入要修改圖書信息的編號(hào),進(jìn)行修改,繼續(xù)按顯示信息的提示依次修改,修改完成后按回車鍵返回,可輸入2進(jìn)入圖書信息瀏覽進(jìn)行檢驗(yàn);是否是開始輸入4輸出Please type in the number of the book you want to deleteint nu
9、mberint ii<library.counti+i<library.count-1輸出count found刪除結(jié)束否圖6 圖書信息修改函數(shù)示意圖5.調(diào)試與測(cè)試結(jié)果分析在vc的環(huán)境下調(diào)試程序,進(jìn)入菜單界面。(如圖7所示)圖7 菜單界面5.1圖書信息錄入從菜單界面輸入“1”進(jìn)入圖書信息管理系統(tǒng)的主界面。(如圖8、圖9所示)圖8 圖書信息錄入圖9 錄入圖書信息5.2圖書信息瀏覽輸入”0”返回菜單主界面,再輸入“2”進(jìn)行圖書信息瀏覽功能;(如圖10、圖11所示)圖10 圖書信息瀏覽圖11 瀏覽圖書信息5.3圖書信息查詢按回車返回菜單界面并輸入“3”進(jìn)行圖書信息查詢功能;(如圖12所示
10、)圖12 圖書信息查詢界面顯示1通過(guò)姓名查詢 2通過(guò)作者查詢 3退出 (如圖13、圖14所示)圖13按書名進(jìn)行查詢圖14 按作者名進(jìn)行查詢?nèi)绻斎胄畔⒉环麑⒊霈F(xiàn)如下界面(如圖15所示):圖15 查詢結(jié)果錯(cuò)誤5.4 圖書信息刪除返回并輸入4進(jìn)行圖書信息刪除功能;(如圖16、圖17所示)圖16 圖書信息刪除圖17 顯示刪除后的信息5.5圖書信息修改返回菜單界面并輸“5”進(jìn)行圖書信息修改功能 ;(如圖18所示)圖18 圖書信息修改返回并查詢“圖書信息瀏覽”(如圖19所示)圖19 圖書信息瀏覽5.6退出圖書信息管理系統(tǒng)輸入數(shù)字“0”退出圖書信息管理系統(tǒng)5.7上機(jī)調(diào)試感想在調(diào)試過(guò)程中出現(xiàn)了許多錯(cuò)誤!特別
11、是查詢,修改和刪除這三個(gè)函數(shù)的調(diào)試花了很多時(shí)間,主要是文件的寫入與讀出以及菜單調(diào)試的問(wèn)題,還有建立新的鏈接也出現(xiàn)問(wèn)題,說(shuō)明自己對(duì)程序的執(zhí)行過(guò)程理解不夠深刻。6 總結(jié)通過(guò)這次課程設(shè)計(jì),使我們更加熟練的使用C語(yǔ)言進(jìn)行編程,并且復(fù)習(xí)并鞏固了以前學(xué)到的知識(shí)。編程能力也有提高,尤其是在使用函數(shù)、指針、數(shù)組、結(jié)構(gòu)體、文件等方面有了很大進(jìn)步,而且還學(xué)到了課本中沒(méi)有的知識(shí)。只有經(jīng)過(guò)實(shí)際操作,進(jìn)行實(shí)際編程訓(xùn)練才能更好地發(fā)現(xiàn)問(wèn)題,運(yùn)用課本知識(shí),在解決實(shí)際的問(wèn)題中發(fā)現(xiàn)不足。在程序中的函數(shù)是實(shí)現(xiàn)模塊化編程的基礎(chǔ),它使程序變得方面易懂,對(duì)修改起了很大作用,降低了編程的難度。一個(gè)函數(shù)就是一個(gè)功能,它使各個(gè)功能之間有了一定
12、的獨(dú)立性,但也有了一定的聯(lián)系性。在程序的調(diào)試過(guò)程中,也加深了對(duì)函數(shù)的理解,并更好的運(yùn)用了函數(shù)。結(jié)構(gòu)體的使用,為本程序提供了很大方便,也提高了程序的可讀性,結(jié)構(gòu)數(shù)組方便了對(duì)數(shù)據(jù)的管理。并且,在課程設(shè)計(jì)的過(guò)程中,也加深了我們的團(tuán)隊(duì)意識(shí),同學(xué)間通過(guò)討論,并運(yùn)用所學(xué)的知識(shí),為了我們共同的目的而努力,收獲了很多。參考文獻(xiàn)1 謝延紅,王付山.C語(yǔ)言程序設(shè)計(jì)教程M.北京:國(guó)防工業(yè)出版社,2010.152-171.2 石柱,何新貴.優(yōu)序法在軟件評(píng)價(jià)中的應(yīng)用J.計(jì)算機(jī)工程與設(shè)計(jì),2002,23(2):45-46.3 楊路明.C語(yǔ)言程序設(shè)計(jì)(第2版)M.北京:郵電大學(xué)出版社,2005-12-01.4 譚浩強(qiáng).C程
13、序設(shè)計(jì)(第二版)M.清華大學(xué)出版社,1998.5 王新,孫雷C語(yǔ)言課程設(shè)計(jì)I清華大學(xué)出版社,2009-12-01.6 崔武子.C程序設(shè)計(jì)輔導(dǎo)與實(shí)訓(xùn)M.清華大學(xué)出版社,2004.附錄#include<stdio.h>#include<stdlib.h>#include<string.h>typedef struct char number10;/書號(hào)char name20;/書名char author20;/作者char publish50;/出版社char time20;/出版時(shí)間float price;mbook;typedef struct int co
14、unt;/書的本數(shù)mbook book100;/最大可有100本書mlibrary;mlibrary library;void save()/保存圖書信息。FILE *fp;if(fp=fopen("library.doc","w")=NULL)printf("n不能保存圖書信息n");return;fwrite(&library.count,sizeof(int),1,fp);fwrite(library.book,sizeof(library.book0),library.count,fp);void putin() /*
15、定義錄入函數(shù)*/ int y=1;system("cls");while(y) printf("t請(qǐng)輸入您的書籍的書號(hào):");scanf("%s",library.booklibrary.count.number);printf("t請(qǐng)輸入書名:");scanf("%s",);printf("t請(qǐng)輸入作者名:");scanf("%s",library.booklibrary.count.autho
16、r);printf("t請(qǐng)輸入出版社:");scanf("%s",library.booklibrary.count.publish);printf("t請(qǐng)輸入出版時(shí)間:");scanf("%s",library.booklibrary.count.time);printf("t請(qǐng)輸入該書的價(jià)格:");fflush(stdin);scanf("%f",&library.booklibrary.count.price);library.count+;printf(&qu
17、ot;n是否繼續(xù)錄入(1.繼續(xù);0,退出錄入):");fflush(stdin);scanf("%d",&y);if (y!=1)y=0;break; save();void lookup()system("cls");printf("圖書號(hào)t圖書名t作者名t出版社t出版日期t圖書價(jià)格n");for (int i=0;i<library.count;i+)printf("%st%st%st%st%st%6.2fn",library.booki.number,library.booki.nam
18、e,library.booki.author,library.booki.publish,library.booki.time,library.booki.price);fflush(stdin);getchar();void search_by_name() /*定義按書名查詢*/ char s220; int flag=1;printf("n請(qǐng)輸入要查詢的書名: ");fflush(stdin);scanf("%s",s2);printf("圖書號(hào)t圖書名t作者名t出版社t出版日期t圖書價(jià)格n");for(int i=0;i<
19、;library.count;i+ )if(strcmp(s2,)=0) flag=0;printf("%st%st%st%st%st%6.2fn",library.booki.number,,library.booki.author,library.booki.publish,library.booki.time,library.booki.price); if (flag)printf("cannot found!");fflush(stdin);getchar();void s
20、earch_by_author() /*定義按作者名查詢*/ char s320;int flag=1;printf("請(qǐng)輸入要查詢的書的作者: ");fflush(stdin);scanf("%s",s3);printf("圖書號(hào)t圖書名t作者名t出版社t出版日期t圖書價(jià)格n");for(int i=0;i<library.count;i+ )if(strcmp(s3,library.booki.author)=0) flag=0;printf("%st%st%st%st%st%6.2fn",library
21、.booki.number,,library.booki.author,library.booki.publish,library.booki.time,library.booki.price); if (flag)printf("cannot found!");fflush(stdin);getchar();void search() /*定義查詢函數(shù)*/ int a;system("cls"); /*進(jìn)行清屏*/ printf("tt*n");printf("開始查詢n");
22、 printf("ttt1-search_by_namen"); printf("ttt2-search_by_writern"); printf("ttt0-exitn"); printf("tt*n") ; printf("tt請(qǐng)選擇你想要的查詢方式:");fflush(stdin); scanf("%d",&a); switch(a) case 1:search_by_name();break; case 2:search_by_author();break;c
23、ase 0:return;void del() /*定義刪除函數(shù)*/ char number10;system("cls"); /*清屏*/printf("n Please type in the number of the book you want to delete:");fflush(stdin);scanf("%s",number);int i;for (i=0;i<library.count;i+)if(strcmp(number,library.booki.number)=0)break;if (i!=librar
24、y.count)for(;i<library.count-1;i+)strcpy(,library.booki+1.name);strcpy(library.booki.number,library.booki+1.number);strcpy(library.booki.publish,library.booki+1.publish);strcpy(library.booki.author,library.booki+1.author);strcpy(library.booki.time,library.booki+1.time);library.b
25、ooki.price=library.booki+1.price;library.count-;elseprintf("n cannot found!n");save();fflush(stdin);getchar();void update()/修改圖書信息char number10;system("cls"); /*清屏*/printf("n Please type in the number of the book you want to delete:");fflush(stdin);scanf("%s",
26、number);int i;for (i=0;i<library.count;i+) if(strcmp(number,library.booki.number)=0) printf("圖書號(hào)t圖書名t作者名t出版社t出版日期t圖書價(jià)格n"); printf("%st%st%st%st%st%6.2fn",library.booki.number,,library.booki.author,library.booki.publish,library.booki.time,library.booki.price);
27、 break; if (i!=library.count)mbook book;printf("ntt請(qǐng)輸入修改后此圖書的信息n");printf("t請(qǐng)輸入圖書號(hào):");scanf("%s",book.number);printf("t請(qǐng)輸入圖書名:");scanf("%s",);printf("t請(qǐng)輸入作者名:");scanf("%s",book.author);printf("t請(qǐng)輸入出版社:");scanf(&
28、quot;%s",book.publish);printf("t請(qǐng)輸入出版時(shí)間:");scanf("%s",book.time);printf("t請(qǐng)輸入該書的價(jià)格:");fflush(stdin);scanf("%f",&book.price);strcpy(,);strcpy(library.booki.number,book.number);strcpy(library.booki.publish,book.publish);strcpy
29、(library.booki.author,book.author);strcpy(library.booki.time,book.time);library.booki.price=book.price;save();elseprintf("n cannot found!n");fflush(stdin);getchar();void main()FILE *fp;if(fp=fopen("library.doc","r")=NULL)printf("n不能打開圖書信息庫(kù)n");fp=fopen("library.doc","
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年安全評(píng)價(jià)師(高級(jí))職業(yè)技能鑒定案例分析解析冊(cè)
- 2025年消防執(zhí)業(yè)資格考試題庫(kù):消防應(yīng)急救援戰(zhàn)例分析實(shí)戰(zhàn)演練試卷
- 2025年美術(shù)教師編制考試模擬試卷:美術(shù)教育心理學(xué)研究與應(yīng)用試題
- 2025年CPE考試試卷:寫作思路引導(dǎo)與2025年考試熱點(diǎn)話題分析
- 語(yǔ)文課上難忘的一件事周記(13篇)
- 2025年輕油蒸汽轉(zhuǎn)化催化劑項(xiàng)目提案報(bào)告
- 2025年草除靈乙酯項(xiàng)目申請(qǐng)報(bào)告
- 2025年一建考試機(jī)電工程經(jīng)濟(jì)與造價(jià)管理實(shí)戰(zhàn)案例分析試題卷
- 2025年物業(yè)管理師考試物業(yè)管理物業(yè)設(shè)施運(yùn)行管理實(shí)施改進(jìn)報(bào)告反思試卷
- 在閱讀中發(fā)現(xiàn)美好閱讀感悟作文8篇
- 輥壓機(jī)培訓(xùn)ppt課件
- 全國(guó)醫(yī)療服務(wù)價(jià)格項(xiàng)目規(guī)范(試行)
- 譯林小學(xué)英語(yǔ)5B教材分析
- 江蘇省常州市2024屆高一數(shù)學(xué)下學(xué)期期末質(zhì)量調(diào)研試題(含解析)
- 新標(biāo)準(zhǔn)大學(xué)英語(yǔ)(第二版)綜合教程2 Unit 1 A篇練習(xí)答案及課文翻譯
- 冀教版英語(yǔ)小升初模擬試卷
- 食品用塑料包裝容器工具等制品生產(chǎn)許可審查細(xì)則
- 物流供應(yīng)商運(yùn)作考評(píng)標(biāo)準(zhǔn)
- 格賓擋墻結(jié)構(gòu)設(shè)計(jì)計(jì)算書
- 招標(biāo)投標(biāo)活動(dòng)異議和投訴處理工作規(guī)范
- 八年級(jí)上冊(cè)物理教案全冊(cè)
評(píng)論
0/150
提交評(píng)論