Sponsored Content
Top Forums Shell Programming and Scripting Calculate the performance of employee Post 303037621 by rohit_shinez on Thursday 8th of August 2019 06:17:11 AM
Old 08-08-2019
Calculate the performance of employee

Hi Guys,

I need to determine the employee performance and calculate their salaries based on each quarter

Expected output
Code:
enter the no. of Employee  2
2
Enter Employee Name sam
Enter salary 1000
Enter Q1 5
Enter Q2 6
Enter Q3 3
Enter Q4 5
Enter Employee Name anderson
Enter salary 5000
Enter Q1 7
Enter Q2 7
Enter Q3 8
Enter Q4 8
EMPNAME | SALARY | Q1 | Q2 | Q3 | Q4 | Avg Q | Expected Sal | Incremented Sal | Performance |
sam 1000 5 6 3 5 4.0 1040.0 40.0 ON TRACK
anderson 5000 7 7 8 8 7.0 5350.0 350.0 BEST

code in python
Code:
def avg_check(q1,q2,q3,q4) :
    sum = q1 + q2 + q3 + q4
    av1 = float(sum / 4)
    return av1
def check_desc(av1) :
    if av1 >= 7 :
           desc="BEST"
    elif av1 <=7 and av1 >=5 :
           desc="AVG"
    else:
           desc="ON TRACK"
    return desc
details=[ ]
n=input("enter the no. of Employee  ")
print n
for i in range(n):
        name=raw_input("Enter Employee Name ")
        salary=input("Enter salary ")
        q1=input("Enter Q1 ")
        q2=input("Enter Q2 ")
        q3=input("Enter Q3 ")
        q4=input("Enter Q4 ")
        av=avg_check(q1,q2,q3,q4)
        inc_salary=float(salary * av / 100)
        exp_salary=float(salary + inc_salary)
        desc=check_desc(av)
        emp=[name,salary,q1,q2,q3,q4,av,exp_salary,inc_salary,desc]
        details.append(emp)
final=sorted(details, key = lambda x: int(x[6]))
print "EMPNAME | SALARY | Q1 | Q2 | Q3 | Q4 | Avg Q | Expected Sal | Incremented Sal | Performance | "
for i in range(len(final)):
    print " ".join(map(str,final[i]))

Can this be done on shell scripting in efficient way with good formatting of header and column
 

9 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

bc calculate problem

Hi , this is the first time i use bc to calculate and i would have decimal result , i use the following : toto=400;scale=1 echo $toto / 1000|bc scale to adjust the numbers after the command would have in this case 0.4 as result and i wonder why i have always 0 as result. Somebody can... (2 Replies)
Discussion started by: Nicol
2 Replies

2. Shell Programming and Scripting

calculate output

I was wondering can anyone give me a clue how to start script which would do the following: I have 2 numbers as input for example: 100 and 1000 and I need to create file and in that file should be written 100 - 199 200 - 299 300 - 399 400 - 499 500 - 599 600 - 699 700 - 799... (3 Replies)
Discussion started by: amon
3 Replies

3. News, Links, Events and Announcements

Announcing collectl - new performance linux performance monitor

About 4 years ago I wrote this tool inspired by Rob Urban's collect tool for DEC's Tru64 Unix. What makes this tool as different as collect was in its day is its ability to run at a low overhead and collect tons of stuff. I've expanded the general concept and even include data not available in... (0 Replies)
Discussion started by: MarkSeger
0 Replies

4. Shell Programming and Scripting

calculate the space

Hi everyone, I need to write a script to calculate the space for sub-folders under /home: Here is the scanrio: cd /home drwxr-xr-x 57 root root 8192 Jan 22 16:13 home_1 drwxrwxrwx 69 root root 8192 Jan 29 10:36 home_2 drwxr-xr-x 97 root root 8192 Nov... (8 Replies)
Discussion started by: za_7565
8 Replies

5. Shell Programming and Scripting

How can i calculate percentage ??

i have 3 files like total.dat=18 equal.dat=14 notequal.dat=16 i need find the equal percentange means: equalpercentage = ($equal.dat / $total.dat * 100) How i can do this ? I tried some of the answers to calculate the percentage in this forums.but it couldn't worked.Some one please... (6 Replies)
Discussion started by: bobprabhu
6 Replies

6. Shell Programming and Scripting

How To Calculate

I have 2 variables in my shell scripts in which i am using awk and calculating 2 files and getting 2 different variable called in_total and out_total. I want to subtract one variable from another so plz tell me how i can do that. Example is: cat in_file | awk -F: '{ in_total += $1 * 86400... (3 Replies)
Discussion started by: krishna_sicsr
3 Replies

7. Shell Programming and Scripting

Calculate age of a file | calculate time difference

Hello, I'm trying to create a shell script (#!/bin/sh) which should tell me the age of a file in minutes... I have a process, which delivers me all 15 minutes a new file and I want to have a monitoring script, which sends me an email, if the present file is older than 20 minutes. To do... (10 Replies)
Discussion started by: worm
10 Replies

8. UNIX for Dummies Questions & Answers

Calculate

