版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
TOC\o"1-5"\h\z\o"CurrentDocument"一、 需求分析 2\o"CurrentDocument"二、 概要设计 2\o"CurrentDocument"三、 详细设计 5\o"CurrentDocument"四、 调试分析 18\o"CurrentDocument"五、 用户手册 19\o"CurrentDocument"六、 测试数据 19\o"CurrentDocument"七、 附录 23一、需求分析职工工资管理系统功能设计要求(1) 输入记录:将每一个职工的姓名、ID号以及基本工资、职务工资、岗位津贴、医疗保险、公积金的数据作为一个记录。-该软件能建立一个新的数据文件或给已建立好的数据文件增加记录。(2) 显示记录:根据用户提供的记录或者根据职工姓名显示一个或几个职工的各项工资和平均工资。 (3) 修改记录:可以对数据文件的任意记录的数据进行修改并在修改前后对记录内容进行显示。(4) 查找记录:可以对数据文件的任意记录的数据进行查找并在查找前后对记录内容进行显示。(5) 删除记录:可删除数据文件中的任一记录。(6) 统计:(A)计算各项工资平均工资及总工资,(B)・统计符合指定条件(如职工工资前三项之和在3000元以上、3000~2000元、2000~1000元)以内的工资职工人数及占总职工人数的百分比。(C)按字符表格形式打印全部职工工资信息表及平均工资(•包括各项总的平均工资)。(7) 保存数据文件功能。例如:职工工资信息表ID号姓名基本工资职务工资津贴医疗保险-公积金-总工资01张望1286794198109135203402李明118562813594114174003王小民895438986473129404张效章1350868210116150 216205彭山7453988461681098各项平均工资1092.2625.214588.8108(要求:1.源文件采用多文件的工程结构2.数据存储采用文件形式3.标准的C输入输出4.功能完善,适当的注释,5.关于文件的内容需要自学)二、概要设计1、程序总体功能框架:
2、一些数据结构的介绍:structworker定义职工的结构体(intnum; 职工工号charname[20]; 职工姓名int jibengongzi; 职工的基本工资int zhiwugongzi; 职工的职务工资int jintie; 职工的津贴int yiliaobaoxian; 职工的医疗保险int gongjijin; 职工的公积金intqiansan;职工前三项工资(基本工资、职务工资、津贴)之和intsum; 职工的总工资}worker[100]; 建立最多为100,、名为worker的结构体3、定义主要的函数:voidmenu();voidInput();voidModify();voidSearch();voidAdd();voidDelete();voidShow();voidExit();4、几个主要函数介绍:①清屏函数:system(〃cls〃); 将前面操作的屏幕清楚,但不会清除数据①菜单函数:menu();①输入函数:Input。;①修改函数:Modify();①查找函数:Search();①添加函数:Add();①删除函数:Delete();①显示函数:Show();①退出函数:Exit();①选择函数:select();显示主菜单,便于选择用于输入数据用于修改数据用于查找信息用于增加信息用于删除信息用于显示信息用于退出该系统用于选择显示信息或返回到菜单Q保存信息的函数:save(): 用于保存信息①保存人数的函数:P();用于保存已保存数据的人数5、本程序模块结构⑴主函数模块intmain(){system("clsn);menu();}执行主函数后,执行菜单函数。⑵菜单函数模块voidmenu(){intn;system("cls");printf("\n\n\n");printf("\t\t****\n");printf("\t\t**Ifyouwerethefirsttoenterthesystem**\n");printf("\t\t**printf("\t\t**printf("\t\t**printf("\t\t**pleaseselectInput! **\n");**\n"); Input **\n"); Modify **\n");printf("\t\t**3—---Search**\n");printf("\t\t**4-------Add**\n");printf("\t\t**5——---Delete**\n");printf("\t\t**6------Show**\n");printf("\t\t**7------Exit**\n");printf("\t\t****\n");j X11\j\j \ 11A<■-I-J 1 1■•-,J>,J>,J>,J>,J>,J>,J>,J>,J>,J>,J>,J>,J>,J>,J>,J>,J>,J>,J>,J>,J>,J>,J>,J>,J>,J>,J>,J>,J>,J>,J>,J>,J>,J>,J>,J>,J>,J>,J>,J>,J>,J>,J>,J>,J>,J>,J>1 ''|•printf("\t\t\n");printf("\n\n");printf("\t\tInputyourchoose(1-7):");scanf("%d",&n);if(n>=1&&nv=7){switch(n){case1:Input();break;case2:Modify();break;case3:Search();break;case4:Add();break;case5:Delete();break;case6:Show();break;case7:Exit();break;}}elsemenu();}菜单函数中包括输入函数、修改函数、查找函数、添加函数、删除函数、显示函数、退出函数。根据菜单中各个函数代表的数字选择相应的数字进行操作。三、详细设计#include"stdio.h"#include"string.h"structworker 〃定义结构体{intnum;charname[20];intjibengongzi;intzhiwugongzi;intjintie;intyiliaobaoxian;intgongjijin;intqiansan;intsum;}worker[100];voidmenu(); 〃定义几个主要的函数voidInput();voidModify();voidSearch();voidAdd();voidDelete();voidShow();voidExit();intmain() 〃主函数{system("cls");menu();}voidmenu() 〃菜单函数{intn;system("cls"); 〃清屏printf("\n\n\n"); 〃菜单界面printf("\t\t****\n");printf("\t\t**Ifyouwerethefirsttoenterthesystem**\n");printf("\t\t**pleaseselectInput!**\n");printf("\t\t****\n");printf("\t\t**1 Input**\n");printf("\t\t**2 Modify**\n");printf("\t\t**3 Search**\n");printf("\t\t**4 Add**\n");printf("\t\t**5 Delete**\n");
Show Exitprintf("\t\t**6 Show**\n");printf("\t\t**7 Show Exitprintf("\t\t\n");printf("\n\n");printf("\t\tInputyourchoose(1-7):");〃选择需要进行的功能,选择1-7之间的数scanf("%d",&n);if(n>=1&&nv=7){switch(n) 〃根据选择不同的数,实现不同的功能{case1:Input();break;case2:Modify();break;case3:Search();break;case4:Add();break;case5:Delete();break;case6:Show();break;case7:Exit();break;}}elsemenu(); 〃如果选择的数不在1至7之间,返回菜单重新输入}voidInput() 〃输入函数{inti,p;clrscr();printf("\n\nHowmanypeople?(0-100):");〃输入需要输入信息的职工人数scanf("%d",&p);if(p>=0&&pv=100) 〃输入职工的信息{printf("\n\n");printf("Pleaseinputdata:\n");printf("\n");f1();for(i=0;ivp;i++){input(i);worker[i].sum=worker[i].jibengongzi+worker[i].zhiwugongzi+worker[i].jintie-worker[i].yiliaobaoxian-worker[i].gongjijin;〃计算职工的总工资
〃职worker[i].qiansan=worker[i].jibengongzi+worker[i].zhiwugongzi+worker[i].jintie;〃职工前三项工资(基本工资、职务工资、津贴)之和}}〃如果输入的职工人数超过100〃如果输入的职工人数超过100,返回输入函数重新输入〃保存输入的职工信息〃选择显示信息或返回到菜单Input。;save(p);select。;}voidModify。 〃修改函数{inti,j=-1,d,k,t,n;charm[20];FILE*fp; 〃定义一个文件指针system("cls"); 〃清屏n=P();printf("\n\n");printf("Choosethewayyouwanttomodify:\n");〃选择通过何种方式修改信息printf("\n\n"); 〃选择方式的界面printf("\t\t****************************************\n");printf("\t\t*printf("\t\t*printf("\t\t*printf("\t\t*printf("\t\t*1.Bynametomodify2.Bynumbertomodify*\n");*\n");*\n");*\n");*\n");printf("\t\t****************************************\n");printf("\ninputyourselection:");scanf("%d",&d);if(d!=1&&d!=2)printf("\ninputerror!Pressanykeytocontinue.");getchar();Modify();〃选择的数字错误,返回修改函数重新选择}elseif(d=1){do{printf("\nPleaseinputthename:");〃输入需要修改职工的姓名scanf("%s",m);for(i=0;ivn;i++)if(strcmp(m,worker[i].name)==0)j=i;if(j==-1)printf("\nNotfind!Pleaseinputagain!\n");〃没有找到该职工,重新输入}while(j==-1);}else{do{printf("\nPleaseinputthenum:");〃输入需要修改职工的工号scanf("%d”,&k);for(i=0;ivn;i++)if(k=worker[i].num)j=i;if(j==-1)printf("\nNotfind!Pleaseagain!\n");〃没有找到该职工,重新输入}while(j==-1);}printf("\nWhatdoyouwanttomodify?\n\n");〃需要修改信息的界面piintf("\t\t**************************************\n");printf("\t\t**\n");printf("\t\t*1.name2.number*\n");printf("\t\t**\n");printf("\t\t*3.jibengongzi4.zhiwugongzi*\n");printf("\t\t**\n");printf("\t\t*5.jintie6.yiliaobaoxian*\n");printf("\t\t**\n");printf("\t\t*7.gongjijin*\n");printf("\t\t**\n");printf("\t\t**************************************\n");printf("\nPleaseinputyourselection:");〃选择需要修改的信息scanf("%d",&t);switch(t) 〃通过选择的数字,实现修改该信息{case1:printf("\nbeforemodify:%s",worker[j].name);printf("\nchangeto:");scanf("%s",worker[j].name);printf("\naftermodify:%s",worker[j].name);break;case2:printf("\nbeforemodify:%d",worker[j].num);printf("\nchangeto:");scanf("%d",&worker[j].num);printf("\naftermodify:%d",worker[j].num);break;case3:printf("\nbeforemodify:%d",worker[j].jibengongzi);printf("\nchangeto:");scanf("%d",&worker[j].jibengongzi);printf("\naftermodify:%d",worker[j].jibengongzi);break;case4:printf("\nbeforemodify:%d”,worker[j].zhiwugongzi);printf("\nchangeto:");scanf("%d”,&worker[j].zhiwugongzi);printf("\naftermodify:%d",worker[j].zhiwugongzi);break;case5:printf("\nbeforemodify:%d",worker[j].jintie);printf("\nchangeto:");scanf("%d",&worker[j].jintie);printf("\naftermodify:%d",worker[j].jintie);break;case6:printf("\nbeforemodify:%d",worker[j].yiliaobaoxian);printf("\nchangeto:");scanf("%d",&worker[j].yiliaobaoxian);printf("\naftermodify:%d",worker[j].yiliaobaoxian);break;case7:printf("\nbeforemodify:%d",worker[j].gongjijin);printf("\nchangeto:");scanf("%d",&worker[j].gongjijin);printf("\naftermodify:%d",worker[j].gongjijin);break;default:printf("Error!choiceagain!!\n");break;}getchar();printf("\n");f2();worker[j].sum=worker[j].jibengongzi+worker[j].zhiwugongzi+worker[j].jintie-worker[j].yiliaobaoxian-worker[j].gongjijin;〃职工的总工资output(j);printf("\nSaveit?\n\nl.Yes2.No\n");〃询问是否保存修改后的信息scanf("%d",&i);if(i==1)save(n); 〃保存修改后的信息printf("\nPressanykeytoback!");〃返回到菜单getchar();menu();}voidSearch() 〃查找函数{inti,j=-l,k,d,n;charm[20];n=P();system("cls");〃清屏printf("Choosethewayyouwanttosearch:\n");〃选择通过何种方式查找信息
printf("\n\n"); 〃选择方式的界面printf("\t\t****************************************\n");printf("\t\t*printf("\t\t*printf("\t\t*printf("\t\t*printf("\t\t*1.Bynametosearchprintf("\n\n"); 〃选择方式的界面printf("\t\t****************************************\n");printf("\t\t*printf("\t\t*printf("\t\t*printf("\t\t*printf("\t\t*1.Bynametosearch2.Bynumbertosearch*\n");*\n");*\n");*\n");*\n");printf("\t\t****************************************\n");printf("\n\n");printf("Pleaseinputyourselection:");〃选择查找的方式scanf("%d”,&d);if(d==2){do{printf("\nPleaseinputthenumber:");〃输入需要查找的职工工号scanf("%d”,&k);for(i=0;ivn;i++){if(k==worker[i].num)j=i;}if(j==-1)printf("Notfind!Pleaseinputagain!\n");〃没有找到该职工,重新输入}while(j==-1);printf("\n");f2();output(j); 〃输出信息}elseif(d==1){do{printf("\nPleaseinputthename:"); 〃输入需要查找的职工姓名scanf("%s",m);for(i=0;ivn;i++)if(strcmp(m,worker[i].name)==0)j=i;if(j==-1)printf("Notfind!Pleaseinputagain!\n");〃没有找到该职工,重新输入}while(j==-1);printf("\n");f2();output(j); 〃输出信息}if(d!=1&&d!=2){printf("\nInputerror!Pressanykeytocontinue.");〃输入错误,按enter键继续getchar();Search(); 〃返回到查找函数}select(); 〃选择显示信息或返回到菜单}voidAdd() 〃添加函数{inti,k,m,n;FILE*fp; 〃定义一个文件指针system("cls");〃清屏n=P();printf("\n\nHowmanypeopledoyouwanttoadd:"); 〃输入需要添加的职工人数scanf("%d”,&m);k=m+n;if(k<=100){printf("\n\nPleaseinputtheirinformation:\n\n");〃输入添加的职工信息f1();for(i=n;ivk;i++){input(i);worker[i].sum=worker[i].jibengongzi+worker[i].zhiwugongzi+worker[i].jintie-worker[i].yiliaobaoxian-worker[i].gongjijin;〃职工的总工资}if((fp=fopen("D:\\zggz.txt”,"ab"))==NULL)〃如果文件为空,则不能打开文件{printf("\nCannotopenfile.\n"); 〃不能打开文件getchar();menu(); 〃返回到菜单}for(i=n;ivk;i++)if(fwrite(&worker[i],sizeof(structworker),1,fp)!=1)〃判断是否写入了数printf("filewriteerror.\n"); 〃文件写入错误fclose(fp); 〃关闭文件select(); 〃选择显示信息或返回到菜单
elseAdd(); 〃返回到添加函数voidDelete() 〃删除函数{inti,j=-1,d,k,t,n;charm[20];FILE*fp; 〃定义一个文件指针system("cls"); 〃清屏n=P();fp=fopen("D:\\zggz.txt”,"rb”);〃打开只读文件printf("\n\n");printf("Choosethewayyouwanttodelete:\n"); 〃选择通过何种方式删除信息printf("\n\n"); 〃删除函数的界面printf("\t\t****************************************\n");*\n");*\n");*\n");*\n");*\n");1.Bynametodelete*\n");*\n");*\n");*\n");*\n");1.Bynametodeleteprintf("\t\t*2.Bynumbertodeleteprintf("\t\t*2.Bynumbertodeleteprintf("\t\t*printf("\t\t*printf("\t\t****************************************\n");printf("\ninputyourselection:");〃选择删除的方式scanf("%d",&d);if(d!=1&&d!=2){printf("\ninputerror!Pressanykeytocontinue.");〃输入错误,按enter键继续getchar();Delete(); 〃返回到删除函数}elseif(d=1){do{printf("\nPleaseinputthename:");〃输入需要删除的职工姓名scanf("%s”,m);for(i=0;ivn;i++)if(strcmp(m,worker[i].name)==0)j=i;if(j==-1)printf("\nNotfind!Pleaseagain!\n");〃没有找到该职工,重新输入}while(j==-1);}elsedo{printf("\nPleaseinputthenum:"); 〃输入需要删除的职工工号scanf("%d",&k);for(i=0;ivn;i++)if(k==worker[i].num)j=i;if(j==-l)printf("\nNotfind!Pleaseagain!\n");〃没有找到该职工,重新输入}while(j==-1);}printf("\n");f2();for(i=j;ivn-1;i++)worker[i]=worker[i+1]; 〃删除信息后,将后面的职工信息按原来的顺序补充for(i=0;ivn-1;i++)output(i);printf("Saveit?\n\n1.Yes2.No\n");〃询问是否保存删除后的职工信息scanf("%d",&i);if(i==1)save(n-1);〃保存删除后的职工信息printf("\nPressanykeytoback!");〃按enter键继续getchar();menu(); 〃返回到菜单}voidShow() 〃显示函数{inti,p,a=0,b=0,c=0,j=0,k=0,l=0,m=0,n=0;p=P();system("cls");〃清屏f2();for(i=0;ivp;i++)output(i);printf("\nnaveragesalary:\n");for(i=0;ivp;i++) 〃各项工资的总和{j+=worker[i].jibengongzi;k+=worker[i].zhiwugongzi;l+=worker[i].jintie;m+=worker[i].yiliaobaoxian;n+=worker[i].gongjijin;}printf("%13d%11d%12d%7d%15d”,j/p,k/p,l/p,m/p,n/p);printf("\n(qiansanxiang)renshubaifenbi\n");for(i=0;i<p;i++)〃统计前三项工资在各个范围内的人数{if(worker[i].qiansan>3000)a++;elseif(worker[i].qiansan>=2000&&worker[i].qiansan<=3000)b++;elseif(worker[i].qiansan>=1000&&worker[i].qiansan<=2000)c++;}〃显示前三项工资在各个范围内的人数及所占人数的百分比printf("over3000:%-7d%6d%%\n”,a,(a*100/p));printf(" 2000〜3000:%-7d%6d%%\n”,b,(b*100/p));printf(" 1000〜2000:%-7d%6d%%\n”,c,(c*100/p));printf("\n");printf("Pressanykeytoback.");getchar();menu(); 〃返回到菜单}voidExit() 〃退出函数{inti,p,a=0,b=0,c=0,j=0,k=0,l=0,m=0,n=0;p=P();system("cls"); 〃清屏f2();for(i=0;i<p;i++)output(i);printf("\nnaveragesalary:\n");for(i=0;i<p;i++) 〃各项工资的总和{j+=worker[i].jibengongzi;k+=worker[i].zhiwugongzi;l+=worker[i].jintie;m+=worker[i].yiliaobaoxian;n+=worker[i].gongjijin;}printf("%13d%11d%12d%7d%15d",j/p,k/p,l/p,m/p,n/p);printf("\n(qiansanxiang)renshubaifenbi\n"); for(i=0;i<p;i++) 〃统计前三项工资在各个范围内的人数{if(worker[i].qiansan>3000)
a++;elseif(worker[i].qiansan>=2000&&worker[i].qiansan<=3000)b++;elseif(worker[i].qiansan>=1000&&worker[i].qiansan<=2000)c++;printf(printf(printf(!!!!!!〃显示前三项工资在各个范围内的人数及所占人数的百分比over3000:%-7d%6d%%\n”,a,(a*100/p));2000〜3000:%-7d%6d%%\n”,b,(b*100/p));1000〜printf(printf(printf(!!!!!!〃显示前三项工资在各个范围内的人数及所占人数的百分比over3000:%-7d%6d%%\n”,a,(a*100/p));2000〜3000:%-7d%6d%%\n”,b,(b*100/p));1000〜2000:%-7d%6d%%\n”,c,(c*100/p));printf("\n");getchar();system("cls"); 〃清屏printf("\n\n\n\n\n\n\n\n"); 〃退出系统的界面printf("\tprintf("\tprintf("\tprintf("\tprintf("\tprintf("\t****Thankyoufortheuseofstaffwagemanagementsystem!********Good-bye!**\n");**\n");**\n");**\n");**\n");**\n");f1(){f1(){printf("\t\t\n\n");getchar();printf("numnamejibengongzizhiwugongzijintieyiliaobaoxiangongjijin\n\n");f2(){printf("numnamejibengongzizhiwugongzijintieyiliaobaoxiangongjijinsum\n\n");input(inti) 〃将输入的信息保存到结构体中{scanf("%d%s%d%d%d%d%d”,&worker[i].num,worker[i].name,&worker[i].jibengongzi,&worker[i].zhiwugongzi,&worker[i].jintie,&worker[i].yiliaobaoxian,&worker[i].gongjijin);}output(inti) 〃输出信息{printf("%-3d%-5s%-12d%-12d%-8d%-14d%-10d%-7d\n\n",worker[i].num,worker[i].name,worker[i].jibengongzi,worker[i].zhiwugongzi,worker[i].jintie,worker[i].yiliaobaoxian,worker[i].gongjijin,worker[i].sum);}select() 〃选择函数{inti;printf("\n\n");printf("\t\t\t*Successful!*\n");printf("\n\n");printf("Whatdoyouwanttodonow?\n\n1.Showalldata2.Back\n");〃选择显示信息或返回scanf("%d",&i);if(i==1)Show(); 〃返回到显示函数elseif(i==2)menu(); 〃返回到菜单}save(intn) 〃向文件中输入数据{FILE*fp;〃定义一个文件指针inti;if((fp=fopen(”D:\\zggz.txt”,”wb”))==NULL)〃判断打开的写入文件是否为空{printf("\nCannotopenfile.\n");returnNULL;}for(i=0;i<n;i++)if(worker[i].num!=0)if(fwrite(&worker[i],sizeof(structworker),1,fp)!=1) 〃判断是否写入了数printf("filewriteerror!\n"); 〃写入文件错误fclose(fp);〃关闭文件}P(){FILE*fp; 〃定义一个文件指针inti;if((fp=fopen("D:\\zggz.txt","rb"))==NULL)〃判断打开的只读文件是否为空{printf("\nCannotopenfile.\n");returnNULL;}for(i=0;!feof(fp);i++)fread(&worker[i],sizeof(structworker),l,fp); 〃读取文件fclose(fp); 〃关闭文件return(i-1);}四、调试分析1、 使用getchar()可以使字符一个个地存入缓冲区。2、 在删除、修改、添加函数中save(保存)函数,可以有针对性地保存需要保存的文件。3、 使用input(输入)和output(输出)的子函数,可以避免多次写入信息的麻烦。4、 P()函数在保存删除、修改后的人数中有很大的作用,在以后的调用保存的人数中起到了很大的作用5、 用数字代替需要选择的选项,避免了输入字符的麻烦。 6、 该程序使用的是结构体,没有用到链表,所以在删除数据后需要将后面的数据放到前面,故将第n+1个职工的信息赋给第n个职工。
五、用户手册1、 在进入系统后显示菜单。有输入函数、修改函数、查找函数、添加函数、删除函数、显示函数、退出函数可供选择。用户可以依次用1至7,七个数字选择需要进行的操作(说明:如果用户第一次进入该系统,或以前进入系统没有保存数据,需要选择1即选择输入函数输入数据)。2、 在删除、修改、添加信息完成后会询问用户是否保存当前的信息,用户可根据自己的需要选择是否保存信息。3、 在几个函数最后会询问用户显示当前的信息或是返回到菜单,用户可以自己的需要选择。 4、 用户在选择时需注意各个数字代表的字符。5、 用户在输入职工的人数后点击enter键,如果依然停在当前页面,需注意所输入的总职工人数是否超过了总人数N(该程序中N定义为100)。6、 注:职工工号为整型,不是字符型。六、测试数据菜单界面:If:.euwerethefirsttuenterpleaseselectInput!ern*-*If:.euwerethefirsttuenterpleaseselectInput!ern*-*Input«-9tModifySearchAddDelateShauExit«-9tInputyourchovseC1-7):
选择1(输入):outanupeople?2nmnctmejihengong呂:lsh^viuqDnqsLjmCxey^lxaabaoxxangongjxjinshctnKli128611858593904shctnKli1286118585939041954311Lwhatdoyou.返回菜单,选择2(修改):choosethe udnttomudif;i:TOC\o"1-5"\h\zJOCJCJCXKNXJtJCJCJCJCJCKN雑JCJCJCJCJCJCKXJtJCJCJCJCJCJClCXJtJOCJCJCX素 *I.Eyn-ametonodifjj *2.旳numbertorwdify *JOCJtXNlOCXJtJCJCKXJCKNXJCJCXKJtJCKXJtMZKXJCJ(直ICXJtJOCJtXN:nput!?ourselection:1le-aseinputthename:zhangUhatdo■/ouw-anttoModify?JtJCJCJCJCJCJCKN雑JCJCJCJCJCJCKXJtJCJCJCJCJCJClCXJtJOCJCJCXlClCXJtJC暮**1.ndme 2.number斐簣3Jjibengongzi ^.zhiwugengzi**■se*5jjintie 6.jiiliaubaoxian**7.gongjijin**■sePleaseinputyourse1eelinn:3beforemodifjf:12Stchangeto:13B6Inuntnamejibengangzizhiwu^on^zijintieyi]iaabdDKiangonyjijinsumszhang13S6 了外 1?8 1B? 135 2134^dveit?I.Ves2.No1返回菜单,选择3(查找):^boosetheu-a;,^auuanttosearch:JOCJCJCJCJCICXJtJCJCJCJCJCJCKHXJCJCJCJCJCJCICNJtJCJCJCJCJCICXNJtJCJCJCJCTOC\o"1-5"\h\z1_EjlndEnetosearch *8■旳numbertosearch ■*ee ■»JCKKJtKJtItiOtJCKJtJtJCJtJtXKICJtKKJtKKWJCJtJCJtJtKWXJtJCKJtK?le-aseinputsiourselection:1Pleaseinputthenunberzlnumnanejibengangzizhiuu^^ngzijintie}jiliaobauKianqungjijin sun1zhang13S£ 79。 19S109 13& 2134裝Successful!*Uhatdnyouuanttodonow?JShuvjalldata2.Bdck2返回菜单,选择4(添加):ISowmanypeoplet!oyoxwanttoadd:1Pleaseinputtheirinforndti^n;fiUMnanejibengangzizhiuugongzijintieliaobaoKiangnngjijin3 岫ng S95 43» 99 64 73*Successful!■*四hatdo/quw^nttod«now?1.Showallddta2.Rack2返回菜单,选择5(删除):Choosethejjouuanitodelete.XJtJOCJtXNlOCXJCXXJ(直ICKNXJCJtXKJtKXJtJCXKXJCJtJOtXJCXKJt*■** nameladelete■»*** 2-Bvnumbertodelete■at*■*XJtJCXJIJCJIJOCXJCXXJIJIKKXXJCJIJCXJIlCXJtJCXJIXJCJIJOCXJCJCXJIinputj/ourselection:2Pleaseinputthenun:3nunnamejibengongzizhiwugongzijintieyilLaobdOMiangongjijinsun1zh^ng13S&欢198 1091翡2134Wli 110G伽135 9k11117M1Saveit?I.Ves2_No1返回菜单,选择6(显示):nunnanejibengongzizhiuugongzijintiegnnyjijinsum1zhang13S6 了地 19810J13521342li 1185 G髒 135时1U17网^averagesal^r^:1285 711 侦(qianmnxi-ang)renshubaifenbjover3。關:& 0^2Di;r3nno:i 聽関1聊叶的的” 5聯Ml124;■ressanjf toback.返回菜单,选择7(退出):显示保存的数据:nunnamejibengongzizhiuugcngzijintie^ilidnitaoxiangangjijinsun1zh^ng13M了奴19810913521342li1185135941141TMJnaveragesalar^Z128571116610113Cqiansankiang)renshubaifenbiouet-訓龍德㈱209dw3DflD:15D器葡叩囉由囑15网退出系统的界面:**Thankonfortheuseofstaffuagemanagenentsvsten!*■*■貝 NX** Good-bye! **七、附录源程序#include"stdio.h"#defineN100#include"string.h"structworker{intnum;charname[20];intjibengongzi;intzhiwugongzi;intjintie;intyiliaobaoxian;intgongjijin;intqiansan;intsum;}worker[N];voidmenu。;voidInput。;voidModify。;voidSearch。;voidAdd();voidDelete();voidShow();voidExit();intmain(){system("cls");menu();}voidmenu(){intn;system("cls");printf("\n\n\n");printf("\t\t****\n");printf("\t\t**Ifyouwerethefirsttoenterthesystem**\n");printf("\t\t**pleaseselectInput!**\n");printf("\t\t****\n");printf("\t\t**1- Input**\n");printf("\t\t**2- Modify**\n");printf("\t\t**3- Search**\n");printf("\t\t**4- Add**\n");printf("\t\t**5- Delete**\n");printf("\t\t**6- Show**\n");printf("\t\t**7- Exit**\n");printf("\t\t****\n");printf("\t\t\n,printf("\n\n");printf("\t\tInputyourchoose(l-7):");scanf("%d",&n);if(n>=l&&nv=7){switch(n){case1:Input();break;case2:Modify();break;case3:Search();break;case4:Add();break;case5:Delete();break;case6:Show();break;case7:Exit();break;}}elsemenu。;}voidInput(){inti,p;clrscr();printf("\n\nHowmanypeople?(0-100):");scanf("%d",&p);if(p>=0&&pv=N){printf("\n\n");printf("Pleaseinputdata:\n");printf("\n");printf("numnamejibengongzizhiwugongzijintieyiliaobaoxiangongjijin\n\n");for(i=0;ivp;i++){input(i);worker[i].sum=worker[i].jibengongzi+worker[i].zhiwugongzi+worker[i].jintie-worker[i].yiliaobaoxian-worker[i].gongjijin;worker[i].qiansan=worker[i].jibengongzi+worker[i].zhiwugongzi+worker[i].jintie;}}elseInput();save(p);select();}voidModify(){inti,j=-l,d,k,t,n;charm[20];FILE*fp;system("cls");n=P();printf("\n\n");}}printf("Choosethewayyouwanttomodify:\n");printf("\n\nn);printf("\t\t****************************************\n");printf("\t\t**\n");printf("\t\t*1.Bynametomodify*\n");printf("\t\t**\n");printf("\t\t*2.Bynumbertomodify*\n");printf("\t\t**\n");printf("\t\t****************************************\n");printf("\ninputyourselection:");scanf("%d",&d);if(d!=l&&d!=2){printf("\ninputerror!Pressanykeytocontinue.");getchar();Modify();}elseif(d==1){do{printf("\nPleaseinputthename:");scanf("%s",m);for(i=0;ivn;i++)if(strcmp(m,worker[i].name)==O)j=i;if(J==-1)printf("\nNotfind!Pleaseinputagain!\n");}while(j==-1);}else{do{printf("\nPleaseinputthenum:");scanf("%d",&k);for(i=0;ivn;i++)if(k==worker[i].num)j=i;if(j==-1)printf("\nNotfind!Pleaseagain!\n");printf("\naftermodify:%d",worker[j].yiliaobaoxian);break;case7:printf("\nbeforemodify:%d”,worker[j].gongjijin);printf("\nchangeto:");scanf("%d”,&worker[j].gongjijin);printf("\naftermodify:%d",worker[j].gongjijin);break;default:printf("Error!choiceagain!!\n");break;}getchar();printf("\n");printf(numnamejibengongzizhiwugongzijintieyiliaobaoxiangongjijinsum\n\n");worker[j].sum=worker[j].jibengongzi+worker[j].zhiwugongzi+worker[j].jintie-worker[j].yiliaobaoxian-worker[j].gongjijin;output(j);printf("\nSaveit?\n\nl.Yes2.No\n");scanf("%d",&i);if(i==1)save(n);printf("\nPressanykeytoback!");getchar();menu();}voidSearch(){inti,j=-l,k,d,n;charm[20];n=P();system("cls");printf("Choosethewayyouwanttosearch:\n");printf("\n\n");printf("\t\t****************************************\n");*\n");*\n");*\n");*\n");*\n");printf("\t\t*printf("\t\t*printf("\t\t*printf("\t\t*printf("\t\t*printf("\t\t****************************************\n");*\n");*\n");*\n");*\n");*\n");printf("\t\t*printf("\t\t*printf("\t\t*printf("\t\t*printf("\t\t*1.Bynametosearch2.Bynumbertosearchprintf("\t\t****************************************\n");printf("\n\n");printf("Pleaseinputyourselection:");scanf("%d",&d);if(d==2)do}}printf("\nPleaseinputthenumber:");scanf("%dn,&k);for(i=0;ivn;i++){if(k==worker[i].num)j=i;}if(j==-1)printf("Notfind!Pleaseinputagain!\n");}while(j==-1);printf("\n");printf(numnamejibengongzizhiwugongzijintieyiliaobaoxiangongjijinsum\n\n");output(j);}elseif(d==1){do{printf("\nPleaseinputthename:");scanf("%s",m);for(i=0;ivn;i++)if(strcmp(m,worker[i].name)==0)j=i;if(j==-1)printf("Notfind!Pleaseinputagain!\n");}while(j==-1);printf("\n");printf("numnamejibengongzizhiwugongzijintieyiliaobaoxiangongjijinsum\n\n");output(j);}if(d!=1&&d!=2){printf("\nInputerror!Pressanykeytocontinue.");getchar();Search();}select();voidAdd(){inti,k,m,n;FILE*fp;system("clsn);n=P();printf("\n\nHowmanypeopledoyouwanttoadd:");scanf("%d",&m);k=m+n;if(k<=N){printf("\n\nPleaseinputtheirinformation:\n\n");printf("numnamejibengongzizhiwugongzijintieyiliaobaoxiangongjijin\n\n");for(i=n;ivk;i++){input(i);worker[i].sum=worker[i].jibengongzi+worker[i].zhiwugongzi+worker[i].jintie-worker[i].yiliaobaoxian-worker[i].gongjijin;}if((fp=fopen("D:\\zggz.txt”,"ab"))==NULL){printf("\nCannotopenfile.\n");getchar();menu();}for(i=n;ivk;i++)if(fwrite(&worker[i],sizeof(structworker),1,fp)!=1)printf("filewriteerror.\n");fclose(fp);select();}elseAdd();}voidDelete(){inti,j=-1,d,k,t,n;charm[20];FILE*fp;system("cls");n=P();fp=fopen("D:\\zggz.txt","rb");printf("\n\n");printf("Choosethewayyouwanttodelete:\n");printf("\n\n");printf("\t\t****************************************\n");printf("\t\t*printf("\t\t*printf("\t\t*printf("\t\t*printf("\t\t*1.Bynametodelete2.Bynumbertodelete*\n,*\n");*\n");*\n,*\n,printf("\t\t****************************************\n");printf("\ninputyourselection:");scanf("%d",&d);if(d!=1&&d!=2){printf("\ninputerror!Pressanykeytocontinue.");getchar();Delete();}elseif(d==1){do{printf("\nPleaseinputthename:");scanf("%s",m);for(i=0;ivn;i++)if(strcmp(m,worker[i].name)==O)j=i;if(j==-1)printf("\nNotfind!Pleaseagain!\n");}while(j==-1);}else{do{printf("\nPleaseinputthenum:");scanf("%d”,&k);for(i=0;ivn;i++)if(k==worker[i].num)j=i;if(j==-1)printf("\nNotfind!Pleaseagain!\n");gongjijingongjijingongjijingongjijinwhile(j==-1);}printf("\nn);printf("numnamejibengongzizhiwugongzijintieyiliaobaoxiansum\n\n");for(i=j;ivn-1;i++)worker[i]=worker[i+1];for(i=0;ivn-1;i++)output(i);printf("Saveit?\n\n1.Yes2.No\n");scanf("%d”,&i);if(i=1)save(n-1);printf("\nPressanykeytoback!");getchar();menu();}voidShow(){inti,p,a=0,b=0,c=0,j=0,k=0,l=0,m=0,n=0;p=P();system("cls");printf("numnamejibengongzizhiwugongzijintieyiliaobaoxiansum\n\n");for(i=0;ivp;i++)output(i);printf("\nnaveragesalary:\n");for(i=0;ivp;i++){j+=worker[i].jibengongzi;k+=worker[i].zhiwugongzi;l+=worker[i].jintie;m+=worker[i].yiliaobaoxian;n+=worker[i].gongjijin;}printf("%13d%11d%12d%7d%15d",j/p,k/p,l/p,m/p,n/p);printf("\n(qiansanxiang)renshubaifenbi\n");for(i=0;ivp;i++){if(worker[i].qiansan>3000)a++;elseif(worker[i].qiansan>=2000&&worker[i].qiansanv=3000)b++;elseif(worker[i].qiansan>=1000&&worker[i].qiansan<=2000)c++;}printf(" over3000:%-7d%6d%%\n",a,(a*100/p));printf(” 2000〜3000:%-7d%6d%%\n”,b,(b*100/p));printf(" 1000~2000:%-7d%6d%%\n",c,(c*100/p));printf("\n");printf("Pressanykeytoback.");getchar();menu();}voidExit(){inti,p,a=0,b=0,c=0,j=0,k=0,l=0,m=0,n=0;p=P();system("cls");printf(numnamejibengongzizhiwugongzijintieyiliaobaoxiangongjijinsum\n\n");for(i=0;i<p;i++)output(i);printf("\nnaveragesalary:\n");for(i=0;i<p;i++){j+=worker[i].jibengongzi;k+=worker[i].zhiwugongzi;l+=worker[i].jintie;m+=worker[i].yiliaobaoxian;n+=worker[i].gongjijin;}printf("%13d%11d%12d%7d%15d",j/p,k/p,l/p,m/p,n/p);printf("\n(qiansanxiang)renshubaifenbi\n");for(i=0;i<p;i++){if(worker[i].qiansan>3000)a++;elseif(worker[i].qiansan>=2000&&worker[i].qiansan<=3000)b++;elseif(worker[i].qiansan>=1000&&worker[i].qiansan<=2000)c++;}printf(" over3000:%-7d%6d%%\n",a,(a*100/p));printf(" 2000〜3000:%-7d%6d%%\n”,b,(b*100/p));printf(" 1000〜2000:%-7d%6d%%\n",c,(c*100/p));printf("\nn);getchar();system("clsn);printf("\n\n\n\n\n\n\n\nn);printf("\t ** **\n");printf("\t **Thankyoufortheuseofstaffwagemanagementsystem! **\n");printf("\t ** **\n");printf("\t ** **\n");printf("\t** Good-bye! **\n");printf("\t ** **\n");printf("\t\t\n\n,getchar();input(inti){scanf("%d%s%d%d%d%d%d”,&worker[i].num,worker[i].name,&worker[i].jibengongzi,&worker[i].zhiwugongzi,&worker[i].jintie,&worker[i].yiliaobaoxian,&worker[i].gongjijin);}output(inti){printf("%-3d%-5s%-12d%-12d%-8d%-14d%-10d%-7d\n\n”,worker[i].num,worker[i].name,worker[i].jibengongzi,worker[i].zhiwugongzi,worker[i].jintie,worker[i].yiliaobaoxian,worker[i].gongjijin,worker[i].sum);}select(){inti;printf("\n\n");printf("\t\t\t*Successful!*\n");printf("\n\n");printf("Whatdoyouwanttodonow?\n\nl.Showalldata2.Back\n");scanf("%d",&i);if(i==1)Show();elseif(i==2)menu();save(intn){FILE*fp;inti;if((fp=fopen("D:\\zggz.txt”,"wb"))==NULL){printf("\nCannotopenfile.\n");returnNULL;}for(i=0;ivn;i++)if(worker[i].num!=O)if(fwrite(&worker[i],sizeof(structworker),1,fp)!=1)printf("filewriteerror!\n");fclose(fp);}P(){FILE*fp;inti;if((fp=fopen("D:\\zggz.txt”,"rb"))==NULL){printf("\nCannotopenfile.'n");returnNULL;}for(i=0;!feof(fp);i++)fread(&worker[i],sizeof(structworker),1,fp);fclose(fp);return(i-1);
职工工资制度 (试行方案)一、 总则1.1为规范职员工资的确定及调整办法等有关事项,特制定本制度。1.2本制度适用于公司全体职员(即惠州本部胶驻外工作的职员)。本制度所指工资,是指每月定期发放的工资,不含奖金和津贴事项(技术系列的项目津贴除外)。二、 工资结构 2.1职员工资由固定工资、浮动工资两部门组成。2.2固定工资包括:基本工资、技能工资、住房补贴、医疗补贴。固定工资是根据职员的 职务、资历、学历、技能等因素确定的、相对固定的工作报酬。 2.3浮动工资包括:考勤工资、绩效工资、效益工资,项目开发人员还有项目津贴。浮动工资是根据员工考勤表现、工作绩效及公司经营业绩确定的、不固定的工资报酬,每月调整一次。 2.4项目津贴自研发项目经总
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2206贵州遵义市播州区市场监督管理局招聘城镇公益性岗位人员2人笔试参考题库及答案详解
- 旅游行业市场供需动态评估投资评估潜力规划前景分析研究报告
- 2026年六安金寨某国企工作人员公开招聘考试备考题库及答案详解
- 环境监测仪器行业竞争优势分析及产销占有率研究研究报告
- 宜宾发展控股集团有限公司下属子公司四川三江汇海商业保理有限公司2026年第三批员工公开招聘笔试参考试题及答案详解
- 中国重油添加剂行业发展分析及竞争策略与趋势预测研究报告
- 全球与中国低合金钢电镀锌板带行业发展现状及趋势预测分析研究报告
- 2025-2030合成生物学在化妆品原料创新中的应用前景与风险报告
- 2026年廉洁常识测试题及答案
- 2026陕西西安交通大学仪器科学与技术学院管理辅助人员招聘1人考试备考题库及答案详解
- 国家职业技术技能标准 6-31-03-04 无损检测员(试行)人社厅发202332号
- 贴身管家服务流程
- 失语症筛查评定表
- 工程项目进度控制
- 胰十二指肠切除术
- 电气设备安装工程-江西定额
- 婺源县矿产资源开发公司新田金矿采矿权出让收益评估报告
- GB/T 27050.2-2006合格评定供方的符合性声明第2部分:支持性文件
- GB/T 15166.6-2008高压交流熔断器第6部分:用于变压器回路的高压熔断器的熔断件选用导则
- 全国名校高一下学期末考试数学试题(含答案)
- 泥石流地质灾害防治工程抗滑桩监理规划
评论
0/150
提交评论