職工工資管理系統(tǒng)設(shè)計(jì)c語(yǔ)言課程設(shè)計(jì)_第1頁(yè)
職工工資管理系統(tǒng)設(shè)計(jì)c語(yǔ)言課程設(shè)計(jì)_第2頁(yè)
職工工資管理系統(tǒng)設(shè)計(jì)c語(yǔ)言課程設(shè)計(jì)_第3頁(yè)
職工工資管理系統(tǒng)設(shè)計(jì)c語(yǔ)言課程設(shè)計(jì)_第4頁(yè)
職工工資管理系統(tǒng)設(shè)計(jì)c語(yǔ)言課程設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩19頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

《C語(yǔ)言程序設(shè)計(jì)》課程設(shè)計(jì)實(shí)習(xí)報(bào)告實(shí)驗(yàn)題目職工工資管理

1.問(wèn)題描述:添加模塊:添加職工或工資的信息刪除模塊:能通過(guò)姓名或者工號(hào)刪除職工信息修改模塊:修改職工信息查詢(xún)模塊:能通過(guò)姓名或者工號(hào)查詢(xún)職工信息顯示模塊:顯示全部職工信息文件管理模塊:負(fù)責(zé)源數(shù)據(jù)文件的管理,包括新建、讀取和保存源數(shù)據(jù)2.概要設(shè)計(jì)職工工資管理職工工資管理添加模塊刪除模塊修改模塊查詢(xún)模塊顯示模塊文件管理模塊按姓名按工號(hào)按姓名按工號(hào)新建記錄數(shù)據(jù)文件讀取記錄數(shù)據(jù)文件保存記錄數(shù)據(jù)文件在各模塊處用指針函數(shù)來(lái)使用后面的保存記錄數(shù)據(jù)文件進(jìn)行保存。3.詳細(xì)設(shè)計(jì)include<stdio.h>#include<stdlib.h>#include<string.h>/*宏定義*/#defineN100/*假設(shè)工人個(gè)數(shù)是100*/#defineHEADER1"\n"#defineHEADER2"|Number|Name|Psex|Age|Time|Ywage|Ykou|Pwage|\n"#defineHEADER3"|||||||||\n"#defineFORMAT"|%-8d|%-8s|%-8s|%-7d|%-6d|%-7d|%-6d|%-7d|\n"#defineDATAp->num,p->name,p->sex,p->age,p->time,p->ywage,p->ykou,p->pwage#defineEND"\n"/**/typedefstructwork{ intnum;/**/ charname[10]; charsex[10]; int age;/**/ inttime;/**/ intywage;/**/ intykou;/**/ intpwage;/**/}WORK;/**/typedefstructpointer_info{ WORK*pHead;/**/ intcount;/**/ charfname[10];/**/ intsaveflag;/**/}PI;/**/voidMenu();voidAdd(PI*);voidDel(PI*);voidSave(PI*pi);voidModify(PI*pi);voidQur(PI*pi);voidLoad(PI*pi);voidNew(PI*pi);voidDisp(PI*);voidWrong();voidprintheader();voidmain(){ intsel; WORK*pwork; PIpi; pwork=(WORK*)malloc(N*sizeof(WORK)); pi.pHead=pwork; pi.count=0; pi.fname[0]='\0'; pi.saveflag=0; /*顯示主函數(shù)*/ Menu(); printf("Pleaseinputyourchoice[0~5]:"); do { scanf("%d",&sel); if(sel==0) { /*if(pi.saveflag==1) { if(strlen(pi.fname)) { Save(&pi); } else { New(&pi); Save(&pi); } }*/ break; } switch(sel) { case1: Add(&pi); break; case2: Del(&pi); break; case3: Modify(&pi); break; case4: Qur(&pi); break; case5: Disp(&pi); break; default: Wrong(); break; } }while(1); pwork=pi.pHead; free(pwork);}voidprintheader(){ printf(HEADER1); printf(HEADER2); printf(HEADER3);}voidMenu(){ system("cls"); printf("TheWorkers'GradeWageSystem\n"); printf("****************Menu*************************************\n"); printf("*1添加*\n"); printf("*2刪除*\n"); printf("*3修改*\n"); printf("*4查詢(xún)*\n"); printf("*5顯示*\n"); printf("*0退出*\n"); printf("*********************************************************\n");}voidWrong(){ printf("\n******Error:inputhaswrong!pressanykeytocontinue******\n");}voidAdd(PI*pi){ intnum; //charsex[10]; intnSex; inti,flag=0; WORK*pwork,*p; do { pwork=pi->pHead+pi->count; p=pi->pHead; printf("pleaseinputthenumber:(press'0'returnmenu)"); scanf("%d",&num); for(i=1;i<pi->count;i++) { if(num==p->num) { printf("thenumberyouinputhasexist,pleaseinputanotherone!\n"); flag=1; break; } p++; } if(flag) { flag=0; continue; } if(num!=0) { pwork->num=num; } else { Menu(); printf("pleaseinputyourchoice[0~5]:"); break; } printf("pleaseinputthename:"); scanf("%s",pwork->name); printf("pleaseinputthesex(0iswoman,1isman):"); scanf("%d",&nSex); if(nSex==0) strcpy(pwork->sex,"woman"); else strcpy(pwork->sex,"man"); printf("pleaseinputthetime:"); scanf("%d",&pwork->time); printf("pleaseinputtheage:"); scanf("%d",&pwork->age); printf("pleaseinputtheYwage:"); scanf("%d",&pwork->ywage); printf("pleaseinputtheYkou:"); scanf("%d",&pwork->ykou); pwork->pwage=pwork->ywage-pwork->ykou; pi->count++; pi->saveflag=1; }while(1);}voidQur(PI*pi){ inta,i,num; WORK*p; charname[10]; p=pi->pHead; Menu(); printf("1searchbynumber\n"); printf("2searchbyname\n"); printf("3return\n"); printf("pleaseinputyourchoice:[1,2]?"); scanf("%d",&a); if(a==3) { return; } if(a==1) { printf("pleaseinputthenumberforsearch:"); scanf("%d",&num); for(i=1;i<=pi->count;i++) { if(num==p->num) { break; } p++; } if(i>pi->count) { printf("norecordfound\n"); return; } else { printheader(); printf(FORMAT,DATA); printf(END); } } elseif(a==2) { printf("pleaseinputnametosearch:"); scanf("%s",name); for(i=1;i<=pi->count;i++) { if(strcmp(name,p->name)!=0) { break; } p++; } if(i>pi->count) { printf("norecordfound\n"); return; } else { printheader(); printf(FORMAT,DATA); printf(END); } } printf("Pleaseinputyourchoice[0~5]:");}voidModify(PI*pi){ intnum,i; WORK*p,*pwork; p=pi->pHead; Menu(); Disp(pi); printf("pleaseinputthenumberofworktomodify:"); scanf("%d",&num); for(i=1;i<pi->count;i++) { if(num==p->num) { break; } p++; } if(i>pi->count) { printf("norecordfound\n"); return; } else { printf("pleaseinputthenumber:(enter'0'returnmenu)"); scanf("%d",&num); if(num!=0) { p->num=num; } else { Menu(); return; } printf("pleaseinputthename:"); scanf("%s",p->name); printf("pleaseinputthesex:"); scanf("%s",p->sex); printf("pleaseinputtheage:"); scanf("%d",&p->age); printf("pleaseinputthetime:"); scanf("%d",&p->time); printf("pleaseinputtheywage:"); scanf("%d",&p->ywage); printf("pleaseinputtheykou:"); scanf("%d",&p->ykou); pwork->pwage=pwork->ywage-pwork->ykou; pi->saveflag=1; }}/*刪除職工記錄*/voidDel(PI*pi){ intsel,i,num; charname[10]; WORK*p;/*指針函數(shù)*/ p=pi->pHead; Menu(); printf("1deletebynumber\n");/*選擇工號(hào)*/ printf("2deletebyname\n");/*選擇姓名*/ printf("anykeyotherreturn\n");/*按別的鍵就返回*/ printf("pleaseinputyourchoice:[1,2]?\n"); scanf("%d",&sel); if(sel!=1&&sel!=2)/*按別的鍵*/ { return; } if(sel==1)/*選擇工號(hào)*/ { printf("Pleaseinputthenumbertodelete:"); scanf("%d",&num); for(i=1;i<=pi->count;i++)/*按學(xué)號(hào)搜索*/ { if(num==p->num) { break; } p++; } if(i>pi->count) { printf("norecordfound\n"); return; } elseif(i==pi->count)/*刪除中間某個(gè)記錄,只需要將count減1*/ { pi->count--; pi->saveflag=1; printf("recorddeletesuccessfully!\n"); } else/*刪除某個(gè)記錄,只要將其后的數(shù)據(jù)前移覆蓋即可*/ { memcpy(p,p+1,(pi->pHead+pi->count-p)*sizeof(WORK)); pi->count--; pi->saveflag=1; printf("recorddeletesuccessfully!\n"); } } elseif(sel==2)/*選擇姓名*/ { printf("pleaseinputnametodelete:"); scanf("%s",name); for(i=1;i<=pi->count;i++) { if(strcmp(name,p->name)!=0) { break; } p++; } if(i>pi->count) { printf("norecordfound\n"); return; } elseif(i==pi->count)/*刪除中間某個(gè)記錄,只需要將count減1*/ { pi->count--; pi->saveflag=1; printf("recorddeletesuccessfully!\n"); } else {/*刪除某個(gè)記錄,只要將其后的數(shù)據(jù)前移覆蓋即可*/ memcpy(p,p+1,(pi->pHead+pi->count-p)*sizeof(WORK)); pi->count--; pi->saveflag=1; printf("recorddeletesuccessfully!\n"); } } printf("pleaseinputyourchoice[0~5]:");}/*顯示*/voidDisp(PI*pi){ inti; WORK*p=pi->pHead; if(pi->count==0) { printf("norecordfound\n"); printf("\npleaseinputyourchoice[0~5]:"); return; } printheader(); for(i=1;i<=pi->count;i++) { printf(FORMAT,DATA); printf(END); p++; }}voidNew(PI*pi){ FILE*fp; charname[10]; charfname[10]=".\\"; printf("pleaseinputthedatefilenamefoecreate:"); scanf("%s",fname); strcat(fname,name); strcat(fname,".dat"); fp=fopen(fname,"wb"); if(fp==NULL) { printf("\n=====>openfileerror!\n"); return; } strcpy(pi->fname,fname); fclose(fp);}voidLoad(PI*pi){ FILE*fp; WORK*p=pi->pHead; charname[10]; charfname[10]=".\\"; printf("pleaseinputthedatafilenameforload:"); scanf("%s",name); strcat(fname,name); fp=fopen(fname,"rb"); if(fp==NULL) { printf("\n====>openfileerror!\n"); return; } pi->count=0; pi->saveflag=0; while(feof(fp)!=0) { if(fread(p,sizeof(WORK),1,fp)) { pi->count++; p++; } } strcpy(pi->fname,name); printf("loaddatafile%ssuccessfully!",name); fclose(fp);}voidSave(PI*pi){ FILE*fp; intnumwriten; if(!strlen(pi->fname)) New(pi); fp=fopen(pi->fname,"wb"); if(fp==NULL) { printf("\n====>openfileerror!\n"); fclose(fp); return; } if(pi->count) { numwriten=fwrite(pi->pHead,1,pi->count*sizeof(WORK),fp); pi->saveflag=0; printf("filesavesuccesefully!"); } else printf("norecordforsave!"); fclose(fp);}4測(cè)試分析添加時(shí)Q1:性別通過(guò)輸入0或1輸出womanorman有if語(yǔ)句進(jìn)行選擇Q2:實(shí)得工資由應(yīng)發(fā)工資減去應(yīng)扣工資自動(dòng)得到在程序中做減法添加后刪除Q1:通過(guò)工號(hào)或姓名刪除使用if語(yǔ)句進(jìn)行選擇,并用for語(yǔ)句對(duì)進(jìn)行搜索Q2:刪除中間摸個(gè)記錄刪除后修改查找Q1:要求通過(guò)工號(hào)或者姓名查找使用if語(yǔ)句Q2:如果找不到記錄則要返回使用if–else語(yǔ)句找不到就輸出源數(shù)據(jù)顯示課程設(shè)計(jì)總結(jié)通過(guò)我們小組的共同努力終于完成任務(wù),制作了職工工資管理系統(tǒng)。雖然這系統(tǒng)我們是參照課本的類(lèi)似例題制作,但其中還是集大家的努力進(jìn)行修改,使系統(tǒng)更加完善。但由于能力有限,系統(tǒng)還是不是很穩(wěn)定。比如,輸入進(jìn)入公司時(shí)間時(shí),不能精確到具體時(shí)間??偟膩?lái)說(shuō),我們制作的系統(tǒng)還是能達(dá)到基本要求的,實(shí)現(xiàn)職工工資管理系統(tǒng)的功能。自我評(píng)價(jià):通過(guò)這次作業(yè),我發(fā)現(xiàn)自己的不足之處。對(duì)一些C語(yǔ)言的基本東西還是比較陌生,所以不能熟悉運(yùn)用。增加了負(fù)擔(dān),所以這給與我提示是要再去好好看幾遍書(shū),熟悉其內(nèi)容。這次作業(yè)我們小組成員也發(fā)揮出各自所有的能力,相互協(xié)作,共同努力思考,對(duì)一些疑難點(diǎn)和問(wèn)題進(jìn)行討論。我也發(fā)揮出帶頭領(lǐng)導(dǎo)的作用,制定出相對(duì)合理的工作計(jì)劃并予以實(shí)施??偟膩?lái)說(shuō),我在這次工作中是投入大量時(shí)間和精力的,實(shí)實(shí)在在的努力!教師評(píng)價(jià)成績(jī)?cè)u(píng)定:日期:年月日

目錄TOC\o"1-2"\h\z\u第一章總論 11.1項(xiàng)目概況 11.2可行性研究報(bào)告編制單位 41.3承辦單位簡(jiǎn)介 41.4項(xiàng)目區(qū)概況 51.5可行性研究依據(jù) 91.6可行性研究的范圍 10第二章項(xiàng)目建設(shè)背景及必要性 112.1項(xiàng)目建設(shè)背景 112.

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論