Java實(shí)現(xiàn)排球比賽計(jì)分系統(tǒng)
初步計(jì)劃:
或許由于個(gè)人原因,排球計(jì)分系統(tǒng)在假期就完成了,一直未寫博客,就這樣一直在推就是不想寫,在加上過完年就工作了,可能剛實(shí)習(xí)工作比較緊所以一直等到現(xiàn)在。
寫這個(gè)系統(tǒng)之前我簡(jiǎn)單構(gòu)思了一下,因?yàn)殡x校前我去洛陽參加了一個(gè)多月的Java培訓(xùn),所以寫項(xiàng)目用的ide是Java環(huán)境。剛開始考慮用jsp做界面,架構(gòu)用mvc,但是后來一想工作量太大而且效果也不是很好。最終寫了純Java代碼,在虛擬機(jī)上展示。
需求分析:
排球競(jìng)賽為五局三勝制,每局比賽中得夠25分并且領(lǐng)先對(duì)方2分以上的一方將獲得一局勝利,先獲得三局勝利的一方將獲得比賽的勝利。若比賽中出現(xiàn)24:24的比分,則一方必須領(lǐng)先對(duì)方2分方可結(jié)束一局。若雙方前四局的比分為2:2,則將進(jìn)行第五局的比賽,第五局比賽中得夠15分并且領(lǐng)先對(duì)方2分以上的一方將獲得勝利。若比賽中出現(xiàn)14:14的比分,則一方必須領(lǐng)先對(duì)方2分方可結(jié)束比賽。
用戶典例:

