• 締切済み

貸し出し時間の計算するプログラムを教えてください!

JAVAについて教えてくださいっ!! 下のプログラムは貸出リストの貸出時間総計を出力するプログラムです! これをどう修正すればよいのか教えてほしいです! ~~~~~~~~ import java.util.Scanner; import java.io.File; import java.io.FileNotFoundException; public class Test { public static void main(String[] args) { try{ Scanner file = new Scanner(new File(args[0])); int tm = 0; while (file.hasNext()) { char b = file.next().charAt(0); char io = file.next().charAt(0); int h = file.nextInt(); int m = file.nextInt(); switch (io) { case 'I': tm += 60*h+m; break; case 'O': tm -= 60*h+m; break; } } System.out.printf("%d:%02d\n", tm/60, tm%60); file.close(); } catch(FileNotFoundException e) { System.out.println(e); } } } ~~~~~~~~ このプログラムを修正して、貸出リスト各貸出物の貸出時間合計を出力しつつ、全貸出物の貸出時間の合計を計算し、それらの結果を標準出力に出力するプログラムを作成したいです! それにはどうやって修正すればよいでしょうか???? ~~~~~~~~ ☆貸出リスト(list1.txt) ACD→貸出物の名前、O→貸出時間、I→返却時間 A O 09 10 C O 09 25 A I 09 50 C I 10 05 D O 10 15 D I 10 55 A O 11 30 C O 12 00 A I 12 45 C I 13 15 D O 13 20 A O 13 30 D I 14 05 A I 14 15 D O 14 55 D I 15 40 ~~~~~~~~ 【実行例】 ↓のように出力させたいです ☆コマンドライン入力 list1.txt ☆標準出力 A 2:40 C 1:55 D 2:10 6:45 よろしくお願いいたします!(^^)!

みんなの回答

  • _kappe_
  • ベストアンサー率68% (1581/2304)
回答No.1

いくつか確認させてください。 [1]貸出物の名前はACDの3種類だけですか。それとも、char型1文字で表せる範囲で100種類でも1000種類でも対応する必要がありますか。 [2]貸出時間と返却時間のデータは必ずペアになっていると思っていいのですか。貸出だけがあって返却がないとか、貸出と返却の順番が逆になっているとかの不正データをチェックしなければならないとすると厄介です。 [3]入力データは必ず時刻順に並んでいるのでしょうか。もし"D O 13 20"の次に"C I 13 15"というデータが来たらどのように処理すべきですか。 [4]たとえば17:30に貸出、翌日の10:00に返却のような場合を考慮する必要はありますか。入力データに日付がないので必ず当日中に返却される前提でしょうか。 もしこれが学校か何かの宿題なのであれば、出題者に仕様を確認してください。 ちなみに、「貸出時間の総計 プログラム」でネット検索すると、似たような内容のC言語の課題の質問が見つかりました。

関連するQ&A