当前位置:首页 » 编程语言 » c语言统计工资

c语言统计工资

发布时间: 2022-08-07 15:04:19

A. 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) 退出程序。
*/

list<employee> 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 line

cout<<"请选择操作:1.录入 2.删除 3.修改 4.查询 5.显示所有员工 6.退出 :";
int choose=0;
cin>>choose;
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.退出:";
cin>>choice;
if (choice==1) show_name();
if (choice==2) show_dep();
if (choice==3)
{
cout<<"请选择操作:1.录入 2.删除 3.修改 4.查询 5.显示所有员工 6.退出 :";
cin>>choose;
assert(!cin.fail());
continue;
}
}
if (choose==5) show_all();
cout<<"请选择操作:1.录入 2.删除 3.修改 4.查询 5.显示所有员工 6.退出 :";
cin>>choose;
assert(!cin.fail());
}
return 0;
}

void print(const employee &e)
{
cout<<"编号:"<<e.m_num<<endl;
cout<<"姓名:"<<e.m_name<<endl;
cout<<"部门:"<<e.m_dep<<endl;
cout<<"保险:"<<e.m_insurance<<endl;
cout<<"税金:"<<e.m_tax<<endl;
cout<<"应付工资:"<<e.m_salary<<endl;
cout<<"实付工资:"<<e.m_salary-e.m_insurance-e.m_tax<<endl;
}

void input()
{
string num,name,dep;
double salary,ins,tax;
cout<<"请输入员工编号:";
cin>>num;
cout<<"请输入员工姓名:";
cin>>name;
cout<<"请输入员工部门:";
cin>>dep;
cout<<"请输入员工保险:";
cin>>ins;
assert(!cin.fail());
cout<<"请输入员工税金:";
cin>>tax;
assert(!cin.fail());
cout<<"请输入员工应付工资:";
cin>>salary;
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<<"请输入要删除的员工姓名:";
cin>>name;
list<employee>::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<<"请输入要修改的员工姓名:";
cin>>name;
list<employee>::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);
cout<<endl;
cout<<"请输入新的员工编号:";
cin>>num;
cout<<"请输入新的员工姓名:";
cin>>name;
cout<<"请输入新的员工部门:";
cin>>dep;
cout<<"请输入新的员工保险:";
cin>>ins;
assert(!cin.fail());
cout<<"请输入新的员工税金:";
cin>>tax;
assert(!cin.fail());
cout<<"请输入新的员工工资:";
cin>>salary;
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";
list<employee>::iterator iter;
for(iter=emps.begin();iter!=emps.end();iter++)
{
cout<<endl;
print(*iter);
cout<<endl;
}
cout<<"--------------------\n";
}

void show_name()
{
if (emps.size()==0)
{
cout<<"员工记录为空.\n";
return;
}
bool isfind=false;
string name;
cout<<"请输入要查询的员工姓名:";
cin>>name;
list<employee>::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<<"请输入要查询的部门名称:";
cin>>dep;
cout<<"部门["<<dep<<"]的员工信息:\n";
cout<<"--------------------\n\n";
list<employee>::iterator iter;
for(iter=emps.begin();iter!=emps.end();iter++)
{
if (iter->m_dep==dep)
{
isfind++;
total_salary+=iter->m_salary;
print(*iter);
cout<<endl;
continue;
}
}
cout<<"--------------------\n";
if (isfind==0)
{
cout<<"没有找到名称为["<<dep<<"]的部门.\n";
}
else
{
cout<<"部门["<<dep<<"]工资统计:\n";
cout<<"工资总额:"<<total_salary<<endl;
cout<<"平均工资:"<<total_salary/isfind<<endl;
}
}

B. C语言 计算程序员的收入


#include <stdio.h>

int main()

{

int hour;

int money;

scanf("%d",&hour);

if(hour < 160)

{

money = hour * 10;

}

else

{

money = 10 * 160 + (hour - 160) * 30;

}

printf("%d ",money);

return 0;

}

C. 用C语言编写计算工人工资怎么编写

用C语言编写计算工人工资怎么编写?

