版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 計算機技術(shù)基礎(chǔ)課程設(shè)計</p><p><b> C語言</b></p><p><b> 設(shè)計報告</b></p><p> 題目:花店經(jīng)營管理系統(tǒng)</p><p><b> 一.選題背景</b></p><p> 本例
2、實現(xiàn)了一個花店經(jīng)營的管理系統(tǒng),在經(jīng)營的過程中,必需對花的庫存量,銷售量,剩余量以及花的種類,單價,顏色,名字等,有系統(tǒng)的管理。本程序定義了一個結(jié)構(gòu)數(shù)組,并運用了一個主函數(shù)調(diào)用五個函數(shù)以實現(xiàn)整個花店的經(jīng)營和管理。</p><p><b> 二.設(shè)計思想:</b></p><p> 編程思路:首先在程序開始處,引入了頭文件,可以直接調(diào)用函數(shù),然后對花的種類和五項命令進(jìn)
3、行了宏定義,接著枚舉類型定義了花的顏色,定義了結(jié)構(gòu)體數(shù)組,并且編寫了”enter_data()”,”put_data()”,“buy()”,”find()”,”changecmd()”五個子函數(shù),最后在mian函數(shù)的內(nèi)部對各個子函數(shù)進(jìn)行調(diào)用,實現(xiàn)綜合管理。 </p><p> 三.主要解決問題的方法及技術(shù)關(guān)鍵:</p><p> 1.運用指針定
4、義了五項命令,分別指向五個函數(shù),便于調(diào)用。</p><p> 2.運用了for, if---else---if, while, switch---case用來控制程序的流程。</p><p><b> 主函數(shù)流程圖</b></p><p><b> 是</b></p><p><
5、b> 否</b></p><p><b> Buy()流程圖</b></p><p> Put()流程圖 </p><p> Enter()流程圖</p><p><b> , </b></p><p><b> 五.程序清單&l
6、t;/b></p><p> #include "stdio.h"</p><p> #include "stdlib.h"</p><p> #include "string.h"</p><p> #include "dos.h"</p&g
7、t;<p> #define SIZE 8</p><p> #define CMDSIZE 5</p><p> typedef enum /*枚舉類型定義*/</p><p><b> {</b></p><p> red,white,yellow,purple,orange</p
8、><p><b> }COLOR;</b></p><p> typedef struct /*結(jié)構(gòu)體定義*/</p><p><b> {</b></p><p> char name[20]; </p><p> COLOR color;</p>
9、<p> float rate;</p><p> int amount;</p><p><b> }FLOWER;</b></p><p> char *Dcmd[]={"buy","put","look","find","help&
10、quot;}; </p><p> /*定義了5項命令的指針類型*/</p><p> void enter_data(FLOWER flower[]); /*定義庫存輸入函數(shù)*/</p><p> float buy(FLOWER flower[]); /*定義銷售函數(shù)*/</p><p> void put_data(FLOWE
11、R flower[]); /*定義庫存輸出函數(shù)*/</p><p> void findflower(FLOWER flower[]);/*定義查詢函數(shù)*/</p><p> int changecmd(char cmd[]);/*定義命令解釋函數(shù)*/</p><p> void main()</p><p><b> {&
12、lt;/b></p><p> FLOWER flower[SIZE];</p><p> float price;</p><p> char cmd[5]={'\0','\0','\0','\0','\0'};</p><p> char exi
13、ts[5]="quit";</p><p> int recmd=0;</p><p><b> int i;</b></p><p> for(i=0;i<SIZE;i++)</p><p><b> {</b></p><p> mem
14、set(flower[i].name,0,20); /*成員設(shè)置,各類型初始化*/</p><p> flower[i].rate=0;</p><p> flower[i].amount=0;</p><p> flower[i].color=white;</p><p><b> }</b></p>
15、;<p> printf("花店經(jīng)營管理系統(tǒng)\n");</p><p> printf("\nYou can input 'buy','look','put','help','find':\n");</p><p> while(1) /*命令轉(zhuǎn)換
16、,把字符轉(zhuǎn)換為數(shù)字*/</p><p><b> {</b></p><p> scanf("%s",cmd);</p><p> if(strcmp(cmd,exits)==0)</p><p><b> exit(1);</b></p><p>
17、; recmd=changecmd(cmd);</p><p> switch(recmd)</p><p><b> {</b></p><p><b> case 0:</b></p><p> printf("a bad command please input a cor
18、rcet cmd \n"); /*輸入了錯誤信息的提示*/</p><p><b> break;</b></p><p><b> case 1:</b></p><p> price=buy(flower);</p><p> if(price==0)</p>&
19、lt;p> printf("\nSorry,buy error");</p><p><b> else</b></p><p> printf("\n OK,Please pay money %f \n",price);</p><p><b> break;</b>
20、</p><p><b> case 2:</b></p><p> enter_data(flower);</p><p><b> break;</b></p><p><b> case 3:</b></p><p> put_data(
21、flower);</p><p><b> break;</b></p><p><b> case 4:</b></p><p> findflower(flower);</p><p><b> break;</b></p><p><
22、b> case 5:</b></p><p> printf("\nYoucaninput 'buy','look','put','help','find':\n");</p><p><b> break;</b></p><
23、;p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> /*命令解釋函數(shù)*/</p><p> /*該函數(shù)處理接收到的命令 通過與命令數(shù)組里的預(yù)定義命令比較 返回命令在數(shù)組中的位置*/</p
24、><p> int changecmd(char cmd[])</p><p><b> {</b></p><p><b> int i=0;</b></p><p> for(i=0;i<CMDSIZE;i++)</p><p><b> {<
25、/b></p><p> if(strcmp(cmd,Dcmd[i])==0)</p><p> return i+1;</p><p><b> }</b></p><p><b> return 0;</b></p><p><b> }<
26、/b></p><p> /*庫存輸入函數(shù)*/</p><p> /*該函數(shù)接受鍵盤輸入 把輸入數(shù)據(jù)與庫存對應(yīng)*/</p><p> void enter_data(FLOWER flower[])</p><p><b> {</b></p><p> int i,flag;&l
27、t;/p><p> for(i=0;i<SIZE;i++)</p><p><b> {</b></p><p> printf("Please enter the flowers:\n");</p><p> printf("Flower name is:\n");&l
28、t;/p><p> scanf("%s",flower[i].name);</p><p> printf("Flower rate is:\n");</p><p> scanf("%f",&flower[i].rate);</p><p> printf("
29、Flower amount is:\n");</p><p> scanf("%d",&flower[i].amount);</p><p><b> flag=1;</b></p><p> while(flag) /*接受用戶選擇的顏色*/</p><p><b>
30、; {</b></p><p> printf("0->red\t1->white\t2->yellow\t3->purple\t4->orante\n");</p><p> printf("Please choose a color:\n");</p><p> scanf
31、("%d",&flower[i].color);</p><p> if(flower[i].color>=0&&flower[i].color<=4)</p><p><b> flag=0;</b></p><p><b> else</b></p&g
32、t;<p> printf("Not have this color\n");</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> /*輸出現(xiàn)有庫存的鮮花
33、數(shù)據(jù)的函數(shù)定義*/</p><p> void put_data(FLOWER flower[])</p><p><b> {</b></p><p><b> int i;</b></p><p> printf("\nName Color Rate
34、Amount\n");</p><p> for(i=0;i<SIZE;i++)</p><p><b> {</b></p><p> printf("%-12s",flower[i].name);</p><p> switch(flower[i].color)</p
35、><p><b> {</b></p><p><b> case red:</b></p><p> printf("%-8s","red");</p><p><b> break;</b></p><p>
36、; case white:</p><p> printf("%-8s","white");</p><p><b> break;</b></p><p> case yellow:</p><p> printf("%-8s","yell
37、ow");</p><p><b> break;</b></p><p> case purple:</p><p> printf("%-8s","purple");</p><p><b> break;</b></p>
38、<p> case orange:</p><p> printf("%-8s","orange");</p><p><b> break;</b></p><p><b> }</b></p><p> printf("%-1
39、0.2f%-10d\n",flower[i].rate,flower[i].amount);</p><p><b> }</b></p><p><b> }</b></p><p> /*詢問用戶購買的鮮花的種類和株的數(shù)量,計算總的價格的函數(shù)定義*/</p><p> floa
40、t buy(FLOWER flower[])</p><p><b> {</b></p><p><b> int i;</b></p><p> char name[20];</p><p> COLOR color;</p><p> float rate,p
41、rice;</p><p> int amount,flag;</p><p> printf("\nPlease enter name and rate you want to buy:\n");</p><p> /*輸出需要的鮮花的名字和價格*/</p><p> scanf("%s%f"
42、,name,&rate);</p><p><b> flag=1;</b></p><p> while(flag) /*客戶購買花的情況*/</p><p><b> {</b></p><p> printf("0->red\t1->white\t2-&
43、gt;yellow\t3->purple\t4->orante\n");</p><p> printf("Please choose a color:\n");</p><p> scanf("%d",&color);</p><p> if(color>=0&&co
44、lor<=4)</p><p><b> flag=0;</b></p><p><b> else</b></p><p> printf("Not have this color\n");</p><p><b> }</b></p&
45、gt;<p> printf("Please amount you want to buy:\n");</p><p> /*輸出需要的花的數(shù)量*/</p><p> scanf("%d",&amount);</p><p> for(i=0;i<SIZE;i++)</p>&
46、lt;p><b> {</b></p><p> if(flower[i].rate==rate&&strcmp(flower[i].name,name)==0&&flower[i].color==color)</p><p><b> break;</b></p><p>&l
47、t;b> }</b></p><p> if(i==SIZE)</p><p><b> {</b></p><p> printf("\nNot fount the flower you buy\n");</p><p> /*沒有要買的花*/</p>&l
48、t;p><b> price=0;</b></p><p><b> }</b></p><p> else if(flower[i].amount<amount)/*所購花數(shù)量不夠*/</p><p><b> {</b></p><p> printf
49、("\nAmount not enought\n");</p><p><b> price=0;</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b>&
50、lt;/p><p> flower[i].amount=flower[i].amount-amount;</p><p> price=flower[i].rate*amount; /*找到,剩余數(shù)量夠,可以買花,并計算總價格*/</p><p><b> }</b></p><p> return price;&
51、lt;/p><p><b> }</b></p><p> /*對于庫存鮮花的的查詢方式的定義*/</p><p> void findflower(FLOWER flower[])</p><p><b> {</b></p><p> int i,rcmd;<
52、/p><p> char name[20];</p><p> float rate;</p><p> COLOR color;</p><p> printf("Please choose a number :\n");/*輸出查詢的方式*/</p><p> printf("0
53、->find as name\t 1->find as rate \t 2->find as color\n");</p><p> scanf("%d",&rcmd);</p><p> switch(rcmd)</p><p><b> {</b></p><
54、p> case 0: /*按花名查詢*/</p><p> printf("In put a flower name:\n");</p><p> scanf("%s",name);</p><p> for(i=0;i<SIZE;i++)</p><p><b> {&
55、lt;/b></p><p> if(flower[i].name==name)</p><p> printf("%s\t%d\t%f\t%d\n",flower[i].name,flower[i].color,flower[i].rate,flower[i].amount);</p><p><b> }</b&g
56、t;</p><p><b> break;</b></p><p> case 1: /*按數(shù)量查詢*/</p><p> printf("In put a flower rate:\n");</p><p> scanf("%f",&rate);</p&g
57、t;<p> for(i=0;i<SIZE;i++)</p><p><b> {</b></p><p> if(flower[i].rate==rate)</p><p> printf("%s\t%d\t%f\t%d\n",flower[i].name,flower[i].color,flo
58、wer[i].rate,flower[i].amount);</p><p><b> }</b></p><p><b> break;</b></p><p> case 2: /*按顏色查詢*/</p><p> printf("In put a flower color:\
59、n");</p><p> scanf("%d",&color);</p><p> for(i=0;i<SIZE;i++)</p><p><b> {</b></p><p> if(flower[i].color==color)</p><p&
60、gt; printf("%s\t%d\t%f\t%d\n",flower[i].name,flower[i].color,flower[i].rate,flower[i].amount);</p><p><b> }</b></p><p><b> break;</b></p><p><
61、;b> }</b></p><p><b> }</b></p><p> 六.總結(jié)、設(shè)計結(jié)果說明</p><p> 一.通過本程序的練習(xí),可以讓讀者了解結(jié)構(gòu)體的定義和函數(shù)的調(diào)用,對程序中各種語句的運用更加熟練把握。</p><p> 二.本程序雖然簡短,但可以簡單地運用到花店的經(jīng)營管理中,通
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 計算機技術(shù)基礎(chǔ)(c語言)課程設(shè)計--尋寶游戲
- 計算機技術(shù)基礎(chǔ)(c語言)課程設(shè)計--計算器
- 計算機技術(shù)基礎(chǔ)(c語言)課程設(shè)計--簡單潛艇大戰(zhàn)
- 計算機技術(shù)基礎(chǔ)(c語言)課程設(shè)計--模擬銀行打印
- 計算機技術(shù)基礎(chǔ)(c語言)課程設(shè)計---用c語言描繪玫瑰花
- 計算機技術(shù)基礎(chǔ)(c語言)課程設(shè)計--小蟲子挖隧道
- 計算機技術(shù)基礎(chǔ)(c語言)課程設(shè)計---簡單的彈球得分游戲
- 課程設(shè)計-計算機技術(shù)基礎(chǔ)(c語言)小蟲子挖隧道設(shè)計
- 計算機技術(shù)基礎(chǔ)課程設(shè)計
- 計算機技術(shù)基礎(chǔ)課程設(shè)計---黑白棋
- 計算機技術(shù)創(chuàng)新基礎(chǔ)課程設(shè)計--基于c++的學(xué)生成績管理系統(tǒng)
- 計算機技術(shù)基礎(chǔ)課程設(shè)計---解救人質(zhì)游戲
- 計算機技術(shù)基礎(chǔ)課程設(shè)計---路邊吃數(shù)游戲
- 課程設(shè)計---計算機語言c#課程設(shè)計
- 計算機高級語言課程設(shè)計(c)學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計---計算機軟件
- 計算機c語言課程設(shè)計--鼠標(biāo)控制
- 學(xué)生成績管理系統(tǒng)-c語言計算機程序設(shè)計基礎(chǔ)課程設(shè)計報告
- 計算機技術(shù)基礎(chǔ)2
- 計算機技術(shù)基礎(chǔ)課程設(shè)計---簡單的加減乘除運算
評論
0/150
提交評論