




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、PAGE PAGE 18C語言課程設(shè)計(jì)題 目 指導(dǎo)教師學(xué)生姓名 學(xué) 號(hào) 專 業(yè) 教學(xué)單位目錄1設(shè)計(jì)內(nèi)容與設(shè)計(jì)要求11.1系統(tǒng)功能簡(jiǎn)介11.2系統(tǒng)運(yùn)行環(huán)境12功能劃分,模塊詳細(xì)說明13程序流程圖14運(yùn)行的運(yùn)行及說明 24.1系統(tǒng)的運(yùn)行24.2運(yùn)行說明45總結(jié)5附件:源程序清單51設(shè)計(jì)內(nèi)容與設(shè)計(jì)要求1.1系統(tǒng)功能簡(jiǎn)介系統(tǒng)有簡(jiǎn)單的菜單界面,用戶可以通過輸入簡(jiǎn)單的選項(xiàng)來完成相應(yīng)的工作。選定一種產(chǎn)品,按銷售額的順序?qū)︿N售員進(jìn)行排序,輸出排序結(jié)果。統(tǒng)計(jì)每種產(chǎn)品的總銷售額,輸出排序結(jié)果。輸出統(tǒng)計(jì)報(bào)表。1.2系統(tǒng)運(yùn)行環(huán)境Vc+6.0下運(yùn)行,硬件基本無要求,現(xiàn)在的計(jì)算機(jī)系統(tǒng)基本都可以運(yùn)行該系統(tǒng)。2功能劃分,模塊
2、詳細(xì)說明 系統(tǒng)的功能是通過子函數(shù)調(diào)用的方式來完成的,下面對(duì)程序中用到的函數(shù)及其功能做一下說明。void menu():顯示主菜單界面。void data_count(data *x):以寫方式打開文件,對(duì)商品信息清零,讀入職工編號(hào)、產(chǎn)品編號(hào)、銷售量等信息,對(duì)相同職工的相同產(chǎn)品的銷售量求和后寫入文件。void range_sxy(data *x):以讀方式打開文件,讀入信息,輸入按何種產(chǎn)品排序后對(duì)存儲(chǔ)職工編號(hào)的數(shù)組進(jìn)行排序,最后輸出新序的職工編號(hào)信息。void range_shangpin(data *x):從文件讀入信息,對(duì)每項(xiàng)產(chǎn)品的銷售量求和,按每項(xiàng)產(chǎn)品的總銷售量排序。void data_o
3、ut(data *x):打開文件,讀入信息,求所有產(chǎn)品的銷售量的和,輸出統(tǒng)計(jì)表。void main():主函數(shù),調(diào)用以上函數(shù),完成相應(yīng)功能。3程序流程圖程序整體流程圖如圖3-1所示:計(jì)算產(chǎn)品計(jì)算產(chǎn)品銷售額按銷售額對(duì)銷售員排序統(tǒng)計(jì)每種產(chǎn)品的總銷售額,排序輸出統(tǒng)計(jì)報(bào)表退出結(jié) 束菜 單開 始圖3-1整體流程圖4系統(tǒng)的運(yùn)行及說明4.1系統(tǒng)的運(yùn)行系統(tǒng)初始運(yùn)行時(shí),會(huì)顯示如圖4-1所示的菜單界面,用戶可以根據(jù)提示,進(jìn)行相應(yīng)的選擇,來完成系統(tǒng)提供的各種功能。圖4-1輸入界面當(dāng)選擇1時(shí),系統(tǒng)調(diào)用函數(shù)void data_count(data *x),完成相應(yīng)的功能。運(yùn)行界面如圖4-2所示,系統(tǒng)會(huì)要求用戶輸入月份,
4、然后要求輸入這個(gè)月份中是哪個(gè)職工銷售的哪項(xiàng)產(chǎn)品的數(shù)量的具體信息,我們的系統(tǒng)假設(shè)有四個(gè)職工,職工編號(hào)從1至4,一共有5項(xiàng)產(chǎn)品,產(chǎn)品編號(hào)從1至5。職工和產(chǎn)品的數(shù)目都可以更改,只要修改一下程序中的宏定義語句即可。圖4-2計(jì)算產(chǎn)品銷售額界面當(dāng)選擇2時(shí),系統(tǒng)調(diào)用void range_sxy(data *x),完成相應(yīng)部分的功能。運(yùn)行界面如圖4-3所示,系統(tǒng)會(huì)要求用戶輸入月份,然后排序的產(chǎn)品編號(hào),最后給出此項(xiàng)產(chǎn)品的按照銷售量的大小進(jìn)行的銷售員的編號(hào)的排序情況。圖4-3按銷售額對(duì)銷售員排序的界面當(dāng)選擇3時(shí),系統(tǒng)調(diào)用void range_shangpin(data *x),完成對(duì)每項(xiàng)商品的總銷售量排序的功能,
5、運(yùn)行界面如圖4-4所示:圖4-4產(chǎn)品總銷售額排序界面當(dāng)選擇4時(shí),系統(tǒng)調(diào)用void data_out(data *x),完成輸出統(tǒng)計(jì)表的功能,統(tǒng)計(jì)內(nèi)容如圖4-5所示:圖4-5統(tǒng)計(jì)報(bào)表界面4.2運(yùn)行說明首次打開系統(tǒng)必須輸入一部分員工信息,如果沒有員工信息文件,除了輸入功能以外,其它的功能將自動(dòng)禁止,按任意鍵退出程序。輸入時(shí),按照提示陸續(xù)輸入每個(gè)員工的單個(gè)信息,輸入完畢,選擇“0”,程序?qū)⒆詣?dòng)回到菜單選擇界面。其它的功能模塊都在執(zhí)行程序時(shí)有相應(yīng)的提示,非常容易操作。5總結(jié)通過這次實(shí)習(xí),讓我們初步有了編寫系統(tǒng)的能力,我們對(duì)很多的函數(shù)有了新的認(rèn)識(shí),也學(xué)會(huì)了運(yùn)用多種函數(shù),也明白了編寫軟件的基本過程,和基本
6、方法。編寫軟件的過程中我們又學(xué)到了曾經(jīng)自己不知道的函數(shù)或是自己不會(huì)的函數(shù)的用法。這次課程設(shè)計(jì)課總的來說讓我受益匪淺。在軟件的設(shè)計(jì)過程中遇到了很多的困難。在軟件一次一次的調(diào)試失敗下,曾經(jīng)想過要放棄。我最后還是讓自己堅(jiān)持了下來,毫不畏懼困難,在同學(xué)的幫助與講解下我總算是順利的完成了軟件的設(shè)計(jì)。在程序的編寫過程中我們發(fā)現(xiàn)有很多的知識(shí)漏洞和缺陷,需要進(jìn)一步努力學(xué)習(xí)來完善自己。在這幾天的編寫過程中我們對(duì)c語言有了更進(jìn)一步的認(rèn)識(shí)和了解。此次編程過程的經(jīng)驗(yàn)和知識(shí)肯定能促進(jìn)我以后的學(xué)習(xí)。此次課程設(shè)計(jì)不僅給了我們很多很好的經(jīng)驗(yàn),也讓我們體會(huì)到了失敗時(shí)的焦急和難受,也體會(huì)到了成功時(shí)的興奮與喜悅。附件:源程序清單#
7、include #include #include #include #define Z 5#define R 4 /*定義宏常量便于程序的一般化*/ /*R表示銷售員個(gè)數(shù)*/typedef struct /*縮短結(jié)構(gòu)體變量名*/ int shangpinZ; /*定義結(jié)構(gòu)體便于信息的存儲(chǔ)和讀寫,辨別*/ /*z是表示商品的種類,最后一個(gè)為該銷售員商品總和*/data;void menu() printf( *n); printf( 0.結(jié)束操作n); printf( 1.計(jì)算上個(gè)月每個(gè)人每種產(chǎn)品的銷售額n); printf( 2.按銷售額對(duì)銷售員進(jìn)行排序,輸出排序結(jié)果n); printf(
8、3.統(tǒng)計(jì)每種產(chǎn)品的總銷售額,輸出排序結(jié)果n); printf( 4.輸出統(tǒng)計(jì)報(bào)表n); printf( *n);void data_count(data *x) /*計(jì)算上個(gè)月每個(gè)人每種產(chǎn)品的銷售額*/ FILE *fp; char fname10; int j,t; /*用于控制循環(huán)*/ int i,k,s; /*用于定義職工序號(hào),產(chǎn)品序號(hào),產(chǎn)品數(shù)量*/ system(cls); printf(您想計(jì)算哪個(gè)月?n); printf(請(qǐng)輸入月份:); /*輸入文件名,這樣可以進(jìn)行各個(gè)月份信息寫入*/ scanf(%s,fname); strcat(fname,.txt); if(fp=fope
9、n(fname,wb)=NULL) /*打開文件*/ printf(can not open the filen); exit(0); for(j=0;jR;j+) /*對(duì)商品數(shù)量清零*/ for(t=0;tshangpint=0; printf(please put the information about the 職工編號(hào),產(chǎn)品編號(hào),銷售數(shù)量n); /*寫入信息*/ for(j=0;j+) scanf(%d%d%d,&i,&k,&s); if(i=0) /*輸入職工為0時(shí)結(jié)束信息輸入*/ break; if(iR|iZ|kshangpink-1=(x+i-1)-shangpink-1+s
10、;/*統(tǒng)計(jì)各個(gè)人的各種產(chǎn)品的數(shù)量,-1為了和數(shù)組中的序號(hào)相匹配*/ for(j=0;jR;j+) if(fwrite(x+j),sizeof(data),1,fp)!=1) /*把信息寫入文件中便有以后調(diào)用*/ printf(write error!n); fclose(fp); /*關(guān)閉文件避免信息遺漏*/void range_sxy(data *x) /*按銷售額對(duì)銷售員進(jìn)行排序,輸出排序結(jié)果*/ FILE *fp; char fname10; int i,k,j,t,bianhaoR=0,z; system(cls); printf(你要哪個(gè)月的?n); printf(請(qǐng)輸入月份:);
11、/*輸入文件名,這樣可以進(jìn)行各個(gè)月份信息讀入*/ scanf(%s,fname); strcat(fname,.txt); if(fp=fopen(fname,rb)=NULL) /*打開文件*/ printf(can not open the filen); exit(0); for(i=0;iR;i+) /*讀出信息*/ if(fread(x+i,sizeof(data),1,fp)!=1) printf(讀入信息出錯(cuò)!); /*讀入信息提示*/ for(i=0;iR;) /*用于存儲(chǔ)職工編號(hào)*/ bianhaoi=i+; printf(請(qǐng)輸入按何種產(chǎn)品排序n); scanf(%d,&k)
12、; k=k-1; /*便于與結(jié)構(gòu)體中的數(shù)組值對(duì)應(yīng)*/ for(i=0;iR;i+) /*按K種產(chǎn)品對(duì)銷售員排序,選擇法排序*/ t=i; for(j=i+1;jshangpinkshangpink)/*調(diào)用職工各自對(duì)應(yīng)的結(jié)構(gòu)體內(nèi)的產(chǎn)品數(shù)量*/ t=j; if(t!=i) z=bianhaoi; bianhaoi=bianhaot; bianhaot=z; printf(按%d產(chǎn)品對(duì)銷售員排序?yàn)?n,k+1); for(i=0;iR;i+) printf(%5d,bianhaoi+1); getch(); fclose(fp);void range_shangpin(data *x) /*統(tǒng)計(jì)每
13、種產(chǎn)品的總銷售額,輸出排序結(jié)果*/ FILE *fp; char fname10; int i,j,sumZ=0,bianhaoZ=0,z,t,k; system(cls); printf(您想計(jì)算哪個(gè)月的?n); printf(請(qǐng)輸入月份:); /*輸入文件名,這樣可以進(jìn)行各個(gè)月份信息讀入*/ scanf(%s,fname); strcat(fname,.txt); if(fp=fopen(fname,rb)=NULL) /*打開文件*/ printf(can not open the filen); exit(0); for(i=0;iR;i+) /*讀出信息*/ if(fread(x+i
14、,sizeof(data),1,fp)!=1) printf(讀入信息出錯(cuò)!); for(i=0;iZ;i+) /*對(duì)各種商品求和*/ for(j=0;jshangpini; for(i=0;iZ;) /*用于存儲(chǔ)商品編號(hào)*/ bianhaoi=i+; for(i=0;iZ;i+) printf(%3d,bianhaoi); for(i=0;iZ;i+) /*對(duì)產(chǎn)品從高到低排序,選擇法排序*/ t=i; for(j=i+1;jZ;j+) /*產(chǎn)品變化時(shí),產(chǎn)品編號(hào)也隨之變化,便于輸出*/ if(sumtsumj) t=j; if(t!=i) k=sumi; sumi=sumt; sumt=k;
15、z=bianhaoi; bianhaoi=bianhaot; bianhaot=z; printf(輸出產(chǎn)品排序n); printf(產(chǎn)品編號(hào)數(shù)量n); for(i=0;iZ;i+) printf(%-10d%-10dn,bianhaoi+1,sumi); getch(); fclose(fp);void data_out(data *x) /*輸出統(tǒng)計(jì)報(bào)表*/ FILE *fp; char fname10; int i,j,sumZ+1=0; system(cls); printf(您想計(jì)算哪個(gè)月?n); printf(請(qǐng)輸入月份:); /*輸入文件名,這樣可以進(jìn)行各個(gè)月份信息讀入*/ sc
16、anf(%s,fname); strcat(fname,.txt); if(fp=fopen(fname,rb)=NULL) /*打開文件*/ printf(can not open the filen); exit(0); for(i=0;iR;i+) /*讀出信息*/ if(fread(x+i,sizeof(data),1,fp)!=1) printf(讀入信息出錯(cuò)!); for(i=0;iZ;i+) /*對(duì)各種商品求和*/ for(j=0;jshangpini; for(i=0;iZ;i+) /*求商品總和*/ sumZ=sumZ+sumi; printf(輸出統(tǒng)計(jì)報(bào)表如下:n); /*
17、按要求輸出統(tǒng)計(jì)表*/ printf(產(chǎn)品代號(hào)銷售之和銷售員代號(hào)n); for(i=0;iR;i+) for(j=0;jshangpinj,i+1); printf(*n); for(i=0;iZ;i+) if(i=0) printf(%d產(chǎn)品之和 %-10d 總和 %-10dn,i+1,sumi,sumZ); else printf(%d產(chǎn)品之和 %-10dn,i+1,sumi); getch();void main() int i,choice; data sxyR; /*R表示職工的個(gè)數(shù),前面的宏常量*/ for(i=0;i+) system(cls); /*清頻命令*/ menu(); /*菜單函數(shù)提示用戶怎樣選擇*/ printf(你想做什么?n); printf(請(qǐng)選擇:); /*輸入要進(jìn)行的操作*/ scan
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 養(yǎng)老機(jī)構(gòu)管理辦法視頻
- 醫(yī)保醫(yī)師管理辦法扣分
- 民房單間餐飲管理辦法
- 游戲軟體分級(jí)管理辦法
- 湖南省邵東市創(chuàng)新高級(jí)中學(xué)2024-2025學(xué)年高一上學(xué)期期中考試歷史試題(解析版)
- 戶籍信息登記管理辦法
- 律師檔案調(diào)取管理辦法
- 安徽高速收費(fèi)管理辦法
- 省級(jí)服務(wù)酒店管理辦法
- 房屋土地獲得管理辦法
- UPS跳切試驗(yàn)報(bào)告
- 高中信息技術(shù)面試試講真題匯總
- 共享直播創(chuàng)業(yè)方案
- 慢性腎病防治
- 2023江蘇省射陽中等專業(yè)學(xué)校工作人員招聘考試真題
- 2022-2023學(xué)年北京八中物理高一下期末監(jiān)測(cè)模擬試題含解析
- 銀行理財(cái)經(jīng)理績(jī)效考核辦法(試行)模版
- 《論語》中的人生智慧與自我管理學(xué)習(xí)通超星課后章節(jié)答案期末考試題庫2023年
- 電子設(shè)計(jì)案例教程:基于Flowcode的流碼編程
- 電梯司機(jī)安全技術(shù)交底
- 2022-2023學(xué)年黑龍江省寧安市六年級(jí)數(shù)學(xué)第二學(xué)期期末達(dá)標(biāo)測(cè)試試題含解析
評(píng)論
0/150
提交評(píng)論