蓝蓝 发表于 2013-1-12 23:49:29

【工资发放币种统计】求救命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!!

Mr_Alex 发表于 2013-1-13 09:39:21

帮你召唤一下~~不过他不一定在 @ou# @Whisper1166

gxarcher 发表于 2013-1-13 10:44:15

蓝蓝 发表于 2013-1-13 14:16:39

Mr_Alex 发表于 2013-1-13 09:39 static/image/common/back.gif
帮你召唤一下~~不过他不一定在@Whisper1166

@@22!!谢谢

蓝蓝 发表于 2013-1-13 14:17:40

gxarcher 发表于 2013-1-13 10:44 static/image/common/back.gif
VC6.0放在虚拟机上的,很久没用现在虚拟机不能启动了.....
就简单的说说思路吧
你这个应该用二维数组的好, ...

@@35!!其实我也是不会数据文件的部分了……程序今天上午上机的时候倒是做出来了T T

老虚__颜艺森赛 发表于 2013-1-13 14:30:12

数据类型:整型数组<------ 这个是对存储格式的要求么?

建个二维数组,第一维度存员工序号和总额,第二维度存你算好的张数

然后把这些内容写到文件上,参考c++操作文本文件之类的即可

计算每位职工各种币种的张数、某部门各种币种的张数及总工资额数 <--- 解析你存储的文件算一遍即可-。-

tyroach 发表于 2013-1-13 15:32:34

#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:46:10

本帖最后由 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");
}

姜小衰 发表于 2013-1-13 15:49:27

恩,我只是来看看大家写的
其实思路多种多样了,感觉有的思路就很简洁
不过多看看总是好的,至于那个文件处理么,回宿舍我写写看看〜

蓝蓝 发表于 2013-1-13 19:12:26

tyroach 发表于 2013-1-13 15:46 static/image/common/back.gif
好久不写了,写的太烂了O__O"…,重新又加了下注释
#include
#define NUM_STAFF 3


><谢谢!窝拿回去参考!

蓝蓝 发表于 2013-1-13 19:13:29

老虚__颜艺森赛 发表于 2013-1-13 14:30 static/image/common/back.gif
数据类型:整型数组

T T我不会把数据存入文件中这一步……

老虚__颜艺森赛 发表于 2013-1-13 20:18:29

蓝蓝 发表于 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

假设文件里是这种格式
[工号,总额],
[工号,总额],

读出来算好结果,更新到第二个数组就行了

姜小衰 发表于 2013-1-14 11:25:45

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]
查看完整版本: 【工资发放币种统计】求救命T T