本文目录一览:
- 1、用C语言设计职工工资管理系统
- 2、工资管理系统C语言
- 3、如何用C语言编写一个员工工资管理系统
- 4、c语言编一个工资管理系统 本系统能够方便、灵活地实现职工工资的输入、添加、删除等编辑操作以及查询等
用C语言设计职工工资管理系统
#includeiostream.h
#includestdlib.h
#includestring.h
#includeiomanip.h
using namespace std;
#define OK 1
#define ERROR 0
typedef struct LNode{
char num[20];
char name[20];
double basic;
double reward;
double total;
struct LNode *next;
}LNode,*LinkList; int initlist(LinkList L)
{ L=(LinkList)malloc(sizeof(LNode));
L-next=NULL;
return OK;
} int DisplayInfo(LinkList L)
{
LinkList p=L-next;
if(!p)
{
cout"当前无记录!"endl;
return ERROR;
}
cout"编号"setw(12)"姓名"setw(12)"基本工资"setw(9)"奖金"setw(12)"工资总额"endl; while(p!=NULL)
{
coutp-numsetw(9)p-namesetw(8)p-basicsetw(12)p-rewardsetw(12)p-totalendl;
p=p-next;
}
cout'\n''\n';
return OK;
} int InputInfo(LinkList L)
{
LinkList p; p=(LinkList)malloc(sizeof(LNode));
cout"请输入职工工资信息:(格式如:2001001 james 1980 600 )"endl;
cinp-num;
cinp-name;
cinp-basic;
cinp-reward;
p-total=p-basic+p-reward;
p-next=L-next;
L-next=p; return OK;
}int DeleteByCode(LinkList L,char key[])
{
LinkList p=L,q;
while(p-next!=NULL)
{
if(strcmp(p-next-num,key)==0)
{
q=p-next;
p-next=q-next;
free(q);
return OK;
}
p=p-next;
}
return ERROR;} int Search(LinkList L,int tag)
{
LinkList p=L-next;
if(tag==1)
{
char num[20];
cout"请输入要查找职工编号号:"endl;
cinnum;
while(p)
{
if(strcmp(p-num,num)==0)
{
cout"编号"setw(12)"姓名"setw(12)"基本工资"setw(9)"奖金"setw(12)"工资总额"endl;
coutp-numsetw(9)p-namesetw(8)p-basicsetw(12)p-rewardsetw(12)p-totalendl;
cout'\n';
return OK;
}
p=p-next;
}
}
else if(tag==2)
{
char name[20];
cout"请输入要查找的姓名:"endl;
cinname;
while(p)
{
if(strcmp(p-name,name)==0)
{
cout"编号"setw(12)"姓名"setw(12)"基本工资"setw(9)"奖金"setw(12)"工资总额"endl;
coutp-numsetw(9)p-namesetw(8)p-basicsetw(12)p-rewardsetw(12)p-totalendl;
cout'\n';
return OK;
}
p=p-next;
}
}
else
cout"输入错误!"endl;
return ERROR;}
int Sort(LinkList L)
{
LinkList p;
LinkList q,min,w=L;
for(p=L-next;p-next;p=p-next)
{
min=p;
for(q=p-next;q;q=q-next) if(min-totalq-total)
min=q; if(min!=p)
{ strcpy(w-num,p-num);
strcpy(w-name,p-name);
w-basic=p-basic;
w-reward=p-reward;
w-total=p-total;
strcpy(p-num,min-num);
strcpy(p-name,min-name);
p-basic=min-basic;
p-reward=min-reward;
p-total=min-total;
strcpy(min-num,w-num);
strcpy(min-name,w-name);
min-basic=w-basic;
min-reward=w-reward;
min-total=w-total; }
}
return OK;
}
int change(LinkList L)
{
LinkList p=L-next;
char q[20];
cout"请输入要修改的职工编号号:"endl;
cinq;
while(p)
{
if(strcmp(p-num,q)==0)
{
cout"编号"setw(12)"姓名"setw(12)"基本工资"setw(9)"奖金"setw(12)"工资总额"endl;
coutp-numsetw(9)p-namesetw(8)p-basicsetw(12)p-rewardsetw(12)p-totalendl;
cout"请重新输入该职工的工资信息:"endl;
cinp-basic;
cinp-reward;
cout'\n';
return OK;
}
p=p-next;
}
}
int Menu(LinkList S)
{
int sign=1;
while(sign)
{
int i;
cout"请选择要进行的操作:1:插入 2:删除 3:输出 4:查找 5:排序 6:修改 0:退出"endl;
cini;
if(i==1)
{ if(InputInfo(S))
cout"操作成功!"endl;
cout'\n';
}
else if(i==2)
{
char num[20];
cout"请输入要删除的职工编号:"endl;
cinnum; if(DeleteByCode(S,num))
cout"操作成功!"endl; else
{
cout"此编号不存在!"endl;
cout'\n';
}
}
else if(i==3)
DisplayInfo(S);
else if(i==4)
{
int tag;
cout"1:按编号查找 2:按姓名查找 "endl;
cintag;
if(!Search(S,tag))
cout"未找到!"endl;
cout'\n'; }
else if(i==5)
{
if(Sort(S));
cout"操作成功!"endl;
cout'\n';
}
else if(i==6)
{
if(change(S))
cout"修改成功!"endl;
} else if(i==0)
sign=0;
else
cout"输入有误,请重新输入!"endl;
cout'\n';
}
return OK;
}
int main()
{
LinkList S;
initlist(S);
Menu(S);
return OK;} 已经调试无bug 有问题的话联系我。
工资管理系统C语言
代码还没有完善好,实在没时间了,最近太忙。先给你吧
#include stdio.h
#include stdlib.h
#include string.h
int addmenu();
int menu();
typedef struct teacher{
char name[32];
char unit[32];
float salary;
float allowance;
float tax;
float total;
struct teacher *next;
}TEACHER; //节点的结构体,包含数据和指针.
TEACHER *head;//头节点
void init() //初始化头节点
{
head=(TEACHER *)malloc(sizeof(TEACHER));
head-next=NULL;
}
void add(TEACHER *nod) //添加节点
{
if(head-next==NULL){
head=nod;
}
else
{
nod-next=head-next;
head-next=nod;
}
}
TEACHER *search(char *s) //遍历整个链表并打印数据
{
TEACHER *nod=head;
while(nod-next !=NULL)//!循环到最后一个节点,有问题。。
{
if((!strcmp(nod-name,s)) || (!strcmp(nod-unit,s))){
printf("姓名:%s\n单位:%s\n基本工资:%f\n津贴:%f\n扣税:%f\n总工资:%f\n",nod-name,nod-unit,nod-salary,nod-allowance,nod-tax,nod-tax);
return nod;
}
nod++;
}
printf("未找到数据\n");
return NULL;
}
void modify(TEACHER *s)
{
char name[16],unit[16];
float salary,allowance,tax,total;
gets(name);
strcpy(s-name,name);
gets(unit);
strcpy(s-unit,unit);
scanf("%f",salary);
s-salary=salary;
scanf("%f",allowance);
s-allowance=allowance;
scanf("%f",tax);
s-tax=tax;
scanf("%f",total);
s-total=total;
}
void del(char *s)
{
TEACHER *nod=head;
while(nod-next !=NULL)
{
if((!strcmp(nod-next-name,s))||(!strcmp(nod-next-unit,s))){
nod-next=nod-next-next;
nod-next=NULL;
}
}
}
int addmenu()//添加教师信息子菜单
{
TEACHER *node;
char command;
float salary,allowance,tax,total;
system("cls");
printf("****************************\n");
printf("* 添加子菜单 *\n");
printf("****************************\n");
printf("说明:4.返回主菜单 5.添加\n");
printf("请选择需要使用的功能:");
fflush(stdin);
while((command=getchar())!='4')
{
if(command==4)
break;
printf("添加信息:\n");
node=(TEACHER *)malloc(sizeof(TEACHER));
fflush(stdin);
printf("姓名:");
fflush(stdin);
gets(node-name);
printf("单位:");
fflush(stdin);
gets(node-unit);
printf("基本工资:");
fflush(stdin);
scanf("%f",salary);
node-salary=salary;
printf("津贴:");
scanf("%f",allowance);
node-allowance=allowance;
fflush(stdin);
printf("扣税:");
scanf("%f",tax);
node-tax=tax;
fflush(stdin);
printf("总工资:");
scanf("%f",total);
node-total=total;
fflush(stdin);
add(node);
fflush(stdin);
printf("输入c退出,其他字符继续\n");
if((command=getchar())=='c')
break;
}
return 0;
}
int save()
{
TEACHER *nod=head;
FILE *fp;
if((fp=fopen("teacher.txt","w+")) == NULL)
{
printf("打开文件异常\n");
return 0;
}
while(nod-next != NULL)
{
if(fwrite(nod,sizeof(TEACHER),1,fp)!=1){
printf("写入异常\n");
return 0;
}
nod++;
}
fclose(fp);
return 1;
}
int searchmenu()
{
char name[16];
char command;
system("cls");
printf("****************************\n");
printf("* 查询和修改子菜单 *\n");
printf("****************************\n");
printf("说明:4.返回主菜单 5.通过姓名/查找 6.修改 \n");
fflush(stdin);
printf("请输出需要实现的操作:");
while((command=getchar()) !='4')
{
switch(command)
{
case '4': break;
case '5':
printf("请输入需要查找的姓名:");
fflush(stdin);
gets(name);
search(name);
break;
// case '6': modify();break;
}
printf("请输出需要实现的操作:");
}
return 0;
}
int menu()
{
char command;
int i,j=10;
system("cls");
printf("****************************\n");
printf("* 工资管理系统 *\n");
printf("****************************\n");
printf("----------------------------\n");
printf("说明:1.添加 2.查询/修改 3.保存 4.退出\n");
printf("----------------------------\n");
printf("请输出需要实现的操作:");
while((command=getchar())!='4'){
switch(command)
{
case '1': addmenu(); break;
case '2': searchmenu();break;
case '3': i=save();if(i)printf("保存成功!\n"); while(j--);break;
}
fflush(stdin);
/*子函数退出后再次显示主界面*/
system("cls");
printf("****************************\n");
printf("* 工资管理系统 *\n");
printf("****************************\n");
printf("----------------------------\n");
printf("说明:1.添加 2.查询/修改 3.保存 4.退出\n");
printf("----------------------------\n");
printf("请输出需要实现的操作:");
}
printf("******感谢您使用本系统******\n");
return 0;
}
int main()
{
init();
menu();
return 0;
}
如何用C语言编写一个员工工资管理系统
哥们,这可是一个系统,你才给10分,敲代码都得敲几个月,10万块差不多,应该有人接外单,发给我的话我会接。
建议你直接去买个吧,约10-20万
c语言编一个工资管理系统 本系统能够方便、灵活地实现职工工资的输入、添加、删除等编辑操作以及查询等
*/#include "stdafx.h"
#include "iostream"
#include "string"
#include "list"
#include "cassert"
using namespace std;/*
编号、姓名、部门、应付工资、保险、税金、实付工资。
其中实付工资由公式计算得到:实付工资=应付工资 - 保险- 税金
*/
struct employee{
string m_num;//编号
string m_name;//姓名
string m_dep;//部门
double m_salary;//应付工资
double m_insurance;//保险
double m_tax;//税金
};/*
(1)录入:输入职工数据,其中“实付工资”通过计算得到;
(2)删除:删除指定的职工信息(输入姓名,若找到则删除该信息)
(3) 修改:允许对已经录入的数据重新进行编辑、修改;
(4) 显示:显示全体职工数据;
(5)查询:
a. 输入职工姓名,显示该职工的全部数据;
b. 输入某部门值,显示该部门职工的数据、工资总额、平均工资。
(6) 退出程序。
*/listemployee emps;int _tmain(int argc, _TCHAR* argv[])
{
void print(const employee e);
void input();
void del();
void mod();
void show_all();
void show_name();
void show_dep();cout"简易职工薪水管理程序 by 做他\n";// delete this line
cout"版权没有 请随意复制或修改任何代码\n";//delete this linecout"请选择操作:1.录入 2.删除 3.修改 4.查询 5.显示所有员工 6.退出 :";
int choose=0;
cinchoose;
assert(!cin.fail());
while (choose!=6)
{
if (choose==1) input();
if (choose==2) del();
if (choose==3) mod();
if (choose==4)
{
int choice=0;
cout"请选择操作 1.按姓名查询 2.按部门查询 3.退出:";
cinchoice;
if (choice==1) show_name();
if (choice==2) show_dep();
if (choice==3)
{
cout"请选择操作:1.录入 2.删除 3.修改 4.查询 5.显示所有员工 6.退出 :";
cinchoose;
assert(!cin.fail());
continue;
}
}
if (choose==5) show_all();
cout"请选择操作:1.录入 2.删除 3.修改 4.查询 5.显示所有员工 6.退出 :";
cinchoose;
assert(!cin.fail());
}
return 0;
}void print(const employee e)
{
cout"编号:"e.m_numendl;
cout"姓名:"e.m_nameendl;
cout"部门:"e.m_dependl;
cout"保险:"e.m_insuranceendl;
cout"税金:"e.m_taxendl;
cout"应付工资:"e.m_salaryendl;
cout"实付工资:"e.m_salary-e.m_insurance-e.m_taxendl;
}void input()
{
string num,name,dep;
double salary,ins,tax;
cout"请输入员工编号:";
cinnum;
cout"请输入员工姓名:";
cinname;
cout"请输入员工部门:";
cindep;
cout"请输入员工保险:";
cinins;
assert(!cin.fail());
cout"请输入员工税金:";
cintax;
assert(!cin.fail());
cout"请输入员工应付工资:";
cinsalary;
assert(!cin.fail());
employee temp;
temp.m_dep=dep;
temp.m_insurance=ins;
temp.m_name=name;
temp.m_num=num;
temp.m_salary=salary;
temp.m_tax=tax;
emps.push_back(temp);
cout"员工录入操作完毕.\n";
}void del()
{
if (emps.size()==0)
{
cout"没有员工记录.\n";
return;
}
string name;
bool isfind=false;
cout"请输入要删除的员工姓名:";
cinname;
listemployee::iterator iter;
for (iter=emps.begin();iter!=emps.end();iter++)
{
if (iter-m_name==name)
{
isfind=true;
emps.erase(iter);
cout"姓名为\""name"\"的员工记录已删除.\n";
return;
}
}
if (!isfind)
{
cout"没有找到姓名为\""name"\"的员工.\n";
return;
}
}void mod()
{
if (emps.size()==0)
{
cout"员工记录为空.\n";
return;
}
bool isfind=false;
string name;
cout"请输入要修改的员工姓名:";
cinname;
listemployee::iterator iter;
for (iter=emps.begin();iter!=emps.end();iter++)
{
if (iter-m_name==name)
{
isfind=true;
cout"姓名为\""name"\"的员工记录已找到.\n";
break;
}
}
if (isfind)
{
string num,name,dep;
double tax,ins,salary;
print(*iter);
coutendl;
cout"请输入新的员工编号:";
cinnum;
cout"请输入新的员工姓名:";
cinname;
cout"请输入新的员工部门:";
cindep;
cout"请输入新的员工保险:";
cinins;
assert(!cin.fail());
cout"请输入新的员工税金:";
cintax;
assert(!cin.fail());
cout"请输入新的员工工资:";
cinsalary;
assert(!cin.fail());
iter-m_dep=dep;
iter-m_insurance=ins;
iter-m_name=name;
iter-m_num=num;
iter-m_salary=salary;
iter-m_tax=tax;
cout"1 员工记录被成功修改.\n";
}
else
{
cout"没有找到姓名为\""name"\"的员工记录.\n";
}
}void show_all()
{
if (emps.size()==0)
{
cout"员工记录为空.\n";
return;
}
cout"显示全体员工数据:\n";
cout"--------------------\n";
listemployee::iterator iter;
for(iter=emps.begin();iter!=emps.end();iter++)
{
coutendl;
print(*iter);
coutendl;
}
cout"--------------------\n";
}void show_name()
{
if (emps.size()==0)
{
cout"员工记录为空.\n";
return;
}
bool isfind=false;
string name;
cout"请输入要查询的员工姓名:";
cinname;
listemployee::iterator iter;
for(iter=emps.begin();iter!=emps.end();iter++)
{
if (iter-m_name==name)
{
isfind=true;
cout"姓名为\""name"\"的员工记录已找到.\n";
print(*iter);
break;
}
}
if (!isfind)
{
cout"没有找到姓名为\""name"\"的员工.\n";
return;
}
}void show_dep()
{
if (emps.size()==0)
{
cout"员工记录为空.\n";
return;
}
double isfind=0.00;
double total_salary=0.00;
string dep;
cout"请输入要查询的部门名称:";
cindep;
cout"部门["dep"]的员工信息:\n";
cout"--------------------\n\n";
listemployee::iterator iter;
for(iter=emps.begin();iter!=emps.end();iter++)
{
if (iter-m_dep==dep)
{
isfind++;
total_salary+=iter-m_salary;
print(*iter);
coutendl;
continue;
}
}
cout"--------------------\n";
if (isfind==0)
{
cout"没有找到名称为["dep"]的部门.\n";
}
else
{
cout"部门["dep"]工资统计:\n";
cout"工资总额:"total_salaryendl;
cout"平均工资:"total_salary/isfindendl;
}
}
发布于 2022-09-13 18:25:09 回复
发布于 2022-09-14 01:07:39 回复
发布于 2022-09-13 23:25:15 回复
发布于 2022-09-13 22:01:41 回复
发布于 2022-09-14 02:47:37 回复