0

我如何将其打印到输出文件中,并按周和总周计算这些人工资的总和和平均值,共 4 周...

示例txt文件..

doe       jane
williams  tom
lons      adams

 45.7   56.3   345.6  344.7  // week 1
 43.6   89.0   543.6  12.5   // week 1  person 2
 90.5   78.0  345.4  345.6  //week 1 person 3
 67.5   34.5   56.6   34.5   // week2 person 1
  etc....for 4 weeks..

我知道使用循环有一种更简单的方法我可以得到一些帮助吗谢谢:)

这就是我到目前为止所拥有的

#include<iostream>
#include<fstream>
#include<cstdlib>
#include<string>
#include<iomanip>
using namespace std;

int main()
{
ifstream infile;
 ofstream outfile;

double s1, s2, s3 , s4 ,s5;
double t1, t2,t3,t4,t5;
double w1, w2,w3,w4,w5;
string personlast,personfirst,personlast2,personfirst2,personlast3,personfirst3;
double sum, average;
int numberpeople, numberofweeks;

infile.open("data.txt");
outfile.open("output.txt");

outfile<< fixed<< showpoint;
outfile<< setprecision(2);

infile>> numberpeople >> personlast >> personfirst >> personlast2 >> personfirst2>>
  personlast3 >> personfirst3 >> numberofweeks;
outfile<< " The number of salespeople are " << numberpeople <<"they are" <<
personlast << personfirst << "and " <<
 personlast2 << personfirst2 <<
 "and " << personlast3 << personfirst3 <<"Number of weeks = " << numberofweeks;


infile>> s1 >> s2 >> s3 >> s4 >> s5;
outfile <<" sales for week 1  "<< " for" << personlast << personfirst << s1 << s2
<< s3 << s4 << s5 << endl;
sum= s1+s2+s3+s4+s5;
 outfile <<"Sum of first week is " << sum<<endl;

infile >> t1 >> t2 >> t3 >> t4 >> t5;
outfile <<" sales for week 1  "<< " for" << personlast2 << personfirst2 << t1 << t2 
<< t3 << t4 << t5 <<endl;



infile.close();
outfile.close();
return 0;
4

1 回答 1

0

我不会为你做作业,因为我不想,但我会给你一些开始的东西。基本概念是遍历文件,读取每一行。使用类似(伪代码)的控件;

 while (string = readline() != EOF)
 {
     //split string on delimiters in this case spaces
     if (string piece is not an int)
     {
         // this is a name
         // set first and last name here
     }

     if (string piece is an int)
     {
        // set ints,
     }
 }

您还需要一些结构(如果您已经了解这些结构,这些可能应该是类)来保存您的数据。如果您可以使用字符串,则使用它们而不是那些char*如果您使用,则char*必须动态声明一个 char 数组。char[64] first_name;那个,或者如果允许的话,你可以制作它们。

struct person {
   char *first_name;
   char *last_name;
   numbers[4] numbers;
};

struct numbers {
   float item1;
   float item2;
   float item3;
   float item4;
};

当您读取数据时,您需要将其读入人员结构的实例中。

于 2012-11-17T01:26:43.330 回答