PTA_従業員給与の計算JAVA
17910 ワード
従業員給与の計算
名前、基本給、浮動給与、支出を含むN人の従業員の情報を与え、プログラムを作成して各従業員の名前と実給(実給=基本給+浮動給与-支出)を順次出力するように要求する.
入力形式:
入力は、1行に正の整数Nを与える.その後、N行、各行に1人の従業員の情報が与えられ、フォーマットは「氏名基本賃金浮動賃金支出」で、中間はスペースで区切られている.ここで、「名前」は、空白文字を含まない長さ10未満の非空文字列であり、その他の入力、出力は単一精度の範囲内で保証されます.出力フォーマット:
入力順に、各行に1人の従業員の名前と実給を出力し、スペースを隔てて2桁の小数点を保持します.
サンプルを入力:
3 zhao 240 400 75 qian 360 120 50 zhou 560 150 80
出力サンプル:
zhao 565.00 qian 430.00 zhou 630.00
通過するだけでplan Aを選択すると、演算タイムアウトの問題は発生しません.plan Bは本人の初稿で、中規中矩、PTAは演算タイムアウト0.0を表示します.
Plan A:
Plan B:
名前、基本給、浮動給与、支出を含むN人の従業員の情報を与え、プログラムを作成して各従業員の名前と実給(実給=基本給+浮動給与-支出)を順次出力するように要求する.
入力形式:
入力は、1行に正の整数Nを与える.その後、N行、各行に1人の従業員の情報が与えられ、フォーマットは「氏名基本賃金浮動賃金支出」で、中間はスペースで区切られている.ここで、「名前」は、空白文字を含まない長さ10未満の非空文字列であり、その他の入力、出力は単一精度の範囲内で保証されます.出力フォーマット:
入力順に、各行に1人の従業員の名前と実給を出力し、スペースを隔てて2桁の小数点を保持します.
サンプルを入力:
3 zhao 240 400 75 qian 360 120 50 zhou 560 150 80
出力サンプル:
zhao 565.00 qian 430.00 zhou 630.00
通過するだけでplan Aを選択すると、演算タイムアウトの問題は発生しません.plan Bは本人の初稿で、中規中矩、PTAは演算タイムアウト0.0を表示します.
Plan A:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
String name , all , a, b,c,temp;
int n , i;
float wage;
Scanner input = new Scanner (System.in);
temp = input.nextLine();
n = Integer.parseInt(temp);
for(i = 0;i<n;i++)
{
all = input.nextLine();
name =all.substring(0, all.indexOf(' '));
all = all.substring(all.indexOf(' ')+1);
a = all.substring(0, all.indexOf(' '));
all = all.substring(all.indexOf(' ')+1);
b = all.substring(0, all.indexOf(' '));
all = all.substring(all.indexOf(' ')+1);
c = all;
wage = Float.parseFloat(a)+Float.parseFloat(b)-Float.parseFloat(c);
System.out.printf("%s %.2f
",name,wage);
}
input.close();
}
}
Plan B:
import java.util.*;
public class Main {
public static void main(String[] args) {
int n ,i;
String temp;
Scanner input = new Scanner(System.in);
temp = input.next();
n = Integer.parseInt(temp);
Main work = new Main();
//list
employee[] list = new employee[n];
for(i =0;i<n;i++)
{
list[i] = new employee();
}
// list
for(i =0;i<n;i++)
{
//list[i].name = input.next();
//list[i].wage_basic = input.next();
//list[i].wage_flow = input.next();
//list[i].paid = input.next();
work.massage_in(list[i],input);
}
// list , double wage
for(i = 0;i<n;i++)
{
work.counter(list[i]);
}
// ( , 2 )
for(i = 0;i<n;i++)
{
work.Show(list[i]);
}
}
void Show (employee n)
{
System.out.printf("%s %.02f
", n.name,n.wage);
}
void counter (employee n)
{
double wage;
wage = Double.parseDouble(n.wage_basic)+Double.parseDouble(n.wage_flow)-Double.parseDouble(n.paid);
n.wage = wage;
}
void massage_in(employee n,Scanner input)
{
n.name = input.next();
n.wage_basic = input.next();
n.wage_flow = input.next();
n.paid = input.next();
}
}
class employee
{
String name;
String wage_basic;
String wage_flow;
String paid;
double wage;
}