某工厂按工人的工时计算工人工资,规则如下:工资按每小时84元计发。若总工时>120小时,超过120小时的部分每小时加发15%;若总工时<60小时,则总工资扣发700元。编写程序,从键盘录入某工人的工时,程序能计算并输出该工人的工资。(画出程序流程图)

D. 用C语言编写计算工人工资

#include&amp;lt;stdio.h&amp;gt;
void main()
{
int hour;
int salary;
scanf("%d",hour);
switch(hour/60)
{
case 0:
{
salary=hour*84-700;
break;
}
case 1:
{
salary=hour*84;
break;
}
case 2:
{
salary=120*84+(hour-120)*(84*1.5);
break;
}
default:
printf("工时错误!");
}
printf("工资为%d",salary);
}

抱歉,好久没弄C了,上面随便写没编译,刚才又弄了一下

#include<stdio.h>
void main()
{
int hour=0;
double salary;
scanf("%d",&hour);
while(hour<0)
{
printf("工时错误,重新输入!");
scanf("%d",&hour);
}
switch(hour/60)
{
case 0:
{
salary=hour*84-700;
break;
}
case 1:
{
salary=hour*84;
break;
}
case 2:
{
salary=120*84+(hour-120)*(84*1.15);
break;
}
}
printf("工资为%f",salary);
}

E. 求C语言课程设计—职工工资统计部分的编程

#include<stdio.h>
#include<string.h>
#define N 5 /*假设有5名员工*/
void main()
{ char name[20],sex,e[15]; double salary_low,salary_high,sum=0; int i,k; char b;
/*用于查找系统的姓名、性别、年龄、教育程度、最低工资、最高工资、工资总计*/
struct salary
{ double basic;
double allowance;
};
/*工资结构体定义:工资=基本工资和奖金 */
struct fellow /*定义员工结构体*/
{ char name[20]; /*姓名*/
char sex; /*性别*/
char birth_day[9]; /*生日*/
char ID[20]; /*工号*/
char e[15]; /*教育程度*/
char indate_time[9]; /*入厂时间*/
struct salary s; /*工资*/
}fw[N]; /* 结构体定义完毕,是一个结构体数组*/
for(i=0;i<N;i++) /*输入提示和过程*/
{ printf("\nEnter No%d name\n",i+1) ; /*提示输入第n个员工的姓名*/
scanf("%s",fw[i].name);
printf("\n Male(M) or Female(F)\n"); /*提示出入性别*/
do fw[i].sex=getch();
while((fw[i].sex!='F')&&(fw[i].sex!='M')); /*do-while 循环,保证输入的字符为M或F*/
printf("\nEnter His/Her birth day\n");
scanf("%s",fw[i].birth_day); /* 输入生日 ,如19870101*/
printf("\nEnter ID\n");
scanf("%s",fw[i].ID); /*工号*/
printf("\nEnter ecation\n");
scanf("%s",fw[i].e); /*教育程度,如大学为High,硕士为Master*/
printf("\nIndate time?\n");
scanf("%s",fw[i].indate_time); /*入厂时间,如20010101*/
printf("\nEnter salary\n");
scanf("%f,%f",&(fw[i].salary.basic),&(fw[i].salary.allowance)); /*工资,基本工资和奖金*/
printf("\nNow the next\n");
}
printf("\nfind in name(1),find in salary(2),find in sex(3),find in e(4),find the sum(5)\n");
scanf("%d",&k);
if(k==1)
{while(1)
{ printf("\nTo exit enter the kay b\n");
scanf("%c",&b);
if(b=='b') break;
else
{ printf("\nEnter a name\n");
scanf("%s",name);
for(i=0;i<N;i++)
if(strcmp(name,fw[i].name)==0)
printf("%s;%c,%s,%s,%s,%s",fw[i].name,fw[i].sex,fw[i].ID,fw[i].indate_time,fw[i].salary.basic, fw[i]. salary[i].allowance);
}
}
}
else if(k==2)
{while(1)
{ printf("\nTo exit enter the kay b\n");
scanf("%c",&b);
if(b=='b') break;
else
{ printf("\nEnter the salary range\n");
scanf("%f,%f",&salary_low,&salary_high);
for(i=0;i<N;i++)
if(((fw[i].salary.basic+fw[i].salary.allowance)>=salary_low)&&((fw[i].salary.basic+fw[i].salary.allowance)<=salary_high))

printf("%s;%c,%s,%s,%s,%s",fw[i].name,fw[i].sex,fw[i].ID,fw[i].indate_time,fw[i].salary.basic, fw[i]. salary[i].allowance);
}
}
}
else if(k==3)
{while(1)
{ printf("\nTo exit enter the kay b\n");
scanf("%c",&b);
if(b=='b') break;
else
do sex=getch();
while((sex!='M')&&(sex!='F'))
for(i=0;i<N;i++)
if(fw[i].sex==sex)

printf("%s;%c,%s,%s,%s,%s",fw[i].name,fw[i].sex,fw[i].ID,fw[i].indate_time,fw[i].salary.basic, fw[i]. salary[i].allowance);
}
}
}
else if(k==4)
{while(1)
{ printf("\nTo exit enter the kay b\n");
scanf("%c",&b);
if(b=='b') break;
else
printf("\nEnter ecation\n")
scanf("%s",e);
for(i=0;i<N;i++)
if(strcmp(e,fw[i].e)==0)
printf("%s;%c,%s,%s,%s,%s",fw[i].name,fw[i].sex,fw[i].ID,fw[i].indate_time,fw[i].salary.basic, fw[i]. salary[i].allowance);
}
}
}
else
{ for(i=0;i<N;i++)
sum+=fw[i].salary.basic+fw[i].salary.allowance;
printf("%f",sum);
}
}
/*以五种方式进行统计查询,你可以把printf的内容再丰富一点,while(1)保证这个是一个死循环,并且用输入键盘上b键的方法退出循环,可以保证每一次运行时可以按照不同的方法进行统计*/
我只是这样写了一下,能否运行,还要自己去试试,因为在写的过程中难免把一些字幕写错,这么多行,就不一一检查了!

