アプリケーションスペシャリスト養成講座 事前説明会

実力判定試験について
課題
以下の問題を読み、列車座席予約プログラムを
作成してください。
小さな列車の座席予約プログラムを作ってください。
座席は、通路をはさんで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度右に回転する
仕様書例
• 別紙を参照してください
作業ログ・欠陥ログの例
• 別紙を参照してください