C語(yǔ)言職工工作量統(tǒng)計(jì)系統(tǒng)_第1頁(yè)
C語(yǔ)言職工工作量統(tǒng)計(jì)系統(tǒng)_第2頁(yè)
C語(yǔ)言職工工作量統(tǒng)計(jì)系統(tǒng)_第3頁(yè)
C語(yǔ)言職工工作量統(tǒng)計(jì)系統(tǒng)_第4頁(yè)
C語(yǔ)言職工工作量統(tǒng)計(jì)系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、C語(yǔ)言課程設(shè)計(jì)報(bào)告題目:職工工作量統(tǒng)計(jì)系統(tǒng) 班 級(jí): 學(xué) 號(hào): 姓 名: 指導(dǎo)老師: 成 績(jī): 目 錄1課程設(shè)計(jì)的目的和意義·······································

2、3;···12總體設(shè)計(jì)思路(功能模塊圖)······························2 3詳細(xì)設(shè)計(jì)·············

3、·············································34課程設(shè)計(jì)總體會(huì)···

4、83;··········································155教師評(píng)語(yǔ)······&#

5、183;·················································15

6、一、課程設(shè)計(jì)目的和意義通過(guò)課程設(shè)計(jì)的實(shí)踐環(huán)節(jié)的教學(xué),可以加深對(duì)課堂所學(xué)基礎(chǔ)知識(shí)的掌握與理解,提高所學(xué)內(nèi)容的綜合運(yùn)用能力;同時(shí)也可以通過(guò)查詢相關(guān)資料,培養(yǎng)學(xué)生自學(xué)能力、接受新知識(shí)的能力,提高學(xué)習(xí)興趣;增強(qiáng)學(xué)生程序設(shè)計(jì)能力,掌握編程技巧,并可培養(yǎng)學(xué)生實(shí)際上機(jī)調(diào)試程序的能力。“理論與實(shí)踐”相結(jié)合,使學(xué)生得到很好的鍛煉,為以后學(xué)習(xí)、工作打下堅(jiān)實(shí)的基礎(chǔ)。二、總體設(shè)計(jì)思路(功能模塊圖)職工工作量統(tǒng)計(jì)系統(tǒng)4. 按職工工號(hào)進(jìn)行信息刪除3. 按工作量排序5. 結(jié)束程序1. 職工基本信息輸入2. 工作量輸入三、詳細(xì)設(shè)計(jì)1、模塊功能介紹一輸入職工基本信息輸入工號(hào)判斷工號(hào)是否為零輸入工作量否結(jié)束i+是開始二工作量輸入

7、并累加開始輸入工號(hào)判斷工號(hào)是否為零輸入完成量判斷輸入工號(hào)是否存在將新完成數(shù)量累加結(jié)束否是否是三按工作量從大到小排序并標(biāo)上名次開始通過(guò)選擇或冒泡排序,將職工按工作量從大到小排序,并判斷第I名職工的工作量是否與第I-1名職工工作量相等,若相等,將第I-1名職工的名次附值給第I名職工,若不相等,則把地I-1名職工的名次加1附值給I。依次給所有職工排名 結(jié)束四按職工號(hào)刪除職工信息 開始判斷工號(hào)是否存在將刪掉信息的職工之后的職工依次向前附值確認(rèn)刪除結(jié)束輸入欲刪除職工號(hào)存在不存在2、程序清單#include "stdio.h"#include "string.h"#

8、include "stdlib.h"#define FILENAME "worker.bin"#define N 20struct worker int number; /*工號(hào)*/ int counts; /*數(shù)量*/ int grade; /*等級(jí)*/;/* 定義 */ void xinxi() printf("n+n"); printf("+ 職工工作量統(tǒng)計(jì)系統(tǒng) +n");printf("+ +n"); printf("+ 1. 職工基本信息輸入 +n"); print