F. 用C语言编写一个计算薪水的程序

/*工资计算程序*/
#include <stdio.h>

main()
{
float originWage; /*应发工资*/
float realWage; /*实发工资*/
float tax; /*所缴税款*/
int i,hour,amount,money;

printf("请选择工资种类:\n1.计时工资\n2.计件工资\n3.固定月工资\n");
scanf("%d",&i);
switch(i)
{
case 1:{
printf("请输入工作时间(单位:小时)\n");
scanf("%d",&hour);
printf("请输入单位时间的薪水(单位:元)\n");
scanf("%f",&money);
originWage=money*hour;
}
break;
case 2:{
printf("请输入生产产品数量(单位:件)\n");
scanf("%d",&amount);
printf("请输入生产一件产品的薪水(单位:元)\n");
scanf("%f",&money);
originWage=money*amount;
}
break;
case 3: printf("请输入你的固定工资\n");
scanf("%f",&originWage);
break;
default:printf("输入错误!\n");
return 0;
}

if(originWage<0)
{
printf("数据错误!\n");
return 0;
}
if(originWage<2000)
tax=0;
else if(originWage>2000&&originWage<=2500)
tax=(originWage-2000)*0.05;
else if(originWage>2500&&originWage<=4000)
tax=(originWage-2500)*0.1+500*0.05;
else
tax=(originWage-4000)*0.15+1500*0.1+500*0.05;
printf("应发工资: %f\n",originWage);
printf("所缴税款: %f\n",tax);
printf("实发工资: %f\n",originWage-tax);
return 0;
}

G. C语言计算工资的代码

源代码中,你的if语句里面两个表达式是用逗号分开的,这样并不能满足两个条件都满足的要求
现修改代码如下,

#include<stdio.h>
intmain()
{
inty,t;
doublem;
scanf("%d%d",&y,&t);
if(y<5&&t<=40)//使用&&表示要求两个条件都满足
printf("%.2f",m=t*30);
elseif(y<5&&t>40)
printf("%.2f",m=40*30+(t-40)*30*1.5);
elseif(y>=5&&t<=40)
printf("%.2f",m=t*50);
else
printf("%.2f",m=40*50+(t-40)*50*1.5);
}

H. 用C语言怎样算工资

