阶段一文档
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 结论和心得
在实际写程序的过程中,出现了很多问题,这都是不经过自己实际操作找不出来的,经过这次实训课,我学到了很多,也发现了自己的很多不足,也明白了程序工作者的辛苦,以后要更加认真地去学习。

浙公网安备 33010602011771号