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