初步計劃:
或許由於個人原因,排球計分系統在假期就完成了,一直未寫博客,就這樣一直在推就是不想寫,在加上過完年就工作了,可能剛實習工作比較緊所以一直等到現在。
寫這個系統之前我簡單構思了一下,因為離校前我去洛陽參加了一個多月的Java培訓,所以寫項目用的ide是Java環境。剛開始考慮用jsp做界面,架構用mvc,但是後來一想工作量太大而且效果也不是很好。最終寫了純Java代碼,在虛擬機上展示。
需求分析:
排球競賽為五局三勝制,每局比賽中得夠25分並且領先對方2分以上的一方將獲得一局勝利,先獲得三局勝利的一方將獲得比賽的勝利。若比賽中出現24:24的比分,則一方必須領先對方2分方可結束一局。若雙方前四局的比分為2:2,則將進行第五局的比賽,第五局比賽中得夠15分並且領先對方2分以上的一方將獲得勝利。若比賽中出現14:14的比分,則一方必須領先對方2分方可結束比賽。
用戶典例:
代碼設計:
package ss; import java.util.Scanner; /** * 排球計分系統 * * 使用排球計分系統可以進行簡單的排球計分操作以及查詢某一局的比分。 * 1、比賽總共5局,每一局5分,若是有一方領先對方3分,則視為這一方勝利。 * 5局結束後,統計兩方勝利的次數,輸出最終勝利的一方。並退出程序 * 2、使用查詢功能可以查詢過往的比賽成績,輸出比分和勝利的一方 */ public class Game { static Scanner sca = new Scanner(System.in); //scoreArr數組,用來存放5局兩隊的單輪成績 static int[][] scoreArr = new int[5][2]; //result數組,用來存放每一輪的成績,方便查詢 static String[] result = new String[5]; //用來統計兩隊勝利的次數 static int ni1 = 0; static int ni2 = 0; public static void main(String[] args) { System.out.println("\n\n --------歡迎進入ww排球計分系統--------\n\n\n"); System.out.println("使用說明:使用ww排球計分系統可以進行簡單的排球計分操作以及查詢某一局的比分。" + "\n1、比賽總共5局,每一局5分,若是有一方領先對方3分,則視為這一方勝利。" + "\n 5局結束後,統計兩方勝利的次數,輸出最終勝利的一方。並退出程序\n" + "2、使用查詢功能可以查詢過往的比賽成績,輸出比分和勝利的一方"); for (int i = 0; i < 5;) { System.out.println(" 請選擇您的操作:"); System.out.println("1、開始計分 2、查詢 3、退出系統"); //用戶輸入的操作選擇 int choose = sca.nextInt(); //如果用戶輸入1 if (choose == 1) { //輸出第幾局比賽 System.out.println("現在開始第" + (i + 1) + "局比賽"); //調用計分方法 bounds(i); i++; } else if (choose == 2) {//如果用戶輸出2 System.out.println("請輸入你要查詢的局數:"); int check = sca.nextInt(); //判斷用戶輸入的局數是否開始 if (result[check - 1] == null) { System.out.println("這一局比賽還沒有開始。"); } else { //從數組中找出結果 System.out.println(result[check - 1]); } } else if (choose == 3) {//如果用戶輸入3,輸出當前成績,並退出程序 System.out.println("本場比賽結束,當前比分為:中國隊VS美國隊~~~~~" + ni1 + ":" + ni2); System.out.println("謝謝使用ww計分系統,歡迎下次使用,再見"); System.exit(0); } else { System.out.println("您的輸入有誤,請重新輸入"); } } //5局比賽結束後,本場比賽結束,輸出結果,並退出程序 System.out.println("本場比賽結束,當前比分為:中國隊VS美國隊~~~~~" + ni1 + ":" + ni2); if (ni1 > ni2) { System.out.println("中國隊取得最終勝利"); } else { System.out.println("美國隊取得最終勝利"); } System.out.println("謝謝使用ww計分系統,歡迎下次使用,再見"); } // 計分方法,統計成績 public static String[] bounds(int num) { int i = 0; //如果兩隊的成績都小於等於5 if (scoreArr[num][0] <= 5 && scoreArr[num][1] <= 5) { for (;; i++) { System.out.println("請輸出獲勝方的編號,進行加分"); System.out.println("1、中國隊 VS 2、美國隊"); int team = sca.nextInt(); if (team == 1) { //保留每一局的成績 scoreArr[num][0] += 1; System.out.println("第" + (i + 1) + "輪比賽結束,當前比分為" + scoreArr[num][0] + ":" + scoreArr[num][1]); } else if (team == 2) { scoreArr[num][1] += 1; System.out.println("第" + (i + 1) + "輪比賽結束,當前比分為" + scoreArr[num][0] + ":" + scoreArr[num][1]); } if ((scoreArr[num][0] - scoreArr[num][1]) == 3) { result[num] = "第" + (num + 1) + "局,比分為" + scoreArr[num][0] + ":" + scoreArr[num][1] + " 中國隊勝利"; System.out.println(result[num]); //每輪比賽結束後,使最終成績累加1,並返回 ni1 += 1; return result; } else if ((scoreArr[num][1] - scoreArr[num][0]) == 3) { result[num] = "第" + (num + 1) + "局,比分為" + scoreArr[num][0] + ":" + scoreArr[num][1] + " 美國隊勝利"; System.out.println(result[num]); ni2 += 1; return result; } } } else if (scoreArr[num][0] > scoreArr[num][1]) { result[num] = "第" + (num + 1) + "局,比分為" + scoreArr[num][0] + ":" + scoreArr[num][1] + " 中國隊勝利"; System.out.println(result[num]); ni1 += 1; return result; } else { result[num] = "第" + (num + 1) + "局,比分為" + scoreArr[num][0] + ":" + scoreArr[num][1] + " 美國隊勝利"; System.out.println(result[num]); ni2 += 1; return result; } } }
運行界面:
PsP耗時:
總結:由於學習Java的時間不是很長寫這個項目的時候遇到了一些問題,不過最後都解決了,因為學過C#,兩者的基礎也比較像似,用的時間也不是很多,由於時間比較緊張,公司正在做項目,或許不能像在學校有充足的時間,但是我一定認真的對待的。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持。