伊莉討論區
標題:
關於switch case寫法
[打印本頁]
作者:
貓又島
時間:
2019-11-3 06:58 PM
標題:
關於switch case寫法
本帖最後由 貓又島 於 2019-11-3 06:59 PM 編輯
如題小弟是新手
對於剛入門 做出來的結果有少許錯誤
希望能請求大神們幫幫忙
非常感謝大家。
作者:
ahway9988
時間:
2019-11-8 07:53 AM
可以的話,請把程式碼放上來,針對您的錯誤解決問題會比較好
作者:
tryit244178
時間:
2019-11-22 02:01 PM
本帖最後由 tryit244178 於 2019-12-4 10:43 AM 編輯
參考看看吧
import java.util.Scanner;
public class Score {
public static void main(String[] args) {
int[] sr = {15, 20, 64, 90, 81, 52, 78, 12, 64, 75, 43, 78, 35, 47, 97};
Manager m = new Manager();
m.Start(sr);
}
}
class Manager{
public void Start(int[] sr) {
int select = 3;
ScoreSystem[] ss = Initilize(sr);
do {
select = ShowMenu();
if (IsSelect(select))
ss[select].Start();
} while (select!=3);
}
private ScoreSystem[] Initilize(int[] sr) {
ScoreSystem[] ss = {new ShowScore(sr),
new SeachScore(sr),
new ModifyScore(sr)};
return ss;
}
private int ShowMenu() {
System.out.println("\n------選單------\n"+
"1: 顯示成績\n"+
"2: 查詢成績\n"+
"3: 修改成績\n"+
"4: 離開作業");
System.out.print("選擇作業(1 到 4)==> ");
Scanner sc = new Scanner(System.in);
int result = sc.nextInt();
return --result;
}
private boolean IsSelect(int select) {
if (select>-1 && select<3)
return true;
return false;
}
}
abstract class ScoreSystem{
int[] sr;
abstract void Start();
int EnterSN(String s) {
System.out.print("選擇要" + s + "的學號(1 到 " + sr.length + ")==> ");
Scanner sc = new Scanner(System.in);
return sc.nextInt();
}
boolean IsSN(int sn) {
if (sn>0 && sn<=sr.length)
return true;
return false;
}
}
class ShowScore extends ScoreSystem{
public ShowScore(int[] source) {
sr = source;
}
@Override
public void Start() {
System.out.println("\n顯示成績:");
for (int i=0; i<sr.length; i++) {
System.out.println("學號 " + (i+1) + "\t,成績:" + sr[i]);
}
}
}
class SeachScore extends ScoreSystem {
public SeachScore(int[] source) {
sr = source;
}
@Override
public void Start() {
System.out.println("\n查詢成績");
int sn = EnterSN("查詢");
if (IsSN(sn))
System.out.println("\n學號 " + sn + "\t,成績:" + sr[--sn]);
}
}
class ModifyScore extends ScoreSystem {
public ModifyScore(int[] source) {
sr = source;
}
@Override
public void Start() {
System.out.println("\n修改成績");
int sn = EnterSN("修改");
if (IsSN(sn)) {
System.out.print("\n原成績:" + sr[--sn] + "\t");
Modify(sn);
}
}
private void Modify(int sn) {
System.out.print("輸入新成績==>");
Scanner sc = new Scanner(System.in);
sr[sn] = sc.nextInt();
}
}
複製代碼
作者:
貓又島
時間:
2019-11-26 08:57 PM
tryit244178 發表於 2019-11-22 02:01 PM
參考看看吧
謝謝 阿抱歉因為近期比較忙所以後來沒上,這問題後來有解決了
總之還是很感謝大大的參考~
作者:
z1090128
時間:
2019-11-30 12:38 AM
感謝分享,有增加我的CODING知識!!!!!!
歡迎光臨 伊莉討論區 (http://a04.eyny.com/)
Powered by Discuz!