员工工资管理系统(c语言编程)
员工工资管理系统(c语言编程)
scanf("%s",num); p=isExists(num); p=p->next; if(p!=null) listOne(p); else printf("\n\t\t printf("\n\t\t getchar(); } 您所输入的员工信息有误或不存在! ......"); ");
按任意键返回主菜单
#include<stdio.h> #include<string.h> #include<ctype.h> #include<malloc.h> #define null 0 typedef struct Info1 { char num[10]; char name[10]; char depar[10]; char yfsalary[10]; char aband[10]; char tax[10]; char sfsalary[10]; struct Info1 *next; }Info2; typedef struct Info1 *Info; Info head; void display(); void find(); void modify(); void add(); void del(); void list(); void listOne(Info s); Info isExists(char *num); void init(); void init() { head=(Info)malloc(sizeof(Info2)); head->next=null; } void main() { init(); while(1) { char c;
p=head; q=p->next; while(q!=null) { if(strcmp(q->num,num)==0) return p; p=q; q=p->next; } return p; }
c语言课程设计职工工资管理系统源代码
绝对可以完美运行,下面有运行图片#include<stdio.h> //调用库函数#include<string.h> //字符串处理#include<conio.h> //控制台输入输出#include<stdlib.h> //定义杂项函数及内存分配函数#define N 2 //宏定义以3代替N/******************************************************************************函数声明*******************************************************************************/ void enter();int menu();void input();void output();void search();void search_employeeid();void search_name();void edit();void array();void array_basesalary();void array_postwage();void array_totalwage();void statistics();void save();void load();/******************************************************************************职工类型定义*******************************************************************************/ struct employee{char employeeid[10];char name[10];char sex[10];int age;float basesalary;float postwage;float totalwage;};/******************************************************************************职工变量定义******************************************************************************/ struct employee emp[N];struct employee replace;struct employee *p=emp;/*****************************************************************************系统主函数******************************************************************************/ void main(){int c;while(1){printf(" \n\n\n\n");printf(" 欢迎进入职工工资管理系统\n\n\n");printf(" 1 进入管理系统\n\n");printf(" 0 退出\n\n");printf(" \n\n\n\n");printf(" 请输入你选择:\n");scanf("%d",&c);switch(c){case 1:enter();break;case 0:printf(" 谢谢使用!\n");exit(0);}}}/***************************************************************************** 功能:登陆函数,进行密码验证*****************************************************************************/ void enter(){char q;char key[10],password[10]="china";int k=1,i;printf(" 请输入密码:\n");for(i=0;i<5;i++){q=getch();key[i]=q;printf("*");}while(k<=3){if(strncmp(key,password,5)==0){while(1){int a;//system("cls");a=menu();switch(a){case 1:input();break;case 2:output();break;case 3:search();break;case 4:edit();break;case 5:array();break;case 6:load();statistics();break;case 0:printf("\n\n 谢谢使用!\n\n\n\n");save();exit(0);}}}else{k++;printf(" 输入密码错误!请再次输入:");for(i=0;i<5;i++){q=getch();key[i]=q;printf("*");}if(k>2){if(strncmp(password,key,5)==0)continue;else{printf(" 输入密码错误三次,系统将自动退出!\n");exit(0);}}}}}/************************************************************************功能: 主菜单函数参数:a类型:int说明: 变量返回值: a************************************************************************/int menu(){int a ;printf("\n\n");printf("|*****************欢迎进入职工工资管理系统************************|\n");printf("| |\n");printf("| |\n");printf("| 1 职工信息输入|\n");printf("| |\n");printf("| 2 职工信息输出|\n");printf("| |\n");printf("| 3 职工信息查询|\n");printf("| |\n");printf("| 4 职工信息修改|\n");printf("| |\n");printf("| 5 工资排序|\n");printf("| |\n");printf("| 6 工资统计|\n");printf("| |\n");printf("| 0 退出|\n");printf("| |\n");printf("| |\n");printf("|*****************************************************************|\n");printf("\n\n");printf(" 请输入你所选择的选项:");scanf("%d",&a);while(a>6||a<0){printf(" error!\n");printf(" 请重新输入你所选择的选项:");scanf("%d",&a);}return a;}/********************************************************************************* ***功能:职工信息输入********************************************************************************** ***/void input(){int c;p=emp;printf(" 进入职工信息输入模块\n\n\n");for(c=0;c<N;c++,p++){p[c].totalwage=p[c].basesalary+p[c].postwage;printf(" 请输入第%d个职工信息:\n\n",c+1);printf(" 请输入职工号:\n");scanf("%s",p->employeeid);if(strcmp(p->employeeid,"0")!=0){printf(" 请输入职工姓名:\n");scanf("%s",p->name);printf(" 请输入职工性别: \n");scanf("%s",&p->sex);printf(" 请输入职工年龄: \n");scanf("%d",&p->age);printf(" 请输入职工基本工资:\n");scanf("%f",&p->basesalary);printf(" 请输入职工岗位工资:\n");scanf("%f",&p->postwage);printf(" 职工信息输入完成!\n\n");}elsereturn;}save();}/******************************************************************************* 功能:职工信息输出********************************************************************************/ void output(){int j;load();p=emp;printf(" 进入职工信息输出模块\n\n\n");printf("-------------------------------------------------------------------------------\n");printf("| 职工号|姓名|性别|年龄|基本工资|岗位工资|总工资|\n");printf("-------------------------------------------------------------------------------\n");for(j=0;j<N;j++){p[j].totalwage=p[j].postwage+p[j].basesalary;printf("|%10s|%9s|%7s| %5d| %10.2f| %10.2f| %10.2f|\n",p[j].employeeid,p[j].name,p [j].sex,p[j].age,p[j].basesalary,p[j].postwage,p[j].totalwage);printf("-------------------------------------------------------------------------------\n");}printf("\n\n 职工信息输出完成!\n\n");getchar();}/******************************************************************************功能:职工信息查询******************************************************************************/ void search(){int j;while(1){printf("*********************职工信息查询*********************\n\n\n");printf(" 1 按职工号查询\n");printf(" 2 按职工姓名查询\n");printf(" 0 退出该项操作\n");printf("\n\n");while(1){printf(" 请输入你的选择\n");scanf("%d",&j);if(j>=0&&j<=2){switch(j){case 1:search_employeeid();break;case 2:search_name();break;case 0:return;}}else{printf(" 输入错误!\n\n");printf(" 请再次输入你的选择: \n\n");}}}}/******************************************************************************* 功能:按职工号查询函数*******************************************************************************/ void search_employeeid(){char employeeid[10];int k,j;p=emp;printf("*********************按职工号查询职工信息*****************************\n\n\n\n");printf(" 请输入要查询职工的职工号:\n\n");scanf("%s",employeeid);for(k=0;k<N;k++){if(strcmp(employeeid,p->employeeid)==0){j=k;p[j].totalwage=p[j].postwage+p[j].basesalary;printf("-------------------------------------------------------------------------------\n");printf("| 职工号|姓名|性别|年龄|基本工资|岗位工资|总工资|\n");printf("|%10s|%9s|%7s| %5d| %10.2f| %10.2f| %10.2f|\n",p[j].employeeid,p[j].name,p [j].sex,p[j].age,p[j].basesalary,p[j].postwage,p[j].totalwage);printf("-------------------------------------------------------------------------------\n");break;}else{printf(" not found\n");return;}}}/*****************************************************************************功能:按职工姓名查询函数*****************************************************************************/ void search_name(){char name[10];int flog=0;int f,j;p=emp;printf("******************************按职工姓名查询职工信息***********************\n\n\n");printf(" 请输入要查询职工的姓名:\n\n");scanf("%s",name);for(f=0;f<N;f++,p++){if(strcmp(name,p->name)==0){j=f;p[j].totalwage=p[j].postwage+p[j].basesalary;printf("-------------------------------------------------------------------------------\n");printf("| 职工号|姓名|性别|年龄|基本工资|岗位工资|总工资|\n");printf("|%10s|%9s|%7s| %5d| %10.2f| %10.2f| %10.2f|\n",p[j].employeeid,p[j].name,p [j].sex,p[j].age,p[j].basesalary,p[j].postwage,p[j].totalwage);printf("-------------------------------------------------------------------------------\n");break;}else{printf(" not found \n\n");return;}}getchar();}/*******************************************************************************功能:职工信息修改函数*******************************************************************************/ void edit(){char e[10];int g=0,j;char flog;p=emp;printf(" 请输入你要修改职工的职工号:\n");scanf("%s",e);for(g=0;g<N;g++){// if(*e==p[g].employeeid)if(strcmp(e,p->employeeid)==0){j=g;p[j].totalwage=p[j].postwage+p[j].basesalary;printf("-------------------------------------------------------------------------------\n");printf("| 职工号|姓名|性别|年龄|基本工资|岗位工资|总工资|\n");printf("|%10s|%9s|%7s| %5d| %10.2f| %10.2f| %10.2f|\n",p[j].employeeid,p[j].name,p[j].sex ,p[j].age,p[j].basesalary,p[j].postwage,p[j].totalwage);printf("-------------------------------------------------------------------------------\n");printf(" 是否要修改该职工信息?y(是)or n(否)?\n\n");getchar();scanf("%c",&flog);if(flog == 'y'){printf(" 请输入新姓名:\n");scanf("%s",p->name);printf(" 请输入性别:\n");scanf("%s",&p->sex);printf(" 请输入年龄:\n");scanf("%d",&p->age);printf(" 请输入基本工资:\n");scanf("%f",&p->basesalary);printf(" 请输入岗位工资:\n");scanf("%f",&p->postwage);printf(" 修改职工信息成功!\n\n");}if(flog == 'n'){printf(" 退出该项操作!\n\n");return;}save();}if(g==N){printf(" not found \n\n\n");return;}}}/************************************************************************ 功能:职工工资排列函数************************************************************************/ void array(){int j;while(1){printf("*************************工资排序*********************\n\n");printf(" 1 按基本工资排序\n\n");printf(" 2 按岗位工资排序\n\n");printf(" 3 按总工资排列\n\n");printf(" 0 退出\n\n");printf("\n\n\n");while(1){printf(" 请输入你的选择:\n\n");scanf("%d",&j);if(j>=0&&j<=3){switch(j){case 1:array_basesalary();break;case 2:array_postwage();break;case 3:array_totalwage();break;case 0:return;}}else{printf(" 输入错误!\n\n\n");printf(" 请再次输入你的选择:\n\n");}}}}/**************************************************************************功能:按基本工资排列(选择法)***************************************************************************/void array_basesalary(){int i,j,k;p=emp;for(i=0;i<N-1;i++){k=i;for(j=i+1;j<N;j++){if(p[k].basesalary<p[j].basesalary)k=j;}if(k!=i){replace=emp[k];emp[k]=emp[i];emp[i]=replace;}}for(j=0;j<N;j++){p[j].totalwage=p[j].postwage+p[j].basesalary;printf("-------------------------------------------------------------------------------\n");printf("| 职工号|姓名|性别|年龄|基本工资|岗位工资|总工资|\n");printf("|%10s|%9s|%7s| %5d| %10.2f| %10.2f| %10.2f|\n",p[j].employeeid,p[j].name,p [j].sex,p[j].age,p[j].basesalary,p[j].postwage,p[j].totalwage);}printf("-------------------------------------------------------------------------------\n");}/************************************************************************功能:按岗位工资排列(冒泡法)*************************************************************************/void array_postwage(){int i,j;p=emp;for(i=0;i<N;i++){for(j=0;j<N-i;j++){if(p[j].postwage<p[j+1].postwage){replace=emp[j];emp[j]=emp[j+1];emp[j+1]=replace;}}}for(j=0;j<N;j++){p[j].totalwage=p[j].postwage+p[j].basesalary;printf("------------------------------------------------------------------------------\n");printf("| 职工号|姓名|性别|年龄|基本工资|岗位工资|总工资|\n");printf("|%10s|%9s|%7s| %5d| %10.2f| %10.2f| %10.2f|\n",p[j].employeeid,p[j].name,p [j].sex,p[j].age,p[j].basesalary,p[j].postwage,p[j].totalwage);}printf("-------------------------------------------------------------------------------\n");}/************************************************************************功能:按总工资排列(插入法)************************************************************************/void array_totalwage(){int i,j;p=emp;for(i=1;i<N;i++){replace=emp[i];for(j=i-1;j>=0&&p[i].totalwage>p[i].totalwage;j--){emp[j+1]=emp[j];emp[j+1]=replace;}}for(j=N-1;j>=0;j--){p[j].totalwage=p[j].postwage+p[j].basesalary;printf("-------------------------------------------------------------------------------\n");printf("| 职工号|姓名|性别| 年龄|基本工资|岗位工资|总工资|\n");printf("|%10s|%9s|%7s| %5d| %10.2f| %10.2f| %10.2f|\n",p[j].employeeid,p[j].name,p [j].sex,p[j].age,p[j].basesalary,p[j].postwage,p[j].totalwage);}printf("-------------------------------------------------------------------------------\n");}/*************************************************************************功能:工资统计函数**************************************************************************/void statistics(){int z,a=0,b=0,c=0;p=emp;for(z=0;z<N;z++){if(p[z].totalwage>3000){a++;continue;}if(p[z].totalwage>=2000&&p[z].totalwage<=3000){b++;continue;}if(p[z].totalwage<=2000&&p[z].totalwage>0){c++;continue;}}printf(" 总工资在3000元以上的职工人数有:%d\n\n",a);printf(" 总工资在2000元至3000元的职工人数有:%d\n\n",b);printf(" 总工资在2000元以下的职工人数有:%d\n\n",c);getchar();}/*************************************************************************** 功能:导出函数***************************************************************************/ void save(){int k;FILE *fp;p=emp;if((fp=fopen("emp_list","wb"))==NULL){printf(" Create file error!\n");return;}for(k=0;k<N;k++,p++){if(fwrite(p,sizeof(struct employee),1,fp)!=1){printf(" file save error!\n\n");break;}elsecontinue;}getchar();fclose(fp);}/***********************************************************************功能:导入函数***********************************************************************/ void load(){int l;FILE *fp;p=emp;if((fp=fopen("emp_list","rb"))==NULL){printf(" Create file error!\n");exit(0);}for(l=0;l<N;l++,p++){if(fread(p,sizeof(struct employee),1,fp)!=1){printf(" file read error!\n\n");break;}elsecontinue;}getchar();fclose(fp);}下面是实验结果。
员工工资管理系统c语言编程
员⼯⼯资管理系统c语⾔编程#definenull0 typedefstructInfo1{charnum[10];charname[10];chardepar[10];charyfsalary[10];charaband[10];chartax[10];charsfsalary[10];structInfo1*next; }Info2;typedefstructInfo1*Info;Infohead;voiddisplay();voidfind();voidmodify();voidadd();voiddel();voidlist();voidlistOne(Infos);InfoisExists(char*num);voidinit();voidinit(){head=(Info)malloc(sizeof(Info2));head->next=null;}voidmain(){init();while(1){charc;{case'1':find();break;case'2':add();break;case'3':modify();break;case'4':del();break;case'5':list();break;case'6':printf("\t\t...退出系统!\n");return;default:printf("\t\t输⼊错误!请按任意键返回重新选择(1-7)\n");getchar();}}}voiddisplay(){printf("\n\t**欢迎使⽤员⼯信息管理系统**\n\n");printf("\t请选(1-7):\n");printf("\t============================================\n");printf("\t\t1.查询员⼯信息\n");printf("\t\t2.录⼊员⼯信息\n");printf("\t\t3.修改员⼯信息\n");printf("\t\t4.删除员⼯信息\n");printf("\t\t6.显⽰所有员⼯信息\n");printf("\t\t7.退出系统\n");printf("\t============================================\n");printf("\t您的选择是:");}voidlistOne(Infop){printf("\n该员⼯信息记录如下:");printf("\n==========================================================\n\n") ;printf("%-12s%-10s%-10s%-7s%-7s%-10s%-10s%\n","员⼯编号","姓名","部门","应付⼯资","保险","税⾦","实付⼯资"); printf("%-12s%-10s%-10s%-7s%-7s%-10s%-10s%\n",p->num,p->name,p->depar,p->y fsalary,p->aband,p->tax,p->sfsalary); }q=p->next;while(q!=null){if(strcmp(q->num,num)==0)returnp;p=q;q=p->next;}returnp;}voidadd(){Infop,q;charnum[10];q=(Info)malloc(sizeof(Info2));printf("\t\t请输⼊员⼯编号:");scanf("%s",num);p=isExists(num);if(p->next==null){strcpy(q->num,num);printf("\t\t请输⼊员⼯姓名:");scanf("%s",q->name);printf("\t\t请输⼊该员⼯的部门:");scanf("%s",q->depar);printf("\t\t请输⼊该员⼯的应付⼯资⾦额:"); scanf("%s",q->yfsalary);printf("\t\t请输⼊该员⼯的保险⾦额:"); scanf("%s",q->aband);printf("\t\t请输⼊该员⼯的税⾦⾦额:"); scanf("%s",q->tax);}elseprintf("\n\t\t您所输⼊的员⼯编号以存在!");printf("\n\t\t按任意键返回住菜单......");getchar();}voiddel(){Infop,q;charnum[10];if(head->next==null){printf("\n\t\t当前还没有员⼯信息记录,按任意键返回主菜单......");getchar();return;}printf("\t\t请输⼊员⼯编号:");scanf("%s",num);p=isExists(num);q=p->next;if(q!=null){q=q->next;p->next=q;printf("\n\t\t删除成功!");}elseprintf("\n\t\t您所输⼊的员⼯编号有误或不存在!"); printf("\n\t\t按任意键返回主菜单......"); getchar();}voidmodify()if(head->next==null){printf("\n\t\t当前还没有员⼯信息记录,按任意键返回主菜单......"); getchar();return;}printf("\t\t请输⼊员⼯编号:");scanf("%s",num);p=isExists(num);q=p->next;if(q!=null){listOne(q);printf("\t\t请输⼊该员⼯的新姓名:");scanf("%s",q->name);printf("\t\t请输⼊该员⼯的部门:");scanf("%s",q->depar);printf("\t\t请输⼊该员⼯的应付⼯资⾦额:");scanf("%s",q->yfsalary);printf("\t\t请输⼊该员⼯的保险:");scanf("%s",q->aband);printf("\t\t请输⼊该员⼯的新税⾦⾦额:");scanf("%s",q->tax);printf("\t\t请输⼊该员⼯的新实付⼯资:");scanf("%s",q->sfsalary);}elseprintf("\n\t\t您所输⼊的员⼯编号有误或不存在!");printf("\n\t\t按任意键返回主菜单......");getchar();}voidlist()if(head->next==null){printf("\n\t\t当前还没有员⼯信息记录,按任意键返回主菜单......");getchar();return;}printf("\n所有员⼯信息记录如下:");printf("\n================================================================ ========\n\n");printf("%-12s%-10s%-10s%-7s%-7s%-10s%-10s%\n","员⼯编号","姓名","部门","应付⼯资","保险","税⾦","实付⾦额");p=head->next;while(p!=null){printf("%-12s%-10s%-10s%-7s%-7s%-10s%-10s%\n",p->num,p->name,p->depar,p->y fsalary,p->aband,p->tax,p->sfsalary); p=p->next;}printf("\n\t\t按任意键返回主菜单......");getchar();}voidfind(){Infop;charnum[10];if(head->next==null){printf("\n\t\t当前还没有员⼯信息记录,按任意键返回主菜单......");getchar();return;}printf("\t\t输⼊员⼯编号:");scanf("%s",num);p=isExists(num);p=p->next;if(p!=null)printf("\n\t\t您所输⼊的员⼯信息有误或不存在!"); printf("\n\t\t按任意键返回主菜单......");getchar();}。
员工工资管理系统(c语言编程)
#include<stdio.h>#include<string.h>#include<ctype.h>#include<malloc.h>#define null 0typedef struct Info1{char num[10];char name[10];char depar[10];char yfsalary[10];char aband[10];char tax[10];char sfsalary[10];struct Info1 *next;}Info2;typedef struct Info1 *Info;Info head;void display();void find();void modify();void add();void del();void list();void listOne(Info s);Info isExists(char *num);void init();void init(){head=(Info)malloc(sizeof(Info2));head->next=null;}void main(){init();while(1){char c;display();scanf("%c",&c);switch(c){case '1':find();break;case '2':add();break;case '3':modify();break;case '4':del();break;case '5':list();break;case '6':printf("\t\t...退出系统!\n");return;default: printf("\t\t输入错误!请按任意键返回重新选择(1-7)\n");getchar();}}}void display(){printf("\n\t** 欢迎使用员工信息管理系统 **\n\n");printf("\t请选(1-7):\n");printf("\t============================================\n");printf("\t\t1.查询员工信息\n");printf("\t\t2.录入员工信息\n");printf("\t\t3.修改员工信息\n");printf("\t\t4.删除员工信息\n");printf("\t\t6.显示所有员工信息\n");printf("\t\t7.退出系统\n");printf("\t============================================\n");printf("\t您的选择是: ");}void listOne(Info p){printf("\n该员工信息记录如下: ");printf("\n==========================================================\n\n");printf("%-12s%-10s%-10s%-7s%-7s%-10s%-10s%\n","员工编号","姓名","部门","应付工资","保险","税金","实付工资");printf("%-12s%-10s%-10s%-7s%-7s%-10s%-10s%\n",p->num,p->name,p->depar,p->yf salary,p->aband,p->tax,p->sfsalary);}Info isExists(char *num){Info p,q;p=head;q=p->next;while(q!=null){if(strcmp(q->num,num)==0)return p;p=q;q=p->next;}return p;}void add(){Info p,q;char num[10];q=(Info)malloc(sizeof(Info2));printf("\t\t请输入员工编号: ");scanf("%s",num);p=isExists(num);if (p->next==null){strcpy(q->num,num);printf("\t\t请输入员工姓名: ");scanf("%s",q->name);printf("\t\t请输入该员工的部门: ");scanf("%s",q->depar);printf("\t\t请输入该员工的应付工资金额: ");scanf("%s", q->yfsalary);printf("\t\t请输入该员工的保险金额: ");scanf("%s", q->aband);printf("\t\t请输入该员工的税金金额: ");scanf("%s",q->tax);printf("\t\t请输入该员工的实付工资: ");scanf("%s",q->sfsalary);q->next=null;p->next=q;}elseprintf("\n\t\t您所输入的员工编号以存在! ");printf("\n\t\t按任意键返回住菜单......");getchar();}void del(){Info p,q;char num[10];if (head->next==null){printf("\n\t\t当前还没有员工信息记录,按任意键返回主菜单......");getchar();return;}printf("\t\t请输入员工编号: ");scanf("%s",num);p=isExists(num);q=p->next;if (q!=null){q=q->next;p->next=q;printf("\n\t\t删除成功! ");}elseprintf("\n\t\t您所输入的员工编号有误或不存在! ");printf("\n\t\t按任意键返回主菜单......");getchar();}void modify(){Info p,q;char num[10];if (head->next==null){printf("\n\t\t当前还没有员工信息记录,按任意键返回主菜单......");getchar();return;}printf("\t\t请输入员工编号: ");scanf("%s",num);p=isExists(num);q=p->next;if(q!=null)listOne(q);printf("\t\t请输入该员工的新姓名: ");scanf("%s",q->name);printf("\t\t请输入该员工的部门: ");scanf("%s",q->depar);printf("\t\t请输入该员工的应付工资金额: ");scanf("%s",q->yfsalary);printf("\t\t请输入该员工的保险: ");scanf("%s",q->aband);printf("\t\t请输入该员工的新税金金额: ");scanf("%s",q->tax);printf("\t\t请输入该员工的新实付工资: ");scanf("%s",q->sfsalary);}elseprintf("\n\t\t您所输入的员工编号有误或不存在!");printf("\n\t\t按任意键返回主菜单......");getchar();}void list(){Info p;if (head->next==null){printf("\n\t\t当前还没有员工信息记录,按任意键返回主菜单......");getchar();return;}printf("\n所有员工信息记录如下: ");printf("\n================================================================= =======\n\n");printf("%-12s%-10s%-10s%-7s%-7s%-10s%-10s%\n","员工编号","姓名","部门","应付工资","保险","税金","实付金额");p=head->next;while(p!=null){printf("%-12s%-10s%-10s%-7s%-7s%-10s%-10s%\n",p->num,p->name,p->depar,p->yf salary,p->aband,p->tax,p->sfsalary);p=p->next;printf("\n\t\t按任意键返回主菜单......");getchar();}void find(){Info p;char num[10];if (head->next==null){printf("\n\t\t当前还没有员工信息记录,按任意键返回主菜单......");getchar();return;}printf("\t\t输入员工编号: ");scanf("%s",num);p=isExists(num);p=p->next;if(p!=null)listOne(p);elseprintf("\n\t\t您所输入的员工信息有误或不存在!");printf("\n\t\t按任意键返回主菜单......");getchar();}欢迎您的下载,资料仅供参考!致力为企业和个人提供合同协议,策划案计划书,学习资料等等打造全网一站式需求。
c语言课程实践《职工工资管理系统》源代码
fprintf(report,"\n\tAverage wage\t\t%.2f\t\t0.00\t\t%.2f",(float)(fsum/fn),(float)(fsum/fn));//如果男性人数是0,则只输出女性的平均工资
else
fprintf(report,"\n\tAverage wage\t\t%.2f\t\t%.2f\t\t%.2f",(float)(fsum/fn),(float)(msum/mn),(float)((fsum+msum)/(fn+mn)));//如果男女都不为0的话,那么则把平均工资都输出
p=temp;//temp指针变量往后移
temp=temp->next;//temp指针变量往后移
}
if(fnum==temp->num)//如果找到了,就执行下面的程序
{
find=1;//标记变量:find是1的时候说明找到,0则说明没找到
printf("\n");
unsigned int age; // 年龄
unsigned long telephone,wage,num; // 电话,工资,编号
struct workers *next; // 指向下一条记录的指针(链表使用)
};
struct workers *head,*bottom,*temp,*p;//定义指向结构体的指针变量
insert();//调用创建链表,录入信息的函数
}
getchar();//输入任意字符
return main();//返回主调函数
}
员工工资管理系统c语言编程精编
员工工资管理系统c语言编程精编Document number:WTT-LKK-GBB-08921-EIGG-22986#include<>#include<>#include<>#include<>#define null 0typedef struct Info1{char num[10];char name[10];char depar[10];char yfsalary[10];char aband[10];char tax[10];char sfsalary[10];struct Info1 *next;}Info2;typedef struct Info1 *Info; Info head;void display();void find();void modify();void add();void del();void list();void listOne(Info s);Info isExists(char *num);void init();void init(){head=(Info)malloc(sizeof(Info2));head->next=null;}void main(){init();while(1){char c;display();scanf("%c",&c);switch(c){case '1':find();break;case '2':add();break;case '3':modify();break;case '4':del();break;case '5':list();break;case '6':printf("\t\t...退出系统!\n");return;default: printf("\t\t输入错误!请按任意键返回重新选择(1-7)\n");getchar();}}}void display(){printf("\n\t** 欢迎使用员工信息管理系统**\n\n");printf("\t请选(1-7):\n");printf("\t===================================== =======\n");printf("\t\t1.查询员工信息\n");printf("\t\t2.录入员工信息\n");printf("\t\t3.修改员工信息\n");printf("\t\t4.删除员工信息\n");printf("\t\t6.显示所有员工信息\n");printf("\t\t7.退出系统\n");printf("\t===================================== =======\n");printf("\t您的选择是: ");}void listOne(Info p){printf("\n该员工信息记录如下: ");printf("\n===================================== =====================\n\n");printf("%-12s%-10s%-10s%-7s%-7s%-10s%-10s%\n","员工编号","姓名","部门","应付工资","保险","税金","实付工资");printf("%-12s%-10s%-10s%-7s%-7s%-10s%-10s%\n",p->num,p->name,p->depar,p->yfsalary,p->aband,p->tax,p->sfsalary);}Info isExists(char *num){Info p,q;p=head;q=p->next;while(q!=null){if(strcmp(q->num,num)==0)return p;p=q;q=p->next;}return p;}void add(){Info p,q;char num[10];q=(Info)malloc(sizeof(Info2));printf("\t\t请输入员工编号: ");scanf("%s",num);p=isExists(num);if (p->next==null){strcpy(q->num,num);printf("\t\t请输入员工姓名: ");scanf("%s",q->name);printf("\t\t请输入该员工的部门: ");scanf("%s",q->depar);printf("\t\t请输入该员工的应付工资金额: ");scanf("%s", q->yfsalary);printf("\t\t请输入该员工的保险金额: ");scanf("%s", q->aband);printf("\t\t请输入该员工的税金金额: ");scanf("%s",q->tax);printf("\t\t请输入该员工的实付工资: ");scanf("%s",q->sfsalary);q->next=null;p->next=q;}elseprintf("\n\t\t您所输入的员工编号以存在! "); printf("\n\t\t按任意键返回住菜单......"); getchar();}void del(){Info p,q;char num[10];if (head->next==null){printf("\n\t\t当前还没有员工信息记录,按任意键返回主菜单......");getchar();return;}printf("\t\t请输入员工编号: ");scanf("%s",num);p=isExists(num);q=p->next;if (q!=null){q=q->next;p->next=q;printf("\n\t\t删除成功! ");}elseprintf("\n\t\t您所输入的员工编号有误或不存在! ");printf("\n\t\t按任意键返回主菜单......");getchar();}void modify(){Info p,q;char num[10];if (head->next==null){printf("\n\t\t当前还没有员工信息记录,按任意键返回主菜单......");getchar();return;}printf("\t\t请输入员工编号: ");scanf("%s",num);p=isExists(num);q=p->next;if(q!=null){listOne(q);printf("\t\t请输入该员工的新姓名: ");scanf("%s",q->name);printf("\t\t请输入该员工的部门: ");scanf("%s",q->depar);printf("\t\t请输入该员工的应付工资金额: ");scanf("%s",q->yfsalary);printf("\t\t请输入该员工的保险: ");scanf("%s",q->aband);printf("\t\t请输入该员工的新税金金额: ");scanf("%s",q->tax);printf("\t\t请输入该员工的新实付工资: ");scanf("%s",q->sfsalary);}elseprintf("\n\t\t您所输入的员工编号有误或不存在!");printf("\n\t\t按任意键返回主菜单......");getchar();}void list(){Info p;if (head->next==null){printf("\n\t\t当前还没有员工信息记录,按任意键返回主菜单......");getchar();return;}printf("\n所有员工信息记录如下: ");printf("\n===================================== ===================================\n\n");printf("%-12s%-10s%-10s%-7s%-7s%-10s%-10s%\n","员工编号","姓名","部门","应付工资","保险","税金","实付金额");p=head->next;while(p!=null){printf("%-12s%-10s%-10s%-7s%-7s%-10s%-10s%\n",p->num,p->name,p->depar,p->yfsalary,p->aband,p->tax,p->sfsalary);p=p->next;}printf("\n\t\t按任意键返回主菜单......");getchar();}void find(){Info p;char num[10];if (head->next==null){printf("\n\t\t当前还没有员工信息记录,按任意键返回主菜单......");getchar();return;}printf("\t\t输入员工编号: ");scanf("%s",num);p=isExists(num);p=p->next;if(p!=null)listOne(p);elseprintf("\n\t\t您所输入的员工信息有误或不存在!");printf("\n\t\t按任意键返回主菜单......");getchar();}。
员工工资管理系统(c语言编程)6页
员工工资管理系统(c语言编程)6页一、设计目标1、完成一个员工工资管理系统,包括对员工信息的添加、删除、修改和查询、员工工资管理和统计等功能。
2、程序必须具备易用性、可靠性、安全性和稳定性等特点。
二、程序结构设计员工工资管理系统是由若干模块构成的一个整体,它们之间相互联系,共同完成对员工信息的处理和管理。
程序分为主界面模块、添加模块、删除模块、修改模块、查询模块、统计模块、退出模块。
三、模块功能设计1、主界面模块主界面包括菜单栏和功能栏,菜单栏包括添加、删除、修改、查询、统计和退出功能,功能栏是对主界面菜单的补充,包括一些快捷操作按钮。
2、添加模块添加模块是用来录入员工信息的,可以录入的信息有员工编号、员工姓名、员工部门、员工工作年限、员工基本工资、员工奖金等。
添加模块会对信息进行一系列的校验,要求信息必须完整正确才能录入。
3、删除模块删除模块是用来删除员工信息的,输入员工编号就可以删除该员工的信息。
5、查询模块查询模块提供了多种查询方式,包括按部门查询、按姓名查询、按工作年限查询、按基本工资查询、按奖金查询等。
查询结果会按照员工编号的顺序进行排序。
6、统计模块统计模块会根据查询结果进行工资统计,包括总工资、平均工资、最高工资和最低工资等。
7、退出模块退出模块是用来关闭程序的,保证程序的安全性和稳定性。
四、程序流程设计1、主界面程序启动后,会显示主界面界面,包括菜单栏和功能栏。
2、录入信息点击添加功能或者添加按钮,会进入添加模块,要求用户输入员工信息,录入完成后数据将保存到文件中。
4、修改信息点击修改功能或者修改按钮,会进入修改模块,输入员工编号,然后修改员工信息。
5、查询信息点击查询功能或者查询按钮,会进入查询模块,选择查询方式,输入查询条件,系统将显示符合条件的员工信息。
6、工资统计当查询完成后,点击统计功能或者统计按钮,会进入统计模块,系统将根据查询结果进行统计。
7、程序退出当操作完成后,点击退出功能或者退出按钮,会关闭程序。
职工工资管理系统C语言精编版
职工工资管理系统C语言精编版MQS system office room 【MQS16H-TTMS2A-MQSS8Q8-MQSH16898】1、设计内容设计一个工资管理程序存储的数据包括:姓名,职工号,所属部门,基本工资,奖励工资,补贴项目及金额和扣款项目及金额。
功能:1)加入一个人的记录2)删除一个人的记录3)显示所有人的记录4)查询(包括按人名查询工资和按工号查询)5)统计功能(包括统计某一工资范围的人数和统计各部门的工资总数)6)修改功能2、设计目的1.熟悉C语言程序的编辑、编译链接和运行的过程。
2.熟练运用if语句和switch语句以及嵌套应用。
3.学习并掌握C语言定义函数的基本方法、声明函数及调用函数的方法和过程。
4.掌握文件的概念以及文件的定义方法,认识文件打开、关闭、读、写等文件基本操作函数。
5.掌握结构体类型变量、数组的定义和使用。
6. 掌握数组的定义、引用以及输入输出的方法、通过字符数组存储字符串,进一步使用字符串。
3、设计思路(包括所用的函数)deldelame,wo[i].ID,wo[i].depa,wo[i].salary1,wo[i].salary2,wo[i].salar y3,wo[i].salary4,wo[i].salary1+wo[i].salary2+wo[i].salary3-wo[i].salary4);i++;}}ame)==0){printf("\t%s\t%s\t%s\t%d\t\t%d\t\t%d\t\t%d\t\t%d\n",wo[i].name,wo[i]. ID,wo[i].depa,wo[i].salary1,wo[i].salary2,wo[i].salary3,wo[i].salary4 ,wo[i].salary1+wo[i].salary2+wo[i].salary3-wo[i].salary4);}}}void ghcz()D)==0){printf("\t%s\t%s\t%s\t%d\t\t%d\t\t%d\t\t%d\t\t%d\n",wo[i].name,wo[i]. ID,wo[i].depa,wo[i].salary1,wo[i].salary2,wo[i].salary3,wo[i].salary4 ,wo[i].salary1+wo[i].salary2+wo[i].salary3-wo[i].salary4);}}}void bmcz()epa)==0){printf("\t%s\t%s\t%s\t%d\t\t%d\t\t%d\t\t%d\t\t%d\n",wo[i].name,wo[i]. ID,wo[i].depa,wo[i].salary1,wo[i].salary2,wo[i].salary3,wo[i].salary4 ,wo[i].salary1+wo[i].salary2+wo[i].salary3-wo[i].salary4);}}}delame)==0){for (j=i;j<Number-1;j++){wo[j]=wo[j+1];}Number--;}}D)==0){for (j=i;j<Number-1;j++){wo[j]=wo[j+1];}Number--;}}alary1+wo[i].salary2+wo[i].salary3-wo[i].salary4;printf("%s的总工资为:%f\n",wo[i].name,sum[i]);}}void statistic()alary1+wo[i].salary2+wo[i].salary3-wo[i].salary4;}for(i=0;i<Number;i++){n=sum[i]/1000;if (n>9) n=10;switch(n){case 0:sl[0]++;break;case 1:sl[1]++;break;case 2:sl[2]++;break;case 3:sl[3]++;break;case 4:sl[4]++;break;case 5:sl[5]++;break;case 6:sl[6]++;break;case 7:sl[7]++;break;case 8:sl[8]++;break;case 9:sl[9]++;break;case 10:sl[10]++;break;}}m=sa1/1000;switch(m){case 0:printf("工资在1000以下的人数为%d\n",sl[0]);break;case 1:printf("工资在1000到2000之间的人数为%d\n",sl[1]);break;case 2:printf("工资在2000到3000之间的人数为%d\n",sl[2]);break;case 3:printf("工资在3000到4000之间的人数为%d\n",sl[3]);break;case 4:printf("工资在4000到5000之间的人数为%d\n",sl[4]);break;case 5:printf("工资在5000到6000之间的人数为%d\n",sl[5]);break; case 6:printf("工资在6000到7000之间的人数为%d\n",sl[6]);break;case 7:printf("工资在7000到8000之间的人数为%d\n",sl[7]);break;case 8:printf("工资在8000到9000之间的人数为%d\n",sl[8]);break;case 9:printf("工资在9000到10000之间的人数为%d\n",sl[9]);break;case 10:printf("工资在10000以上的人数为%d\n",sl[10]);break;}}void bmtj()epa)==0){printf("\t%s\t%s\t%s\t%d\t\t%d\t\t%d\t\t%d\t\t%d\n",wo[i].name,wo[i]. ID,wo[i].depa,wo[i].salary1,wo[i].salary2,wo[i].salary3,wo[i].salary4 ,wo[i].salary1+wo[i].salary2+wo[i].salary3-wo[i].salary4);sum=sum+wo[i].salary1+wo[i].salary2+wo[i].salary3-wo[i].salary4; }}printf("该部门的总工资为:%f\n",sum);}ame));elsebreak;}printf("\t姓名\t工号\t所属部门\t基本工资\t奖励工资\t补贴项目及金额\t扣款项目及金额\t总工资\n");printf("\t%s\t%s\t%s\t%d\t\t%d\t\t%d\t\t%d\t\t%d\n",wo[i].name,wo[i]. ID,wo[i].depa,wo[i].salary1,wo[i].salary2,wo[i].salary3,wo[i].salary4 ,wo[i].salary1+wo[i].salary2+wo[i].salary3-wo[i].salary4);printf("请重新输入该职工信息");printf("姓名:");scanf("%s", wo[i].name);printf("工号:");scanf("%s",wo[i].ID);printf("所属部门:");scanf("%s",wo[i].depa);printf("基本工资:");scanf("%d",wo[i].salary1);printf("奖励工资:");scanf("%d",wo[i].salary2);printf("补贴项目即金额:");scanf("%d", wo[i].salary3);printf("扣款项目及金额:");scanf("%d", wo[i].salary4);D));elsebreak;}printf("\t姓名\t工号\t所属部门\t基本工资\t奖励工资\t补贴项目及金额\t扣款项目及金额\t总工资\n");printf("\t%s\t%s\t%s\t%d\t\t%d\t\t%d\t\t%d\t\t%d\n",wo[i].name,wo[i]. ID,wo[i].depa,wo[i].salary1,wo[i].salary2,wo[i].salary3,wo[i].salary4 ,wo[i].salary1+wo[i].salary2+wo[i].salary3-wo[i].salary4);printf("请重新输入该职工信息");printf("姓名:");scanf("%s", wo[i].name);printf("工号:");scanf("%s",wo[i].ID);printf("所属部门:");scanf("%s",wo[i].depa);printf("基本工资:");scanf("%d",wo[i].salary1);printf("奖励工资:");scanf("%d",wo[i].salary2);printf("补贴项目即金额:");scanf("%d", wo[i].salary3);printf("扣款项目及金额:");scanf("%d", wo[i].salary4);...\n");}void back(){printf("\t===>按Enter键返回主菜单\n");}5.、运行结果****************职工工资管理系统**************** *☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆* ^^^^^^^^^^^^^^^[1]添加职工信息^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^[2]查看职工信息^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^[3]查找职工信息^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^[4]删除职工信息^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^[5]个人工资统计^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^[6]统计职工工资^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^[7]修改职工信息^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^[8] 保存数据^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^[0] 退出系统^^^^^^^^^^^^^^^^^ *★★★★★★★★★★★★★★★★★★★★★★★* ====>请选择:输入一条记录信息:选择1,回车。
员工工资管理系统(c语言编程)
#i n c l u d e<s t d i o.h>#include<string.h>#include<ctype.h>#include<malloc.h>#define null 0typedef struct Info1{char num[10];char name[10];char depar[10];char yfsalary[10];}Info2;{}{while(1){char c;display();scanf("%c",&c);switch(c){case '1':find();break;case '2':add();break;case '3':modify();break;case '4':del();break;case '5':list();break;case '6':printf("\t\t...退出系统!\n");return;default: printf("\t\t输入错误!请按任意键返回重新选择(1-7)\n");getchar();}}}void display(){printf("\n\t** 欢迎使用员工信息管理系统**\n\n");printf("\t请选(1-7):\n");printf("\t============================================\n");}{","税金","实付工资}{while(q!=null){if(strcmp(q->num,num)==0)return p;p=q;q=p->next;}return p;}void add(){Info p,q;char num[10];q=(Info)malloc(sizeof(Info2));printf("\t\t请输入员工编号: ");scanf("%s",num);p=isExists(num);if (p->next==null){strcpy(q->num,num);printf("\t\t请输入员工姓名: ");scanf("%s",q->name);printf("\t\t请输入该员工的部门: ");}else}{{printf("\n\t\t当前还没有员工信息记录,按任意键返回主菜单......");getchar();return;}printf("\t\t请输入员工编号: ");scanf("%s",num);p=isExists(num);q=p->next;if (q!=null){q=q->next;p->next=q;printf("\n\t\t删除成功! ");}elseprintf("\n\t\t您所输入的员工编号有误或不存在! ");printf("\n\t\t按任意键返回主菜单......");getchar();}void modify(){Info p,q;char num[10];{}{printf("\t\t请输入该员工的新实付工资: ");scanf("%s",q->sfsalary);}elseprintf("\n\t\t您所输入的员工编号有误或不存在!");printf("\n\t\t按任意键返回主菜单......");getchar();}void list(){Info p;if (head->next==null){printf("\n\t\t当前还没有员工信息记录,按任意键返回主菜单......");getchar();return;}printf("\n所有员工信息记录如下: ");printf("\n========================================================================\n\n" );printf("%-12s%-10s%-10s%-7s%-7s%-10s%-10s%\n","员工编号","姓名","部门","应付工资","保险","税金","实付金额");p=head->next;{}}{{}p=p->next;if(p!=null)listOne(p);elseprintf("\n\t\t您所输入的员工信息有误或不存在!");printf("\n\t\t按任意键返回主菜单......");getchar();}。
员工工资管理系统(c语言编程)
#include<stdio.h>#include<string.h>#include<ctype.h>#include<malloc.h>#define null 0typedef struct Info1{char num[10];char name[10];char depar[10];char yfsalary[10];char aband[10];char tax[10];char sfsalary[10];struct Info1 *next;}Info2;typedef struct Info1 *Info;Info head;void display();void find();void modify();void add();void del();void list();void listOne(Info s);Info isExists(char *num);void init();void init(){head=(Info)malloc(sizeof(Info2));head->next=null;}void main(){init();while(1){char c;display();scanf("%c",&c);switch(c){case '1':find();break;case '2':add();break;case '3':modify();break;case '4':del();break;case '5':list();break;case '6':printf("\t\t...退出系统!\n");return;default: printf("\t\t输入错误!请按任意键返回重新选择(1-7)\n");getchar();}}}void display(){printf("\n\t** 欢迎使用员工信息管理系统**\n\n");printf("\t请选(1-7):\n");printf("\t============================================\n");printf("\t\t1.查询员工信息\n");printf("\t\t2.录入员工信息\n");printf("\t\t3.修改员工信息\n");printf("\t\t4.删除员工信息\n");printf("\t\t6.显示所有员工信息\n");printf("\t\t7.退出系统\n");printf("\t============================================\n");printf("\t您的选择是: ");}void listOne(Info p){printf("\n该员工信息记录如下: ");printf("\n==========================================================\n\n");printf("%-12s%-10s%-10s%-7s%-7s%-10s%-10s%\n","员工编号","姓名","部门","应付工资","保险","税金","实付工资");printf("%-12s%-10s%-10s%-7s%-7s%-10s%-10s%\n",p->num,p->name,p->depar,p->yfsalary, p->aband,p->tax,p->sfsalary);}Info isExists(char *num){Info p,q;p=head;q=p->next;while(q!=null){if(strcmp(q->num,num)==0)return p;p=q;q=p->next;}return p;}void add(){Info p,q;char num[10];q=(Info)malloc(sizeof(Info2));printf("\t\t请输入员工编号: ");scanf("%s",num);p=isExists(num);if (p->next==null){strcpy(q->num,num);printf("\t\t请输入员工姓名: ");scanf("%s",q->name);printf("\t\t请输入该员工的部门: ");scanf("%s",q->depar);printf("\t\t请输入该员工的应付工资金额: ");scanf("%s", q->yfsalary);printf("\t\t请输入该员工的保险金额: ");scanf("%s", q->aband);printf("\t\t请输入该员工的税金金额: ");scanf("%s",q->tax);printf("\t\t请输入该员工的实付工资: ");scanf("%s",q->sfsalary);q->next=null;p->next=q;}elseprintf("\n\t\t您所输入的员工编号以存在! ");printf("\n\t\t按任意键返回住菜单......");getchar();void del(){Info p,q;char num[10];if (head->next==null){printf("\n\t\t当前还没有员工信息记录,按任意键返回主菜单......");getchar();return;}printf("\t\t请输入员工编号: ");scanf("%s",num);p=isExists(num);q=p->next;if (q!=null){q=q->next;p->next=q;printf("\n\t\t删除成功! ");}elseprintf("\n\t\t您所输入的员工编号有误或不存在! ");printf("\n\t\t按任意键返回主菜单......");getchar();}void modify(){Info p,q;char num[10];if (head->next==null){printf("\n\t\t当前还没有员工信息记录,按任意键返回主菜单......");getchar();return;}printf("\t\t请输入员工编号: ");scanf("%s",num);p=isExists(num);q=p->next;if(q!=null){listOne(q);printf("\t\t请输入该员工的新姓名: ");scanf("%s",q->name);printf("\t\t请输入该员工的部门: ");scanf("%s",q->depar);printf("\t\t请输入该员工的应付工资金额: ");scanf("%s",q->yfsalary);printf("\t\t请输入该员工的保险: ");scanf("%s",q->aband);printf("\t\t请输入该员工的新税金金额: ");scanf("%s",q->tax);printf("\t\t请输入该员工的新实付工资: ");scanf("%s",q->sfsalary);}elseprintf("\n\t\t您所输入的员工编号有误或不存在!");printf("\n\t\t按任意键返回主菜单......");getchar();}void list(){Info p;if (head->next==null){printf("\n\t\t当前还没有员工信息记录,按任意键返回主菜单......");getchar();return;}printf("\n所有员工信息记录如下: ");printf("\n=================================================================== =====\n\n");printf("%-12s%-10s%-10s%-7s%-7s%-10s%-10s%\n","员工编号","姓名","部门","应付工资","保险","税金","实付金额");p=head->next;while(p!=null){printf("%-12s%-10s%-10s%-7s%-7s%-10s%-10s%\n",p->num,p->name,p->depar,p->yfsalary, p->aband,p->tax,p->sfsalary);p=p->next;}printf("\n\t\t按任意键返回主菜单......");getchar();}void find(){Info p;char num[10];if (head->next==null){printf("\n\t\t当前还没有员工信息记录,按任意键返回主菜单......");getchar();return;}printf("\t\t输入员工编号: ");scanf("%s",num);p=isExists(num);p=p->next;if(p!=null)listOne(p);elseprintf("\n\t\t您所输入的员工信息有误或不存在!");printf("\n\t\t按任意键返回主菜单......");getchar();}。
员工工资管理系统(c语言编程)
#include<stdio.h>#include<string.h>#include<ctype.h>#include<malloc.h>#define null 0typedef struct Info1{char num[10];char name[10];char depar[10];char yfsalary[10];char aband[10];char tax[10];char sfsalary[10];struct Info1 *next;}Info2;typedef struct Info1 *Info;Info head;void display();void find();void modify();void add();void del();void list();void listOne(Info s);Info isExists(char *num);void init();void init(){head=(Info)malloc(sizeof(Info2));head->next=null;}void main(){init();while(1){char c;display();scanf("%c",&c);switch(c){case '1':find();break;case '2':add();break;case '3':modify();break;case '4':del();break;case '5':list();break;case '6':printf("\t\t...退出系统!\n");return;default: printf("\t\t输入错误!请按任意键返回重新选择(1-7)\n");getchar();}}}void display(){printf("\n\t** 欢迎使用员工信息管理系统**\n\n");printf("\t请选(1-7):\n");printf("\t============================================\n");printf("\t\t1.查询员工信息\n");printf("\t\t2.录入员工信息\n");printf("\t\t3.修改员工信息\n");printf("\t\t4.删除员工信息\n");printf("\t\t6.显示所有员工信息\n");printf("\t\t7.退出系统\n");printf("\t============================================\n");printf("\t您的选择是: ");}void listOne(Info p){printf("\n该员工信息记录如下: ");printf("\n==========================================================\n\n");printf("%-12s%-10s%-10s%-7s%-7s%-10s%-10s%\n","员工编号","姓名","部门","应付工资","保险","税金","实付工资");printf("%-12s%-10s%-10s%-7s%-7s%-10s%-10s%\n",p->num,p->name,p->depar,p->yfsalary, p->aband,p->tax,p->sfsalary);}Info isExists(char *num){Info p,q;p=head;q=p->next;while(q!=null){if(strcmp(q->num,num)==0)return p;p=q;q=p->next;}return p;}void add(){Info p,q;char num[10];q=(Info)malloc(sizeof(Info2));printf("\t\t请输入员工编号: ");scanf("%s",num);p=isExists(num);if (p->next==null){strcpy(q->num,num);printf("\t\t请输入员工姓名: ");scanf("%s",q->name);printf("\t\t请输入该员工的部门: ");scanf("%s",q->depar);printf("\t\t请输入该员工的应付工资金额: ");scanf("%s", q->yfsalary);printf("\t\t请输入该员工的保险金额: ");scanf("%s", q->aband);printf("\t\t请输入该员工的税金金额: ");scanf("%s",q->tax);printf("\t\t请输入该员工的实付工资: ");scanf("%s",q->sfsalary);q->next=null;p->next=q;}elseprintf("\n\t\t您所输入的员工编号以存在! ");printf("\n\t\t按任意键返回住菜单......");getchar();void del(){Info p,q;char num[10];if (head->next==null){printf("\n\t\t当前还没有员工信息记录,按任意键返回主菜单......");getchar();return;}printf("\t\t请输入员工编号: ");scanf("%s",num);p=isExists(num);q=p->next;if (q!=null){q=q->next;p->next=q;printf("\n\t\t删除成功! ");}elseprintf("\n\t\t您所输入的员工编号有误或不存在! ");printf("\n\t\t按任意键返回主菜单......");getchar();}void modify(){Info p,q;char num[10];if (head->next==null){printf("\n\t\t当前还没有员工信息记录,按任意键返回主菜单......");getchar();return;}printf("\t\t请输入员工编号: ");scanf("%s",num);p=isExists(num);q=p->next;if(q!=null){listOne(q);printf("\t\t请输入该员工的新姓名: ");scanf("%s",q->name);printf("\t\t请输入该员工的部门: ");scanf("%s",q->depar);printf("\t\t请输入该员工的应付工资金额: ");scanf("%s",q->yfsalary);printf("\t\t请输入该员工的保险: ");scanf("%s",q->aband);printf("\t\t请输入该员工的新税金金额: ");scanf("%s",q->tax);printf("\t\t请输入该员工的新实付工资: ");scanf("%s",q->sfsalary);}elseprintf("\n\t\t您所输入的员工编号有误或不存在!");printf("\n\t\t按任意键返回主菜单......");getchar();}void list(){Info p;if (head->next==null){printf("\n\t\t当前还没有员工信息记录,按任意键返回主菜单......");getchar();return;}printf("\n所有员工信息记录如下: ");printf("\n=================================================================== =====\n\n");printf("%-12s%-10s%-10s%-7s%-7s%-10s%-10s%\n","员工编号","姓名","部门","应付工资","保险","税金","实付金额");p=head->next;while(p!=null){printf("%-12s%-10s%-10s%-7s%-7s%-10s%-10s%\n",p->num,p->name,p->depar,p->yfsalary, p->aband,p->tax,p->sfsalary);p=p->next;}printf("\n\t\t按任意键返回主菜单......");getchar();}void find(){Info p;char num[10];if (head->next==null){printf("\n\t\t当前还没有员工信息记录,按任意键返回主菜单......");getchar();return;}printf("\t\t输入员工编号: ");scanf("%s",num);p=isExists(num);p=p->next;if(p!=null)listOne(p);elseprintf("\n\t\t您所输入的员工信息有误或不存在!");printf("\n\t\t按任意键返回主菜单......");getchar();}。
员工工资管理系统(c语言编程)
while(q!=null)
{
if(strcmp(q->num,num)==0)
return p;
p=q;
q=p->next;
}
return p;
}
void add()
{
Info p,q;
char num[10];
q=(Info)malloc(sizeof(Info2));
printf("\t\t请输入员工编号: ");
while(1)
{
char c;
display();
scanf("%c",&c);
switch(c)
{
case '1':find();break;
case '2':add();break;
case '3':modify();break;
case '4':del();break;
case '5':list();break;
printf("\t\t4.删除员工信息\n");
printf("\t\t6.显示所有员工信息\n");
printf("\t\t7.退出系统\n");
printf("\t============================================\n");
printf("\t您的选择是: ");
scanf("%s",num);
p=isExists(num);
if (p->next==null)
员工工资管理系统c语言编程精编
员工工资管理系统c语言编程精编Lele was written in 2021#include<>#include<>#include<>#include<>#define null 0typedef struct Info1{char num[10];char name[10];char depar[10];char yfsalary[10];char aband[10];char tax[10];char sfsalary[10];struct Info1 *next;}Info2;typedef struct Info1 *Info; Info head;void display();void find();void modify();void add();void del();void list();void listOne(Info s);Info isExists(char *num);void init();void init(){head=(Info)malloc(sizeof(Info2));head->next=null;}void main(){init();while(1){char c;display();scanf("%c",&c);switch(c){case '1':find();break;case '2':add();break;case '3':modify();break;case '4':del();break;case '5':list();break;case '6':printf("\t\t...退出系统!\n");return;default: printf("\t\t输入错误!请按任意键返回重新选择(1-7)\n");getchar();}}}void display(){printf("\n\t** 欢迎使用员工信息管理系统**\n\n");printf("\t请选(1-7):\n");printf("\t===================================== =======\n");printf("\t\t1.查询员工信息\n");printf("\t\t2.录入员工信息\n");printf("\t\t3.修改员工信息\n");printf("\t\t4.删除员工信息\n");printf("\t\t6.显示所有员工信息\n");printf("\t\t7.退出系统\n");printf("\t===================================== =======\n");printf("\t您的选择是: ");}void listOne(Info p){printf("\n该员工信息记录如下: ");printf("\n===================================== =====================\n\n");printf("%-12s%-10s%-10s%-7s%-7s%-10s%-10s%\n","员工编号","姓名","部门","应付工资","保险","税金","实付工资");printf("%-12s%-10s%-10s%-7s%-7s%-10s%-10s%\n",p->num,p->name,p->depar,p->yfsalary,p->aband,p->tax,p->sfsalary);}Info isExists(char *num){Info p,q;p=head;q=p->next;while(q!=null){if(strcmp(q->num,num)==0)return p;p=q;q=p->next;}return p;}void add(){Info p,q;char num[10];q=(Info)malloc(sizeof(Info2));printf("\t\t请输入员工编号: ");scanf("%s",num);p=isExists(num);if (p->next==null){strcpy(q->num,num);printf("\t\t请输入员工姓名: ");scanf("%s",q->name);printf("\t\t请输入该员工的部门: ");scanf("%s",q->depar);printf("\t\t请输入该员工的应付工资金额: ");scanf("%s", q->yfsalary);printf("\t\t请输入该员工的保险金额: ");scanf("%s", q->aband);printf("\t\t请输入该员工的税金金额: ");scanf("%s",q->tax);printf("\t\t请输入该员工的实付工资: ");scanf("%s",q->sfsalary);q->next=null;p->next=q;}elseprintf("\n\t\t您所输入的员工编号以存在! "); printf("\n\t\t按任意键返回住菜单......"); getchar();}void del(){Info p,q;char num[10];if (head->next==null){printf("\n\t\t当前还没有员工信息记录,按任意键返回主菜单......");getchar();return;}printf("\t\t请输入员工编号: ");scanf("%s",num);p=isExists(num);q=p->next;if (q!=null){q=q->next;p->next=q;printf("\n\t\t删除成功! ");}elseprintf("\n\t\t您所输入的员工编号有误或不存在! ");printf("\n\t\t按任意键返回主菜单......");getchar();}void modify(){Info p,q;char num[10];if (head->next==null){printf("\n\t\t当前还没有员工信息记录,按任意键返回主菜单......");getchar();return;}printf("\t\t请输入员工编号: ");scanf("%s",num);p=isExists(num);q=p->next;if(q!=null){listOne(q);printf("\t\t请输入该员工的新姓名: ");scanf("%s",q->name);printf("\t\t请输入该员工的部门: ");scanf("%s",q->depar);printf("\t\t请输入该员工的应付工资金额: ");scanf("%s",q->yfsalary);printf("\t\t请输入该员工的保险: ");scanf("%s",q->aband);printf("\t\t请输入该员工的新税金金额: ");scanf("%s",q->tax);printf("\t\t请输入该员工的新实付工资: ");scanf("%s",q->sfsalary);}elseprintf("\n\t\t您所输入的员工编号有误或不存在!");printf("\n\t\t按任意键返回主菜单......");getchar();}void list(){Info p;if (head->next==null){printf("\n\t\t当前还没有员工信息记录,按任意键返回主菜单......");getchar();return;}printf("\n所有员工信息记录如下: ");printf("\n===================================== ===================================\n\n");printf("%-12s%-10s%-10s%-7s%-7s%-10s%-10s%\n","员工编号","姓名","部门","应付工资","保险","税金","实付金额");p=head->next;while(p!=null){printf("%-12s%-10s%-10s%-7s%-7s%-10s%-10s%\n",p->num,p->name,p->depar,p->yfsalary,p->aband,p->tax,p->sfsalary);p=p->next;}printf("\n\t\t按任意键返回主菜单......");getchar();}void find(){Info p;char num[10];if (head->next==null){printf("\n\t\t当前还没有员工信息记录,按任意键返回主菜单......");getchar();return;}printf("\t\t输入员工编号: ");scanf("%s",num);p=isExists(num);p=p->next;if(p!=null)listOne(p);elseprintf("\n\t\t您所输入的员工信息有误或不存在!");printf("\n\t\t按任意键返回主菜单......");getchar();}。
职工工资管理系统c语言程序设计
职工工资管理系统 C 语言程序设计简介职工工资管理系统是一个用于帮助企业管理职工工资的程序,它可以实现对职工的基本信息、工作时长、工资等进行管理。
本文将介绍如何使用 C 语言实现一个简单的职工工资管理系统。
功能设计1. 添加职工信息系统可以添加新的职工信息,包括职工编号、姓名、性别、职位等。
2. 修改职工信息已有职工信息可以进行修改,如姓名、性别、职位等。
3. 计算工资系统可以根据职工的工作时长和基础工资计算出实际工资。
4. 查询职工信息可以通过职工编号或姓名查询职工的详细信息。
5. 显示所有职工信息将所有职工的信息显示在界面上。
开发流程1. 定义数据结构首先,我们需要定义一个数据结构Employee来保存职工的信息,包括职工编号、姓名、性别、职位、基础工资等字段。
struct Employee {int id;char name[50];char gender[10];char position[50];float baseSalary;float hoursWorked;float totalSalary;};2. 编写主要函数添加职工信息void addEmployee(struct Employee emp) {// 将 emp 添加到员工列表中}修改职工信息void updateEmployee(struct Employee emp) {// 根据职工编号修改对应的员工信息}计算工资float calculateSalary(struct Employee emp) {// 计算职工的实际工资return emp.baseSalary + emp.hoursWorked * hourlyRate;}查询职工信息void searchEmployee(int id) {// 根据职工编号查询职工信息}显示所有职工信息void displayAllEmployees() {// 显示所有职工的信息}3. 用户界面交互为了方便用户操作,可以设计一个简单的用户界面,使用控制台打印实现信息展示和输入。
中南大学C语言程序设计实验——职工工资管理系统(附详细操作说明及注释)
/* Note:Your choice is C IDE */#include "stdio.h"#include "string.h"#include "conio.h"#include "stdlib.h"struct Message /*此结构体用于存放职工信息以及创建链表*/{char name[30];int ID;int JBGZ;int ZWGZ;int JT;int YLBX;int GJJ;long int Total;float Sum_3;struct Message *nextPrt;} static *head,*Rec_1=NULL,*Rec_2=NULL, *Rec_3=NULL; /*此处创建一个表头,以及三个用于恢复函数的静态变量*/static float Sum_JBGZ=0,Sum_ZWGZ=0,Sum_JT=0,Sum_YLBX=0,Sum_GJJ=0; static float Average_JBGZ,Average_ZWGZ,Average_JT,Average_YLBX,Average_GJJ; void Input(); /*此处声明各一级函数*/ void Output();void Delete();void Add();void Recover();void Modify();void Search();void Statistic();struct Message *creat(struct Message *h); /*此处声明各二级函数*/ void print_Message(struct Message *h);struct Message *del_Message(struct Message *h,char *str);struct Message *add_Message(struct Message *h,struct Message *a,char *strafter); struct Message *Recover_Message(struct Message *h);struct Message *Modify_Message(struct Message *h,char *str);void Search_Message(struct Message *h);void Statistic_Message(struct Message *h);main() /*主函数为菜单页*/ {char i; /*功能:调用各一级函数一级退出程序*/clrscr();gotoxy(27,9);printf("\16[ 中南大学 ]");gotoxy(27,11);printf("\16[ 职工工资管理系统 ]");gotoxy(27,13);printf("\16[ 设计者:刘路 ]");gotoxy(27,15);printf("\16[ 输入任意键继续 ]\n");getch();for(;;){clrscr();gotoxy(25,9);printf("* * * * * * *菜单* * * * * *");gotoxy(25,10);printf("* a. 输入记录 *");gotoxy(25,11);printf("* b. 显示记录 *");gotoxy(25,12);printf("* c. 修改记录 *");gotoxy(25,13);printf("* d. 查找记录 *");gotoxy(25,14);printf("* e. 添加记录 *");gotoxy(25,15);printf("* f. 删除记录 *");gotoxy(25,16);printf("* g. 恢复记录 *");gotoxy(25,17);printf("* h. 统计数据 *");gotoxy(25,18);printf("* i. 退出程序 *");gotoxy(25,19);printf("* 请选择 a—i *");gotoxy(25,20);printf("* * * * * * * * * * * * * **");i=getch();if(i=='i')break;else switch(i){case'a':Input();break; /*调用记录输入函数*/ case'b':Output();break; /*调用记录显示函数*/ case'c':Modify();break; /*调用记录修改函数*/ case'd':Search();break; /*调用记录查找函数*/ case'e':Add();break; /*调用记录添加函数*/case'f':Delete();break; /*调用记录删除函数*/case'g':Recover();break; /*调用记录恢复函数*/case'h':Statistic();break; /*调用记录统计函数*/}}}void Input() /*定义输入函数(一级)*/{ /*主要功能:调用二级子函数创建链表*/head=NULL;head=creat(head);}void Output() /*定义显示函数(一级)*/{ /*主要功能:调用二级子函数实现按一定格式输出所有职工工资信息*/clrscr();print_Message(head);}void Delete() /*定义删除函数(一级)*/{ /*主要功能:调用二级子函数实现删除任意职工工资信息并输出删除后的工资信息*/char name[50],*del_Mes=name;clrscr();gotoxy(1,1);printf("请输入姓名:\n");scanf("%s",name);head=del_Message(head,del_Mes);clrscr();printf("删除数据后:\n");printf("----------------------------------------------------------\n");print_Message(head);}void Add() /*定义添加函数(一级)*/{ /*主要功能:调用二级函数以实现在任意位置添加一条或多条职工工资信息*/char after_name[30],i;struct Message* p;clrscr();gotoxy(1,1);printf("\n请输入需要添加的信息\n");printf("----------------------------------------------------------\n");p=(struct Message*)malloc(sizeof (struct Message));if(p!=NULL){printf("请输入姓名:\n");scanf("%s",&p->name);printf("请输入ID:\n");scanf("%d",&p->ID);printf("请输入基本工资:\n");scanf("%d",&p->JBGZ);printf("请输入职位工资:\n");scanf("%d",&p->ZWGZ);printf("请输入津贴:\n");scanf("%d",&p->JT);printf("请输入医疗保险:\n");scanf("%d",&p->YLBX);printf("请输入公积金:\n");scanf("%d",&p->GJJ);p->Total=p->JBGZ+p->ZWGZ+p->JT-p->YLBX-p->GJJ;printf("总工资为:%d\n",p->Total);}printf("\n输入在哪个职工信息下方添加新信息:\n");scanf("%s",after_name);head=add_Message(head,p,after_name);printf("\n是否继续添加?Y/N");i=getch();while (i!='N'){printf("\n请输入你想要添加的信息\n");printf("----------------------------------------------------------\n");p=(struct Message*)malloc(sizeof (struct Message));if(p!=NULL){printf("请输入姓名:\n");scanf("%s",&p->name);printf("请输入ID:\n");scanf("%d",&p->ID);printf("请输入基本工资:\n");scanf("%d",&p->JBGZ);printf("请输入职位工资:\n");scanf("%d",&p->ZWGZ);printf("请输入津贴:\n");scanf("%d",&p->JT);printf("请输入医疗保险:\n");scanf("%d",&p->YLBX);printf("请输入公积金:\n");scanf("%d",&p->GJJ);p->Total=p->JBGZ+p->ZWGZ+p->JT-p->YLBX-p->GJJ;printf("总工资为:%ld\n",p->Total);}printf("\n输入在哪个职工信息下方添加新信息:\n");scanf("%s",after_name);head=add_Message(head,p,after_name);printf("\n是否继续添加?Y/N");i=getch();}clrscr();gotoxy(1,1);printf("\n添加后的信息为:\n");printf("----------------------------------------------------------\n");print_Message(head);}void Recover() /*定义记录恢复函数(一级)*/{ /*主要功能:调用二级函数以实现恢复已删除的信息*/clrscr();head=Recover_Message(head);gotoxy(1,4);printf("恢复成功!^_^\n");printf("\n输入任意键退出...");getch();}void Modify() /*定义记录修改函数(一级)*/{ /*主要功能:调用二级函数以实现修改任意职工的任意信息*/char name[50],*Mod_Message=name;clrscr();printf("请输入需要修改信息的员工:\n");scanf("%s",name);head=Modify_Message(head,Mod_Message);clrscr();printf("修改后的信息为:\n");printf("----------------------------------------------------------\n");print_Message(head);}void Search() /*定义记录查找函数(一级)*/{ /*主要功能:调用二级函数实现按照姓名或ID通过关键字查找或精确查找的方式搜索职工信息*/ clrscr();Search_Message(head);}void Statistic() /*定义记录统计函数(一级)*/{ /*调用二级函数以实现以表格的形式输出职工工资信息并统计前三项工资总额在一定范围内的人数及比例*/clrscr();Statistic_Message(head);printf("\n输入任意键退出...");getch();}struct Message *creat(struct Message *h) /*定义创建链表函数(二级)*/{char i;struct Message *p1,*p2;clrscr();p1=p2=(struct Message*)malloc(sizeof (struct Message));if(p2!=NULL){gotoxy(1,1);printf("请输入姓名:\n");scanf("%s",&p2->name);printf("请输入ID:\n");scanf("%d",&p2->ID);printf("请输入基本工资:\n");scanf("%d",&p2->JBGZ);printf("请输入职位工资:\n");scanf("%d",&p2->ZWGZ);printf("请输入津贴:\n");scanf("%d",&p2->JT);printf("请输入医疗保险:\n");scanf("%d",&p2->YLBX);printf("请输入公积金:\n");scanf("%d",&p2->GJJ);p2->Total=p2->JBGZ+p2->ZWGZ+p2->JT-p2->YLBX-p2->GJJ;printf("总工资为:%ld\n",p2->Total);h=p2;p2->nextPrt=NULL;printf("输入s退出,输入其他键继续...\n");i=getch();}while(i!='s'){p2=(struct Message*)malloc(sizeof (struct Message));if(p2!=NULL){printf("请输入姓名:\n");scanf("%s",&p2->name);printf("请输入ID:\n");scanf("%d",&p2->ID);printf("请输入基本工资:\n");scanf("%d",&p2->JBGZ);printf("请输入职位工资:\n");scanf("%d",&p2->ZWGZ);printf("请输入津贴:\n");scanf("%d",&p2->JT);printf("请输入医疗保险:\n");scanf("%d",&p2->YLBX);printf("请输入公积金:\n");scanf("%d",&p2->GJJ);p2->Total=p2->JBGZ+p2->ZWGZ+p2->JT-p2->YLBX-p2->GJJ;printf("总工资为:%ld\n",p2->Total);p2->nextPrt=NULL;p1->nextPrt=p2;p1=p2;printf("输入s退出,输入其他键继续...\n");i=getch();}}return h;}void print_Message(struct Message *h) /*定义记录输出函数(二级)*/{struct Message *temp;int i=0;temp=h;gotoxy(1,4);printf("ID\t\b\b姓名\t\b\b基本工资\t职位工资\t\b\b\b\b\b\b津贴\t\b医疗保险\t 公积金\t\b总工资\n");if (temp==NULL) printf("没有找到信息!\n");while(temp!=NULL){i++;printf("%d\t\b\b%s\t\b\b%d\t%d\t %d\t%d\t%d\t%d\n",temp->ID,temp->name,temp->JBGZ,temp->ZWGZ,temp->JT,temp->YLBX,temp->GJJ,temp->Total);(Sum_JBGZ+=temp->JBGZ,Sum_ZWGZ+=temp->ZWGZ,Sum_JT+=temp->JT,Sum_YLBX+=temp->YLBX,Sum_GJJ+=temp->GJJ);temp=temp->nextPrt;}(Average_JBGZ=Sum_JBGZ/i,Average_ZWGZ=Sum_ZWGZ/i,Average_JT=Sum_J T/i,Average_YLBX=Sum_YLBX/i,Average_GJJ=Sum_GJJ/i);printf("各项平均工资:\t\b\b%.1f\t%.1f\t %.1f\t%.1f\t%.1f\n",Average_JBGZ,Average_ZWGZ,Average_JT ,Average_YLBX,Average_GJJ);printf("输入任意键退出...");getch();}struct Message *del_Message(struct Message *h,char *str) /*定义记录删除函数(二级)*/{struct Message *p1,*p2;p1=h;if(p1==NULL){printf("没有找到信息!\n");return h;}p2=p1->nextPrt;if(!strcmp(p1->name,str)){Rec_2=p1;Rec_3=p2;h=p2;return h;}while(p2!=NULL){if(!strcmp(p2->name,str)){Rec_1=p1;Rec_2=p2;Rec_3=p2->nextPrt;p1->nextPrt=p2->nextPrt;return h;}else{p1=p2;p2=p2->nextPrt;}}printf("删除成功!^_^");getch();return h;}struct Message *add_Message(struct Message *h,struct Message *a,char *strafter) /*定义记录添加函数(二级)*/{struct Message *p1,*p2;p1=h;while(p1!=NULL){if(!strcmp(p1->name,strafter)){a->nextPrt=p1->nextPrt;p1->nextPrt=a;return h;}elsep1=p1->nextPrt;}return h;}struct Message* Recover_Message(struct Message *h)/*定义记录恢复函数(二级)*/{if(Rec_1==NULL){h=Rec_2;Rec_2->nextPrt=Rec_3;}else{Rec_1->nextPrt=Rec_2;Rec_2->nextPrt=Rec_3;}return h;}struct Message* Modify_Message(struct Message *h,char *str)/*定义记录修改函数(二级)*/{struct Message *p1;int i;p1=h;if(p1==NULL){printf("没有找到信息!");return h;}while(strcmp(p1->name,str))p1=p1->nextPrt;printf("请输入需要修改的信息(序号):\n");printf("1.姓名 2.ID 3.基本工资 4.职务工资 5.津贴 6.医疗保险 7.公积金 8.总工资\n");scanf("%d",&i);switch(i){case 1:{printf("请输入修改后的姓名:\n");scanf("%s",&p1->name);};break;case 2:{printf("请输入修改后的ID:\n");scanf("%d",&p1->ID);};break;case 3:{printf("请输入修改后的基本工资:\n");scanf("%d",&p1->JBGZ);};break;case 4:{printf("请输入修改后的职务工资:\n");scanf("%d",&p1->ZWGZ);};break;case 5:{printf("请输入修改后的津贴:\n");scanf("%d",&p1->JT);};break;case 6:{printf("请输入修改后的医疗保险:\n");scanf("%d",&p1->YLBX);};break;case 7:{printf("请输入修改后的公积金:\n");scanf("%d",&p1->GJJ);};break;case 8:{printf("请输入总工资:\n");scanf("%d",&p1->Total);};break;}printf("\n修改成功!^_^\n输入任意键查看结果...");getch();return h;}void Search_Message(struct Message *h) /*定义记录搜索函数(二级)*/{struct Message* p1;int a,b,i,u,n=0,x1=0,x2,x3=0,x4=0,x5,x6,w1=1,w2=1,w3=0;char name[50];p1=h;if (p1==NULL) printf("没有找到信息!");printf("请选择查找方式:1.按姓名查找 2.按ID查找\n");scanf("%d",&a);printf("请选择搜索方式:1.按关键字搜索 2.精确搜索\n");scanf("%d",&b);if(a==1&&b==1){printf("请输入姓名:\n");scanf("%s",name);while(p1!=NULL){for(i=0;name[i]!='\0';i++)for(u=0;p1->name[u]!='\0';u++)if (name[i]==p1->name[u]) n++;if (2*n>=strlen(name)){printf("ID\t\b\b姓名\t\b\b基本工资\t职位工资\t\b\b\b\b\b\b津贴\t\b 医疗保险\t公积金\t\b总工资\n");printf("%d\t\b\b%s\t\b\b%d\t%d\t %d\t%d\t%d\t%d\n",p1->ID,p1->name,p1->JBGZ,p1->ZWGZ,p1->JT,p1->YLBX,p1->GJJ,p1->Total);}p1=p1->nextPrt;}p1=h;printf("\n输入任意键退出...");getch();}if(a==1&&b==2){printf("请输入姓名:\n");scanf("%s",name);while(p1!=NULL){if(!strcmp(p1->name,name)){printf("ID\t\b\b姓名\t\b\b基本工资\t职位工资\t\b\b\b\b\b\b津贴\t\b 医疗保险\t公积金\t\b总工资\n");printf("%d\t\b\b%s\t\b\b%d\t%d\t %d\t%d\t%d\t%d\n",p1->ID,p1->name,p1->JBGZ,p1->ZWGZ,p1->JT,p1->YLBX,p1->GJJ,p1->Total);}p1=p1->nextPrt;}p1=h;printf("\n输入任意键退出...");getch();}if(a==2&&b==1){printf("请输入ID:\n");scanf("%d",&x1);x2=x1;while(x2!=0){x2=x2/10;if(x2!=0)w1++; /*记录输入数据的位数w1*/}while(p1!=NULL){x6=x1; /*用x6暂时存储输入的数据*/for(i=1;i<=w1;i++) /*执行w1次循环*/{x3=x6%10; /*x3为x6的末位数*/x5=p1->ID;while(x5!=0){x5=x5/10;if(x5!=0)w2++; /*记录链表中某一节点位数*/}x5=1;x4=p1->ID; /*x4暂时存储链表中某一节点的ID*/for(u=1;u<=w2;u++) /*执行w2次循环*/{if((x4%10)==x3) /*判断x4的末位是否等于x3,若相等,则跳出循环,继续循环以判断该节点中是否还有输入数据中的其他数字*/{w3++; /*某节点的ID中,只要存在输入数据中的某一位数字,则w3增加1*/break;}x4=x4/10; /*判断x4的末位是否等于x3,若不相等,则去掉x4的末位数*/}x6=x6/10; /*去掉x6的末位数,继续循环判断该节点中是否还有输入数据中的其他数据*/w2=1; /*恢复w2的初值,否则位数将继续累加*/}if(w3==w1) /*如果w3与w1相等则表示该节点的ID中包含有输入数据中的所有数字,则输出该节点的数据*/{printf("ID\t\b\b姓名\t\b\b基本工资\t职位工资\t\b\b\b\b\b\b津贴\t\b 医疗保险\t公积金\t\b总工资\n");printf("%d\t\b\b%s\t\b\b%d\t%d\t %d\t%d\t%d\t%d\n",p1->ID,p1->name,p1->JBGZ,p1->ZWGZ,p1->JT,p1->YLBX,p1->GJJ,p1->Total);}p1=p1->nextPrt; /*节点位置向后移动一位,继续循环以判断是否符合输出要求*/};p1=h;printf("\n输入任意键退出...");getch();}if(a==2&&b==2){printf("请输入ID:\n");scanf("%d",&x1);while(p1!=NULL){if(p1->ID==x1){printf("ID\t\b\b姓名\t\b\b基本工资\t职位工资\t\b\b\b\b\b\b津贴\t\b 医疗保险\t公积金\t\b总工资\n");printf("%d\t\b\b%s\t\b\b%d\t%d\t %d\t%d\t%d\t%d\n",p1->ID,p1->name,p1->JBGZ,p1->ZWGZ,p1->JT,p1->YLBX,p1->GJJ,p1->Total);}p1=p1->nextPrt;}p1=h;printf("\n输入任意键退出...");getch();}}void Statistic_Message(struct Message *h) /*定义记录统计函数*/ {struct Message *p1;int i=0,a1=0,b1=0,c1=0;float a2,b2,c2;p1=h;printf("┏━━━┳━━━━━┳━━━━┳━━━━┳━━━┳━━━━┳━━━┳━━━┓\n");printf("┃ ID号┃姓名┃基本工资┃职务工资┃津贴┃医疗保险┃公积金┃总工资┃\n");printf("┣━━━╋━━━━━╋━━━━╋━━━━╋━━━╋━━━━╋━━━╋━━━┫\n");while(p1!=NULL){i++;printf("┃%d\t┃ %s\t \b\b\b\b\b\b\b\b┃%d\t\b\b\b\b ┃ %d\t┃%d\t┃%d\t ┃ %d\t\b\b\b\b\b\b┃%ld ┃\n",p1->ID,p1->name,p1->JBGZ,p1->ZWGZ,p1->JT,p1->YLBX,p1->GJJ,p1->Total);printf("┣━━━╋━━━━━╋━━━━╋━━━━╋━━━╋━━━━╋━━━╋━━━┫\n");(Sum_JBGZ+=p1->JBGZ,Sum_ZWGZ+=p1->ZWGZ,Sum_JT+=p1->JT,Sum_YLBX+=p1->YLBX,Sum_GJJ+=p1->GJJ);p1=p1->nextPrt;}(Average_JBGZ=Sum_JBGZ/i,Average_ZWGZ=Sum_ZWGZ/i,Average_JT=Sum_J T/i,Average_YLBX=Sum_YLBX/i,Average_GJJ=Sum_GJJ/i);printf("┃┃┃┃┃┃┃┃┃\n");printf("┣━━━┻━━━━━╋━━━━╋━━━━╋━━━╋━━━━╋━━━╋━━━┫\n");printf("┃各项平均工资┃%.1f\t\b\b\b\b ┃ %.1f\t┃%.1f\t\b ┃%.1f\t\b\b\b\b ┃%.1f\t\b\b\b\b\b\b┃\t\b\b ┃\n",Average_JBGZ,Average_ZWGZ,Average_JT,Average_YLBX,Average_GJJ);printf("\b┗━━━━━━━━━┻━━━━┻━━━━┻━━━┻━━━━┻━━━┻━━━┛");p1=h;while(p1!=NULL){p1->Sum_3=(p1->JBGZ+p1->ZWGZ+p1->JT);if(p1->Sum_3>=1000 && p1->Sum_3<1500) a1++;if(p1->Sum_3>=1500 && p1->Sum_3<=2000) b1++;if(p1->Sum_3>2000) c1++;p1=p1->nextPrt;}a2=((float)a1/i)*100;b2=((float)b1/i)*100;c2=((float)c1/i)*100;printf("\n\n前三项工资和在1000-1500元之间的职工人数为:%d,占总职工人数的百分比为:%.2f%",a1,a2);printf("\n前三项工资和在1500-2000元之间的职工人数为:%d,占总职工人数的百分比为:%.2f%",b1,b2);printf("\n前三项工资和在2000元以上的职工人数为:%d,占总职工人数的百分比为:%.2f%",c1,c2);p1=h;Sum_JBGZ=0;Sum_ZWGZ=0;Sum_JT=0;Sum_YLBX=0;Sum_GJJ=0;}【欢迎使用职工工资管理系统】本系统可实现对职工工资信息的录入,显示,修改,查找,删除,恢复,添加,统计等功能,具体操作说明如下:进入程序后输入任意键进入主菜单,依菜单所示选择功能,输入序号即可调用该功能:1.输入a:调用记录输入功能,可依照屏幕提示依次输入职工的姓名,ID号,基本工资,职务工资,津贴,医疗保险,公积金(以Enter作为输入结尾)。
c语言职工工资管理系统代码
C语言职工工资管理系统代码1. 项目简介本项目是一个用C语言编写的职工工资管理系统。
该系统旨在帮助企业或组织更好地管理职工的工资信息,包括薪资计算、数据存储和查询等功能。
通过该系统,可以提高工资管理的效率和准确性,减少人力资源部门的负担。
2. 功能需求本系统需要实现以下功能:•添加新员工:输入员工姓名、基本工资、津贴等信息,并生成唯一的员工ID。
•删除员工:根据员工ID删除指定员工信息。
•修改员工信息:根据员工ID修改指定员工的基本信息。
•计算薪资:根据员工ID计算指定员工的实际薪资,并将结果保存到数据库中。
•查询薪资:根据员工ID查询指定员工的薪资信息。
3. 数据结构设计为了存储职工的基本信息和薪资数据,我们可以使用以下数据结构:3.1 员工结构体定义struct Employee {int id; // 员工IDchar name[50]; // 员工姓名float basicSalary; // 基本工资float allowance; // 津贴float actualSalary; // 实际薪资};3.2 员工数组定义struct Employee employees[100]; // 最多存储100个员工的信息int employeeCount = 0; // 当前员工数量4. 系统实现4.1 添加新员工void addEmployee() {struct Employee employee;printf("请输入员工姓名:");scanf("%s", );printf("请输入基本工资:");scanf("%f", &employee.basicSalary);printf("请输入津贴:");scanf("%f", &employee.allowance);employee.id = employeeCount + 1;employee.actualSalary = employee.basicSalary + employee.allowance;employees[employeeCount] = employee;employeeCount++;printf("添加成功!员工ID为:%d\n", employee.id);}4.2 删除员工void deleteEmployee() {int id;printf("请输入要删除的员工ID:");scanf("%d", &id);int index = findEmployeeIndex(id);if (index == -1) {printf("未找到对应的员工信息。
C语言 员工工资管理系统 codeblocks
记得自己创建一个名字为“employee data”的空白文件哦!!,然后放到新建的codeblocks 文件夹里面#include<stdio.h>#include<windows.h>#include<string.h>#include<conio.h>FILE*fp;void welcome();void search();void add();int login();void menu1();void menu2();void enroll(int);void changeword(int);void output();void input();void delete1();int load();void save(int);void xiugai();struct nameandword{char username[30]; //保存用户名char password[30]; //保存密码char newpassword[30];//保存新密码}a[10]={"manager","123","123"};struct employee{char num[10]; //职工工号char name[15]; //职工姓名float jbgz; //职工基本工资float jj; //职工奖金float kk; //职工扣款float sk; //职工税款float sfgz; //职工实发工资}b[100],b1[100];int main(){system("color 4E");int n,j,button;welcome();getchar();logo1:(j=login());if(j==0){logo4:menu1();do{printf("功能选择(1--9):");scanf("%d",&n);if(n>=1&&n<=9){button=1;break;}else{button=0;printf("您输入有误,请重新选择!\n");}}while(button==0);switch(n){case 1:system("cls");input();goto logo4;case 2:system("cls");output();goto logo4;case 3:system("cls");search();goto logo4;case 4:system("cls");add();goto logo4;case 5:system("cls");xiugai();goto logo4;case 6:system("cls");delete1();goto logo4;case 7:system("cls");changeword(j);goto logo4;case 8:system("cls");enroll(j);goto logo4;case 9:goto logo1;break;default:printf("功能暂无");}return 0;}else{logo5:menu2();do{printf("功能选择(1--3):");scanf("%d",&n);if(n>=1&&n<=3){button=1;break;}else{button=0;printf("您输入有误,请重新选择!\n");}}while(button==0);switch(n){case 1:system("cls");output();goto logo5;case 2:system("cls");changeword(j);goto logo5;case 3:goto logo1;break;default:printf("功能暂无");break;}return 0;}}void welcome() //欢迎界面{system("cls");system("color F9");printf("\n\n\n\n\n\n");printf("************************************************************************* *******");printf("*****************************欢迎使用工资管理系统*****************************");printf("************************************************************************* *********\n\n\n\n\n");printf("\t\t制作人: ");printf("黑狼\n\n\n\n\n\n");printf("\t\t\t ***按任意键进入***");}void menu1() //管理员菜单界面{system("cls");system("color 3B");printf("***菜单***\n\n");printf(">>>>>>>>>>>>>>>>>>>>>>>>> 1 输入\n\n");printf(">>>>>>>>>>>>>>>>>>>>>>>>> 2 显示\n\n");printf(">>>>>>>>>>>>>>>>>>>>>>>>> 3 查找\n\n");printf(">>>>>>>>>>>>>>>>>>>>>>>>> 4 添加\n\n");printf(">>>>>>>>>>>>>>>>>>>>>>>>> 5 修改\n\n");printf(">>>>>>>>>>>>>>>>>>>>>>>>> 6 删除\n\n");printf(">>>>>>>>>>>>>>>>>>>>>>>>> 7 修改密码\n\n");printf(">>>>>>>>>>>>>>>>>>>>>>>>> 8 注册员工账号\n\n");printf(">>>>>>>>>>>>>>>>>>>>>>>>> 9 退出\n\n");printf("说明:1.如首次使用尚未输入数据请先输入数据\n 2.输入的数据将自动保存\n 3.再次选择输入功能时原数据将被覆盖\n\n");}void menu2() //员工菜单界面{system("cls");system("color 3B");printf("***菜单***\n\n");printf("\n\n\n\n>>>>>>>>>>>>>>>>>>>>>>>>> 1 显示\n\n");printf(">>>>>>>>>>>>>>>>>>>>>>>>> 2 修改密码\n\n");printf(">>>>>>>>>>>>>>>>>>>>>>>>> 3 退出\n\n");}int login()//登陆界面{system("cls");system("color 80");char username[30]; //保存用户名char password[30]; //保存密码int i,count=0;printf("\n\t\t\t%c*******************************%c\n",1,1);printf("\t\t\t%c 1.以管理员身份进入系统\t%c",1,1);printf("\t\t\t\t\t\t%c\t\t\t\t%c\n",1,1);printf("\t\t\t%c 2.以员工身份进入系统\t%c\n\t\t\t",1,1);printf("%c\t\t\t\t%c",1,1);printf("\n\t\t\t%c*******************************%c\n\n\n",1,1);logo:printf("\n\t\t\t请输入账号:");//管理员账号:managerscanf("%s",username);printf("\t\t\t密码:");//密码:123scanf("%s",password);for(i=1;i<10;i++){if(strcmp(username,a[i].username)==0&&strcmp(password,a[i].password) == 0)return i;}if(strcmp(username,a[0].username)==0&&strcmp(password,a[0].password) == 0)return 0;else{printf("\t\t对不起,您输入的用户名或密码错误!");count++;if(count>=3){system("cls");printf("\n\n\n\n\n\t\t 提示:您输入错误的次数太多,请稍后再试!\n");exit(0);}goto logo;}return 0;}void enroll(j)//注册员工账号{int m;j++;logo2:printf("\n\n\n\n\t\t\t**********************************\n");printf("\t\t\t\t请输入用户名:");scanf("%s",a[j].username);getchar();printf("\t\t\t**********************************\n");printf("\t\t\t\t请输入密码:");scanf("%s",a[j].password);getchar();printf("\t\t\t**********************************\n");printf("\t\t\t\t请再次输入密码:");scanf("%s",a[j].newpassword);getchar();printf("\t\t\t**********************************\n");if(strcmp(a[j].password,a[j].newpassword)==0){printf("\t\t\t\t注册成功\n");printf("\t\t\t**********************************\n");}else{printf("\t\t\t\t注册失败\n");printf("\t\t\t**********************************\n");}printf("\n\t\t\t1.继续注册员工账号。
c语言-员工工资管理系统
#include <stdio.h>#include <stdlib.h>#include <conio.h>int q_n=0;int Xuhao[40];struct WORKER{int id;char name[25];int age;int workday;int shouldmy;int decday;int infactmy;}workers[40];/*----主菜单----*/void fmenu(){system("cls");printf(">>> 员工工资管理系统<<<\n\n");printf("1. 录入员工基本信息\n");printf("2. 修改员工基本信息\n");printf("3. 注销员工相关信息\n");printf("4. 录入员工工资信息\n");printf("5. 修改员工工资信息\n");printf("6. 查找员工工资信息\n");printf("7. 插入员工工资信息\n");printf("8. 浏览员工工资信息\n");printf("9. 保存员工工资信息\n");printf("10. 打开员工工资信息\n");printf("11. 清除员工工资信息\n");printf("0. 退出\n");printf("请选择相应序号\n");}/*----员工基本信息的录入----*/void worker_new(){char mm;int i,fg,fg1;printf("----录入员工基本信息----\n");do{fg=0;printf("工号:");scanf("%d",&workers[q_n].id);for(i=0;i<q_n;i++){if(workers[i].id==workers[q_n].id){printf("该员工已存在");fg=1;break;}}if(fg==0){printf("姓名:");scanf("%s",&workers[q_n].name);do{fg1=0;printf("年龄:");scanf("%d",&workers[q_n].age);if(workers[q_n].age>100||workers[q_n].age<0){fg1=1;printf("输入有误,请重新输入\n");}}while(fg1==1);q_n++;}printf("是否继续录入?y/n\n");flushall();scanf("%c",&mm);}while((mm=='y')||(mm=='Y'));printf("\n按任意键返回……\n");getch();}/*----通过工号信息确定下标标号----*/int search_xiabiao(){int n,i;printf("请输入员工工号:");scanf("%d",&i);for(n=0;n<40;n++){if(workers[n].id==i){printf("工号:%d\n",workers[n].id);printf("姓名:%s\n",workers[n].name);printf("年龄:%d\n",workers[n].age);return n;}}printf("\nerror\n");return -1;}/*----注销员工信息----*/void worker_del(){int n,i;printf("----注销员工信息----\n");n=search_xiabiao();printf("出勤天数:%d\n",workers[n].workday);printf("应发工资:%d\n",workers[n].shouldmy);printf("迟到天数:%d\n",workers[n].decday);printf("实际工资:%d\n",workers[n].infactmy);if(n!=-1){for(i=n;i<(q_n-1);i++){workers[i]=workers[i+1];}q_n--;printf("\n!该员工信息已注销\n");}elseprintf("该员工不存在\n");printf("\n按任意键返回……\n");getch();}/*----修改员工基本信息----*/void worker_edit(){int n,fg_ag;printf("----重新编辑员工基本信息----\n");n=search_xiabiao();if(n!=-1){printf("\n请输入更新信息:");printf("姓名:");scanf("%s",&workers[n].name);do{fg_ag=0;printf("年龄:");scanf("%d",&workers[n].age);if(workers[q_n].age>100||workers[q_n].age<0){fg_ag=1;printf("输入有误,请重新输入\n");}}while(fg_ag==1);}printf("\n按任意键返回……\n");getch();}/*----工资相关信息的录入----*/void money_input(){int n,t,c,fg_day,fg_cd;printf("----录入工资----\n");for(n=0;n<q_n;n++){if(workers[n].id!=0&&workers[n].infactmy==0){printf("工号:%d 姓名:%s:",workers[n].id,workers[n].name);do{fg_day=0;printf(" 出勤天数:");scanf("%d",&t);if(t>30||t<0){fg_day=1;printf("输入有误,请重新输入\n");}}while(fg_day==1);workers[n].workday=t;workers[n].shouldmy=t*100;printf("应发工资:%d",workers[n].shouldmy);do{fg_cd=0;printf(" 迟到天数:");scanf("%d",&c);if(c>30||c<0){fg_cd=1;printf("输入有误,请重新输入\n");}}while(fg_cd==1);workers[n].decday=c;workers[n].infactmy=t*100-c*10-200;printf("实际工资:%d\n",workers[n].infactmy);}}printf("\n按任意键返回……\n");getch();}/*----工资信息的修改----*/void money_edit(){int n,t,c,fg_day,fg_cd;printf("----修改工资----\n");n=search_xiabiao();if(n!=-1){printf("出勤天数:%d 应发工资:%d",workers[n].workday,workers[n].shouldmy);printf(" 迟到天数:%d 实际工资:%d\n",workers[n].decday,workers[n].infactmy);do{fg_day=0;printf("重新输入出勤天数:");scanf("%d",&t);if(t>30||t<0){fg_day=1;printf("输入有误,请重新输入\n");}}while(fg_day==1);workers[n].workday=t;workers[n].shouldmy=t*100;printf("应发工资:%d",workers[n].shouldmy);do{fg_cd=0;printf(" 重新输入迟到天数:");scanf("%d",&c);if(c>30||c<0){fg_cd=1;printf("输入有误,请重新输入\n");}}while(fg_cd==1);workers[n].decday=c;workers[n].infactmy=t*100-c*10-200;printf("实际工资:%d",workers[n].infactmy);}printf("\n按任意键返回……\n");getch();}/*----按不同需要将员工信息排序----*/void sort_it(char d){int n,m,p,max,t[40];for(n=0;n<40;n++){switch(d){case '1':t[n]=workers[n].id;break;case '2':t[n]=workers[n].workday;break;case '3':t[n]=workers[n].shouldmy;break;case '4':t[n]=workers[n].decday;break;case '5':t[n]=workers[n].infactmy;break;}}for(n=0;n<q_n;n++){max=-1;for(m=0;m<q_n;m++){if(t[m]>max){max=t[m];p=m;}}t[p]=-1;Xuhao[q_n-n-1]=p;}}/*----查找员工工资信息----*/void search(){int i;i=search_xiabiao();printf("出勤天数:%d\n",workers[i].workday);printf("应发工资:%d\n",workers[i].shouldmy);printf("迟到天数:%d\n",workers[i].decday);printf("实际工资:%d\n",workers[i].infactmy);printf("\n按任意键返回……\n");getch();}/*----插入员工工资信息----*/void insert(){int i,fg=0,fg_day,fg1,fg_cd,t,c;printf("请输入工号:\n");scanf("%d",&workers[q_n].id);for(i=0;i<q_n;i++){if(workers[i].id==workers[q_n].id){printf("该员工已存在");fg=1;break;}}if(fg==0){printf("姓名:");scanf("%s",&workers[q_n].name);//printf("年龄:");//scanf("%d",&workers[q_n].age);do{fg1=0;printf("年龄:");scanf("%d",&workers[q_n].age);if(workers[q_n].age>100||workers[q_n].age<0){fg1=1;printf("输入有误,请重新输入\n");}}while(fg1==1);do{fg_day=0;printf(" 出勤天数:");scanf("%d",&t);if(t>30||t<0){fg_day=1;printf("输入有误,请重新输入\n");}}while(fg_day==1);workers[q_n].workday=t;workers[q_n].shouldmy=t*100;printf("应发工资:%d",workers[q_n].shouldmy);do{fg_cd=0;printf(" 迟到天数:");scanf("%d",&c);if(c>30||c<0){fg_cd=1;printf("输入有误,请重新输入\n");}}while(fg_cd==1);workers[q_n].decday=c;workers[q_n].infactmy=t*100-c*10-200;printf("实际工资:%d\n",workers[q_n].infactmy);q_n++;}printf("\n按任意键返回……\n");getch();}/*----浏览员工信息----*/void watch(){int n,x;char k;sort_it('1');while(1){printf("----浏览----\n");printf("按数字键选择排序方式或按0 返回\n");printf("1.工号\t姓名\t年龄\t2.出勤天数 3.应发工资 4.迟到天数 5.实际工资\n");for(n=0;n<q_n;n++){x=Xuhao[n];if(workers[x].id!=0){printf("%d\t%s\t ",workers[x].id,workers[x].name);printf("%d\t %d\t\t",workers[x].age,workers[x].workday);printf("%d\t %d\t\t",workers[x].shouldmy,workers[x].decday);printf("%d\n",workers[x].infactmy);}}k=getch();if(k<'6'&&k>'0')sort_it(k);else if(k=='0')break;elsecontinue;}}/*----保存信息到文档----*/void write_text(){FILE *fp,*nb;int i=0;fp=fopen("workers.txt","w");while(i<q_n){fwrite(&workers[i],sizeof(struct WORKER),1,fp);i++;}fclose(fp);if((nb=fopen("num.txt","wb"))!=NULL){fprintf(nb,"%d",q_n);fclose(nb);}printf("已成功存储\n");watch();}/*------打开文档信息------*/void open_text(){int i=0;FILE *fp,*nb;if((nb=fopen("num.txt","rb"))==NULL){printf("无法打开文件\n");}fscanf(nb,"%d",&q_n);fclose(nb);if((fp=fopen("workers.txt","r"))==NULL){printf("无法打开文件\n");}while(i<q_n){fread(&workers[i],sizeof(struct WORKER),1,fp);i++;}fclose(fp);printf("文件读取成功\n");watch();}/*清除工资信息,保留员工基本信息*/ void clear_gz(){char a;int i;printf("是否确定清除工资信息? y/n\n");flushall();scanf("%c",&a);if(a=='y'||a=='Y'){for(i=0;i<q_n;i++){workers[i].workday=0;workers[i].shouldmy=0;workers[i].decday=0;workers[i].infactmy=0;}printf("员工工资信息已清除n");}printf("\n按任意键返回……\n");getch();}/*----主程序----*/void main(){int x;fmenu();scanf("%d",&x);while(x!=0){if(x<12&&x>0){switch(x){case 1:worker_new();break;case 2:worker_edit();break;case 3:worker_del();break;case 4:money_input();break;case 5:money_edit();break;case 6:search();break;case 7:insert();break;case 8:watch();break;case 9:write_text();break;case 10:open_text();break;case 11:clear_gz();break;}}else{printf("输入有误,请重新输入\n");printf("\n按任意键返回……\n");getch();}fmenu();scanf("%d",&x);}}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
p=isExists(num);
if (p->next==null)
{
strcpy(q->num,num);
printf("\t\t请输入员工姓名: ");
scanf("%s",q->name);
printf("\t\t请输入该员工的部门: ");
scanf("%s",q->depar);
#include<stdio.h>
#include<string.h>
#include<ctype.h>
#include<malloc.h>
#define null 0
typedef struct Info1
{
char num[10];
char name[10];
char depar[10];
char yfsalary[10];
void add();
void del();
void list();
void listOne(Info s);
Info isExists(char *num);
void init();
void init()
{
head=(Info)malloc(sizeof(Info2));
head->next=null;
}
void main()
{
init();
while(1)
{
char c;
display();
scanf("%c",&c);
switch(c)
{
case '1':find();break;
case '2':add();break;
case '3':modify();break;
case '4':del();break;
q=p->next;
while(q!=null)
{
if(strcmp(q->num,num)==0)
return p;
p=q;
q=p->next;
}
return p;
}
void add()
{
Info p,q;
char num[10];
q=(Info)malloc(sizeof(Info2));
printf("\t\t请输入员工编号: ");
getchar();
}
void modify()
{
Info p,q;
char num[10];
if (head->next==null)
{
printf("\n\t\t当前还没有员工信息记录,按任意键返回主菜单......");
printf("%-12s%-10s%-10s%-7s%-7s%-10s%-10s%\n",p->num,p->name,p->depar,p->yfsalary,p->aband,p->tax,p->sfsalary);
}
Info isExists(char *num)
{
Info p,q;
p=head;
printf("\t请选(1-7):\n");
printf("\t============================================\n");
printf("\t\t2.录入员工信息\n");
printf("\t\t3.修改员工信息\n");
}
void del()
{
Info p,q;
char num[10];
if (head->next==null)
{
printf("\n\t\t当前还没有员工信息记录,按任意键返回主菜单......");
getchar();
return;
}
printf("\t\t请输入员工编号: ");
scanf("%s",num);
p=isExists(num);
q=p->next;
if (q!=null)
{
q=q->next;
p->next=q;
printf("\n\t\t删除成功! ");
}
else
printf("\n\t\t您所输入的员工编号有误或不存在! ");
printf("\n\t\t按任意键返回主菜单......");
char aband[10];
char tax[10];
char sfsalary[10];
struct Info1 *next;
}Info2;
typedef struct Info1 *Info;
Info head;
void display();
void find();
void modify();
case '5':list();break;
case '6':printf("\t\t...退出系统!\n");return;
default: printf("\t\t输入错误!请按任意键返回重新选择(1-7)\n");getchar();
}
}
}
void display()
{
printf("\n\t**欢迎使用员工信息管理系统**\n\n");
printf("\t\t请输入该员工的实付工资: ");
scanf("%s",q->sfsalary);
q->next=null;
p->next=q;
}
else
printf("\n\t\t您所输入的员工编号以存在! ");
printf("\n\t\t按任意键返回住菜单......");
getchar();
printf("\t\t请输入该员工的应付工资金额: ");
scanf("%s", q->yfsalary);
printf("\t\t请输入该员工的保险金额: ");
scanf("%s", q->aband);
printf("\t\t请输入该员工的税金金额: ");
scanf("%s",q->tax);
printf("\t\t4.删除员工信息\n");
printf("\t\t6.显示所有员工信息\n");
printf("\t\t7.退出系统\n");
printf("\t============================================\n");
printf("\t您的选择是: ");
}
void listOne(Info p)
{
printf("\n该员工信息记录如下: ");
printf("\n==========================================================\n\n");
printf("%-12s%-10s%-10s%-7s%-7s%-10s%-10s%\n","员工编号","姓名","部门","应付工资","保险","税金","实付工资");