算数与猜数游戏
1 选题
|
选题一 |
算术运算测试 |
|
题目要求 |
|
|
实现10道随机的加减乘除数学题,能题目计算出答案,与用户输入自己运算的答案相对比,最后给予分数。并且保存用户分数
|
|
|
使用Java知识 |
|
|
运用了数组、Math类的Random()方法、Scanner、if else、for循环、
|
|
|
选题二 |
猜数游戏 |
|
题目要求 |
|
|
随机产生随机数,用户进行猜数,答案胜利,(进行判断是否进行下一次猜数),答错给予(猜大猜小),然后继续猜数,直到猜对为止,纪录用户猜数次数。
|
|
|
使用Java知识 |
|
|
运用了Math类的Random()方法、Scanner、if else、do while循环、WriteFile
|
|
2 系统需求分析
2.1 系统可行性分析
一、技术可行性
Java语言目前是世界上运用最为广泛的计算机语言,也是最为可行的语言。
二、操作可行性
本次设计实验采用的是Eclipse软件执行,此软件操作便利。满足我们大学生目前的所有实验要求,只要配置好电脑环境变量。2.2 系统需求分析
一、猜数字测试
1、功能分析
根据向老师调研
设计一个猜数字游戏程序,有如下要求:
a、 得到一个100以内的随机数。
b、 对用户输入的数字进行判断,是否与随机数相同。
c、 输入的数比随机数小,系统将提醒您,猜小了,请重新输入。
d、 输入的数比随机数大,系统将提醒您,猜大了,请重新输入。
e、 系统会记录下来猜数的次数,游戏结束后会显示用户猜了多少次。
f、 游戏结束时,可以选择关闭或者继续游戏。
2、模块图
猜数字模块:
图2-1 猜数模块图
1、功能分析:
设计一个算术运算测试,有如下要求:
a、 根据系统给予的随机题目,填写正确答案。
b、 系统对用户输入的答案进行判断,正确加一分,错误不加分。
c、10道题过后会告诉用户的总得分
d、保存用户数据
2、模块图
算术计算题:
图2-2算术计算题模块图
2.3 进度安排
阶段一进度安排如表3-1所示。
表3-1 进度安排表
|
阶段 |
持续时间 |
阶段描述 |
输出 |
|
构思阶段 |
1H |
需求分析 |
需求说明,功能模块图 |
|
设计阶段 |
1H |
系统设计 |
设计说明-可以画流程图;数据库设计 |
|
实现阶段 |
8H |
编写代码 |
项目工程源代码 |
|
1H |
系统测试 |
进行黑盒测试(功能测试)-测试说明 |
|
|
运行阶段 |
2H |
部署、运行 |
系统使用说明、运维报告、录制视频 |
3 系统设计
3 系统设计
一、猜数游戏
随机数生成模块:运行过后,系统生成一个随机数。
数字判断模块:输入数字后,正确则选择结束与否,错误则继续猜。
输出模块:输出用户猜数次数。
是否继续模块:输入大于0继续游戏,输入小于0则退出游戏
二、算术测试运算
根据系统的实际功能需求分析,对系统功能部分进行了设计。
随机测试题目生成模块:产生两个0-100之间的随机数,再生成随机运算符。
题目测试模块:输入得数,判断是不是与系统给出的正确答案相等,正确继续 下一道题,错误,告诉正确答案继续下一道题。
成绩记录模块:满分10分(从0开始),答对一个加一分,答错不加分. 输出模块:输出自己的分数。
4 系统实现
本小节主要介绍系统的实现。撰写实现说明,后面跟着界面截图。
(格式:小四、中文宋体、英文:Times NewRoman、行间距固定值:20磅;首行缩进2字符---注意以后正文同样要求)。
注意图表名都是比正文的字号小一号(本文档:五号)
参考:
4.1 代码实现
猜数代码:
package shiyan;
import java.io.PrintStream;
import java.util.Scanner;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintStream;
import java.util.Date;
//猜数游戏
//随机产生随机数,用户进行猜数,答对胜利,(进行判断是否进行下一次猜数),答错给予(猜大猜小),然后继续猜数,直到猜对为止,纪录用户猜数次数。
public class Guess {
public static void main(String[] args) {
guess();
}
public static void guess(){
System.out.println(new Date()+"\n开始猜数字!");
String s = new Date()+"\n开始猜数字!";
WriteFile(s);
int rand=(int)(Math.random()*101);
Scanner input=new Scanner(System.in);
int i =0;//计数器
while(true){
i++;
System.out.print("请输入一个你猜的整数(0-100):");
int guess=input.nextInt();
String ss ="请输入一个你猜的整数(0-100):"+guess;
WriteFile(ss);
if(guess<rand){
System.out.println("小了");
WriteFile("小了");
}else if(guess>rand){
System.out.println("大了");
WriteFile("大了");
}else{
System.out.println("您猜对了!共猜了"+i+"次,请继续努力!");
WriteFile("您猜对了!共猜了"+i+"次,请继续努力!");
break;
}
}
}
private static void WriteFile(String txt) {
// TODO Auto-generated method stub
try {
PrintStream ps = new PrintStream(new FileOutputStream(new File("d:\\猜数字.txt"), true));
ps.println(txt);// 在已有的基础上添加字符串
ps.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (Exception e) {
}
}
}
运算测试代码:
package shiyan;
import java.io.*;
import java.util.*;
//算术运算测试
//实现10道加减数学题,能题目计算出答案,与用户输入自己运算的答案相对比,最后给予分数。
//附加:保存得分
public class JiaJianTest {
public static void main(String[] args) {
final int num0 = 10;
char[] zf= {'+','-','*','/'};
System.out.println("欢迎进入算数运算测试程序,下列将进行"+num0+"道随机运算题,请输入正确的答案");
int[] num1 = new int[num0];
int[] num2 = new int[num0];
int[] num3 = new int[num0];
int[] sum = new int[num0];
int a=0;
Scanner input = new Scanner(System.in);
for (int i = 0; i < num0; i++) {
char z = zf[(int) (Math.random() * zf.length)];
num1[i] = (int) (Math.random() * 100);
num2[i] = (int) (Math.random() * 100);
System.out.println("第" + (i + 1) + "道题为:" + num1[i] + z + num2[i] + "=");
if (z == '+') {
sum[i] = num1[i] + num2[i];
} else if (z == '-') {
sum[i] = num1[i] - num2[i];
} else if (z == '*') {
sum[i] = num1[i] * num2[i];
} else if (z == '/') {
sum[i] = num1[i] / num2[i];
}
System.out.println("请输入您的答案");
num3[i] = input.nextInt();
if(num3[i]==sum[i]) {
System.out.println("此题回答正确");
a++;
}else {
System.out.println("此题回答错误,正确答案为:"+sum[i]);
}
}
JiaJianTest c = new JiaJianTest();
c.save(a);
System.out.println("答题结束,您的得分为:"+a+"分");
}
public void save(int a) {
String b = a+" ";
FileWriter fw = null;
try {
fw = new FileWriter("D:加减测试.txt",true);
fw.write(b);
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
4.2运行界面截图
算数测试:
图4.2.1算术运行截图
猜数测试:
图4.2.2 猜数测试运行截图
5 结论和心得
对项目完成情况总结,并写出个人的心得,要求积极正面、切合实际。
心得:实践出真知

浙公网安备 33010602011771号