首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从文件中得到计算每个员工加薪的程序?

如何从文件中得到计算每个员工加薪的程序?
EN

Stack Overflow用户
提问于 2019-03-16 01:26:06
回答 1查看 3.3K关注 0票数 1

下面是我在介绍编程课程时想要解决的问题:

一所小型学院的理事们正在考虑为他们的教职员工投票加薪。他们希望将收入超过50,000.00美元的人提高7%,收入超过60,000.00美元的人增加4%,其他人增加5.5 %。然而,在这样做之前,他们想知道这将花费多少。编写一个程序,打印每个教员的加薪、加薪总额和平均加薪。此外,在加薪之前和之后打印教师薪资总额。使用文件的末尾作为前哨值。

这是我到目前为止掌握的代码:

代码语言:javascript
复制
def main():

    inFile = open('program7.txt', 'r')
    total = 0
    newSalaryTotal = 0
    lineRead = inFile.readline()
    while lineRead != '':
       words = lineRead.split() 
       for word in words:
           salary = float(word)
           print(format(salary, '.2f'))
       if salary > 60000.0:
           newSalary = salary * 1.04
           newSalaryTotal += newSalary
           payRaise = newSalary - salary
           total = total + salary
           print('The original salary is: ', salary)
           print('The pay raise is: ', payRaise)
       elif salary > 50000.0:
           newSalary = salary * 1.07
           newSalaryTotal += newSalary
           total = total + salary
           payRaise = newSalary - salary
           print('The original salary is: ', salary)
           print('The pay raise is: ', payRaise)
       elif salary < 50000.0:
           newSalary = salary * 1.055
           newSalaryTotal += newSalary
           total = total + salary
           payRaise = newSalary - salary
           print('The original salary is: ', salary)
           print('The pay raise is: ', payRaise)
       lineRead = inFile.readline()

    print('The total is: ', format(total, '.2f'))
    print('The new salary total is: ', format(newSalaryTotal, '.2f'))
    # Close the file.
    inFile.close()


main()`

在读取了文件中的数据后,我很难让输出显示每个员工的加薪情况。我也不知道如何设置计算加薪平均值所需的变量。任何可以提供的帮助将是非常感谢的。提前感谢

编辑:这是从我上面提供的代码中得到的输出。我要问的是,为什么最初的工资和加薪没有被打印出来,每个值都是从文件中读取的?我还提供了以下文本文件中的数据:

输入数据"program7.txt":

52500.00 64029.50 56000.00 50001.00 65500.00 42800.00 45000.50 68900.00 60000.00 59999.94 54120.25 64100.00 44000.50 80100.20 90000.00 41000.00 60500.50 72000.00 50000.01 50000.00 80001.75 60001.00

输出

EN

回答 1

Stack Overflow用户

发布于 2019-03-16 02:49:52

现在,我将避免看你如何显示每个员工的加薪,因为你的打印声明似乎已经这样做了?如果没有您的“Program7.txt”文件,我将无法看到实际生成的内容,因此,您也许可以编辑这个问题来描述您当前和想要的输出。

相反,我会强迫你,帮助你计算平均值。你的问题有点不清楚,因为有多种计算“平均加薪”的方法。为了说明这一点,请考虑以下输入数据。

代码语言:javascript
复制
+-------+--------+-------+------------+ 
| Name  | Salary | Raise | New Salary |
+-------+--------+-------+------------+
| Bob   | 100000 |  4%   |     104000 |
| Sally |  40000 |  5.5% |      42200 |
| Dave  |  55000 |  7%   |      58850 |
+-------+--------+-------+------------+
| Total | 195000 | 10050 |     205050 |
+-------+--------+-------+------------+

第一种可能性是通过将加薪按百分比加起来,然后除以人数,计算出人均的平均加薪。

(4% + 5% + 7%) /3= 16%/3 = 5.333%

另外,您可以通过添加加薪并除以旧薪资,将平均加薪计算为总成本的函数。即

10050 / 195000 = 5.154%

这两种说法都是正确的。

对于第一种方法,您需要为员工数量添加一个变量。

对于第二种方法,可以通过从total中减去newSalaryTotal来计算所需的总提升量。

编辑:您输入的数据中的所有薪资都是作为一行输入的。

目前,您的if语句只运行在每一行的最后一个单词上。在您的例子中,您可能希望它每字触发一次。为此,您需要缩进包含在for循环中的if语句,如下所示

代码语言:javascript
复制
   for word in words:
       salary = float(word)
       print(format(salary, '.2f'))
       if salary > 60000.0:
           newSalary = salary * 1.04
           newSalaryTotal += newSalary
           payRaise = newSalary - salary
           total = total + salary
           print('The original salary is: ', salary)
           print('The pay raise is: ', payRaise)
       elif salary > 50000.0:
           newSalary = salary * 1.07
           newSalaryTotal += newSalary
           total = total + salary
           payRaise = newSalary - salary
           print('The original salary is: ', salary)
           print('The pay raise is: ', payRaise)
       elif salary < 50000.0:
           newSalary = salary * 1.055
           newSalaryTotal += newSalary
           total = total + salary
           payRaise = newSalary - salary
           print('The original salary is: ', salary)
           print('The pay raise is: ', payRaise)
   lineRead = inFile.readline()

或者,你可以保持你的程序不变,而不是编辑你的输入数据,这样每个工资就会被带到一个新的行中,而不是被一个空格分开。即as 2.txt

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55192603

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档