java阶段一

1 选题

选题一

算术运算测试

题目要求

 

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

添加排行榜功能存放到文件或数据库中。

 

 

 

 

使用Java知识

java基本输入输出  运算符  循环  选择分支 文件写入

 

 

 

 

选题二

猜数游戏

题目要求

 

计算机产生随机数,猜中即胜,猜不中,提示是大了还是小了,继续猜,直至猜到,给出所用时间和评语。保留用户测试成绩,做出成绩排行榜。排行榜存放到文件或数据库中。

 

 

 

 

 

使用Java知识

 

循环  选择分支  变量  常用类  文件写入

 

 

 

 

 

 

 


系统需求分析

2.1 系统可行性分析

一、技术可行性
   Java语言目前是世界上运用最为广泛的计算机语言,也是最为可行的语言。
二、操作可行性。
   本次设计实验采用的是Eclipse软件执行,此软件操作便利。满足我们大学生目前的所有实验要求,只要配置好电脑环境变量。

2.2 系统需求分析

1.算术运算测试

 

 

 

 

2.猜数游戏

 

 

 

2.3 进度安排

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

3-1 进度安排表

阶段

持续时间

阶段描述

输出

构思阶段

2小时

需求分析

需求说明,功能模块图

设计阶段

3小时

系统设计

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

实现阶段

2天

编写代码

项目工程源代码

1小时

系统测试

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

运行阶段

3小时

部署、运行

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

 

 

 


3 系统设计

3.1 系统设计

根据系统的实际功能需求分析,对系统功能部分进行了设计。

算术运算测试

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

将分数记录在排行榜中,按分数从大到小排列。

package textDemo;

//算术运算测试

import java.io.BufferedWriter;

import java.io.FileReader;

import java.io.FileWriter;

import java.io.IOException;

import java.io.LineNumberReader;

import java.io.Writer;

import java.util.ArrayList;

import java.util.Collections;

import java.util.Iterator;

import java.util.Random;

import java.util.Scanner;

 

public class data {

 

@SuppressWarnings({ "resource", "rawtypes", "unchecked" })

public static void main(String[] args) {

Random random=new Random();

int ri;

for(ri=1;ri<=2;ri++) {

int m=0,n = 0;

int k = 0;

for(int i=0;i<10;i++)

{

int a=random.nextInt(100);

int b=random.nextInt(100);

int c=random.nextInt(2);

 

if(c==0) {

m=a+b;

}else {

m=a-b;

}

if(c==0) {

System.out.print(a+""+"+"+b+""+"=");

Scanner in=new Scanner(System.in);

n=in.nextInt();

 

}

else {

System.out.print(a+""+"-"+b+""+"=");

Scanner in=new Scanner(System.in);

n=in.nextInt();

 

}

if(n==m) {

k+=10;

}else {

k+=0;

}

  }System.out.println("分数为:"+k);

  Writer fw=null;

     BufferedWriter bw=null;

     try {

    fw=new FileWriter("C:\\Users\\legion\\Desktop\\guess.txt.txt",true);

        bw = new BufferedWriter(fw);

    bw.newLine();

bw.write(Integer.toString((int) (k)));

    } catch (IOException e) {

    // TODO 自动生成的 catch 块

    e.printStackTrace();

    }finally {

    try {

    bw.close();

    fw.close();

    }catch (IOException e) {

    // TODO 自动生成的 catch 块

    e.printStackTrace();

    }

    }

}

 try{

  LineNumberReader file=new LineNumberReader(new FileReader("C:\\Users\\legion\\Desktop\\guess.txt.txt"));//读取文件,其实可以不用绝对路径的

  String s;

  ArrayList list=new ArrayList();

  for(s=file.readLine();s!=null;s=file.readLine()){

  list.add(s);//文件内容增加到数组中

  }

  file.close();

  Collections.sort(list);

  Collections.reverse(list);//字符串的排序

 

  BufferedWriter bw=new BufferedWriter(new FileWriter("C:\\Users\\legion\\Desktop\\guess.txt"));//写文件

  bw.write("排行榜:\n");

  for(Iterator i=list.iterator();i.hasNext();)

  {

  //System.out.println(i.next());

  bw.write(i.next().toString());

  bw.newLine();

  }

  bw.close();

  }

  catch (IOException e){

  System.err.println("发生异常:"+e);

  e.printStackTrace();

  }

}

}

     猜数游戏

通过输入一个数与计算机随机数相比较,提示大了小了或猜中了,如果

猜中了给出分数 所用时间和评语。

将分数记录在排行榜中,按分数从大到小排列。

package demo;

//猜数游戏

import java.io.BufferedWriter;

import java.io.FileReader;

import java.io.FileWriter;

import java.io.IOException;

import java.io.LineNumberReader;

import java.io.Writer;

import java.util.ArrayList;

import java.util.Collections;

import java.util.InputMismatchException;

import java.util.Iterator;

import java.util.Scanner;

 

public class df {

