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:
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; }