9、f("+ +n");printf("+ 2. 工作量輸入 +n"); printf("+ +n");printf("+ 3. 按工作量排序 +n"); printf("+ +n");printf("+ 4. 按職工工號(hào)進(jìn)行信息刪除 +n"); printf("+ +n"); printf("+ 5. 結(jié)束程序 +n");printf("+n"); /* 顯示菜單 */int readFromFile(struct w

10、orker w) FILE *fp=NULL;int i=0;fp=fopen(FILENAME,"rb"); /*打開文件*/if(fp!=NULL)while(!feof(fp) /*從文件中讀入學(xué)生*/ if(i>=N)break;if(fread(w+i,sizeof(worker),1,fp)=1)i+;fclose(fp); return i;/* 信息顯示到屏幕 */ int f(struct worker w,int length) int i=length; while(i<N) printf("第%d個(gè)職工n",i); p

11、rintf("n"); printf("請(qǐng)你輸入工號(hào)(以職工號(hào)為0結(jié)束):n");/*輸入工號(hào)*/ scanf("%d",&wi.number); if(wi.number=0) break; printf("n"); printf("n"); printf("請(qǐng)你輸入數(shù)量:n");/*輸入數(shù)量*/ scanf("%d",&wi.counts); printf("n"); i+; return i; /* 功能:輸入職工

12、基本信息 */ void input(struct worker w,int length) int i=1; int number,counts; printf("請(qǐng)輸入工號(hào):"); scanf("%d",&number); while(number!=0) printf("請(qǐng)輸入完成數(shù)量:n");scanf("%d",&counts); for(i=0;i<length;i+)if(wi.number=number)wi.counts+=counts; break;if(i>=len

13、gth) printf("工號(hào)不存在:n");printf("請(qǐng)輸入工號(hào):");scanf("%d",&number); /* 功能:工作量輸入并累加 */void sortCounts(struct worker w,int length)int i=0,j=0,k=0;struct worker s;for(i=0;i<length;i+) k=i;for(j=i+1;j<length;j+)if(wj.counts>wk.counts)k=j; /* 交換 wi and wk */ s = wk; wk

14、 =wi; wi = s; if(length>0)w0.grade =1;for(i=1;i<length;i+)if(wi.counts=wi-1.counts)wi.grade=wi-1.grade;elsewi.grade=wi-1.grade+1; / /* 按工作量從大到小排序并標(biāo)上名次 */void sortNumber(struct worker w,int length)int i=0;int grade,count; if(length>0) while(i<length) count=0; grade=wi.grade; printf("

15、名次:%d ", grade); printf(" 工作量:%d ",wi.counts); printf("%s","工號(hào):"); while(i<length) if(grade=wi.grade) printf("%d ",wi.number); count+; elsebreak; i+; printf("人數(shù):%dn",count);elseprintf("職工數(shù)據(jù)不存在!n");/ /* 輸出名次、同一名次的職工人數(shù)及他們的工號(hào),姓名*/int d

16、elet(struct worker w,int length,int stuNum)int i,j;char choice;for(i=0;i<length;i+)if(stuNum=wi.number) printf("%s","欲刪除職工號(hào)為:"); printf("%dn",wi.number);break; if(i<length) printf("你確實(shí)要?jiǎng)h除這個(gè)職工嗎?(Y/N)");scanf("%c",&choice);if(choice='Y

17、9;|choice='y')for(j=i;j<length;j+)wj=wj+1;length-; printf("刪除成功!n"); else printf("n指定的職工不存在!n");return length;/* 按職工號(hào)刪除職工信息*/void writeToFile(struct worker w,int length)FILE *fp=NULL;int i=0;fp=fopen(FILENAME,"wb");if(fp=NULL)printf("打開文件出錯(cuò)!n");exit

18、(0);for(i=0;i<length;i+)fwrite(w+i,sizeof(worker),1,fp);fclose(fp);/* 結(jié)構(gòu)體數(shù)組中的職工信息輸出到文件*/void main () int choice; struct worker wN; int NUM;char stuName100; int stuNum; int length=0; length=readFromFile(w);/讀入 do xinxi(); scanf("%d",&choice); switch(choice) case 1: length=f(w,length); break; case 2: input(w,length); break; case

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論