初步计划:
或许由于个人原因,排球计分系统在假期就完成了,一直未写博客,就这样一直在推就是不想写,在加上过完年就工作了,可能刚实习工作比较紧所以一直等到现在。
写这个系统之前我简单构思了一下,因为离校前我去洛阳参加了一个多月的Java培训,所以写项目用的ide是Java环境。刚开始考虑用jsp做界面,架构用mvc,但是后来一想工作量太大而且效果也不是很好。最终写了纯Java代码,在虚拟机上展示。
需求分析:
排球竞赛为五局三胜制,每局比赛中得够25分并且领先对方2分以上的一方将获得一局胜利,先获得三局胜利的一方将获得比赛的胜利。若比赛中出现24:24的比分,则一方必须领先对方2分方可结束一局。若双方前四局的比分为2:2,则将进行第五局的比赛,第五局比赛中得够15分并且领先对方2分以上的一方将获得胜利。若比赛中出现14:14的比分,则一方必须领先对方2分方可结束比赛。
用户典例:
姓名:张三 | |
性别: 男 | |
年龄:18 | |
职业:专业黑客 | |
收入:100000 | |
教育程度:硕士毕业 | |
所学专业:Java c++ C# | |
动机目的:喜欢瘫痪对方软件 | |
用户喜好:看黑客书,编程 | |
用户比例:少数 | |
典型场景:曾黑过大型网站 | |
典型描述:展示个人实力 |
代码设计:
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(" --------欢迎进入ww排球计分系统-------- "); System.out.println("使用说明:使用ww排球计分系统可以进行简单的排球计分操作以及查询某一局的比分。" + " 1、比赛总共5局,每一局5分,若是有一方领先对方3分,则视为这一方胜利。" + " 5局结束后,统计两方胜利的次数,输出最终胜利的一方。并退出程序 " + "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#,两者的基础也比较像似,用的时间也不是很多,由于时间比较紧张,公司正在做项目,或许不能像在学校有充足的时间,但是我一定认真的对待的。