员工工资管理系统c语言编程精编

合集下载

c语言课程设计职工工资管理系统源代码

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语言课程实践《职工工资管理系统》源代码
else if(mn==0)
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语言编程)6页

员工工资管理系统(c语言编程)6页

员工工资管理系统(c语言编程)6页一、设计目标1、完成一个员工工资管理系统,包括对员工信息的添加、删除、修改和查询、员工工资管理和统计等功能。

2、程序必须具备易用性、可靠性、安全性和稳定性等特点。

二、程序结构设计员工工资管理系统是由若干模块构成的一个整体,它们之间相互联系,共同完成对员工信息的处理和管理。

程序分为主界面模块、添加模块、删除模块、修改模块、查询模块、统计模块、退出模块。

三、模块功能设计1、主界面模块主界面包括菜单栏和功能栏,菜单栏包括添加、删除、修改、查询、统计和退出功能,功能栏是对主界面菜单的补充,包括一些快捷操作按钮。

2、添加模块添加模块是用来录入员工信息的,可以录入的信息有员工编号、员工姓名、员工部门、员工工作年限、员工基本工资、员工奖金等。

添加模块会对信息进行一系列的校验,要求信息必须完整正确才能录入。

3、删除模块删除模块是用来删除员工信息的,输入员工编号就可以删除该员工的信息。

5、查询模块查询模块提供了多种查询方式,包括按部门查询、按姓名查询、按工作年限查询、按基本工资查询、按奖金查询等。

查询结果会按照员工编号的顺序进行排序。

6、统计模块统计模块会根据查询结果进行工资统计,包括总工资、平均工资、最高工资和最低工资等。

7、退出模块退出模块是用来关闭程序的,保证程序的安全性和稳定性。

四、程序流程设计1、主界面程序启动后,会显示主界面界面,包括菜单栏和功能栏。

2、录入信息点击添加功能或者添加按钮,会进入添加模块,要求用户输入员工信息,录入完成后数据将保存到文件中。

4、修改信息点击修改功能或者修改按钮,会进入修改模块,输入员工编号,然后修改员工信息。

5、查询信息点击查询功能或者查询按钮,会进入查询模块,选择查询方式,输入查询条件,系统将显示符合条件的员工信息。

6、工资统计当查询完成后,点击统计功能或者统计按钮,会进入统计模块,系统将根据查询结果进行统计。

7、程序退出当操作完成后,点击退出功能或者退出按钮,会关闭程序。

c语言职工工资管理系统代码

c语言职工工资管理系统代码

C语言职工工资管理系统代码简介职工工资管理是一项重要的任务,它涉及到工资计算、薪资发放、绩效评估等方面。

为了提高管理的有效性和准确性,许多公司和组织都开发了各种各样的工资管理系统。

本文将介绍一种基于C语言开发的职工工资管理系统代码。

代码功能及特点1. 基本功能•添加新员工信息•更新员工信息•计算员工工资•发放工资•查询员工信息•统计工资情况2. 特点•简单易懂:代码使用C语言编写,阅读和理解都相对简单。

•高效可靠:代码采用模块化设计,结构清晰,运行效率高,容错性强。

•跨平台支持:C语言是一种具有广泛应用的语言,可以在多个操作系统上运行。

