阶段一文档

1 选题

选题一

十道100以内加减法数学题

题目要求

 实现十道100以内加减法数学题,能根据题目计算出答案,与输入答案对比,判断做题是否正确,最后计算分数。

 

 

 

 

 

使用Java知识

 Java基本输入输入出、运算符、循环、选择分支、文件的写入等

 

 

 

 

选题二

 猜数游戏

题目要求

 计算机产生随机数,猜中即胜,猜不中,提示是大了还是小了,继续猜,直至猜到,给出所用时间和评语。

 

 

 

 

 

 

使用Java知识

 循环、分支、变量、常用类、WriteFile等

 

 

 

 

2 系统需求分析

2.1 系统可行性分析

一、技术可行性

   Java语言目前是世界上运用最为广泛的计算机语言,也是最为可行的语言。

二、操作可行性。

   本次设计实验采用的是Eclipse软件执行,此软件操作便利。满足我们大学生目前的所有实验要求,只要配置好电脑环境变量。

2.2 系统需求分析

·功能分析

设计一个猜数字游戏程序,有如下要求:

a、得到100以内的加减法运算

b、 对用户输入的数字进行判断,是否与随机数相同。

c、 输入的数比随机数小,系统将提醒您,猜小了,请重新输入。

d、 输入的数比随机数大,系统将提醒您,猜大了,请重新输入。

e、 系统会记录下来猜数的次数,游戏结束后会显示用户猜了多少次。

f、  保存用户数据

h、 游戏结束时,可以选择关闭或者继续游戏。

 

 

·功能分析:

设计一个算术运算测试,有如下要求:

a、 根据系统给予的随机题目,填写正确答案。

b、 系统对用户输入的答案进行判断,正确加一分,错误不加分。

c、10道题过后会告诉用户的总得分

d、保存用户数据

e、 游戏结束时,可以选择关闭或者继续游戏。

 

图3-1 管理用户信息功能模块图

2.3 进度安排

阶段一进度安排如表3-1所示。

表3-1 进度安排表

阶段

持续时间

阶段描述

输出

构思阶段

 2h

需求分析

需求说明,功能模块图

设计阶段

 1h

系统设计

设计说明-可以画流程图;数据库设计

实现阶段

7h

编写代码

项目工程源代码

1h

系统测试

进行黑盒测试(功能测试)-测试说明

运行阶段

2h

部署、运行

系统使用说明、运维报告、录制视频

 

 

3 系统设计

一 、外层先用for 循环,

控制答题人数,

内层用While控制题目,

随机生成两个数,一个一个生成,

让用户答题,答完后输入答题者姓名,

然后将答题者姓名和成绩一同输入到文件中保存,

再去问用户是否继续。
二 、用for 循环控制猜数字人数,

随机生成1-10之间的一个整数,

用if-else条件判断猜数字的结果,

然后让用户猜数,根据猜的次数,给出评价,

猜完后输入答题者姓名,

然后将答题者姓名和猜数成绩一同输入到文件中保存,

再去问用户是否继续。

 

4 系统实现

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

1、

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
import java.util.Random;
import java.util.Scanner;
//实现十道100以内加减法数学题,能根据题目计算出答案,与输入答案对比,判断做题是否正确,最后计算分数。

public class Shiyan1{
    public static void main(String [] args) throws IOException {
        
        for(int n=1;n>0;){
        //f是计算机算出的得数    k为正确的题数   i为题目的的数量
        int f=0,k=0,i=0;
        while(i<=9)    {
        //产生随机数a、b     c是随机出的符号
            Random r=new Random();
            int a=r.nextInt(100);
            int b=r.nextInt(100);
            int c=r.nextInt(2);
            //1为加
            if(c==1) {
                f=a+b;
                System.out.printf(a+"+"+b+"=?");
            }
            //0为减
            if(c==0)
                
            {
                f=a-b;
                
                System.out.printf(a+"-"+b+"=?");
                
            }    
        //输入自己算出的答案        
        System.out.printf("请输入你的答案:");
        Scanner input = new Scanner(System.in);
        int t=input.nextInt();
        //比较计算机算出的答案和给出的答案
        if(t==f) {
            k++;
        }
                
        i++;
    }System.out.print("您一共答对了"+k+"道题!");
    //输入做题人的姓名
    System.out.printf("请输入你的名字:");
    Scanner input = new Scanner(System.in);
    String name=input.next();
    //文件的写入
    Writer fw =null;
    BufferedWriter bw=null;
    fw=new FileWriter("C:\\Users\\LEGION\\Desktop\\xe.txt",true);
    bw=new BufferedWriter(fw);
    bw.write(name+"您一共答对了"+k+"道题!\r\n");//写入
    bw.flush();//清空缓存
    bw.close();//关闭
    fw.close();//关闭
    System.out .println("成绩已保存");
    
    System.out.print("是否继续:(继续输入‘1’退出输入‘0’)");
    Scanner ip = new Scanner(System.in);
    int L=ip.nextInt();
    if(L==0) {
        //n=0会走出循环
        n=0;
        System.out.print("程序已退出!");
    }else
        System.out.println("继续答题:");;
        }
    }    
}

2、

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
import java.util.Random;
import java.util.Scanner;
//计算机产生随机数,猜中即胜,猜不中,提示是大了还是小了,继续猜,直至猜到,给出所用时间和评语。
public class Shiyan2{
    public static void main(String [] args) throws IOException {
        for(int j=1;j>0;) {
        int n=1;
        //随机一个数字v
        Random a=new Random();
        int v=a.nextInt(10);
        System.out.println("说出你猜的0~10的数字:");
        for(int i=0;i<1;){
        Scanner input=new Scanner(System.in);
        int b=input.nextInt();
        if(b==v) {
            System.out.println("恭喜你猜对了!");
            System.out.println("你猜了"+n+"次。");break;
        }
        else if(b<v) {
            System.out.println("你猜小了!请重新猜数:");n++;
        }else if(b>v) {
            System.out.println("你猜大了!请重新猜数:");n++;
        }
    }
    if(n<=3)
        System.out.println("很好!");
    else if(n<=6)
        System.out.println("可以!");
    else
        System.out.println("加油!");
    
    //输入做题人的姓名
        System.out.printf("请输入你的名字:");
        Scanner o = new Scanner(System.in);
        String name=o.next();
    //数据的保存
    Writer fw =null;
    BufferedWriter bw=null;
    fw=new FileWriter("C:\\Users\\LEGION\\Desktop\\xe.txt",true);
    bw=new BufferedWriter(fw);
    bw.write(name+"你一共猜了"+n+"次\n");//写入
    bw.flush();//清空缓存
    bw.close();//关闭
    fw.close();//关闭
    System.out .println("成绩已保存");
    
    System.out.printf("是否继续猜数:(是输入0,否输入1)");
    Scanner p = new Scanner(System.in);
    int t=p.nextInt();
    if(t==1) {
        j=0;
        System.out.print("游戏结束!");
    }else
        System.out.print("游戏继续!");
        }
        
    }
}

5 结论和心得

在实际写程序的过程中,出现了很多问题,这都是不经过自己实际操作找不出来的,经过这次实训课,我学到了很多,也发现了自己的很多不足,也明白了程序工作者的辛苦,以后要更加认真地去学习。

posted @ 2020-06-28 10:05  Terdok  阅读(55)  评论(0)    收藏  举报