【工资发放币种统计】求救命T T
课题内容:为财务部门的出纳人员编制一个发放工资的软件。
已知在一个数据文件中存放了某部门的职工工号和工资额,工资都是以元为单位的整数。现有人民币的种类为100元,50元,20元,10元,5元和1元共6种。
编写程序,计算每位职工各种币种的张数、某部门各种币种的张数及总工资额数,结果存于数据文件中。
存储结构:顺序存储。
数据类型:整型数组。
#include<stdio.h>
void main()
{
int x, sum;
for(int a=0;a<6;a++)
sum=0;
printf("请输入员工工资-用空格空开,以0为结束:");
while (scanf("%d", &x),x)
{
sum += x / 100;
x %= 100;
sum += x / 50;
x %= 50;
sum += x / 10;
x %= 10;
sum += x / 5;
x %= 5;
sum += x / 2;
x %= 2;
sum += x;
}
printf("100元的%d张,50元的%d张,20元的%d张,10元的%d张,5元的%d张,1元的%d张\n",sum,sum,sum,sum,sum,sum);
return 0;
}↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
求修改成课题要求的版本T T。。。。。@@22!!
帮你召唤一下~~不过他不一定在 @ou# @Whisper1166 Mr_Alex 发表于 2013-1-13 09:39 static/image/common/back.gif
帮你召唤一下~~不过他不一定在@Whisper1166
@@22!!谢谢 gxarcher 发表于 2013-1-13 10:44 static/image/common/back.gif
VC6.0放在虚拟机上的,很久没用现在虚拟机不能启动了.....
就简单的说说思路吧
你这个应该用二维数组的好, ...
@@35!!其实我也是不会数据文件的部分了……程序今天上午上机的时候倒是做出来了T T 数据类型:整型数组<------ 这个是对存储格式的要求么?
建个二维数组,第一维度存员工序号和总额,第二维度存你算好的张数
然后把这些内容写到文件上,参考c++操作文本文件之类的即可
计算每位职工各种币种的张数、某部门各种币种的张数及总工资额数 <--- 解析你存储的文件算一遍即可-。- #include <stdio.h>
#define NUM_STAFF 3
typedef struct tagStaff
{
int nu;
int paySum;
int hundredCount;
int fiftyCount;
int tenCount;
int fiveCount;
int oneCount;
}Staff;
int main()
{
int i=0;
Staff jishu;
for(i=0; i<NUM_STAFF; i++)
{
jishu.nu = 1000+i;
printf("input staff %d and pay:", jishu.nu);
scanf("%d", &jishu.paySum);
int temp= jishu.paySum;
jishu.hundredCount = temp/100;
temp = temp%100;
jishu.fiftyCount = temp/50;
temp = temp%50;
jishu.tenCount = temp/10;
temp = temp%10;
jishu.fiveCount = temp/5;
temp = temp%5;
jishu.oneCount= temp;
}
int sumHundred=0, sumFifty=0, sumTen=0, sumFive=0, sumOne=0;
for(i =0; i<NUM_STAFF; i++)
{
printf("工号%d的工资是%8d, 应该发100元%d张,50元%d张,10元%d张,5元%d张,1元%d张。\n",
jishu.nu,
jishu.paySum,
jishu.hundredCount,
jishu.fiftyCount,
jishu.tenCount,
jishu.fiveCount,
jishu.oneCount);
sumHundred += jishu.hundredCount;
sumFifty += jishu.fiftyCount;
sumTen += jishu.tenCount;
sumFive += jishu.fiveCount;
sumOne += jishu.oneCount;
}
printf("该部门100元需%d张,50元需%d张,10元需%d张,5元需%d张,1元需%d张\n",
sumHundred, sumFifty, sumTen, sumFive, sumOne);
system("pause");
}
用结构体比较简单点,我只写了一个部门的,输入的是三个员工的,其他的不知道是不是LZ想要的。
本帖最后由 tyroach 于 2013-1-13 15:47 编辑
好久不写了,写的太烂了O__O"…,重新又加了下注释
#include <stdio.h>
#define NUM_STAFF 3
//创建职工结构体
typedef struct tagStaff
{
int nu; //职工号
int paySum; //工资
int hundredCount; //100元面额张数(以下类似)
int fiftyCount;
int tenCount;
int fiveCount;
int oneCount;
}Staff;
int main()
{
int i=0;
//创建职工对象数组,如需要从数据文件中读的话另解
Staff jishu;
//数据输入
for(i=0; i<NUM_STAFF; i++)
{
jishu.nu = 1000+i;
printf("input staff %d and pay:", jishu.nu);
scanf("%d", &jishu.paySum);
int temp= jishu.paySum;
jishu.hundredCount = temp/100;
temp = temp%100;
jishu.fiftyCount = temp/50;
temp = temp%50;
jishu.tenCount = temp/10;
temp = temp%10;
jishu.fiveCount = temp/5;
temp = temp%5;
jishu.oneCount= temp;
}
//数据输出
int sumHundred=0, sumFifty=0, sumTen=0, sumFive=0, sumOne=0;
for(i =0; i<NUM_STAFF; i++)
{
printf("工号%d的工资是%8d, 应该发100元%d张,50元%d张,10元%d张,5元%d张,1元%d张。\n",
jishu.nu,
jishu.paySum,
jishu.hundredCount,
jishu.fiftyCount,
jishu.tenCount,
jishu.fiveCount,
jishu.oneCount);
sumHundred += jishu.hundredCount;
sumFifty += jishu.fiftyCount;
sumTen += jishu.tenCount;
sumFive += jishu.fiveCount;
sumOne += jishu.oneCount;
}
printf("该部门100元需%d张,50元需%d张,10元需%d张,5元需%d张,1元需%d张\n",
sumHundred, sumFifty, sumTen, sumFive, sumOne);
system("pause");
} 恩,我只是来看看大家写的
其实思路多种多样了,感觉有的思路就很简洁
不过多看看总是好的,至于那个文件处理么,回宿舍我写写看看〜 tyroach 发表于 2013-1-13 15:46 static/image/common/back.gif
好久不写了,写的太烂了O__O"…,重新又加了下注释
#include
#define NUM_STAFF 3
><谢谢!窝拿回去参考! 老虚__颜艺森赛 发表于 2013-1-13 14:30 static/image/common/back.gif
数据类型:整型数组
T T我不会把数据存入文件中这一步…… 蓝蓝 发表于 2013-1-13 19:13 static/image/common/back.gif
T T我不会把数据存入文件中这一步……
http://blog.sina.com.cn/s/blog_4ed331560100jbdj.html
http://www.cnblogs.com/ifeiyun/articles/1573134.html
-。-搜索一下很多例子的,或者上msdn查fstream
假设文件里是这种格式
[工号,总额],
[工号,总额],
读出来算好结果,更新到第二个数组就行了 void f(int a[])
{
FILE *fp;
if((fp=fopen("1.txt","w"))==NULL)
{
printf("文件不存在");
return 0;
}
fprintf(fp,"100元的%d张,50元的%d张,20元的%d张,10元的%d张,5元的%d张,1元的%d张\n",a,a,a,a,a,a);
}
虽然不知道楼主还要不……
你在程序中调用这个函数就行了……然后就可以输出到那个1.txt文件里面
页:
[1]