代碼設(shè)計(jì):
package ss;
import java.util.Scanner;
/**
* 排球計(jì)分系統(tǒng)
*
* 使用排球計(jì)分系統(tǒng)可以進(jìn)行簡(jiǎn)單的排球計(jì)分操作以及查詢某一局的比分。
* 1、比賽總共5局,每一局5分,若是有一方領(lǐng)先對(duì)方3分,則視為這一方勝利。
* 5局結(jié)束后,統(tǒng)計(jì)兩方勝利的次數(shù),輸出最終勝利的一方。并退出程序
* 2、使用查詢功能可以查詢過往的比賽成績(jī),輸出比分和勝利的一方
*/
public class Game {
static Scanner sca = new Scanner(System.in);
//scoreArr數(shù)組,用來存放5局兩隊(duì)的單輪成績(jī)
static int[][] scoreArr = new int[5][2];
//result數(shù)組,用來存放每一輪的成績(jī),方便查詢
static String[] result = new String[5];
//用來統(tǒng)計(jì)兩隊(duì)勝利的次數(shù)
static int ni1 = 0;
static int ni2 = 0;
public static void main(String[] args) {
System.out.println("\n\n --------歡迎進(jìn)入ww排球計(jì)分系統(tǒng)--------\n\n\n");
System.out.println("使用說明:使用ww排球計(jì)分系統(tǒng)可以進(jìn)行簡(jiǎn)單的排球計(jì)分操作以及查詢某一局的比分。" + "\n1、比賽總共5局,每一局5分,若是有一方領(lǐng)先對(duì)方3分,則視為這一方勝利。"
+ "\n 5局結(jié)束后,統(tǒng)計(jì)兩方勝利的次數(shù),輸出最終勝利的一方。并退出程序\n" + "2、使用查詢功能可以查詢過往的比賽成績(jī),輸出比分和勝利的一方");
for (int i = 0; i < 5;) {
System.out.println(" 請(qǐng)選擇您的操作:");
System.out.println("1、開始計(jì)分 2、查詢 3、退出系統(tǒng)");
//用戶輸入的操作選擇
int choose = sca.nextInt();
//如果用戶輸入1
if (choose == 1) {
//輸出第幾局比賽
System.out.println("現(xiàn)在開始第" + (i + 1) + "局比賽");
//調(diào)用計(jì)分方法
bounds(i);
i++;
} else if (choose == 2) {//如果用戶輸出2
System.out.println("請(qǐng)輸入你要查詢的局?jǐn)?shù):");
int check = sca.nextInt();
//判斷用戶輸入的局?jǐn)?shù)是否開始
if (result[check - 1] == null) {
System.out.println("這一局比賽還沒有開始。");
} else {
//從數(shù)組中找出結(jié)果
System.out.println(result[check - 1]);
}
} else if (choose == 3) {//如果用戶輸入3,輸出當(dāng)前成績(jī),并退出程序
System.out.println("本場(chǎng)比賽結(jié)束,當(dāng)前比分為:中國(guó)隊(duì)VS美國(guó)隊(duì)~~~~~" + ni1 + ":" + ni2);
System.out.println("謝謝使用ww計(jì)分系統(tǒng),歡迎下次使用,再見");
System.exit(0);
} else {
System.out.println("您的輸入有誤,請(qǐng)重新輸入");
}
}
//5局比賽結(jié)束后,本場(chǎng)比賽結(jié)束,輸出結(jié)果,并退出程序
System.out.println("本場(chǎng)比賽結(jié)束,當(dāng)前比分為:中國(guó)隊(duì)VS美國(guó)隊(duì)~~~~~" + ni1 + ":" + ni2);
if (ni1 > ni2) {
System.out.println("中國(guó)隊(duì)取得最終勝利");
} else {
System.out.println("美國(guó)隊(duì)取得最終勝利");
}
System.out.println("謝謝使用ww計(jì)分系統(tǒng),歡迎下次使用,再見");
}
// 計(jì)分方法,統(tǒng)計(jì)成績(jī)
public static String[] bounds(int num) {
int i = 0;
//如果兩隊(duì)的成績(jī)都小于等于5
if (scoreArr[num][0] <= 5 && scoreArr[num][1] <= 5) {
for (;; i++) {
System.out.println("請(qǐng)輸出獲勝方的編號(hào),進(jìn)行加分");
System.out.println("1、中國(guó)隊(duì) VS 2、美國(guó)隊(duì)");
int team = sca.nextInt();
if (team == 1) {
//保留每一局的成績(jī)
scoreArr[num][0] += 1;
System.out.println("第" + (i + 1) + "輪比賽結(jié)束,當(dāng)前比分為" + scoreArr[num][0] + ":" + scoreArr[num][1]);
} else if (team == 2) {
scoreArr[num][1] += 1;
System.out.println("第" + (i + 1) + "輪比賽結(jié)束,當(dāng)前比分為" + scoreArr[num][0] + ":" + scoreArr[num][1]);
}
if ((scoreArr[num][0] - scoreArr[num][1]) == 3) {
result[num] = "第" + (num + 1) + "局,比分為" + scoreArr[num][0] + ":" + scoreArr[num][1] + " 中國(guó)隊(duì)勝利";
System.out.println(result[num]);
//每輪比賽結(jié)束后,使最終成績(jī)累加1,并返回
ni1 += 1;
return result;
} else if ((scoreArr[num][1] - scoreArr[num][0]) == 3) {
result[num] = "第" + (num + 1) + "局,比分為" + scoreArr[num][0] + ":" + scoreArr[num][1] + " 美國(guó)隊(duì)勝利";
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] + " 中國(guó)隊(duì)勝利";
System.out.println(result[num]);
ni1 += 1;
return result;
} else {
result[num] = "第" + (num + 1) + "局,比分為" + scoreArr[num][0] + ":" + scoreArr[num][1] + " 美國(guó)隊(duì)勝利";
System.out.println(result[num]);
ni2 += 1;
return result;
}
}
}
運(yùn)行界面:


PsP耗時(shí):

總結(jié):由于學(xué)習(xí)Java的時(shí)間不是很長(zhǎng)寫這個(gè)項(xiàng)目的時(shí)候遇到了一些問題,不過最后都解決了,因?yàn)閷W(xué)過C#,兩者的基礎(chǔ)也比較像似,用的時(shí)間也不是很多,由于時(shí)間比較緊張,公司正在做項(xiàng)目,或許不能像在學(xué)校有充足的時(shí)間,但是我一定認(rèn)真的對(duì)待的。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
spring boot 默認(rèn)異常處理的實(shí)現(xiàn)
這篇文章主要介紹了spring boot 默認(rèn)異常處理的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04
SpringBoot項(xiàng)目找不到接口報(bào)404錯(cuò)誤的解決辦法
寫了一個(gè)簡(jiǎn)單的springboot項(xiàng)目,在啟動(dòng)的時(shí)候idea未報(bào)錯(cuò),瀏覽器訪問接口時(shí)報(bào)404的錯(cuò)誤,所以本文給大家介紹了SpringBoot項(xiàng)目找不到接口報(bào)404錯(cuò)誤的解決辦法,文中有相關(guān)的圖文供大家參考,需要的朋友可以參考下2024-12-12
mybatis3使用@Select等注解實(shí)現(xiàn)增刪改查操作
這篇文章主要介紹了mybatis3使用@Select等注解實(shí)現(xiàn)增刪改查操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-11-11
sql于navicat中能運(yùn)行在mybatis中不能運(yùn)行的解決方案
這篇文章主要介紹了sql于navicat中能運(yùn)行在mybatis中不能運(yùn)行的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01
使用java web 在jsp文件及Class中連接MySQL和SQLserver 的驅(qū)動(dòng)方法
這篇文章主要介紹了使用java web 在jsp文件及Class中連接MySQL和SQLserver的驅(qū)動(dòng)方法的相關(guān)資料,本文介紹的非常詳細(xì),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-10-10

