情報処理科2年「プログラミング」
実習課題2(csvファイルの読み込み)
進め方
・解説を参考にテキストに書き込みながら、学習を進めてください
・ページ移動は、スライド左右の < > マークをクリック
・自宅でjavaの開発環境が整っている生徒は、
通常の授業と同じように入力→コンパイル→実行を行ってください
・・・実習メニューへ戻る
支店ごとの2カ月分の売上データを読み、1月と2月の合計を求め、実行結果のように表示する。
処理条件
(1)売上データ(ka2.csv)を読み込んで変数に記憶する
(2)1月と2月の売上から合計を計算し、売上一覧表を表示する
(3)データにエラーはないものとする
csvファイルとは
図のような項目ごとにカンマで区切られたテキストファイルです
プログラムを実行するには、プログラムファイルka2.javaとデータファイルka2.csvが必要です
プログラムファイルka2.javaは自分でJCPADに入力します
データファイルka2.csvは こちらからダウンロードしてください→ダウンロード
プログラムを実行する前にプログラムファイルka2.javaと同じフォルダにka2.csvを入れておいてください
それでは、出力設計から始めます
(1)まず明細から設計します
文字データが入る場所にはS
数値データが入る場所にはdを
表示したい桁数だけ書きます
ただし、店舗名のところのsは
全角文字なのでs1つに2マス使います
(2)つぎに明細に合わせるように
小見出し、大見出しの順に記入していきます
このときも全角文字は2マス使って下さい
つぎに、変数名を決めます
番号は変数名はban、データ型は整数型intとします
店舗名は変数名mei、データ型は文字型Stringとします
1月の売上は変数名tuki1、データ型は整数型intとします
2月の売上は変数名tuki2、データ型は整数型intとします
合計は変数名kei、データ型は整数型intとします
つぎに流れ図に処理の順番を記入します
流れ図が終わったら、変数名と流れ図を見ながらプログラムをコーディングします
テキストの流れ図の横に、書き込んでください
字が小さめですが、最後にコーディング全体の確認画面がありますので、まず流れ図との関係を見ておきましょう
緑色の部分は、例外処理の記述です
例外処理とは、読み込むデータにエラーがあったときのことですが
実習のデータにはエラーはありませんので、詳しくは後ほど勉強しましょう
最初に大見出しと小見出しを表示します
読み込むファイル名と読み込み方を指定します
繰り返しの条件が、読み込む1行が null(何もないということ)でない間にします
データは項目の区切りがカンマであることを指定します
カンマごとに読み込んだ値をそれぞれの変数に記憶します
1月と2月の売上を足して合計を求めます
明細を表示します
明細を表示する箇所は、systemu.out.printf を使います
printf のfはフォーマット=書式という意味で、書式を指定して表示することができます
出力設計と見比べてください
%1sは、文字1桁 %5sは文字5桁 %3dは数値3桁を表し、後ろで指定された変数の値が、前から順番に表示されます
次のようにコーディングされます・・確認!
¥マークが全角になっていますが、本当は半角です・・
テキストに書き込んでください(流れ図の横の枠に)
import java.io.*;
import java.util.Scanner;
public class ka2{
public static void main(String[] args) throws IOException{
System.out.println
(" 売上一覧表 作成者×××");
System.out.println
(" No 店舗名 1月 2月 合計");
BufferedReader fileIn=
new BufferedReader(new FileReader("ka2.csv"));
String line;
while((line=fileIn.readLine())!=null){
String[] str=line.split(",");
int ban=Integer.parseInt(str[0]);
String mei=str[1];
int tuki1=Integer.parseInt(str[2]);
int tuki2=Integer.parseInt(str[3]);
int kei=tuki1 + tuki2;
System.out.printf(" %2s %-5s %,3d %,3d %,3d ¥n"
,ban,mei,tuki1,tuki2,kei);
}
fileIn.close();
}
}
通常の授業と同じように入力→コンパイル→実行を行ってください
支店ごとの2カ月分の売上データを読み、1月と2月の合計を求め、実行結果のように表示する。
処理条件
(1)売上データ(ka2.csv)を読み込んで変数に記憶する
(2)1月と2月の売上から合計を計算し、売上一覧表を表示する
(3)データにエラーはないものとする

csvファイルとは
図のような項目ごとにカンマで区切られたテキストファイルです
プログラムを実行するには、プログラムファイルka2.javaとデータファイルka2.csvが必要です
プログラムファイルka2.javaは自分でJCPADに入力します
データファイルka2.csvは こちらからダウンロードしてください→ダウンロード
プログラムを実行する前にプログラムファイルka2.javaと同じフォルダにka2.csvを入れておいてください

それでは、出力設計から始めます
(1)まず明細から設計します
文字データが入る場所にはS
数値データが入る場所にはdを
表示したい桁数だけ書きます
ただし、店舗名のところのsは
全角文字なのでs1つに2マス使います
(2)つぎに明細に合わせるように
小見出し、大見出しの順に記入していきます
このときも全角文字は2マス使って下さい

つぎに、変数名を決めます
番号は変数名はban、データ型は整数型intとします
店舗名は変数名mei、データ型は文字型Stringとします
1月の売上は変数名tuki1、データ型は整数型intとします
2月の売上は変数名tuki2、データ型は整数型intとします
合計は変数名kei、データ型は整数型intとします

つぎに流れ図に処理の順番を記入します






流れ図が終わったら、変数名と流れ図を見ながらプログラムをコーディングします
テキストの流れ図の横に、書き込んでください
字が小さめですが、最後にコーディング全体の確認画面がありますので、まず流れ図との関係を見ておきましょう
緑色の部分は、例外処理の記述です
例外処理とは、読み込むデータにエラーがあったときのことですが
実習のデータにはエラーはありませんので、詳しくは後ほど勉強しましょう

最初に大見出しと小見出しを表示します

読み込むファイル名と読み込み方を指定します

繰り返しの条件が、読み込む1行が null(何もないということ)でない間にします

データは項目の区切りがカンマであることを指定します

カンマごとに読み込んだ値をそれぞれの変数に記憶します
1月と2月の売上を足して合計を求めます
明細を表示します

明細を表示する箇所は、systemu.out.printf を使います
printf のfはフォーマット=書式という意味で、書式を指定して表示することができます
出力設計と見比べてください
%1sは、文字1桁 %5sは文字5桁 %3dは数値3桁を表し、後ろで指定された変数の値が、前から順番に表示されます

次のようにコーディングされます・・確認!
¥マークが全角になっていますが、本当は半角です・・
テキストに書き込んでください(流れ図の横の枠に)
import java.io.*;
import java.util.Scanner;
public class ka2{
public static void main(String[] args) throws IOException{
System.out.println
(" 売上一覧表 作成者×××");
System.out.println
(" No 店舗名 1月 2月 合計");
BufferedReader fileIn=
new BufferedReader(new FileReader("ka2.csv"));
String line;
while((line=fileIn.readLine())!=null){
String[] str=line.split(",");
int ban=Integer.parseInt(str[0]);
String mei=str[1];
int tuki1=Integer.parseInt(str[2]);
int tuki2=Integer.parseInt(str[3]);
int kei=tuki1 + tuki2;
System.out.printf(" %2s %-5s %,3d %,3d %,3d ¥n"
,ban,mei,tuki1,tuki2,kei);
}
fileIn.close();
}
}