java算数运算测试及猜数游戏代码实现

1 选题

选题一

算术运算测试

题目要求

实现十道100以内加减法数学题,能根据题目计算出答案,与输入答案对比,判断做题是否正确,最后计算分数。每道题10分,答对得10分,答错不得分。最后计算成绩为多少分。

  1. 沟通表达能力;
  2. 资料搜集能力;
  3. 自主学习能力;
  4. 时间规划能力;
  5. 独立完成项目能力;
  6. 文档撰写能力;

面向对象编程思维和软件工程思想。

使用Java知识

Java基本输入输入出、运算符、循环、选择分支; JDBC,数据库,mysql。 

选题二

猜数游戏

题目要求

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

1.沟通表达能力;

2.资料搜集能力;

3.自主学习能力;

4.时间规划能力;

5.独立完成项目能力;

6.文档撰写能力;

面向对象编程思维和软件工程思想。

使用Java知识

循环、分支、变量、判断、常用类等; JDBC。


2 系统需求分析

2.1 系统可行性分析

一、算数运算测试

1.技术可行性

本次程序运用的是Eclipse这个软件,采用的JAVA语言,JAVA面向对象,所以技术上是可行的。

2.经济可行性

因为本次程序使用的Eclipse软件是免费的,在这个软件上就能满足我们的需求,不需要额外的开销所以经济上也是可行的。

3.操作可行性

本次程序只需要用户有这个软件并配置好环境变量并且安装windowbuilder插件就可以使用,操作简单便捷,符合大部分用户的使用习惯。因此在操作上是可行的。

4.法律可行性

在法律许可范围内。

2.2 系统需求分析

1.通过与老师和同学交流,完成了简单的运算算数测试,实现了十道100以内加减法数学题,根据题目算出答案,与用户输入答案对比,判断做题是否正确,若正确,则分数加10分,若答错,则不加分,最后计算分数总和,每道题10分,共计100分。

2.功能模块图

图2-1 算数测试运算模块图

                                                

图2-2 猜数游戏模块图

2.3进度安排

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

表3-1 进度安排表

阶段

持续时间

阶段描述

输出

构思阶段

2小时

需求分析

需求说明,功能模块图

设计阶段

2小时

系统设计

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

实现阶段

3小时

编写代码

项目工程源代码

3小时

系统测试

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

运行阶段

4小时

部署、运行

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


3 系统设计

3.1 系统设计

一、算数测试运算

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

随机测试题目生成模块:先随机生成2个数,随机生成运算符号+或者-。

题目测试模块:输入得数,判断所输入得数与正确答案是否相等。若正确,则输出正确进行下一道题目,若错误,则输出正确答案并进行下一道题目。

成绩记录模块:每道题10分,一共十道题,总共100分。

二、猜数游戏

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

随机数输入模块:程序运行后,会自动获取一个随机数,也就是说系统会随机生成一个数,这个数就是我们要猜的数。

次数记录模块:每猜一次就会记录一次,记录总次数。

大小判断模块:每次猜测的数字,若大于随机数,则会提示您的结果大于随机数,若小于数,则会提示您的结果小于随机数。否则退出判断,输出猜对了

4 系统实现

4.1 代码实现

算数运算测试

功能的基本要求:实现十道100以内加减法数学题,能根据题目计算出答案,与输入答案对比,判断做题是否正确,最后计算分数。每道题1分,答对得1分,答错不得分。最后计算成绩为多少分。

package com.su;

import java.util.*;

import java.io.File;

import java.io.FileWriter;

import java.io.BufferedWriter;

import java.io.IOException;

import com.mysql.jdbc.Connection;

import java.sql.DriverManager;

import com.mysql.jdbc.Statement;

import java.sql.ResultSet;

import java.sql.SQLException;