i have file input abcedef|wert|13|03|10|04|23|A1|13|05|01|09|31 fsdasdf|ferg|12|04|25|21|21|A1|13|02|26|20|31 dfsfsad|gerg|12|04|25|21|21|A1|13|02|25|25|31 i expect the output abcedef|wert|13|03|10|04|23|A1|13|05|01|09|31|9.516666667... (5 Replies)
Discussion started by: radius
5 Replies

9. Shell Programming and Scripting

Employee records

If there are 2 records for an Employee, How can I choose the one with eff_status = ‘Active' and ignore the eff_status ='Terminated'. if there is only one record, then just write that record regardless of the eff_status. Please assist. (1 Reply)
Discussion started by: Harimalyala
1 Replies
dc(1)							      General Commands Manual							     dc(1)

NAME
dc - Provides an interactive desk calculator for arbitrary precision integer arithmetic SYNOPSIS
dc DESCRIPTION
The dc command is an arbitrary precision arithmetic calculator. The dc command takes its input from file or standard input until it reads an End-of-File character. It writes to standard output. The dc command operates on integers by default, but you can specify an input base, output base, and a number of fractional digits to be maintained. The dc command is structured overall as a stacking, reverse Polish calcu- lator. The bc command is a preprocessor for dc. It provides infix notation and a syntax similar to the C language, which implements functions and reasonable control structures for programs. SUBCOMMANDS
Pushes the specified value onto the stack. number is an unbroken string of the digits 0 to 9. To specify a negative number, precede it with _ (underscore). A number can contain a decimal point. Adds (+), subtracts (-), multiplies (*), divides (/), remainders (%), or expo- nentiates (^) the top two values on the stack. The dc command pops the top two entries off the stack and pushes the result on the stack in their place. Interprets the rest of the line as a system command. Executes a line of input from standard input. Cleans the stack: dc pops all values on the stack. Duplicates the top value on the stack. Displays all values on the stack. Pops the top value on the stack and uses that value as the number radix for further input. Pushes the input base on the top of the stack. Pops the top of the stack, and uses that value as a nonnegative scale factor. The appropriate number of places is displayed on output and is maintained during multipli- cation, division, and exponentiation. The interaction of scale factor, input base, and output base is reasonable if all are changed together. Pushes the value in register x on the stack. The register x is not changed. All registers start with zero value. Treats x as a stack and pops its top value onto the main stack. Pops the top value on the stack and uses that value as the number radix for further output. Pushes the output base on the top of the stack. Prints the top value on the stack. The top value remains unchanged. Interprets the top value on the stack as an ASCII string, prints it, and removes it. Exits the program. If dc is executing a string, it pops the recursion level by two. Pops the top value on the stack and the string execution level by that value. Pops the top of the stack and stores it in a register named x, where x can be any single-byte character. Replaces the top element on the stack by its square root. Any existing fractional part of the argument is taken into account, but otherwise the scale factor is ignored. Treats x as a stack. It pops the top of the main stack and pushes that value onto stack x. Treats the top element of the stack as a character string and executes it as a string of dc commands. Replaces the number on the top of the stack with its scale factor. Pushes the number of elements in the stack onto the stack. Replaces the top number in the stack with the number of digits in that number. Puts the bracketed string onto the top of the stack. Pops the top two elements of the stack and compares them. Register x is executed if the stated relationship is TRUE. dc uses these characters for array operations. EXAMPLES
To use dc as a calculator proceed as follows: Enter: 1 4 / p [Divide 1 by 4]s. The system responds as follows: 0 Enter: 1 k [ Keep 1 decimal place]s. 1 4 / p The system responds as follows: 0.2 Enter: 3 k [ Keep 3 decimal places]s. 1 4 / p The system responds as follows: 0.250 Enter: 16 63 5 / + p [Divide 63 by 5, add the result to 16]s. The system responds as follows: 28.600 Enter: 16 63 5 + / p [Add 63 and 5, divide the result by 16]s. The system responds as follows: 0.235 You can type the comments (enclosed in brackets), but they are provided only for your information. When you enter dc expressions directly from the keyboard, press the End-of-File key sequence to end the dc session and return to the shell command line. To load and run a dc program file, proceed as follows: Enter: dc prog.dc 5 lf x p [ 5 factorial ]s. The system responds as follows: 120 Enter: 10 lf x p [ 10 factorial ]s. The system responds as follows: 3628800 This interprets the dc program saved in prog.dc, then reads from standard input. The lf x evaluates the function stored in register f, which could be defined in the program file prog.dc as: [ f: compute the factorial of n ]s. [ (n = the top of the stack) ]s. [ If 1>n do b; If 1<n do r ]s. [d 1 >b d 1 <r] sf [ Return f(n) = 1 ]s. [d - 1 +] sb [ Return f(n) = n * f(n-1) ]s. [d 1 - lf x *] sr You can create dc program files with a text editor, or with the -c (compile) flag of the bc command. When you enter dc expressions directly from the keyboard, press the End-of-File key sequence to end the dc session and return to the shell command line. SEE ALSO
Commands: bc(1) dc(1)
All times are GMT -4. The time now is 01:13 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy