版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 課程設計</b></p><p> 學 號 _ </p><p> 班 級 ___ _____ </p><p> 姓 名 _ __ __</p><p> 指導教師 __ ______</p><p> 2010年 10 月
2、 08 日</p><p><b> 目錄</b></p><p><b> 一、需求分析1</b></p><p><b> 二、設計分析2</b></p><p> 三、主要界面截圖7</p><p><b> 四、技術要點
3、8</b></p><p><b> 五、個人總結10</b></p><p><b> 六、參考文獻11</b></p><p><b> 七、源程序11</b></p><p><b> 一、需求分析</b></p&g
4、t;<p> 經(jīng)過對程序設計題目的分析可知,整個程序的設計實現(xiàn)大致分為五個模塊,其中每一個模塊對應一個函數(shù),他們的功能分別是:錄入新教材信息,添加已有教材,查找教材信息,保存教材函數(shù)。在這些函數(shù)當中,前三個函數(shù)的實現(xiàn)嚴格按照題目的要求,而最后一個函數(shù)用來將修改的函數(shù)保存在book.txt中。</p><p><b> 1. 穩(wěn)定性分析</b></p><
5、p> 指系統(tǒng)比較健壯,只要是用戶的合理操作,系統(tǒng)都應給出合理正確的回應,而不是出現(xiàn)令用戶感到意外的系統(tǒng)錯誤或系統(tǒng)崩潰。</p><p><b> 2. 主要功能分析</b></p><p> ?。?)錄入教材信息:允許用戶輸入教材名稱、作者、出版社、教材冊數(shù)、編號、售價。</p><p> (2)查詢教材: 允許按照編號和書名對教材
6、的各項信息進行查詢; </p><p> ?。?)添加已有教材: 通過添加已有教材的同時對教材信息的更改;</p><p> ?。?)保存教材函數(shù) 將執(zhí)行插入教材信息存入book.txt中。</p><p> 除上面介紹的功能之外,程序還具有退出功能,可以在輸入修改信息之后實現(xiàn)選擇退出。</p><p> 每一本教材記錄都包含編號、作者
7、、出版社、售價、書名和數(shù)量,在程序當中,將教材記錄類型定義為結構體類型,添加以及追加的教材信息直接寫入book.txt文件中,其他函數(shù)每次對教材記錄的訪問,其數(shù)據(jù)來源都是book.txt文件,這樣做不但可以保證教材數(shù)據(jù)的一致性,而且可以對教材數(shù)據(jù)進行保存,保證每次運行程序都可以采用原來的數(shù)據(jù)。</p><p><b> 二、設計分析</b></p><p> 主要
8、有5個功能模塊,每個模塊對應一個C語言自定義函數(shù)。這些函數(shù)原型及其功能簡述如下:</p><p><b> 教材錄入函數(shù)說明</b></p><p> 這個函數(shù)用static聲明局部變量,使函數(shù)調用結束后不消失而保留原值。用只寫的方式打開一個文件夾(book.txt)把數(shù)據(jù)項寫入指定文件(book.txt)中。關閉文件。</p><p>&
9、lt;b> 2、教材查詢的函數(shù)</b></p><p> 該函數(shù)的核心內容是switch函數(shù)的使用、for函數(shù)的嵌套使用與strcmp比較字符串函數(shù)的使用。</p><p> 3、已有教材添加函數(shù)</p><p> 該函數(shù)的核心內容是if函數(shù)嵌套和for函數(shù)的使用以及strcmp比較字符串函數(shù)的使用</p><p>
10、 4、教材信息保存函數(shù)</p><p> 這個函數(shù)先建立一個文件并把具體的信息存入文件中</p><p><b> 1、程序總體結構圖</b></p><p><b> 程序結構總圖 </b></p><p><b> 2、具體功能框圖</b></p>
11、<p> ?。?)錄入新教材信息函數(shù)</p><p><b> ?。?)查詢教材信息</b></p><p> (3)添加已有教材信息</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> 四、技術要點</b></p><p> ?。▽Ρ境绦蜇暙I較大的C語言知識點;重要算法的設計與實現(xiàn))
13、</p><p><b> 1、結構體的應用</b></p><p> 定義了結構體用來描述教材的名稱、作者、出版社、編號、冊數(shù)和售價,具體的定義如下:</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> 所定義的結構體主要用于定義數(shù)組。</p><p><b> 2、文件操作</b></p><p> 包括了文件的寫入、讀取和保存三個方面。例如如下程序段用于保存教材信息:</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 售價:%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、關于查詢函數(shù)</b></p><p> 實現(xiàn)從系統(tǒng)中查詢某教材的相關信息的查詢函數(shù)稍微復雜一些,需要先進行選擇是通過名稱查詢還是編號查詢。如下是通過教材名稱查詢的函數(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) /*比較輸入名與存儲名的字符串大小*/</p><p> {printf("教材名:%s 教材作者:%s 出版社:%s 冊數(shù):%d 編號:%s 售價:%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> 五、個人總結</b></p><p> C語言是一門既有趣又非常有用的課程,說難也不難,但是也不簡單,只要會很好的應用,便會覺得編程過程也并不感
29、覺枯燥,當程序編完且運行成功之后,便覺得非常有成就感,雖然有時也會被一時解決不了的問題弄的焦頭爛額,但在解決的過程中逐漸的、更深的掌握這門課程的知識,所以,這一周的C語言課程設計實習的收獲是非常的大的,甚至還有一點覺得實習的時間有點短。通過這次c語言課程設計,我對C語言的知識進行了比較全面的學習,了解到C語言的簡單編程的實際應用。</p><p> 我的程序基本功能符合題目要求,但也并不是太完美。例如在輸入教材
30、冊數(shù)的時候如果輸入的不是數(shù)字的話,不會有提示。我始終沒有想到解決的辦法……</p><p> 通過此次課程設計,我熟悉了函數(shù)的調用,指針的應用,數(shù)組的運用。程序可以實現(xiàn)題目所要求各項,知道了實踐并真正上機操作的意義。</p><p><b> 六、參考文獻</b></p><p> 1 譚浩強.C程序設計.北京:清華大學出版社,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 /*定義教材結構體*/</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("請輸入售價:");</p><p> scanf("%f", &books[i].shoujia);</p><p> printf("教材錄入結束.\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 售價:%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) /*比較輸入名與存儲名的字符串大小*/</p><p> {printf("教材名:%s 教材作者:%s 出版社:%s 冊數(shù):%d 編號:%s 售價:%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 售價:%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 ******************沈陽航空航天大學教材管理系統(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 請輸入您要選擇的操作序號,按回車鍵確認:");</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)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c語言課程設計-教材管理系統(tǒng)——課程論文
- c語言教材管理系統(tǒng)課程設計報告
- c語言課程設計-賓館管理系統(tǒng)
- c語言課程設計-成績管理系統(tǒng)
- c語言課程設計--宿舍管理系統(tǒng)
- c語言課程設計-學籍管理系統(tǒng)
- c語言課程設計車票管理系統(tǒng)
- c語言課程設計--車票管理系統(tǒng)
- c語言課程設計--銷售管理系統(tǒng)
- c語言課程設計-人員管理系統(tǒng)
- c語言課程設計----銷售管理系統(tǒng)
- c語言課程設計-銷售管理系統(tǒng)
- c語言課程設計-學籍管理系統(tǒng)
- c語言課程設計報告(宿舍管理系統(tǒng))
- c語言課程設計---班級成績管理系統(tǒng)
- c語言課程設計報告--車票管理系統(tǒng)
- c語言課程設計銷售管理系統(tǒng)
- c語言課程設計—班級成績管理系統(tǒng)
- c語言課程設計報告--成績管理系統(tǒng)
- c語言課程設計--圖書管理系統(tǒng)
評論
0/150
提交評論