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、退出。并保存至文件

二、猜数游戏

计算机随机生成数字,让用户猜测

  1. 用户输入任意一个数字。
  2. 系统对用户输入的数字进行判断。

如果玩家输入的数字与计算机随机生成数相比较,输入的数字比随机生成数小、系统将提示您,数字太小请您重新输入。如果玩家输入的数字与计算机随机生成数相比较,如果输入的数字比随机生成数大。系统将提示您,数字太大请您重新输入。开始时, 系统自动记录您猜数字的时间,结束后显示游戏共花费多少时间。


3.2 文件

 

 

系统实现

一、算术运算测试

(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();

}

}

}

    

     

                

              

                  

                

 

 

 

 

 

 

 

 

系统测

一,算数运算测试

实现十道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  文件之后截图

 

结论和心得

 在刚接触Java时,感觉和C语言语法和结构上差不多,但是比C语言要简单,没有复杂的指针,学起来相对容易许多,这次做的算数测试和猜数游戏,都让我感受到Java学习的乐趣,虽然过程是艰辛的,但是做出来的一瞬间还是感觉到很满足,

在一次次的改代码,出错中我也认识到成功并非那么容易,未来把项目做好,只能不断地改代码,不断地变换思路,虽然程序做的还不是很完美,许多问题都还没有解决,之后也一定要做好时间管理,在设计的过程中也要及时和同学老师沟通,在问老师需求时,要考虑到方方面面的问题。

  在接下来的综合项目里,我会更加努力,希望做到让自己满意,让老师满意。给自己一份满意的答卷。

posted @ 2020-06-29 21:45  彭阳阳  阅读(45)  评论(0)    收藏  举报