public class SuanShu {

private static java.sql.Statement statement;

public static void main(String[]args){

 Scanner input=new Scanner(System.in);

 //计算分数

 int count=0;

 int num=0;

 String name = null;

 //生成随机数a b

 System.out.println("请输入有多少人进行测试");

 int  peoplenumber=input.nextInt();

 for(int i=0;i<peoplenumber;i++)//测试人数

 {

  count=0;//循环一次后将答对次数清0

  System.out.println("你是第"+(i+1)+"位进行算数测试的人");

  System.out.println("输入姓名:");

 name=input.next();

  for(int j=0;j<1;j++)//循环输出10道题

  {

   int m=(int)(Math.random()*100);

   int n=(int)(Math.random()*100);//随机生成两个随机数

   if(m<=n)

   {

    System.out.println("第"+(j+1)+"道题为:"+m+"+"+n);//如果a>b就相加

    num=m+n;

   }else{

    System.out.println("第"+(j+1)+"道题为:"+m+"-"+n);//如果a<b就想减

    num=m-n;

   }

   System.out.println("请输入答案:");

   int DaAn=input.nextInt();

   if(DaAn==num)//令正确答案和用户输入答案相比较

   {

    System.out.println("回答正确!");

    count++;

   }else{

    System.out.println("回答错误,正确答案是"+num);

   }

  }

  System.out.println("您得得分为:"+count);

 }

 input.close();

/*-----------------------------------------------------------------------------------*/

 Connection con;

String driver="com.mysql.jdbc.Driver";

String url="jdbc:mysql://localhost:3306/mysql";

String user="root";

String password="root";

try{

Class.forName(driver);

con =  (Connection) DriverManager.getConnection(url, user, password);

if(!con.isClosed())

System.out.println("Sucess");

//增加数据

String sql1 = "insert into suanshu values("+count+",'"+name+"')";

//statement = null;

statement.executeUpdate(sql1);

//查询数据

String sql = "select * from suanshu";

ResultSet rs=statement.executeQuery(sql);

System.out.println("------------");

System.out.println("姓名"+"\t"+"成绩");

System.out.println("------------");

String name1 = null;

while(rs.next()){

name1=rs.getString("name");

//int  score=rs.getInt("score");

//System.out.println(name1 + "\t"+score);

System.out.println(name1);

}

rs.close();

con.close();

}catch(ClassNotFoundException e){

System.out.println("Sorry");

e.printStackTrace();

}catch(SQLException e){

e.printStackTrace();

}catch(Exception e){

e.printStackTrace();

}finally{

System.out.println("数据库成功获取");

}

   }

}

二、猜数游戏

功能的基本要求:计算机产生随机数,猜中即胜,猜不中,提示是大了还是小了,继续猜,直至猜到,给出所用时间和评语。保留用户测试成绩,做出成绩排行榜。

 package com.su;

import java.io.FileWriter;

import java.util.Arrays;

import java.util.Scanner;

public class CaiShu {

 public static void main(String[] args){

   

  Scanner input=new Scanner(System.in);

   

  int count=0;//猜测次数

  int guess;//用户猜测的数

     long startTime=0,endTime=0;//开始时间和结束时间

    System.out.println("******欢迎来到猜数游戏******");

    System.out.println("请输入测试人数:");

    int peoplenumble=input.nextInt();

    for(int i=0;i<peoplenumble;i++)//测试人数

    {

     count=0;//当第2个人开始测试时,前面的猜测次数清0

     int number=(int)(Math.random()*100);//生成100之内的随机

     System.out.println("您是第"+(i+1)+"位进行猜数游戏的人");

     System.out.println("请输入姓名:");

     String name =input.next();

     startTime=System.currentTimeMillis();//开始时间

     System.out.println("请猜一个1到100之间的整数");

     guess=input.nextInt();//进行猜测

     count++;//每循环一次猜测次数+1

    

    do{

     if(guess>number)

     {

      System.out.println("猜错了,您的结果偏大,可以再继续猜");//判断大小

      guess=input.nextInt();

      count++;

     }

     if(guess<number)

     {

      System.out.println("猜错了,您的结果偏小,可以再继续猜");//判断大小

      guess=input.nextInt();

      count++;

     }

    }while(guess!=number);

     endTime=System.currentTimeMillis();//结束时间

     System.out.println("恭喜您猜对了!");

     System.out.println("您一共猜了"+count+"次,耗时"+(endTime-startTime)/1000+"秒");

     if(count<=1)

      System.out.println("真棒一次就猜对了!");//当一次就猜对时输出"真棒一次就猜对了!"

     if(1<count&&count<=5)

      System.out.println("不错哦!");//当2到5次就猜对时输出"不错哦!"

     if(5<count)

      System.out.println("还需努力哦!");//当5次以上猜对时输出"还需努力哦!"

    }

    }

  }

4.2 运行界面实现

算数运算测试

     

二、猜数游戏

5结论和心得

结论:算术运算测试、猜数游戏让我对java程序有了更深的了解,同时也很圆满的完成了该项目

心得:回顾知识点的同时也增加了新知识数据库以及mysql和GUI的学习阶段1较短时间使我对数据库这方面感到自身水平的不总,但是我也在不断地学习和改进,与同学和老师的交流使我受益匪浅,我会慢慢提升自己,,即使学习路上会遇到很多困难和挫折,但也不会阻止我学习的道路。

  • 0
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值