#include "stdio.h"

main()
{ int i,j,m,s=0;
scanf("%d",&j);
for(m=0;m<j;m++)
{
scanf("%d",&i);
if(i==0)
{
break;
}
if(i>=100)
{
s=s+i/100;
i=i%100;
}
if(i>=50)
{
s=s+i/50;
i=i%50;
}
if(i>=10)
{
s=s+i/10;
i=i%10;
}
if(1>=5)
{
s=s+i/5;
i=i%5;
}
if(i>=2)
{
s=s+i/2;
i=i%2;
}
if(i>=1)
{
s++;
}

}
printf("%d",s);
getch();
}

I. c语言程序设计工资统计

去网上找,应该很多的

J. C语言,模拟工资计算器,计算一个销售人员的月工资的数量(月工资=基本工资+提成,提成=商品数*1.5)。

楼主的代码存在两个明显问题:

1、数值类型掌握不好

计算工资时很可能出现小数,而楼主声明变量时完全采用了int型,先不说是否逻辑正确。int型的变量直接与后面代码冲突。

有两个问题:

1.1:

scanf()中楼主在括号内写的是%ld,%ld等待的输入类型是long int,而楼主声明的是

int。

1.2:

iCommission=(iSales*1.5);

iSales为整形,1.5为浮点型,iSales*1.5的结果会隐式转换为浮点型,而iCommission为

整型int。在赋值时会产生错误。


需要补充知识点:参数类型的定义和转换。请查阅任何一本C语言教材。


2、scanf()函数掌握不好

这也是楼主最关心的问题,scanf()中 、空格和制表符都是是空白符。空白字符会使scanf()函数在读操作中略去输入中的一个或多个空白字符。只有输入一个非空白符的时候才能终止scanf的输入。另外在上一点提出的参数类型也需要格外注意。

需要补充知识点:scanf()函数的使用方法。请查阅相关文档。

http://ke..com/link?url=_


再啰嗦几句:puts()函数用来向标准输出设备(屏幕)写字符串并换行,其调用方式为,puts(s);其中s为字符串字符(字符串数组名或字符串指针)。虽然楼主的使用方式也正确,但是最好也查阅一下更标准的使用方法。

http://ke..com/link?url=MVSb8tWqQPMLWzKve4IpvgamU_2P--Rf63HG3AeUc3Cb7XRp53K35Bs9IQ_8IA3Y2lqRaZ0zCTenPgzg8RLSYK


下面贴出我修改后的代码:

#include<stdio.h>

intmain()
{
doubleiSalary,iBasic,iCommission,iSales;

printf("Pleaseenterthebasicpayment:");
scanf("%lf",&iBasic);

printf("Pleaseenterthesales:");
scanf("%lf",&iSales);

iCommission=(iSales*1.5);
printf("提成工资为:%lf ",iCommission);

iSalary=(iBasic+iCommission);
printf("月工资数量:");
printf("%lf",iSalary);
return0;
}

请楼主注意其中变量类型的变化以及输入输出中%后面的变化。


小提示:编程过程中细节真的很重要啊,还有,以后遇到问题,试着分解成一个个小问题分析,再查找相关的解决办法,学会善用搜索引擎。比如楼主在输入时遇到了问题,就要想是不是scanf出问题了呀,进而去搜索它的正确用法。这才是真正的解决问题。

热点内容
存储设备报价 发布:2024-05-08 02:22:01 浏览:553
定步长的算法 发布:2024-05-08 02:16:18 浏览:109
怎么使用pe口袋服务器 发布:2024-05-08 02:02:18 浏览:471
xml数据库c 发布:2024-05-08 02:01:46 浏览:456
仿知乎android 发布:2024-05-08 01:56:00 浏览:904
mysql编译参数 发布:2024-05-08 01:53:46 浏览:194
怎么看台式电脑配置生产日期 发布:2024-05-08 01:32:26 浏览:460
java基础培训学校 发布:2024-05-08 01:30:44 浏览:468
简单辅助火眼打码如何配置 发布:2024-05-08 01:30:44 浏览:903
我的世界网易版服务器游戏 发布:2024-05-08 01:10:33 浏览:42