算数与猜数游戏

1 选题

选题一

算术运算测试

题目要求

 

实现10随机的加减乘除数学题,能题目计算出答案,与用户输入自己运算的答案相对比,最后给予分数。并且保存用户分数

 

 

 

 

 

使用Java知识

 

运用了数组、Math类的Random()方法、Scannerif elsefor循环

 

 

 

选题二

猜数游戏

题目要求

 

随机产生随机数,用户进行猜数,答案胜利,(进行判断是否进行下一次猜数),答错给予(猜大猜小),然后继续猜数,直到猜对为止,纪录用户猜数次数。

 

 

 

 

 

 

使用Java知识

 

运用了Math类的Random()方法、Scannerif elsedo while循环、WriteFile

 

 

 

 

 

 

 

 


系统需求分析

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开始),答对一个加一分,答错不加分. 输出模块:输出自己的分数。

 

系统实现

本小节主要介绍系统的实现。撰写实现说明,后面跟着界面截图。

(格式:小四、中文宋体、英文: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 猜数测试运行截图

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

结论和心得

对项目完成情况总结,并写出个人的心得,要求积极正面、切合实际

 

心得:实践出真知

 

posted @ 2020-06-30 16:24  里在淦神魔  阅读(56)  评论(0)    收藏  举报