実力判定試験について 課題 以下の問題を読み、列車座席予約プログラムを 作成してください。 小さな列車の座席予約プログラムを作ってください。 座席は、通路をはさんで2席、3席の配置で、前後は5 列あります。予約の際には人数の希望を考慮し、適切 な座席を指定してください。 作業時間に余裕があれば、喫煙・禁煙の希望別、通路 側・窓側等の希望も考慮したプログラムに拡張してく ださい。 提出するもの • • • • • 仕様書 プログラムの流れ(HCPチャートなど) 作業ログ、欠陥ログ 感想 ソースコード(コメントつき) 提出方法/提出期限 • 提出期限 – 8月15日 • 提出方法 – 全ての資料を圧縮し,電子メールに添付 – 宛先:[email protected] 課題を解くにあたっての注意点 • • 問題文はかなり曖昧にかかれています。明記さ れていない仕様に関しては、自分で定義し、仕 様書に記述してください プログラムの作成の際には以下のような流れで 作業を行ってください 1. 仕様書を作成する 2. プログラムの流れ(HCPチャートでも構いません)を 記述する (HCPチャートに関しては後述します) 3. プログラムの実装を行う 課題を解くにあたっての注意点 • 作業時間が10時間くらいになるように仕様 の複雑さを調整してください • 作業の内容を作業ログ、欠陥ログとして記 述してください。書き方に関しては後述の 記述例を参照してください • プログラムにはコメントを書き、他人でも読 めるソースコードを書くよう心がけてくださ い。 コメントを書く • コメントにはプログラムの目的を書く • コメント=目的にはレベルがある コメントがプログラムの目的に なっていない場合 //変数を宣言し値を代入する int japanese = 49; //整数型japaneseという変数 int mathematics = 73; //整数型mathematicsという変数 int science = 100; //整数型scienceという変数 int civics = 45; //整数型civicsという変数 int english = 25; //整数型englishという変数 //合計を保存しておく変数totalを5で割り、変数averageに代入する double total = japanese + mathematics + science + civics + english; double average = total / 5.0; //averageを10倍し,10で割ったあまりを調べる average = average * 10; if ((average % 10) >= 5) { //余りが5以上なら average = average + 10; //10を加える } //結果をresultに代入する int result = (int) (average / 10); コメントがプログラムの目的に なっている場合 //各教科の点数を設定する int japanese = 49; //国語 int mathematics = 73; //数学 int science = 100; //理科 int civics = 45; //公民 int english = 25; //英語 //5教科の合計点を求める double total = japanese + mathematics + science + civics + english; //5教科の平均を求める double average = total / 5.0; //平均を計算する //平均を四捨五入する average = average * 10; if ((average % 10) >= 5) { //1の位が5以上なら average = average + 10; //繰り上げる } int result = (int) (average / 10); コメントのレベル /** * 家を描くプログラム * 作成日:00.5.3 (1bcBコース教材より) */ import Turtle; class House01 extends Turtle{ /** * 家を描く */ void start(){ 見出しコメント // 屋根を描く rt(30); // 前処理(タートルの角度を調整する) int i; for(i=1; i<=3; i++){ fd(100); rt(120); // 三角形の一辺を描く } rt(60); // 後処理(タートルの角度を調整する) } } // 本体を描く for(i=1; i<=4; i++){ fd(100); rt(90); } // 四角形の一辺を描く ブロックコメント 行コメント コメントのレベル /** * 家を描くプログラム * 作成日:00.5.3 (1bcBコース教材より) */ import Turtle; class House01 extends Turtle{ /** * 家を描く */ void start(){ // 屋根を描く rt(30); // 前処理(タートルの角度を調整する) int i; for(i=1; i<=3; i++){ fd(100); rt(120); // 三角形の一辺を描く } rt(60); // 後処理(タートルの角度を調整する) } } // 本体を描く for(i=1; i<=4; i++){ fd(100); rt(90); } // 四角形の一辺を描く 屋根を描く 家を描く 本体を描く コメントのレベル /** * 家を描くプログラム * 作成日:00.5.3 (1bcBコース教材より) */ import Turtle; class House01 extends Turtle{ /** * 家を描く */ void start(){ // 屋根を描く rt(30); // 前処理(タートルの角度を調整する) int i; for(i=1; i<=3; i++){ fd(100); rt(120); // 三角形の一辺を描く } rt(60); // 後処理(タートルの角度を調整する) } } // 本体を描く for(i=1; i<=4; i++){ fd(100); rt(90); } // 四角形の一辺を描く プログラムの流れを考える • プログラムの目的の階層構造を作る • 例) •家を描く –屋根を描く –直線を描く –120度右に回転する (以上を3回繰り返す) –本体を描く –直線を描く –90度右に回転する (以上を4回繰り返す) HCPチャート 家を描く 屋根を描く 直線を描く 120度右に回転する 本体を描く 直線を描く 90度右に回転する 仕様書例 • 別紙を参照してください 作業ログ・欠陥ログの例 • 別紙を参照してください
© Copyright 2024 ExpyDoc