java阶段一
1 选题
|
选题一 |
算术运算测试 |
|
题目要求 |
|
|
实现十道100以内加减法数学题,能根据题目计算出答案,与输入答案对比,判断做题是否正确,最后计算分数。
|
|
|
使用Java知识 |
|
|
java基本输入输出 运算符 循环 选择分支 文件写入
|
|
|
选题二 |
猜数游戏 |
|
题目要求 |
|
|
计算机产生随机数,猜中即胜,猜不中,提示是大了还是小了,继续猜,直至猜到,给出所用时间和评语。保留用户测试成绩,做出成绩排行榜。排行榜存放到文件或数据库中。
|
|
|
使用Java知识 |
|
|
循环 选择分支 变量 常用类 文件写入
|
|
2 系统需求分析
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 数据库设计(有则写-无则删除,如果是文件直接写文件)
文件
4 系统实现
猜数游戏
1.猜数界面实现
通过输入一个数与计算机随机数相比较,提示大了小了或猜中了
猜中了给出分数 所用时间和评语
2.排行榜界面实现
将所得分数从大到小排列
算术运算测试
算术运算界面实现
十道100以内加减法数学题,能根据题目计算出答案,与输入答案对比,判断做题是否正确,最后计算分数
2.排行榜界面实现
将所得分数从大到小排列
5 系统测试
算术运算测试
|
编号 |
测试功能 |
输入描述 |
预期结果 |
运行结果 |
|
HP01 |
算数运算功能 |
|
判断输入答案给出分数 |
正常,与预期结果一致 |
|
HP02 |
排行榜功能 |
1.将分数从大到小排列 |
分数从大到小排列 |
正常,与预期结果一致 |
算术运算测试主要是针对用户的操作,从测试结果中可以看出该模块的所有功能均能正常实现,且测试结果与预期结果一致。
猜数游戏
|
编号 |
测试功能 |
输入描述 |
预期结果 |
运行结果 |
|
HP01 |
猜数功能 |
|
通过输入一个数与计算机随机数相比较,提示大了小了或猜中了,给出分数 所用时间和评语 |
正常,与预期结果一致 |
|
HP02 |
排行榜功能 |
1.将分数从大到小排列 |
分数从大到小排列 |
正常,与预期结果一致 |
猜数游戏主要是针对用户的操作,从测试结果中可以看出该模块的所有功能均能正常实现,且测试结果与预期结果一致
6 结论和心得
通过这几天的实训,了解到了自己在日常学习中的薄弱部分,我对文件的写入读出加深了熟练度,有利于培养自己程序编程的思路,同时也了解到许多日常学习的网站及使用相关学习应用,收获颇丰。

浙公网安备 33010602011771号