代码实现1. 员工信息结构体定义struct Employee {int id; // 员工编号char name[20]; // 员工姓名float basicSalary; // 员工基本工资float performanceBonus; // 绩效奖金float salary; // 员工工资};2. 添加新员工信息函数void addEmployee(struct Employee *employee, int num) {printf("请输入员工编号:");scanf("%d", &(employee[num].id));// 输入其他员工信息...}3. 更新员工信息函数void updateEmployee(struct Employee *employee, int id) {int i;for (i = 0; i < num; i++) {if (employee[i].id == id) {// 更新员工信息...}}}4. 计算员工工资函数void calculateSalary(struct Employee *employee, int num) {int i;for (i = 0; i < num; i++) {employee[i].salary = employee[i].basicSalary + employee[i].performance Bonus;}}5. 发放工资函数void paySalary(struct Employee *employee, int num) {int i;for (i = 0; i < num; i++) {printf("员工编号:%d,工资:%.2f\n", employee[i].id, employee[i].salar y);}}6. 查询员工信息函数void searchEmployee(struct Employee *employee, int id) {int i;for (i = 0; i < num; i++) {if (employee[i].id == id) {// 输出员工信息...}}}7. 统计工资情况函数void statisticsSalary(struct Employee *employee, int num) { float totalSalary = 0;int i;for (i = 0; i < num; i++) {totalSalary += employee[i].salary;}printf("总工资:%f\n", totalSalary);}使用示例1. 添加员工信息struct Employee employees[100];int num = 0;addEmployee(employees, num);num++;2. 更新员工信息int id = 12345;updateEmployee(employees, id);3. 计算员工工资calculateSalary(employees, num);4. 发放工资paySalary(employees, num);5. 查询员工信息int id = 12345;searchEmployee(employees, id);6. 统计工资情况statisticsSalary(employees, num);总结本文介绍了一个基于C语言的职工工资管理系统代码。

员工工资管理系统(c语言编程)

员工工资管理系统(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语言工资管理系统

C语言工资管理系统

C语言课程设计-工资管理系统题目要求做一个工资管理系统,要能按照姓名和卡号查找员工的工资信息,以及员工工资信息的插入,删除。

同时这些信息要存储在TXT文件中…还要可以按照一定顺序输出所有员工工资的信息#include〈stdio.h〉#include〈string。

h〉#define N 100struct mygz{int yuefen;float yfgz;float sf;float df;float sj;float sfgz;};struct worker{int kahao;char xingming[20];struct mygz m[12];float zsfgz;};int ygsm;struct worker a[N];float shuijin(float m){float shui1,shui2;float tmp;shui1=0;shui2=0;if(m〉=1400){shui1=(m-1400)*0.1;shui2=30;}else{if(m〉=800 && m〈1400){shui2=(m—800)*0。

05;}}tmp=shui1+shui2;return(tmp);}float shifagongzi(float a,float b,float c,float d){float e=a—b—c-d;return(e);}void duqu(){FILE *fp;if((fp=fopen("D:工资信息.txt”,”r"))==NULL){printf(”无法读取文件”);;return;}while(!feof(fp)){fread(&a[ygsm],sizeof(struct worker),1,fp);ygsm++;}}void chaxun(){int b;int i;int j;label_3:b=0;while(b!=1&&b!=2){printf(”1,选择姓名查询.\n2,选择卡号查询.\n”);scanf(”%d",&b);}if(b==1){char c[20];printf("请输入您的姓名:\n");scanf(”%s”,c);i=0;while(!(strcmp(a[i]。

员工工资管理系统(c语言编程)

员工工资管理系统(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语言编程)

员工工资管理系统(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语言做的工资管理系统

C语言做的工资管理系统

C语言课程设计报告-工资管理系统一. 系统功能1,输入记录模块主要完成将数据存入数组中的工作。

记录可以从以二进制形式存储的数据文件中读入,也可以从键盘逐个输入记录。

2,查询记录模块主要完成在数组中查找满足相关条件的记录。

在查询记录模块中,用户可以按照职工编号或者姓名在数组中进行查找。

3,更新记录模块主要完成对记录的维护。

在此工资管理系统中,实现对记录的修改、删除、插入、排序操作。

4,统计记录模块主要完成对公司员工的工资在各等级的人数统计。

5,输出记录模块主要完成两个任务:第一,它实现对记录的存盘操作,将数组中各元素的存储的记录信息写入数据文件中。

第二,它实现将数组中存储的记录信息以表格的形式在屏幕上打印出来。

6,从文件读入功能模块主要是将数据存放在数组中。

该模块从数据文件中读取所有记录,通过多次调用fread()文件函数,每次操作都是从文件中读取一条工资记录信息存入数组中的操作.7,从键盘输入功能模块主要实现记录从键盘上输入Add函数实现。

首先把文件中存在的记录全部显示出来,而后从键盘接收多次输入记录,如果职工编号重复则提醒重新输入,输入的记录暂保存到结构体数组中,输入0回到主菜单。

8,查询模块主要实现在结构体数组中按职工编号或姓名查找满足条件的记录的功能,通过Qur()函数来实现。

提供两种方式查询:1为按照编号来查询,2按照姓名来查询;如找到查询内容则输出记录值,找不到则提示无此项记录。

9,更新记录模块主要是实现对记录的修改、删除、插入、排序操作。

所有这些操作都在数组中完成。

修改记录操作需要对数组中目标元素的数据域中的值进行修改,分三步完成:首先显示所有的记录,然后输入要修改的职工编号,调用Locate()函数定位该职工的编号记录,第三步,若找到该记录,则修改职工编号之外的各字段的值。

10,删除记录操作完成删除制定的职工编号或者姓名的记录。

也分三步完成:首先显示所有的记录,而后输入要删除的职工编号或者姓名,输入后调用Locate()函数定位该职工的记录,第三步,若找到该记录,则从该记录所在元素的后续元素起,依次向前移一个元素位置,元素个数减1。

c语言职工工资管理系统代码

c语言职工工资管理系统代码

c语言职工工资管理系统代码随着社会的发展和经济的进步,职工工资管理成为了企业管理中的重要一环。

为了提高工资管理的效率和准确性,许多企业开始采用计算机软件来进行工资管理。

本文将介绍一个基于C语言的职工工资管理系统代码。

首先,我们需要定义一些基本的数据结构和变量。

在这个系统中,我们需要记录每个职工的姓名、工号、基本工资、津贴、扣款等信息。

我们可以使用结构体来定义这些信息,例如:```cstruct Employee {char name[20];int id;float basicSalary;float allowance;float deduction;};```接下来,我们可以定义一些函数来实现不同的功能。

例如,我们可以编写一个函数来添加新的职工信息:```cvoid addEmployee(struct Employee *employees, int *count) { printf("请输入职工姓名:");scanf("%s", employees[*count].name);printf("请输入职工工号:");scanf("%d", &employees[*count].id);printf("请输入职工基本工资:");scanf("%f", &employees[*count].basicSalary);printf("请输入职工津贴:");scanf("%f", &employees[*count].allowance);printf("请输入职工扣款:");scanf("%f", &employees[*count].deduction);(*count)++;}```我们还可以编写一个函数来计算每个职工的实际工资:```cfloat calculateSalary(struct Employee employee) {return employee.basicSalary + employee.allowance - employee.deduction;}```接下来,我们可以编写一个函数来显示所有职工的信息和实际工资:```cvoid displayEmployees(struct Employee *employees, int count) {printf("姓名\t工号\t基本工资\t津贴\t扣款\t实际工资\n");for (int i = 0; i < count; i++) {printf("%s\t%d\t%.2f\t\t%.2f\t%.2f\t%.2f\n", employees[i].name, employees[i].id, employees[i].basicSalary, employees[i].allowance, employees[i].deduction, calculateSalary(employees[i]));}}```最后,我们可以编写一个主函数来实现整个系统的流程:```cint main() {struct Employee employees[100];int count = 0;int choice;do {printf("请选择操作:\n");printf("1. 添加职工信息\n");printf("2. 显示职工信息\n");printf("3. 退出\n");scanf("%d", &choice);switch (choice) {case 1:addEmployee(employees, &count);break;case 2:displayEmployees(employees, count);break;case 3:printf("感谢使用职工工资管理系统!\n"); break;default:printf("无效的选择,请重新输入!\n");break;}} while (choice != 3);return 0;}```通过以上代码,我们可以实现一个简单的职工工资管理系统。

C语言课程设计职工工资信息管理系统源代码

C语言课程设计职工工资信息管理系统源代码

#include <stdio.h>#include <string.h>#include <stdlib.h>#include <conio.h>#define N 10000int choice;struct employee{int num;int position;char name[10000];char sex[2];int salary;int i,max,t;}em[N];struct empsalary{char name[10000];int salary;}emps[N];void manage();void query();void input();void display();void change();void del();void add();void paixu();int changeposition();int changesalary();void querysalary();void creat();void main(){do{printf("欢迎进入职工管理系统中文版\n"); printf("请你选择操作类型:\n");printf("1进入管理系统\n");printf("2进入查询系统\n");printf("0退出系统\n");scanf("%d",&choice);switch(choice){case 1:manage();break;case 2:query();break;case 0:{printf("谢谢使用,再见\n");exit(0);}default:{printf("输入有错误请重新输入:\n");return;}}}while(1);}void manage(){int choicemanage;char choice='y';while(choice=='y'||choice=='Y'){printf("欢迎进入管理系统\n");printf("请你选择操作类型:\n");printf("1输入职工信息\n");printf("2显示职工信息\n");printf("3修改职工信息\n");printf("4追加一个职工信息\n");printf("5删除一个职工信息\n");printf("6排序\n");printf("0返回\n");scanf("%d",&choicemanage);switch(choicemanage){case 1:input();break;case 2:display();break;case 3:change();break;case 4:add();break;case 5:del();case 6:paixu();break;case 0:printf("谢谢你的使用再见\n");return;default:printf("你的输入有错请重新输入\n"); }printf("是否继续管理?(y/n)");scanf("%s",&choice);}if(toupper(choice)=='N'||(choice)=='n'){printf("输入完毕,任意键返回\n");getch();return;}}void input(){FILE *fp;int i=0;char choiceinput='y';if((fp=fopen("employee.txt","w"))==NULL) return;while(choiceinput=='y'||choiceinput=='Y'){i++;printf("第%d个职工\n",i);printf("\n");printf("请你输入工号:\n");scanf("%d",&em[i].num);printf("\n");printf("请你输入职位:\n");printf("1董事长2总经理3副总经理\n");printf("4经理5副经理6秘书\n");printf("7技术员8领班9员工\n");scanf("%d",&em[i].position);printf("\n");printf("请你输入姓名:\n");scanf("%s",em[i].name);printf("\n");printf("请你输入性别以m为男f为女:\n");scanf("%s",em[i].sex);printf("\n");printf("请你输入工资:\n");scanf("%d",&em[i].salary);printf("\n");printf("是否继续输入?(y/n)\n");scanf("%s",&choiceinput);fwrite(&em[i],sizeof(struct employee),1,fp);}if(toupper(choiceinput)=='N'){fclose(fp);printf("输入完毕,任意键返回\n");getch();return;}}void display(){FILE *fp;int i;if((fp=fopen("employee.txt","r"))==NULL)return;printf("输出结果:\n");for(i=0;fread(&em[i],sizeof(struct employee),1,fp)!=0;i++) {printf("工号%d\n",em[i].num);printf("职位为%d\n",em[i].position);printf("1董事长2总经理3副总经理\n");printf("4经理5副经理6秘书\n");printf("7技术员8领班9员工\n");printf("姓名为%s\n",em[i].name);printf("性别为%s\n",em[i].sex);printf("其中m为男f为女\n");printf("工资为%d\n",em[i].salary);}printf("完毕按任意键返回\n");getch();fclose(fp);return;}void change(){FILE *fp;int i;char chname[8];int choicechange;printf("请你输入要修改的人的姓名:\n");scanf("%s",&chname);if((fp=fopen("employee.txt","w+"))==NULL){printf("不能够打开这个文件\n");return;}for(i=0;i<N;i++){if(strcmp(chname,em[i].name)==0){printf("这是你要修改的人的信息\n");printf("工号为%d\n 职位为%d\n 姓名为%s\n 性别为%s\n 工资为%d\n",em[i].num,em[i].position,em[i].name,em[i].sex,em[i].salary);printf("请你输入要修改的部分:\n");printf("1修改职位\n");printf("2修改工资\n");printf("0退出系统\n");printf("请选择\n");scanf("%d",&choicechange);switch(choicechange){case 1:em[i].position=changeposition();break;case 2:em[i].salary=changesalary();break;case 0:return;default :printf("输入有错误");}fwrite(&em[i],sizeof(struct employee),1,fp); }}fclose(fp);printf("操作完成按任意键返回\n");getch();return;}int changeposition(){int newposition;printf("请你输入新职位:\n");printf("1董事长2总经理3副总经理\n"); printf("4经理5副经理6秘书\n"); printf("7技术员8领班9员工\n"); scanf("%d",&newposition);return(newposition);}int changesalary(){int newsalary;printf("请你输入新的工资:\n");scanf("%d",&newsalary);return(newsalary);}void add(){struct employee emp;FILE *fp;int i=0;if((fp=fopen("employee.txt","ab+"))==NULL){printf("不能够打开这个文件\n");getch();return;}printf("请你输入新人的内容:\n");printf("请你输入工号:\n");scanf("%d",&em[i].num);printf("请你输入职位:\n");printf("1董事长2总经理3副总经理\n");printf("4经理5副经理6秘书\n");printf("7技术员8领班9员工\n");scanf("%d",&emp.position);printf("请你输入姓名:\n");scanf("%s",);printf("请你输入性别以m为男f为女:\n");scanf("%s",emp.sex);printf("请你输入工资:\n");scanf("%d",&emp.salary);fwrite(&emp,sizeof(struct employee),1,fp);rewind(fp);printf("插入完毕,按任意键返回\n");getch();fclose(fp);return;}void del(){int i=0;char delname[8];FILE *fp;if((fp=fopen("employee.txt","w"))==NULL){printf("文件为空,不能够打开\n");printf("按任意键返回\n");getch();return;}printf("请你输入要删除的人的姓名:\n");scanf("%s",delname);for(i=0;fread(&em[i],sizeof(struct employee),1,fp)!=0;i++) {if(strcmp(em[i].name,delname)!=0)fwrite(&em[i],sizeof(struct employee),1,fp);}fclose(fp);if((fp=fopen("employee.txt","r"))==NULL)return;printf("新的职工的信息为:\n");for(i=0;fread(&em[i],sizeof(struct employee),1,fp)!=0;i++) {printf("工号%d",em[i].num);printf("职位为%d",em[i].position);printf("1董事长2总经理3副总经理\n");printf("4经理5副经理6秘书\n");printf("7技术员8领班9员工\n");printf("姓名为%s\n",em[i].name[8]);printf("性别为%s\n",em[i].sex[2]);printf("其中m为男f为女\n");printf("工资为%d\n",em[i].salary);fclose(fp);}}void query(){FILE *fp;int i=0;char quename[8];if((fp=fopen("employee.txt","r"))==NULL){printf("不能够打开文件,按任意键返回\n");getch();return;}printf("请你输入要查询的人的姓名\n");scanf("%s",quename);for(i=0;fread(&em[i],sizeof(struct employee),1,fp)!=0;i++) {if(strcmp(em[i].name,quename)==0){printf("\t\t\n查询到的职工号或姓名为的信息如下:\n");printf("以下是你要查询的人的信息\n");printf("工号%d",em[i].num);printf("职位为%d",em[i].position);printf("\t 1董事长2总经理3副总经理\n");printf("\t 4经理5副经理6秘书\n");printf("\t 7技术员8领班9员工\n");printf("姓名为%s\n",em[i].name);printf("性别为%s\n",em[i].sex);printf("\t其中m为男f为女\n");printf("工资为%d\n",em[i].salary);printf("\n");printf("查询完毕,按任意键返回\n");getch();fclose(fp);return;}}printf("没有这样的人,按任意键返回\n");getch();fclose(fp);return;}void querysalary(){int i;FILE *fp1,*fp2;creat();if((fp1=fopen("employee.txt","w+"))==NULL)return;for(i=0;fread(&em[i],sizeof(struct employee),1,fp1)!=0;i++) {printf("输出结果为:\n");printf("工号%d",em[i].num);printf("职位为%d",em[i].position);printf(" 1董事长2总经理3副总经理\n");printf(" 4经理5副经理6秘书\n");printf(" 7技术员8领班9员工\n");printf("姓名为%s\n",em[i].name[8]);printf("性别为%s\n",em[i].sex[2]);printf("其中m为男f为女\n");printf("工资为%d\n",em[i].salary);strcpy(emps[i].name,em[i].name);emps[i].salary=em[i].salary;}if((fp2=fopen("empsalary.txt","w"))==NULL)return;for(i=0;i<N;i++)fwrite(&emps[i],sizeof(struct empsalary),1,fp2);fclose(fp1);fclose(fp2);}void creat(){FILE *fp;if((fp=fopen("D:\\employee.txt","w+"))==NULL)return;input();fclose(fp);}void paixu(){int max,i,t,j;for(i=1;i<10;i++){max=em[i].salary;for(j=i;j<10;j++){if(em[j].salary>max){max=em[j].salary;t=em[j].salary;em[j].salary=t;}}}printf("姓名工资工号性别职位\n");for(i=1;i<10;i++)printf(" %s %d %d %s %d\n ",em[i].name,em[i].salary,em[i].num,em[i].sex,em[i].position);}。

职工工资管理系统c语言程序设计

职工工资管理系统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语言程序设计实验——职工工资管理系统(附详细操作说明及注释)

中南大学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语言职工工资管理系统代码

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("未找到对应的员工信息。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

员工工资管理系统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();}。

相关文档
最新文档