版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> C語言課程設(shè)計報告書</p><p> 題目: 職工工資管理 </p><p><b> 功能需求如下:</b></p><p><b> 系統(tǒng)概述</b></p><p> 添加模塊:添加職工或工資的信息</p><p>
2、 刪除模塊:能通過姓名或者工號刪除職工信息</p><p> 修改模塊:修改職工信息</p><p> 查詢模塊:能通過姓名或者工號查詢職工信息</p><p> 顯示模塊:顯示全部職工信息</p><p> 文件管理模塊:負(fù)責(zé)源數(shù)據(jù)文件的管理,包括新建、讀取和保存源數(shù)據(jù)</p><p><b>
3、 2.總體設(shè)計</b></p><p><b> 系統(tǒng)模塊結(jié)構(gòu)框圖</b></p><p> 在各模塊處用指針函數(shù)來使用后面的保存記錄數(shù)據(jù)文件進(jìn)行保存。</p><p> 3.詳細(xì)設(shè)計 (參數(shù)代碼如下)</p><p> # include <stdio.h></p><
4、;p> # include <stdlib.h></p><p> # include <string.h></p><p><b> /*宏定義*/</b></p><p> # define N 100 /*假設(shè)工人個數(shù)是100*/</p&
5、gt;<p> # define HEADER1 "----------------------------------------------------------------------\n" </p><p> # define HEADER2 " | Number | Name | Psex | Age | Time | Ywage | Yk
6、ou | Pwage |\n"</p><p> # define HEADER3 " |--------|--------|--------|-------|------|-------|------|-------|\n"</p><p> # define FORMAT " |%-8d|%-8s|%-8s|%-7d|%-6d|%-7d|%
7、-6d|%-7d|\n"</p><p> # define DATA p->num ,p->name,p->sex,p->age,p->time,p->ywage,p->ykou,p->pwage</p><p> # define END "---------------------------------
8、--------------------------------------\n"</p><p><b> /**/</b></p><p> typedef struct work</p><p><b> {</b></p><p> int num;
9、 /**/</p><p> char name[10]; </p><p> char sex[10];</p><p> int age; /**/ </p><p>
10、; int time; /**/</p><p> int ywage; /**/</p><p> int ykou; /
11、**/</p><p> int pwage; /**/</p><p><b> }WORK;</b></p><p><b> /**/</b></p><p> typedef struct poin
12、ter_info</p><p><b> {</b></p><p> WORK*pHead; /**/</p><p> int count; /**/</p>
13、;<p> char fname[10]; /**/ </p><p> int saveflag; /**/</p><p><b> }PI; </b></p><p&g
14、t;<b> /**/</b></p><p> void Menu(); </p><p> void Add(PI*);</p><p> void Del(PI*);</p><p> void Save(PI*pi);&
15、lt;/p><p> void Modify(PI*pi);</p><p> void Qur(PI*pi);</p><p> void Load(PI*pi);</p><p> void New(PI*pi);</p><p> void Disp(PI*);</p><p>
16、void Wrong();</p><p> void printheader();</p><p> void main()</p><p><b> {</b></p><p><b> int sel;</b></p><p> WORK *pwork;&
17、lt;/p><p><b> PI pi;</b></p><p> pwork = (WORK*)malloc(N * sizeof(WORK));</p><p> pi.pHead = pwork;</p><p> pi.count = 0;</p><p> pi.fname[0
18、] = '\0';</p><p> pi.saveflag = 0;</p><p><b> /*顯示主函數(shù)*/</b></p><p><b> Menu();</b></p><p> printf("Please input your choice [0~
19、5]:");</p><p><b> do </b></p><p><b> {</b></p><p> scanf("%d",&sel); </p><p> if (sel == 0)
20、 </p><p><b> {</b></p><p> /*if (pi.saveflag ==1) </p><p><b> { </b></p><p> if (strlen(pi.fname))</p><p>
21、;<b> {</b></p><p> Save(&pi);</p><p><b> }</b></p><p><b> else </b></p><p><b> {</b></p><p><b&
22、gt; New(&pi);</b></p><p> Save(&pi);</p><p><b> } </b></p><p><b> }*/</b></p><p><b> break;</b></p><p&
23、gt;<b> }</b></p><p> switch(sel)</p><p><b> { </b></p><p><b> case 1:</b></p><p><b> Add(&pi);</b></p>
24、<p> break; </p><p><b> case 2:</b></p><p><b> Del(&pi);</b></p><p><b> break;</b></p><p><b> c
25、ase 3:</b></p><p> Modify(&pi);</p><p><b> break;</b></p><p><b> case 4:</b></p><p><b> Qur(&pi);</b></p>
26、<p><b> break; </b></p><p><b> case 5:</b></p><p> Disp(&pi);</p><p><b> break;</b></p><p><b> default:</b&
27、gt;</p><p><b> Wrong();</b></p><p><b> break; </b></p><p> } </p><
28、p> }while(1);</p><p> pwork = pi.pHead;</p><p> free(pwork);</p><p><b> }</b></p><p> void printheader() </p><p><b> { </b>
29、;</p><p> printf(HEADER1);</p><p> printf(HEADER2);</p><p> printf(HEADER3);</p><p><b> }</b></p><p> void Menu()</p><p><
30、b> {</b></p><p> system("cls");</p><p> printf(" The Workers' Grade Wage System \n");</p><p> printf("****************Menu********
31、*****************************\n");</p><p> printf(" * 1 添加 *\n");</p><p> printf(" * 2 刪除 *\
32、n");</p><p> printf(" * 3 修改 *\n");</p><p> printf(" * 4 查詢 *\n");</p><p>
33、 printf(" * 5 顯示 *\n");</p><p> printf(" * 0 退出 *\n");</p><p> printf ("**************
34、*******************************************\n");</p><p><b> }</b></p><p> void Wrong( )</p><p><b> {</b></p><p> printf("\n******E
35、rror :input has wrong ! press any key to continue******\n"); </p><p><b> }</b></p><p> void Add(PI* pi )</p><p><b> { </b></p><p>
36、<b> int num;</b></p><p> //char sex[10];</p><p> int nSex;</p><p> int i,flag=0;</p><p> WORK * pwork,*p;</p><p><b> do</b>&
37、lt;/p><p><b> { </b></p><p> pwork=pi->pHead+pi->count;</p><p> p=pi->pHead;</p><p> printf("please input the number:(press '0'retu
38、rn menu)");</p><p> scanf("%d",&num);</p><p> for(i=1;i< pi->count; i++)</p><p><b> {</b></p><p> if(num==p->num)</p>
39、<p><b> {</b></p><p> printf ("the number you input has exist,please input another one!\n");</p><p><b> flag=1;</b></p><p><b> bre
40、ak;</b></p><p><b> }</b></p><p><b> p++;</b></p><p><b> }</b></p><p><b> if(flag)</b></p><p><
41、b> { </b></p><p><b> flag=0;</b></p><p><b> continue;</b></p><p><b> }</b></p><p> if (num != 0)</p><p>
42、<b> {</b></p><p> pwork->num = num;</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p>&l
43、t;b> Menu();</b></p><p> printf("please input your choice[0~5]:");</p><p><b> break;</b></p><p><b> }</b></p><p> printf
44、("please input the name:");</p><p> scanf("%s",pwork->name);</p><p> printf("please input the sex(0 is woman,1 is man):");</p><p> scanf( "%
45、d", &nSex );</p><p> if( nSex == 0 )</p><p> strcpy( pwork->sex,"woman");</p><p><b> else</b></p><p> strcpy( pwork->sex,"
46、man");</p><p> printf("please input the time:");</p><p> scanf("%d", &pwork->time);</p><p> printf("please input the age:");</p>
47、<p> scanf("%d", &pwork->age);</p><p> printf("please input the Ywage:");</p><p> scanf("%d", &pwork->ywage);</p><p> printf(&qu
48、ot;please input the Ykou:");</p><p> scanf("%d", &pwork->ykou);</p><p> pwork->pwage = pwork->ywage-pwork->ykou;</p><p> pi->count++;</p>
49、<p> pi->saveflag=1;</p><p> }while(1);</p><p><b> }</b></p><p> void Qur(PI * pi)</p><p><b> {</b></p><p> int a,i,
50、num;</p><p><b> WORK *p;</b></p><p> char name[10];</p><p> p=pi->pHead;</p><p><b> Menu();</b></p><p> printf("1-----
51、-search by number\n");</p><p> printf("2------search by name\n");</p><p> printf("3------return\n");</p><p> printf("please input your choice:[1,2]?
52、");</p><p> scanf("%d",&a);</p><p><b> if(a==3)</b></p><p><b> { </b></p><p><b> return;</b></p><
53、;p><b> }</b></p><p><b> if(a==1)</b></p><p><b> {</b></p><p> printf("please input the number for search:");</p><p>
54、; scanf("%d",&num);</p><p> for(i=1;i<= pi->count; i++)</p><p><b> { </b></p><p> if(num==p->num)</p><p><b> {</b>&l
55、t;/p><p><b> break;</b></p><p><b> }</b></p><p><b> p++;</b></p><p><b> }</b></p><p> if(i>pi->coun
56、t)</p><p><b> {</b></p><p> printf("no record found\n");</p><p><b> return;</b></p><p><b> }</b></p><p>&
57、lt;b> else</b></p><p><b> { </b></p><p> printheader();</p><p> printf(FORMAT,DATA);</p><p> printf(END);</p><p><b> }&l
58、t;/b></p><p><b> }</b></p><p> else if(a==2)</p><p><b> {</b></p><p> printf("please input name to search:");</p><p&
59、gt; scanf("%s",name);</p><p> for(i=1;i<=pi->count;i++)</p><p><b> {</b></p><p> if(strcmp(name,p->name) !=0) </p><p><b> {<
60、;/b></p><p><b> break;</b></p><p><b> }</b></p><p><b> p++;</b></p><p><b> }</b></p><p> if(i>pi
61、->count)</p><p><b> {</b></p><p> printf("no record found\n");</p><p><b> return;</b></p><p><b> }</b></p>&
62、lt;p><b> else</b></p><p><b> { </b></p><p> printheader();</p><p> printf(FORMAT,DATA);</p><p> printf(END);</p><p><b&g
63、t; }</b></p><p><b> }</b></p><p> printf("Please input your choice[0~5]:");</p><p><b> }</b></p><p> void Modify(PI *pi)<
64、;/p><p><b> {</b></p><p> int num,i;</p><p> WORK *p,*pwork;</p><p> pwork = pi->pHead;</p><p> p = pi->pHead;</p><p><
65、b> Menu();</b></p><p><b> Disp(pi);</b></p><p> printf("please input the number of work to modify:");</p><p> scanf("%d",&num);</
66、p><p> for (i = 1;i < pi->count;i++)</p><p><b> {</b></p><p> if (num == p->num)</p><p><b> {</b></p><p><b> break
67、;</b></p><p><b> }</b></p><p><b> p++;</b></p><p><b> }</b></p><p> if (i > pi->count)</p><p><b>
68、 {</b></p><p> printf("no record found\n");</p><p><b> return;</b></p><p><b> }</b></p><p><b> else</b></p&g
69、t;<p><b> {</b></p><p> printf("please input the number:(enter '0'return menu)");</p><p> scanf("%d",&num);</p><p> if (num!=0
70、)</p><p><b> {</b></p><p> p->num =num;</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p
71、><p><b> Menu();</b></p><p><b> return;</b></p><p><b> }</b></p><p> printf("please input the name:");</p><p&g
72、t; scanf("%s",p->name);</p><p> printf("please input the sex:");</p><p> scanf("%s",p->sex);</p><p> printf("please input the age:"
73、);</p><p> scanf("%d",&p->age);</p><p> printf("please input the time:");</p><p> scanf("%d",&p->time);</p><p> printf(&
74、quot;please input the ywage:");</p><p> scanf("%d",&p->ywage);</p><p> printf("please input the ykou:");</p><p> scanf("%d",&p->y
75、kou);</p><p> pwork->pwage = pwork->ywage-pwork->ykou;</p><p> pi->saveflag = 1;</p><p><b> }</b></p><p><b> }</b></p>&l
76、t;p> /*刪除職工記錄*/</p><p> void Del(PI * pi)</p><p><b> {</b></p><p> int sel,i,num;</p><p> char name[10];</p><p> WORK *p;/*指針函數(shù)*/</
77、p><p> p=pi->pHead;</p><p><b> Menu();</b></p><p> printf("1------delete by number\n");/*選擇工號*/</p><p> printf("2------delete by name\n&q
78、uot;);/*選擇姓名*/</p><p> printf("any key other------return\n");/*按別的鍵就返回*/</p><p> printf("please input your choice:[1,2]?\n");</p><p> scanf("%d",&am
79、p;sel);</p><p> if(sel!=1&&sel!=2)/*按別的鍵*/</p><p><b> { </b></p><p><b> return;</b></p><p><b> }</b></p><p&
80、gt; if( sel == 1 )/*選擇工號*/</p><p><b> {</b></p><p> printf("Please input the number to delete:");</p><p> scanf("%d",&num);</p><p&
81、gt; for(i=1;i<=pi->count;i++)/*按學(xué)號搜索*/</p><p><b> { </b></p><p> if(num==p->num)</p><p><b> {</b></p><p><b> break;</b>
82、;</p><p><b> }</b></p><p><b> p++;</b></p><p><b> }</b></p><p> if(i>pi->count)</p><p><b> {</b>
83、</p><p> printf("no record found\n");</p><p><b> return;</b></p><p><b> }</b></p><p> else if(i==pi->count) /*刪除中間某個記錄,只需要將coun
84、t減1*/</p><p><b> {</b></p><p> pi->count--;</p><p> pi->saveflag=1;</p><p> printf("record delete successfully!\n");</p><p>
85、;<b> }</b></p><p> else /*刪除某個記錄,只要將其后的數(shù)據(jù)前移覆蓋即可*/ </p><p><b> {</b></p><p> memcpy(p,p+1,(pi->pHead + pi->count - p)*sizeof(WORK));</
86、p><p> pi->count--;</p><p> pi->saveflag = 1;</p><p> printf("record delete successfully!\n");</p><p><b> }</b></p><p><b&g
87、t; }</b></p><p> else if(sel == 2)/*選擇姓名*/</p><p><b> {</b></p><p> printf("please input name to delete:");</p><p> scanf("%s&quo
88、t;,name);</p><p> for(i=1;i<=pi->count;i++)</p><p><b> { </b></p><p> if(strcmp(name,p->name) != 0)</p><p><b> {</b></p>&l
89、t;p><b> break;</b></p><p><b> }</b></p><p><b> p++;</b></p><p><b> }</b></p><p> if(i>pi->count)</p>
90、<p><b> {</b></p><p> printf("no record found\n");</p><p><b> return;</b></p><p><b> }</b></p><p> else if(i==
91、pi->count)/*刪除中間某個記錄,只需要將count減1*/</p><p><b> {</b></p><p> pi->count--;</p><p> pi->saveflag=1;</p><p> printf("record delete successfull
92、y!\n");</p><p><b> }</b></p><p><b> else </b></p><p> { /*刪除某個記錄,只要將其后的數(shù)據(jù)前移覆蓋即可*/ </p><p> memcpy(p,p+1,(pi->pHead+pi->count-p)
93、*sizeof(WORK) );</p><p> pi->count--;</p><p> pi->saveflag=1;</p><p> printf("record delete successfully!\n");</p><p><b> }</b></p>
94、;<p><b> }</b></p><p> printf("please input your choice[0~5]:");</p><p><b> }</b></p><p><b> /*顯示*/</b></p><p>
95、 void Disp(PI * pi)</p><p><b> {</b></p><p><b> int i;</b></p><p> WORK *p = pi->pHead;</p><p> if (pi->count==0)</p><p>
96、;<b> {</b></p><p> printf("no record found\n");</p><p> printf("\nplease input your choice[0~5]:");</p><p><b> return;</b></p>
97、<p><b> }</b></p><p> printheader();</p><p> for(i=1;i<=pi->count;i++)</p><p><b> {</b></p><p> printf(FORMAT,DATA);</p>
98、<p> printf(END);</p><p><b> p++;</b></p><p><b> }</b></p><p><b> }</b></p><p> void New(PI *pi)</p><p><
99、b> {</b></p><p> FILE * fp;</p><p> char name[10];</p><p> char fname[10] =".\\";</p><p> printf("please input the date file name foe creat
100、e:");</p><p> scanf("%s",fname);</p><p> strcat(fname,name);</p><p> strcat(fname,".dat");</p><p> fp=fopen(fname,"wb");</p>
101、;<p> if(fp==NULL)</p><p><b> {</b></p><p> printf("\n=====>open file error!\n");</p><p><b> return;</b></p><p><b>
102、; }</b></p><p> strcpy(pi->fname,fname);</p><p> fclose(fp);</p><p><b> }</b></p><p> void Load (PI *pi)</p><p><b> { <
103、;/b></p><p> FILE * fp;</p><p> WORK * p=pi->pHead;</p><p> char name [10];</p><p> char fname [10]= ".\\";</p><p> printf( "ple
104、ase input the data file name for load:");</p><p> scanf( "%s",name);</p><p> strcat(fname,name);</p><p> fp=fopen(fname , "rb");</p><p> if
105、(fp==NULL)</p><p><b> { </b></p><p> printf("\n====>open file error!\n");</p><p><b> return;</b></p><p><b> }</b>&l
106、t;/p><p> pi->count = 0;</p><p> pi->saveflag = 0;</p><p> while(feof(fp)!=0)</p><p><b> {</b></p><p> if(fread(p,sizeof(WORK),1,fp))&l
107、t;/p><p><b> {</b></p><p> pi->count++;</p><p><b> p++;</b></p><p><b> }</b></p><p><b> }</b></p>
108、;<p> strcpy(pi->fname,name);</p><p> printf("load data file %s successfully!",name);</p><p> fclose(fp);</p><p><b> }</b></p><p>
109、void Save(PI * pi)</p><p><b> {</b></p><p> FILE * fp;</p><p> int numwriten;</p><p> if (!strlen(pi->fname))</p><p><b> New(pi)
110、;</b></p><p> fp=fopen(pi->fname, "wb");</p><p> if(fp==NULL)</p><p><b> { </b></p><p> printf("\n====>open file error!\n&q
111、uot;);</p><p> fclose(fp);</p><p><b> return ;</b></p><p><b> }</b></p><p> if (pi->count) </p><p><b> {</b><
112、;/p><p> numwriten = fwrite(pi->pHead,1,pi->count * sizeof(WORK),fp);</p><p> pi->saveflag = 0;</p><p> printf("file save succesefully!");</p><p><
113、;b> }</b></p><p><b> else</b></p><p> printf("no record for save !");</p><p> fclose(fp);</p><p><b> }</b></p>&l
114、t;p> 4功能和模塊的測試分析(圖文如下)</p><p><b> 添加時</b></p><p> Q1:性別通過輸入0或1輸出woman or man</p><p><b> 有if語句進(jìn)行選擇</b></p><p> Q2:實得工資由應(yīng)發(fā)工資減去應(yīng)扣工資自動得到<
115、/p><p><b> 在程序中做減法</b></p><p><b> 添加后</b></p><p><b> 1</b></p><p><b> 刪除</b></p><p> Q1:通過工號或姓名刪除</p&g
116、t;<p> 使用if語句進(jìn)行選擇,并用for語句對進(jìn)行搜索</p><p> Q2:刪除中間摸個記錄</p><p><b> 刪除后</b></p><p><b> 修改</b></p><p><b> 查找</b></p><
117、;p> Q1:要求通過工號或者姓名查找</p><p><b> 使用if語句</b></p><p> Q2:如果找不到記錄則要返回</p><p> 使用if –else語句找不到就輸出源數(shù)據(jù)</p><p><b> 顯示</b></p><p><
118、;b> 課程設(shè)計總結(jié)</b></p><p> 通過我們小組的共同努力終于完成任務(wù),制作了職工工資管理系統(tǒng)。</p><p> 雖然這系統(tǒng)我們是參照課本的類似例題制作,但其中還是集大家的努力進(jìn)行修改,使系統(tǒng)更加完善。但由于能力有限,系統(tǒng)還是不是很穩(wěn)定。比如,輸入進(jìn)入公司時間時,不能精確到具體時間。</p><p> 總的來說,我們制作的系統(tǒ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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c語言課程設(shè)計——職工工資管理
- c語言職工工資管理系統(tǒng)課程設(shè)計
- c語言課程設(shè)計報告---職工工資管理系統(tǒng)
- c語言課程設(shè)計報告--職工工資管理系統(tǒng)
- c語言課程設(shè)計報告---職工工資管理系統(tǒng)
- c語言課程設(shè)計報告職工工資管理系統(tǒng)
- c++課程設(shè)計---職工工資管理系統(tǒng)
- c++課程設(shè)計---職工工資管理系統(tǒng)
- 課程設(shè)計---職工工資管理系統(tǒng)
- 課程設(shè)計--職工工資管理系統(tǒng)
- 課程設(shè)計---職工工資管理系統(tǒng)
- c++課程設(shè)計-職工工資管理系統(tǒng)設(shè)計
- 課程設(shè)計c++之職工工資管理系統(tǒng)
- c++課程設(shè)計--高校職工工資管理系統(tǒng)
- c語言 職工工資管理系統(tǒng)設(shè)計報告
- 職工工資管理系統(tǒng)設(shè)計課程設(shè)計
- 課程設(shè)計報告--職工工資管理系統(tǒng)設(shè)計
- 職工工資管理系統(tǒng)設(shè)計的課程設(shè)計
- 數(shù)據(jù)庫課程設(shè)計--職工工資管理
- c語言單鏈表實現(xiàn)職工工資管理
評論
0/150
提交評論