选题一 |
算术运算测试 |
题目要求 |
|
实现十道 100 以内加减法数学题,能根据题目计算出答案,与输
|
|
使用Java知识 |
|
Java用户键盘录入功能、基本运算符、生成随机数、if判断、for循环、io流、
|
|
选题二 |
猜数游戏 |
题目要求 |
|
计算机产生随机数,猜中即胜,猜不中,提示是大了还是小了,
|
|
使用Java知识 |
|
生成随机数、利用布尔类型变量树立旗帜、用户键盘录入功能、do-while循环
|
1.技术可行性
本次程序运用所需软件为eclipse,采用的java语言,所以技术上是可行的。
2.操作可行性
本次程序运用了简单的用户键盘录入操作,简单易懂,很好操作,因此在操作上是可行的。
一、算术运算测试
1、功能分析:
设计一个算术运算测试,有如下要求:
a、系统随机生成两个数和运算符,由用户进行计算。
b、系统对您输入的答案进行判断。
c、最后系统将统计最后正确的答案,得到分数。系统将输入的数字与计算机随机生成数的和进行比较,输入的数与随机数的和不相等,系统将提醒您,答案错误,继续答题一直答完10道题。
d、分数保存到文件中并进行排行。
2.模块图
二、猜数游戏
1.功能分析
a.随机生成数:通过调用random包,随机产生一个1-100之间的数
b用户输入答案:通过写scanner,从而使用户自行输入答案
c判断是否猜对:通过if语句,判断用户输入与随机数是否相等
d给出回复:如果相同,则提示猜对了,如果猜的偏大,则提示偏大,反之,则提示偏小
e记录次数:猜对后给出最终的猜数次数
阶段一进度安排如表3-1所示。
表3-1 进度安排表
阶段 |
持续时间 |
阶段描述 |
输出 |
构思阶段 |
2h |
需求分析 |
需求说明,功能模块图 |
设计阶段 |
2h |
系统设计 |
设计说明-可以画流程图;数据库设计 |
实现阶段 |
6h |
编写代码 |
项目工程源代码 |
2h |
系统测试 |
进行黑盒测试(功能测试)-测试说明 |
|
运行阶段 |
6h |
部署、运行 |
系统使用说明、运维报告、录制视频 |
根据系统的实际功能需求分析,对系统功能部分进行了设计。
一、算术测试运算
根据系统的实际功能需求分析,对系统功能部分进行了设计。
随机测试题目生成模块:先随机产生两个0-100之间的数,再随机生成运算符。判断运算符,然后进行对应的加减运算。
题目测试模块:输入得数,判断是不是与系统给出的正确答案相等,正确继续下一道题,错误,告诉正确答案继续下一道题。
成绩记录模块:0分开始,对一个加一分,错误不扣分。
输出模块:输出自己的分数。
随机生成数:通过调用random包,随机产生一个1-100之间的数
用户输入答案:通过写scanner,从而使用户自行输入答案
判断是否猜对:通过if语句,判断用户输入与随机数是否相等
给出回复:如果相同,则提示猜对了,如果猜的偏大,则提示偏大,反之,则提示偏小
记录次数:猜对后给出最终的猜数次数
1.算术运算测试
2.猜数游戏
1.算术运算测试
package js;
import java.io.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;
public class js1 {
static ArrayList<Integer> al=new ArrayList<Integer>();
static Object[] counts;
public static void main(String[] args) {
int count = 0;//计算正确次数
Random r = new Random();
Scanner input = new Scanner(System.in);
for(int i=1;i<=10;i++) {
//生成两个随机数
int num1=r.nextInt(100);
int num2=r.nextInt(100);
//加法
if(num1<num2) {
System.out.println(num1+"+"+num2+"=?");
int answer = input.nextInt();
if(answer==num1+num2) {//判断是否正确
count++;
System.out.println("回答正确!**********您共答对"+count+"次");
}else {
System.out.println("回答错误!**********您共答对"+count+"次");
}
}
//减法
if(num1>num2) {
System.out.println(num1+"-"+num2+"=?");
int answer = input.nextInt();
if(answer==num1-num2) {
count++;
System.out.println("回答正确!***********您共答对"+count+"次");
}else {
System.out.println("回答错误!***********您共答对"+count+"次");
}
}
}
System.out.println(" 您的分数是:"+count);
js1.Ranking( count);
try {
BufferedReader br=new BufferedReader(new FileReader("D:\\paihang.txt"));
String count1=null;
while((count1=br.readLine())!=null) {
al.add(Integer.valueOf(count1));
counts =al.toArray();
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Arrays.sort(counts);
for(int i=0;i<counts.length;i++) {
if((int)counts[i]==count) {
System.out.println("您的排名是"+(counts.length- i));
}
}
}
public static void Ranking(int count) {
FileWriter fw=null;
BufferedWriter bw=null;
// FileReader reader=null;
try { //try catch捕获异常
//输入
fw=new FileWriter("D:\\paihang.txt",true); //分数录入
bw=new BufferedWriter(fw);
String s=Integer.toString(count);
bw.write(s); //记录分数
bw.write("\n");
bw.flush();
System.out.println("操作完毕!---"+count);
bw.close();
}
catch (IOException e) {
e.printStackTrace();
}
}
}
2.猜数游戏
import java.util.Scanner;
public class cs {
public static void main(String[] args) {
boolean flag = false;
//生成随机数
Random r = new Random();
int num1=r.nextInt(100);//num1--中奖数
int count = 0;
do {
count++;
//用户输入数字
Scanner input = new Scanner(System.in);
int num2 =input.nextInt();//num2–猜数
if(num1==num2) {
System.out.println("恭喜你猜对了!共猜了"+count+"次");
System.out.println("保持状态,继续努力!");
flag = true;
}else if (num1<num2) {
System.out.println("太大了!");
flag = false;
}else if(num1>num2) {
System.out.println("太小了!");
flag = false;
}
}
while(flag=true);
}
}
通过本次课程设计,我更加深刻的理解了,算法是各种设计语言的基础,但是只有算法,我们还有很多解决不了的实际问题,而Java的核心是面向对象,面向对象可以解决生活中的很多例子,在日后的生活学习中,一定努力学习Java程序设计语言的强大功能,提升自己的编程水平。
原文:https://www.cnblogs.com/j1402204273/p/13198171.html