版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 課程設(shè)計(jì)</b></p><p> 學(xué) 號 _ </p><p> 班 級 ___ _____ </p><p> 姓 名 _ __ __</p><p> 指導(dǎo)教師 __ ______</p><p> 2010年 10 月
2、 08 日</p><p><b> 目錄</b></p><p><b> 一、需求分析1</b></p><p><b> 二、設(shè)計(jì)分析2</b></p><p> 三、主要界面截圖7</p><p><b> 四、技術(shù)要點(diǎn)
3、8</b></p><p><b> 五、個(gè)人總結(jié)10</b></p><p><b> 六、參考文獻(xiàn)11</b></p><p><b> 七、源程序11</b></p><p><b> 一、需求分析</b></p&g
4、t;<p> 經(jīng)過對程序設(shè)計(jì)題目的分析可知,整個(gè)程序的設(shè)計(jì)實(shí)現(xiàn)大致分為五個(gè)模塊,其中每一個(gè)模塊對應(yīng)一個(gè)函數(shù),他們的功能分別是:錄入新教材信息,添加已有教材,查找教材信息,保存教材函數(shù)。在這些函數(shù)當(dāng)中,前三個(gè)函數(shù)的實(shí)現(xiàn)嚴(yán)格按照題目的要求,而最后一個(gè)函數(shù)用來將修改的函數(shù)保存在book.txt中。</p><p><b> 1. 穩(wěn)定性分析</b></p><
5、p> 指系統(tǒng)比較健壯,只要是用戶的合理操作,系統(tǒng)都應(yīng)給出合理正確的回應(yīng),而不是出現(xiàn)令用戶感到意外的系統(tǒng)錯(cuò)誤或系統(tǒng)崩潰。</p><p><b> 2. 主要功能分析</b></p><p> ?。?)錄入教材信息:允許用戶輸入教材名稱、作者、出版社、教材冊數(shù)、編號、售價(jià)。</p><p> ?。?)查詢教材: 允許按照編號和書名對教材
6、的各項(xiàng)信息進(jìn)行查詢; </p><p> ?。?)添加已有教材: 通過添加已有教材的同時(shí)對教材信息的更改;</p><p> (4)保存教材函數(shù) 將執(zhí)行插入教材信息存入book.txt中。</p><p> 除上面介紹的功能之外,程序還具有退出功能,可以在輸入修改信息之后實(shí)現(xiàn)選擇退出。</p><p> 每一本教材記錄都包含編號、作者
7、、出版社、售價(jià)、書名和數(shù)量,在程序當(dāng)中,將教材記錄類型定義為結(jié)構(gòu)體類型,添加以及追加的教材信息直接寫入book.txt文件中,其他函數(shù)每次對教材記錄的訪問,其數(shù)據(jù)來源都是book.txt文件,這樣做不但可以保證教材數(shù)據(jù)的一致性,而且可以對教材數(shù)據(jù)進(jìn)行保存,保證每次運(yùn)行程序都可以采用原來的數(shù)據(jù)。</p><p><b> 二、設(shè)計(jì)分析</b></p><p> 主要
8、有5個(gè)功能模塊,每個(gè)模塊對應(yīng)一個(gè)C語言自定義函數(shù)。這些函數(shù)原型及其功能簡述如下:</p><p><b> 教材錄入函數(shù)說明</b></p><p> 這個(gè)函數(shù)用static聲明局部變量,使函數(shù)調(diào)用結(jié)束后不消失而保留原值。用只寫的方式打開一個(gè)文件夾(book.txt)把數(shù)據(jù)項(xiàng)寫入指定文件(book.txt)中。關(guān)閉文件。</p><p>&
9、lt;b> 2、教材查詢的函數(shù)</b></p><p> 該函數(shù)的核心內(nèi)容是switch函數(shù)的使用、for函數(shù)的嵌套使用與strcmp比較字符串函數(shù)的使用。</p><p> 3、已有教材添加函數(shù)</p><p> 該函數(shù)的核心內(nèi)容是if函數(shù)嵌套和for函數(shù)的使用以及strcmp比較字符串函數(shù)的使用</p><p>
10、 4、教材信息保存函數(shù)</p><p> 這個(gè)函數(shù)先建立一個(gè)文件并把具體的信息存入文件中</p><p><b> 1、程序總體結(jié)構(gòu)圖</b></p><p><b> 程序結(jié)構(gòu)總圖 </b></p><p><b> 2、具體功能框圖</b></p>
11、<p> ?。?)錄入新教材信息函數(shù)</p><p><b> (2)查詢教材信息</b></p><p> ?。?)添加已有教材信息</p><p> ?。?)保存教材信息函數(shù)</p><p><b> 三、主要界面截圖</b></p><p><b&
12、gt; 圖1 程序主界面</b></p><p><b> 圖2 錄入界面</b></p><p><b> 圖3 查詢界面</b></p><p><b> 四、技術(shù)要點(diǎn)</b></p><p> ?。▽Ρ境绦蜇暙I(xiàn)較大的C語言知識(shí)點(diǎn);重要算法的設(shè)計(jì)與實(shí)現(xiàn))
13、</p><p><b> 1、結(jié)構(gòu)體的應(yīng)用</b></p><p> 定義了結(jié)構(gòu)體用來描述教材的名稱、作者、出版社、編號、冊數(shù)和售價(jià),具體的定義如下:</p><p> #define B 1000 </p><p> typedef struct Bo
14、ok </p><p> { char num[20];</p><p> char name[20]; </p><p> char author[20];
15、 </p><p> char press[20]; </p><p> int count; </p><p> float shoujia;</p><p><b> }book[B];</b><
16、;/p><p> struct Book books[B];</p><p> 所定義的結(jié)構(gòu)體主要用于定義數(shù)組。</p><p><b> 2、文件操作</b></p><p> 包括了文件的寫入、讀取和保存三個(gè)方面。例如如下程序段用于保存教材信息:</p><p> void save()
17、 </p><p><b> {</b></p><p> int i = 0; </p><p><b> FILE *fp;</b><
18、;/p><p> fp = fopen("e:\\book.txt", "wr"); </p><p> while(books[i].count > 0) </p><p><b> {</b></p&
19、gt;<p> fprintf(fp, "教材名稱:%s 教材作者:%s 出版社:%s 冊數(shù):%d 編號:%s 售價(jià):%f\n", books[i].name, books[i].author,books[i].press,books[i].count,books[i].num,books[i].shoujia); </p><p> i++;
20、 </p><p><b> }</b></p><p> fclose(fp); </p><p><b> }</
21、b></p><p><b> 3、關(guān)于查詢函數(shù)</b></p><p> 實(shí)現(xiàn)從系統(tǒng)中查詢某教材的相關(guān)信息的查詢函數(shù)稍微復(fù)雜一些,需要先進(jìn)行選擇是通過名稱查詢還是編號查詢。如下是通過教材名稱查詢的函數(shù):</p><p> void chaxun() /*教材查詢*/</p><p> { FILE *
22、fp;</p><p> int i,flag=0; </p><p> int a; </p><p> char x[32];
23、 </p><p> char y[32];</p><p> if((fp=fopen("e:\\book.txt","r"))==NULL)</p><p><b> {</b></p><p&
24、gt; printf("此文件無法打開!\n");</p><p><b> return;</b></p><p><b> }</b></p><p> printf("請選擇查詢方式:1.教材名 2.編號\n");</p><p> sca
25、nf("%d",&a);</p><p> switch(a) </p><p><b> {</b></p><p> case 1: printf("輸入教材名:\n");scanf(&quo
26、t;%s",x);</p><p> for(i=0;i<1000;i++) </p><p> if (strcmp(books[i].name,x)==0) /*比較輸入名與存儲(chǔ)名的字符串大小*/</p><p> {printf("教材名:%s 教材作者:%s 出版社:%s 冊數(shù):%d 編號:%s 售價(jià):%f\n",b
27、ooks[i].name,books[i].author,books[i].press,books[i].count,books[i].num,books[i].shoujia);</p><p><b> flag=1;</b></p><p><b> }</b></p><p> if(flag==0) <
28、;/p><p> printf("此教材不存在\n");</p><p><b> break;</b></p><p><b> 五、個(gè)人總結(jié)</b></p><p> C語言是一門既有趣又非常有用的課程,說難也不難,但是也不簡單,只要會(huì)很好的應(yīng)用,便會(huì)覺得編程過程也并不感
29、覺枯燥,當(dāng)程序編完且運(yùn)行成功之后,便覺得非常有成就感,雖然有時(shí)也會(huì)被一時(shí)解決不了的問題弄的焦頭爛額,但在解決的過程中逐漸的、更深的掌握這門課程的知識(shí),所以,這一周的C語言課程設(shè)計(jì)實(shí)習(xí)的收獲是非常的大的,甚至還有一點(diǎn)覺得實(shí)習(xí)的時(shí)間有點(diǎn)短。通過這次c語言課程設(shè)計(jì),我對C語言的知識(shí)進(jìn)行了比較全面的學(xué)習(xí),了解到C語言的簡單編程的實(shí)際應(yīng)用。</p><p> 我的程序基本功能符合題目要求,但也并不是太完美。例如在輸入教材
30、冊數(shù)的時(shí)候如果輸入的不是數(shù)字的話,不會(huì)有提示。我始終沒有想到解決的辦法……</p><p> 通過此次課程設(shè)計(jì),我熟悉了函數(shù)的調(diào)用,指針的應(yīng)用,數(shù)組的運(yùn)用。程序可以實(shí)現(xiàn)題目所要求各項(xiàng),知道了實(shí)踐并真正上機(jī)操作的意義。</p><p><b> 六、參考文獻(xiàn)</b></p><p> 1 譚浩強(qiáng).C程序設(shè)計(jì).北京:清華大學(xué)出版社,2009&
31、lt;/p><p><b> 七、源程序</b></p><p> #include <stdio.h></p><p> #include <stdlib.h></p><p> #include <string.h></p><p> #define
32、B 1000 </p><p> typedef struct Book /*定義教材結(jié)構(gòu)體*/</p><p> { char num[20];</p><p> char name[20];
33、 </p><p> char author[20]; </p><p> char press[20]; </p><
34、;p> int count; </p><p> float shoujia;</p><p><b> }book[B];</b></p><p> struct Book books[B]; </p><p> void luru() /*錄入
35、教材信息*/</p><p><b> {</b></p><p> static int i = 0; </p><p> printf("\n請輸入教材名稱:");</p><p> sca
36、nf("%s", books[i].name);</p><p> printf("請輸入作者:");</p><p> scanf("%s", books[i].author);</p><p> printf("請輸入出版社:");</p><p>
37、scanf("%s", books[i].press);</p><p> printf("請輸入教材冊數(shù):");</p><p> scanf("%d", &books[i].count);</p><p> printf("請輸入編號:");</p>&l
38、t;p> scanf("%s", books[i].num);</p><p> printf("請輸入售價(jià):");</p><p> scanf("%f", &books[i].shoujia);</p><p> printf("教材錄入結(jié)束.\n");<
39、/p><p><b> i++;</b></p><p><b> }</b></p><p> void tianjia() /*教材添加*/</p><p><b> { &l
40、t;/b></p><p> int i,count;</p><p> char name[10];</p><p> printf("\n請輸入教材名稱:");</p><p> scanf("%s",name);</p><p> for(i=0;i<
41、1000;i++)</p><p> { if(strcmp(books[i].name,name)==0)</p><p> { printf("\n輸入添加冊數(shù):");</p><p> scanf("%d", &count);</p><p> books[i].coun
42、t += count; </p><p> printf("\n教材已添加\n");</p><p><b> break;</b></p><p><b> }</b></p><
43、p><b> else</b></p><p><b> {</b></p><p> printf("\n無此教材\n");</p><p><b> break;</b></p><p><b> }</b><
44、/p><p><b> }</b></p><p><b> }</b></p><p> void save() </p><p><b> {</b></p><p>
45、int i = 0; </p><p><b> FILE *fp;</b></p><p> fp = fopen("e:\\book.txt", "wr"); </p><p
46、> while(books[i].count > 0) </p><p><b> {</b></p><p> fprintf(fp, "教材名稱:%s 教材作者:%s 出版社:%s 冊數(shù):%d 編號:%s 售價(jià):%f\n", books[i].name, books
47、[i].author,books[i].press,books[i].count,books[i].num,books[i].shoujia); </p><p> i++; </p><p><b> }</b></p
48、><p> fclose(fp); </p><p><b> }</b></p><p> void chaxun() /*教材查詢*/</p><p> { FILE *fp;</p><p&
49、gt; int i,flag=0; </p><p> int a; </p><p> char x[32];
50、 </p><p> char y[32];</p><p> if((fp=fopen("e:\\book.txt","r"))==NULL)</p><p><b> {</b></p><p> printf("此文件
51、無法打開!\n");</p><p><b> return;</b></p><p><b> }</b></p><p> printf("請選擇查詢方式:1.教材名 2.編號\n");</p><p> scanf("%d",&am
52、p;a);</p><p> switch(a) </p><p><b> {</b></p><p> case 1: printf("輸入教材名:\n");scanf("%s",x);</p&
53、gt;<p> for(i=0;i<1000;i++) </p><p> if (strcmp(books[i].name,x)==0) /*比較輸入名與存儲(chǔ)名的字符串大小*/</p><p> {printf("教材名:%s 教材作者:%s 出版社:%s 冊數(shù):%d 編號:%s 售價(jià):%f\n",books[i].name,books[i]
54、.author,books[i].press,books[i].count,books[i].num,books[i].shoujia);</p><p><b> flag=1;</b></p><p><b> }</b></p><p> if(flag==0) </p><p> p
55、rintf("此教材不存在\n");</p><p><b> break;</b></p><p> case 2: printf("輸入編號:\n");scanf("%s",y);</p><p> for(i=0;i<1000;i++)</p><
56、p> if (strcmp(books[i].num,y)==0)</p><p> {printf("教材名稱:%s 教材作者:%s 出版社:%s 冊數(shù):%d 編號:%s 售價(jià):%f\n",books[i].name,books[i].author,books[i].press,books[i].count,books[i].num,books[i].shoujia);</p
57、><p><b> flag=1;</b></p><p><b> }</b></p><p> if(flag==0) </p><p> printf("此教材不存在\n");</p><p><b> break;</b>
58、;</p><p><b> default:</b></p><p><b> break;</b></p><p><b> }</b></p><p> fclose(fp);</p><p><b> }</b>&
59、lt;/p><p> void show() /*顯示操作界面*/</p><p> {printf("\n ******************沈陽航空航天大學(xué)教材管理系統(tǒng)********************* ");</p><p> printf("\n *
60、 1 錄入教材信息 *");</p><p> printf("\n * 2 查詢教材信息 *");</p><p> printf("\n *
61、 3 更改教材信息 *");</p><p> printf("\n * 4 保存教材信息 *");</p><p> printf("\n *
62、 5 退出系統(tǒng) *\n");</p><p> printf("\n 請輸入您要選擇的操作序號,按回車鍵確認(rèn):");</p><p><b> }</b></p><p> void main()</p><
63、p><b> {int n;</b></p><p> show(); </p><p> scanf("%d",&n);</p><p><b> while (1)</b><
64、/p><p> {switch(n) </p><p> { case 1: luru(); break;</p><p> case 2: chaxun(); break;</p><p> case 3: tianjia();break;</p>&l
65、t;p> case 4: save(); break;</p><p> case 5: exit(0); break;</p><p> default: break;</p><p><b> }</b></p><p><b> show();</b></p>
66、<p> scanf("%d",&n); </p><p><b> }</b></p><p><b> FILE *fp;</b></p><p> fp = fopen("e:\\book.t
67、xt", "r+"); </p><p> if(fp==0) </p><p> printf("無法打開文件\n");</p><p> fclose(fp);
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c語言課程設(shè)計(jì)-教材管理系統(tǒng)——課程論文
- c語言教材管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- c語言課程設(shè)計(jì)-賓館管理系統(tǒng)
- c語言課程設(shè)計(jì)-成績管理系統(tǒng)
- c語言課程設(shè)計(jì)--宿舍管理系統(tǒng)
- c語言課程設(shè)計(jì)-學(xué)籍管理系統(tǒng)
- c語言課程設(shè)計(jì)車票管理系統(tǒng)
- c語言課程設(shè)計(jì)--車票管理系統(tǒng)
- c語言課程設(shè)計(jì)--銷售管理系統(tǒng)
- c語言課程設(shè)計(jì)-人員管理系統(tǒng)
- c語言課程設(shè)計(jì)----銷售管理系統(tǒng)
- c語言課程設(shè)計(jì)-銷售管理系統(tǒng)
- c語言課程設(shè)計(jì)-學(xué)籍管理系統(tǒng)
- c語言課程設(shè)計(jì)報(bào)告(宿舍管理系統(tǒng))
- c語言課程設(shè)計(jì)---班級成績管理系統(tǒng)
- c語言課程設(shè)計(jì)報(bào)告--車票管理系統(tǒng)
- c語言課程設(shè)計(jì)銷售管理系統(tǒng)
- c語言課程設(shè)計(jì)—班級成績管理系統(tǒng)
- c語言課程設(shè)計(jì)報(bào)告--成績管理系統(tǒng)
- c語言課程設(shè)計(jì)--圖書管理系統(tǒng)
評論
0/150
提交評論