・・・ |
|
|
|
012 |
|
public class KQMain
{ |
|
013 |
|
|
貼り付け1 |
014 |
|
//******************************************** |
|
015 |
|
//
定数 |
|
016 |
|
//******************************************** |
|
017 |
|
//入力・表示処理モード |
|
018 |
|
private
static final
int EXEC_MODE_QUIZ = 1;//問題処理モード |
|
019 |
|
private
static final
int EXEC_MODE_CHECK = 2;//解答処理モード |
|
020 |
|
private
static final
int QUIZ_MAX =
3;//問題数 |
|
021 |
|
|
|
022 |
|
//******************************************** |
|
023 |
|
//
変数 |
|
024 |
|
//******************************************** |
|
025 |
|
private
static boolean
loopFlg = true;//ループフラグ |
|
026 |
|
private
static int
inputNum = 0;//入力番号 |
|
027 |
|
private
static int
execMode =
EXEC_MODE_QUIZ;//処理モード(問題処理モードで開始) |
|
028 |
|
|
|
029 |
|
private
static int
nowQuizNum = 0;//現在出題番号 |
|
030 |
|
private
static int
correctTotal = 0;//正解数 |
|
031 |
|
|
|
032 |
|
/** |
|
033 |
|
*
@param args the command line arguments |
|
034 |
|
*/ |
|
035 |
|
public static void
main(String[] args) { |
|
036 |
|
//
TODO code application logic here |
|
037 |
|
|
|
038 |
|
//******************************************** |
|
039 |
|
//
メイン処理 |
|
040 |
|
//******************************************** |
|
041 |
|
while
(loopFlg) { |
|
042 |
|
|
|
043 |
|
///////////////////////////////////////////////////// |
|
044 |
|
//実行と描画処理 |
|
045 |
|
|
|
046 |
|
//問題処理モード |
|
047 |
|
if(execMode
== EXEC_MODE_QUIZ){ |
|
048 |
|
|
|
049 |
|
//問題処理モード関数呼び出し |
|
050 |
|
execModeQuiz(); |
|
051 |
|
|
|
052 |
|
//解答処理モード |
|
053 |
|
}else
if(execMode ==
EXEC_MODE_CHECK){ |
|
054 |
|
|
|
055 |
|
//解答処理モード関数呼び出し |
|
056 |
|
execModeCheck(); |
|
057 |
|
|
|
058 |
|
} |
|
059 |
|
|
|
060 |
|
//入力番号を受け取る |
|
061 |
|
inputNum
= scanInputData(); |
|
062 |
|
|
|
063 |
|
//表示終了の区切り |
|
064 |
|
System.out.println(""); |
|
065 |
|
System.out.println("######################################################"); |
|
066 |
|
System.out.println(""); |
|
067 |
|
} |
|
068 |
|
|
|
069 |
|
//結果表示 |
|
070 |
|
System.out.println(""); |
|
071 |
|
System.out.println("***************** ことくいず *****************"); |
|
072 |
|
System.out.println(""); |
|
073 |
|
System.out.println(" あなたの正解数は "+
correctTotal +" でした。"); |
|
074 |
|
System.out.println(""); |
|
075 |
|
System.out.println("***********************************************"); |
|
076 |
|
System.out.println(""); |
|
077 |
|
System.out.println("おしまい"); |
|
078 |
|
} |
|
079 |
|
|
|
080 |
|
/** |
|
081 |
|
*
解答チェック処理 |
|
082 |
|
*
@param seikaiBangou 正解の番号 |
|
083 |
|
*
@param kaitouBangou 入力番号 |
|
084 |
|
*
@param seikaiGoukei 正解数 |
|
085 |
|
*
@return seikaiGoukei 正解数 |
|
086 |
|
*/ |
|
087 |
|
private
static int checkAnswerData(int
seikaiBangou,int kaitouBangou,int
seikaiGoukei){ |
|
088 |
|
|
|
089 |
|
//解答チェック |
|
090 |
|
if(kaitouBangou
== seikaiBangou){ |
|
091 |
|
System.out.println("やったね!正解"); |
|
092 |
|
seikaiGoukei
+= 1;//正解数加算 |
|
093 |
|
}else{ |
|
094 |
|
System.out.println("残念!不正解"); |
|
095 |
|
} |
|
096 |
|
|
|
097 |
|
//結果を返す |
|
098 |
|
return
seikaiGoukei; |
|
099 |
|
} |
|
100 |
|
|
|
101 |
|
/** |
|
102 |
|
* キー入力処理 |
|
103 |
|
*/ |
|
104 |
|
private
static int scanInputData(){ |
|
105 |
|
|
|
106 |
|
///////////////////////////////////////////////////// |
|
107 |
|
//キー入力処理 そのまま書き写してください ここから |
|
108 |
|
int
tmpInputNum = 0;//入力番号初期化 |
|
109 |
|
try
{ |
|
110 |
|
//初期化処理 |
|
111 |
|
final
int IMPUT_MAX = 3;//最大入力値 |
|
112 |
|
//キー入力読込処理(int型) |
|
113 |
|
java.util.Scanner
sc = new java.util.Scanner(System.in); |
|
114 |
|
int
inputInt = sc.nextInt(); |
|
115 |
|
//入力値チェックと入力番号への代入 |
|
116 |
|
if
(inputInt > 0 && inputInt <= IMPUT_MAX) { |
|
117 |
|
tmpInputNum
= inputInt; |
|
118 |
|
}
else { |
|
119 |
|
System.out.println("※ コマンドは"
+ IMPUT_MAX + "以下で入力して下さい ※ "); |
|
120 |
|
} |
|
121 |
|
}
catch (Exception e) { |
|
122 |
|
System.out.println("※ 数字以外は入力しないで下さい ※ "); |
|
123 |
|
} |
|
124 |
|
//キー入力処理 そのまま書き写してください ここまで |
|
125 |
|
///////////////////////////////////////////////////// |
|
126 |
|
|
|
127 |
|
//入力番号を返す |
|
128 |
|
return tmpInputNum; |
|
129 |
|
} |
|
130 |
|
|
|
131 |
|
/** |
|
132 |
|
*
問題処理モード処理 |
|
133 |
|
*/ |
|
134 |
|
private
static void execModeQuiz(){ |
|
135 |
|
|
貼り付け2 |
136 |
|
//見出し:現在の状況を表示する |
|
137 |
|
System.out.println("***************** ことくいず *****************"); |
|
138 |
|
System.out.println(" 現在、"+
(nowQuizNum + 1) +"問目です。"); |
|
139 |
|
System.out.println(" 現在の正解数は"+
correctTotal +"です。"); |
|
140 |
|
System.out.println("***********************************************"); |
|
141 |
|
System.out.println(""); |
|
142 |
|
System.out.println("< 問題です >"); |
|
143 |
|
|
|
144 |
|
//問題を表示する |
|
145 |
|
switch(nowQuizNum){ |
|
146 |
|
case
0: |
|
147 |
|
System.out.println("変数の型でint型の最大値はいくつ?"); |
|
148 |
|
System.out.println(""); |
|
149 |
|
System.out.println("-----------------------------------------------"); |
|
150 |
|
System.out.println("1:256 2:98776342 3:2147483647"); |
|
151 |
|
|
|
152 |
|
break; |
|
153 |
|
case
1: |
|
154 |
|
System.out.println("変数の型を変換するのに使う方法はどれ?"); |
|
155 |
|
System.out.println(""); |
|
156 |
|
System.out.println("-----------------------------------------------"); |
|
157 |
|
System.out.println("1:キャスト 2:スコープ 3:インクリメント"); |
|
158 |
|
|
|
159 |
|
break; |
|
160 |
|
case
2: |
|
161 |
|
System.out.println("変数aが「4以上でかつ10以下」か「40未満」"); |
|
162 |
|
System.out.println("正しい条件式はどれ?"); |
|
163 |
|
System.out.println(""); |
|
164 |
|
System.out.println("-----------------------------------------------"); |
|
165 |
|
System.out.println("1:(a
>= 4 || a < 10) && a < 40"); |
|
166 |
|
System.out.println("2:(a
>= 4 || a <= 10) || a < 40"); |
|
167 |
|
System.out.println("3:(a
>= 4 && a <= 10) || a < 40"); |
|
168 |
|
|
|
169 |
|
break; |
|
170 |
|
} |
|
171 |
|
System.out.print("答え>"); |
|
172 |
|
|
|
173 |
|
//解答チェックモードへ変更 |
|
174 |
|
execMode
= EXEC_MODE_CHECK; |
|
175 |
|
} |
|
176 |
|
|
|
177 |
|
/** |
|
178 |
|
* 解答処理モード処理 |
|
179 |
|
*/ |
|
180 |
|
private
static void execModeCheck(){ |
|
181 |
|
|
貼り付け3 |
182 |
|
//解答をチェックする |
|
183 |
|
switch(nowQuizNum){ |
|
184 |
|
case
0: |
|
185 |
|
//正解番号チェック |
|
186 |
|
correctTotal
= checkAnswerData(3,inputNum,correctTotal); |
|
187 |
|
|
|
188 |
|
break; |
|
189 |
|
case
1: |
|
190 |
|
//正解番号チェック |
|
191 |
|
correctTotal
= checkAnswerData(1,inputNum,correctTotal); |
|
192 |
|
|
|
193 |
|
break; |
|
194 |
|
case
2: |
|
195 |
|
//正解番号チェック |
|
196 |
|
correctTotal
= checkAnswerData(3,inputNum,correctTotal); |
|
197 |
|
|
|
198 |
|
break; |
|
199 |
|
} |
|
200 |
|
System.out.println(""); |
|
201 |
|
System.out.println("-----------------------------------------------"); |
|
202 |
|
System.out.print("<
1を入力してEnterキーを押してください >"); |
|
203 |
|
|
|
204 |
|
//問題を進める |
|
205 |
|
nowQuizNum
+= 1; |
|
206 |
|
|
|
207 |
|
//最大数以上なら |
|
208 |
|
if(nowQuizNum
>= QUIZ_MAX){ |
|
209 |
|
loopFlg
= false;//ゲームを終了する |
|
210 |
|
} |
|
211 |
|
|
|
212 |
|
//問題処理モードへ変更 |
|
213 |
|
execMode
= EXEC_MODE_QUIZ; |
|
214 |
|
} |
|
215 |
|
|
|
216 |
|
} |
|
・・・ |
|
|
|