        @SuppressWarnings({ "resource", "rawtypes", "unchecked" })

public static void main(String[] args) {

                // 产生一个随机数

         long startMili=System.currentTimeMillis();// 当前时间对应的毫秒数

                int number = (int) (Math.random() * 100) + 1;

 

                // 加入count

                int count = 0;

                int score=100;

                // 在这里加入最大值,和最小值

                int max = 100;

                int min = 1;

 

                while (true) {

                        // 键盘录入数据

                        Scanner sc = new Scanner(System.in);

                        System.out.println("请输入你要猜的数据:(" + min + "~" + max + ")");

                        try {

                                count++;

                                int guessNumber = sc.nextInt();

                                // 判断

                                if (guessNumber > number) {

                                        max = guessNumber;

                                        System.out.println("你猜大了");score-=5;

                                } else if (guessNumber < number) {

                                        min = guessNumber;

                                        System.out.println("你猜小了");score-=5;

                                } else {

                                        System.out.println("恭喜你,花了" + count + "次就猜中了");

                                        System.out.println("分数为:"+score);

                                        long endMili=System.currentTimeMillis();

                                 

                                 System.out.println("总耗时为:"+(endMili-startMili)+"毫秒");

                                  if(score>90&&score<100) {

                                          System.out.println("你也太厉害了");

                                         }

                                         else System.out.println("你也要low了吧");

                                        Writer fw=null;

                                    BufferedWriter bw=null;

                                    try {

                                   fw=new FileWriter("C:\\Users\\legion\\Desktop\\guess.txt.txt",true);

                                       bw = new BufferedWriter(fw);

                                   bw.newLine();

bw.write(Integer.toString((int) (score)));

                                   } catch (IOException e) {

                                   // TODO 自动生成的 catch 块

                                   e.printStackTrace();

                                   }finally {

                                   try {

                                   bw.close();

                                   fw.close();

                                   }catch (IOException e) {

                                   // TODO 自动生成的 catch 块

                                   e.printStackTrace();

                                   }

                                   }

                                        // 问是否继续

                                        System.out.println("请问还要继续吗?(yes)");

                                        sc = new Scanner(System.in);

                                        String str = sc.nextLine();

                                        if ("yes".equals(str)) {

                                                // 重写赋值随机数

                                                number = (int) (Math.random() * 100) + 1;

                                                count = 0;

                                                max = 100;

                                                min = 1;

                                               startMili=System.currentTimeMillis();

                                               endMili=System.currentTimeMillis();

                                        } else {

                                                break;

                                        }

                                }

                        } catch (InputMismatchException e) {

                                System.out.println("你输入的数据有误");

                        }

                }

                try{

         LineNumberReader file=new LineNumberReader(new FileReader("C:\\Users\\legion\\Desktop\\guess.txt.txt"));//读取文件,其实可以不用绝对路径的

         String s;

         ArrayList list=new ArrayList();

         for(s=file.readLine();s!=null;s=file.readLine()){

         list.add(s);//文件内容增加到数组中

         }

         file.close();

         Collections.sort(list);

          Collections.reverse(list);//字符串的排序

        

         BufferedWriter bw=new BufferedWriter(new FileWriter("C:\\Users\\legion\\Desktop\\guess.txt"));//写文件

         bw.write("排行榜:\n");

         for(Iterator i=list.iterator();i.hasNext();)

         {

        

         bw.write(i.next().toString());

         bw.newLine();

         }

         bw.close();

         }

         catch (IOException e){

         System.err.println("发生异常:"+e);

         e.printStackTrace();

         }

        }

}

3.2 数据库设计有则写-无则删除,如果是文件直接写文件)

文件

系统实

 

 

猜数游戏

 

 

 

 

 

1.猜数界面实现

通过输入一个数与计算机随机数相比较,提示大了小了或猜中了

猜中了给出分数 所用时间和评语

 

2.排行榜界面实现

将所得分数从大到小排列

 

 

 

算术运算测试

 

 

算术运算界面实现

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

 

2.排行榜界面实现

将所得分数从大到小排列

 

系统测试

算术运算测试

编号

测试功能

输入描述

预期结果

运行结果

HP01

算数运算功能

  1. 根据题目输入答案
  2. 输入下一题答案

判断输入答案给出分数

正常,与预期结果一致

HP02

排行榜功能

1.将分数从大到小排列

分数从大到小排列

正常,与预期结果一致

算术运算测试主要是针对用户的操作,从测试结果中可以看出该模块的所有功能均能正常实现,且测试结果预期结果一致。

 

猜数游戏

编号

测试功能

输入描述

预期结果

运行结果

HP01

猜数功能

  1. 输入一个数
  2. 根据提示不断输入数直到猜中

通过输入一个数与计算机随机数相比较,提示大了小了或猜中了,给出分数 所用时间和评语

正常,与预期结果一致

HP02

排行榜功能

1.将分数从大到小排列

分数从大到小排列

正常,与预期结果一致

猜数游戏主要是针对用户的操作,从测试结果中可以看出该模块的所有功能均能正常实现,且测试结果预期结果一致

结论和心得

通过这几天的实训,了解到了自己在日常学习中的薄弱部分,我对文件的写入读出加深了熟练度,有利于培养自己程序编程的思路,同时也了解到许多日常学习的网站及使用相关学习应用,收获颇丰。

 

posted @ 2020-06-28 12:49  松超  阅读(19)  评论(0)    收藏  举报