Java课程设计一
1 选题
|
选题一 |
算术运算测试 |
|
题目要求 |
|
|
实现十道100以内加减法数学题,能根据题目计算出答案,与输入答案对比,判断做题是否正确,最后计算分数。最后保存结果。 |
|
|
使用Java知识 |
|
|
Java基本输入输入出、运算符、循环、选择分支,IO输入输出 |
|
|
选题二 |
猜数游戏 |
|
题目要求 |
|
|
计算机产生随机数,猜中即胜,猜不中,提示是大了还是小了, |
|
|
使用Java知识 |
|
|
随机数,do-while循环结构,运算符,时间的输出方法,if结构,IO保存文件
|
|
2 系统需求分析
2.1 系统可行性分析
一、算术运算测试
(1)经济可行性:
这个算术运算测试,我们使用Eclipse软件,设备一台笔记本电脑,网络等。综上这个算术运算测试一共花费0元,所以经济上可行。
(2)技术可行性:
我们使用的是Java基础语言,Java面向对象。所以技术上可行。
二、猜数游戏
(1)经济可行性:
这个算术运算测试,我们使用Eclipse软件。设备一台笔记本电脑,网络等。综上这个算术运算测试一共花费0元,所以经济上可行。
(2)技术可行性:
我们使用的是java基础语言,Java面向对象。所以技术上可行。
2.2 系统需求分析
一、算术运算测试
(1)需求分析:
第一个让它用Random生成两个随机数,然后运算符用Random生成一个个位数,然后控制台显示这个计算题,如果答对了给它一个提示,并给他加10分,如果没有答对,也给他一个提示,最后把分数存到文件中。并把分数输出到控制台。
二、猜数游戏
(1)需求分析:
设计一个猜数字游戏程序,该游戏可以由程序随机产生整数,玩游戏者通过由用户输入数字来匹配上面所产生的数字。用户随机输入数字,当与计算机产生的随机数相符合时,计算机将提醒用户,游戏成功的信息,当有偏差时,将会提醒偏差,如偏大或者是偏小。并给出游戏所用时间,同时根据游戏者所猜数字次数,给出评语。
2.3 进度安排
阶段一进度安排如表2-3所示。
表2-3 进度安排表
|
阶段 |
持续时间 |
阶段描述 |
输出 |
|
构思阶段 |
2个小时 |
需求分析 |
需求说明,功能模块图 |
|
设计阶段 |
6个小时 |
系统设计 |
设计说明-可以画流程图,构思程序 |
|
实现阶段 |
2天 |
编写代码 |
项目工程源代码 |
|
1天 |
系统测试 |
进行测试(功能测试)-测试说明 |
|
|
运行阶段 |
2个小时 |
部署、运行 |
系统使用说明、运维报告、录制视频 |
3 系统设计
3.1 系统设计
一、算术运算测试
该计算运算测试程序系统具备调用Random 抽取100以内随机数并自行加减运算、输入个人运算结果、对比答案并进行加分运算,得出总分。具体功能的详细描述如下,
1、根据计算机随机得出的题目,在输出台中输入运算结果。正确时界面框中,输出“恭喜您做对了!加十分!”并自行加分。错误时界面框中,输出“很抱歉,您的答案有误!请继续努力!”。
2、计算机通过“1f”语句判断执行次数是否达到10次当小于10次时进入下次循环。否则跳入下一步。
3、算出最终分数并显示“您的得分是:”。
4、退出。并保存至文件
二、猜数游戏
计算机随机生成数字,让用户猜测
- 用户输入任意一个数字。
- 系统对用户输入的数字进行判断。
如果玩家输入的数字与计算机随机生成数相比较,输入的数字比随机生成数小、系统将提示您,数字太小请您重新输入。如果玩家输入的数字与计算机随机生成数相比较,如果输入的数字比随机生成数大。系统将提示您,数字太大请您重新输入。开始时, 系统自动记录您猜数字的时间,结束后显示游戏共花费多少时间。
3.2 文件
4 系统实现
一、算术运算测试
(1)功能实现:
package xiangmu;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Random;
import java.util.Scanner;
/*实现十道100以内加减法数学题,能根据题目计算出答案,与输入答案对比,
判断做题是否正确,最后计算分数。*/
public class Calculate{
public static void main(String[] args) {
Scanner input =new Scanner(System.in);
Random rd=new Random();
int e;
int score=0;
int yourGuess=0;
int g=0;//算数正确值
int d=0;//用户输入的值
boolean f;//对运算结果验证的布尔值
for(int i=0;i<10;i++) {
f=false;
while(f==false) {//控制算数范围,减法差大于0
int a=rd.nextInt(100);
int b=rd.nextInt(100);
int c=rd.nextInt(2);
if(c==0) { //c随机为0(+),1(-)
d=a+b;
if(d<100 && d>100) {
f=true;
g=d;
System.out.println(a+"+"+b+"=?");
}
else f=false;
}else if(c==1) {
d=a-b;
if(d>0) {
f=true;
g=d;
System.out.println(a+"-"+b+"=?");
}else f=false;
}
}
yourGuess=input.nextInt();
if(yourGuess==g) {
System.out.println("恭喜您做对了!加十分!");
score+=10;}
else {
System.out.println("很抱歉,您的答案有误!请继续努力!");
}
}
System.out.println("是否继续?按0退出");
e=input.nextInt();
if(e==0) {
System.out.println("游戏结束了!");
}
System.out.println("您的分数是:"+score);
FileOutputStream fos=null;
try {
fos=new FileOutputStream("d:\\pp\\test.txt",true);
String str="您的分数是:"+score;
byte[] words=str.getBytes();//将字符串打散分为数组
try {
fos.write(words,0,words.length);
} catch (IOException e1) {
e1.printStackTrace();
}
System.out.println("文件已被更新!");
} catch (IOException e1) {
e1.printStackTrace();
}try {
fos.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
二、猜数游戏
(1)功能实现:
package xiangmu;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Random;
import java.util.Scanner;
public class Guess{
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
int guess;//用户猜的数字
int number=0;
int count=0;//记录玩家猜测的次数
Random random=new Random();
number =random.nextInt(100);
System.out.println("我心里有一百个0到99之间的整数,你猜是什么?");
long strattime = System.currentTimeMillis();
//用户猜测随机数
do {
guess=input.nextInt();
if(number<guess) {
System.out.println("大了点呦,再猜!");
count++;
} else if(number >guess) {
System.out.println("小了点,再猜!");
count++;
}else {
count++;
break;
}
}while(true);
long ending=System.currentTimeMillis();
System.out.println("这个数字是:"+number);
System.out.println("您猜的次数是:"+count);
System.out.println("您猜的时间是:"+((ending-strattime)/1000)+"秒");
//根据用户猜测次数给出评价
if(count==1) {
System.out.println("你真是太聪明了!");
}else if(count>=2 &&count<=5){
System.out.println("不错,再接再厉!");
}else {
System.out.println("要加油呦!");
}
FileOutputStream fos=null;
try {
fos=new FileOutputStream("d:\\pp\\text.txt",true);
String str="您猜的次数是:"+count;
String str1="您猜的时间是:"+((ending-strattime)/1000)+"秒";
byte[] words=str.getBytes();//将字符串打散成数组
byte[] words1=str1.getBytes();
try {
fos.write(words1,0,words.length);
fos.write(words,0,words.length);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("文件已被更新!");
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
fos.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
5 系统测试
一,算数运算测试
实现十道100以内加减法数学题,能根据题目计算出答案,与输入答案对比,判断做题是否正确,最后计算结果,保存到文件
运行结果界面如图5-1所示。
图5-1 运行结果界面
保存到d:/pp/test之前,如图5-1-1所示
图5-1-1 文件之前截图
保存到d:/pp/test之后,如图5-1-2所示
图5-1-2 保存文件之后
二、猜数游戏
计算机产生随机数,猜中即胜,猜不中,提示是大了还是小了,继续猜,直至猜到,给出评语。最后保留用户测试成绩。
运行结果界面如图5-2所示
图5-2 运行结果界面
保存到d:/pp/text之前,如图5-1-1所示
图5-2-1 文件之前截图
保存到d:/pp/test之后,如图5-1-2所示
图5-2-2 文件之后截图
6 结论和心得
在刚接触Java时,感觉和C语言语法和结构上差不多,但是比C语言要简单,没有复杂的指针,学起来相对容易许多,这次做的算数测试和猜数游戏,都让我感受到Java学习的乐趣,虽然过程是艰辛的,但是做出来的一瞬间还是感觉到很满足,
在一次次的改代码,出错中我也认识到成功并非那么容易,未来把项目做好,只能不断地改代码,不断地变换思路,虽然程序做的还不是很完美,许多问题都还没有解决,之后也一定要做好时间管理,在设计的过程中也要及时和同学老师沟通,在问老师需求时,要考虑到方方面面的问题。
在接下来的综合项目里,我会更加努力,希望做到让自己满意,让老师满意。给自己一份满意的答卷。
浙公网安备 33010602011771号