Java课程设计

(阶段一文档)









二〇二〇


目    录

1 选题

2 系统需求分析

2.1 系统可行性分析 2

2.2 系统需求分析 3

2.3 项目进度安排

3 系统设计

3.1 系统设计

4 系统实现

4.1 算数测试

4.2 猜数游戏

5 结论和心得


1 选题

选题一

算术运算测试

题目要求

 

实现十道 100 以内加减法数学题,能根据题目计算出答案,与输

入答案对比,判断做题是否正确,最后计算分数。

添加排行榜功能存放到文件或数据库中

 

使用Java知识

判断语句

分支

循环和循环的嵌套

随机数的产生

一维数组和二维数组

构造方法 方法调用

等......

 

选题二

猜数游戏

题目要求

 

计算机产生随机数,猜中即胜,猜不中,提示是大了还是小了,

继续猜,直至猜到,给出所用时间和评语。保留用户测试成绩,做出成绩排行榜。

排行榜存放到文件或数据库中。

 

使用Java知识

 

判断语句

分支

循环和循环的嵌套

随机数的产生

一维数组

构造方法 方法调用

文件的创建

文件的写入

等......

2 系统需求分析

2.1 系统可行性分析

  1. 技术可行性

本次程序运用所需软件为eclipse,采用的Java语言,所以技术上是可行的。

  1. 经济可行性

本次程序所使用的eclipse软件是免费的,我们不需要额外的开销,经济上是可行的

  1. 操作可行性

本次程序运用了简单的用户键盘录入操作,简单易懂,很好操作,因此在操作上是可行的

2.2 系统需求分析

 

算术运算测试

功能要求:实现十道

入答案对比,判断做题是否正确,最后计算分数。

存放到文件或数据库中。

 

猜数游戏

功能要求:计算机产生随机数,猜中即胜,猜不中,提示是大了还是小了,

继续猜,直至猜到,给出所用时间和评语。保留用户测试成绩,做出成绩排行榜。

排行榜存放到文件

 

2.3 进度安排

阶段一进度安排如表3-1所示。

表3-1 进度安排表

阶段

持续时间

阶段描述

输出

构思阶段

1小时天

需求分析

需求说明,模块图

设计阶段

2小时天

代码设计

设计说明

实现阶段

1.5天

编写代码

项目工程源代码

1天

系统测试

进行黑盒测试(功能测试)-测试说明

运行阶段

3小时

部署、运行

运行报告、录制视频

3 系统设计

3.1 系统设计

算术测试:

构造方法:

import java.util.Random;
public class Calculate{
	int result;	//用来表示随机数运算后得到的结果
定义一个数组来存放成绩
	public int addition(){	//构造了一个普通方法,产生两个1--100之间的随机数,进行加法运算
		Random random1=new Random();	//产生第一个随机数random1
		int randomNumber1=random1.nextInt(100);
		Random random2=new Random();	//产生第二个随机数ransdom2
		int randomNumber2=random2.nextInt(100);
??");
		result=randomNumber1+randomNumber2;
		return result;
	}	
	public int subtraction(){	//构造了一个普通方法,产生两个1--100之间的随机数,进行减法法运算
		Random random1=new Random();	//产生第一个随机数random1
		int randomNumber1=random1.nextInt(100);
		Random random2=new Random();	//产生第一个随机数random2
		int randomNumber2=random2.nextInt(100);
		int temp;
		if(randomNumber1<randomNumber2) {	//减法运算,保证被减数大于减数
			temp=randomNumber1;
			randomNumber1=randomNumber2;
			randomNumber2=temp;
		}
??");
		result=randomNumber1-randomNumber2;
		return result;
	}

进行比较

if(num1==num2) {
			System.out.println("恭喜你,回答正确!!");
			score[num3][num4]+=10;	//回答正确,用户的分数+10分
			return score[num3][num4];
		}else {
			System.out.println("对不起,回答错误!! ");
			return score[num3][num4];
		}
 
	}	
}

主函数:

public class CalculateTest {
		public static void main(String[] args) {
}

加减法的运算:

for(i=0;i<renshu;i++) {	
System.out.println("	第"+(i+1)+"个同学开始测试!!");
	System.out.println("*****************************");
	Calculate A=new Calculate();
	for( j=0;j<3;j++) {	//进行10次运算
		if(j%2==0) {	//当j为单数时,进行减法运算,j为双数时,进行加法运算
			A.addition();	//调用加法的方法
		}
		else {
			A.subtraction();	//调用减法的方法
		}
		System.out.print("请输入你的正确答案:");
的答案
		A.panduan(anser,A.result,i,j);	//调用方法进行判断
		sum[i]+=A.score[i][j];
	}
你的总分为:"+sum[i]);		
}

文件写入:

try{
			      File file = new File("Calculate.txt");
			      if(!file.exists()){
			       file.createNewFile();
			      }
			     // FileWriter fileWritter = new FileWriter(file.getName(),true);
			      FileWriter fileWritter = new FileWriter(file);
			      for(int n=0;n<sum.length;n++) {
			    	  fileWritter.write(sum[n]+"\t");
			      }
			      fileWritter.close();
			      System.out.println("成功写入文件!!");
			     }catch(IOException e){
			      e.printStackTrace();
			     }
	}

猜数游戏:

Random a=new Random();
number=a.nextInt(100);	//产生0--100的随机数
 
double begin=0;	//定义begin来记录开始的时间
double end=0;	//定义end来记录结束的时间
begin = System.currentTimeMillis();	//记录产生随机数的时间
 
for( j=0;guessNumber!=number;j++) {	//用for循环来控制猜数,直到猜对为止
guessNumber=input.nextInt();	//用户录入猜的数,用guessNumber来记录
	amount++;	//猜一次,amount就+一次,记录猜的次数
	if(number==guessNumber) {	//将用户猜的数与随机数进行比较
		System.out.println("恭喜你,猜对了!!");
			end=System.currentTimeMillis();	//猜对了 记录结束时间
	}
	else if(guessNumber>number) {
对不起,猜大了");
	}
	else if(guessNumber<number) {
		System.out.println("对不起,猜小了");
	}
 
try{
		      File file = new File("GuessNumber.txt");	  //写入文件
		      if(!file.exists()){
		       file.createNewFile();
		      }
		      FileWriter fileWritter = new FileWriter(file);
		      for(int n=0;n<score.length;n++) {
		    	  fileWritter.write(score[n]+"\t");
		      }
		      fileWritter.close();
		      System.out.println("成功写入文件!!");
		     }catch(IOException e){
		      e.printStackTrace();
		     }


4 系统实现

算数测试:

 

 

 

猜数游戏:

 

 


 

5 结论和心得

通过这次的课程设计,受益颇多。从理论到实践,是一个慢慢开始的过程,拿到要求逐步的去理解,分析,再到最后的测试,实现,这是一个缓慢而枯燥的过程,但收获的喜悦确实不可估量的。

算数测试:很想去用GUI界面去实现,但还有一些方面理解不了,所以就弄的简单了一点,希望自己能去把功能逐步完善,直到自己满意为止。

猜数游戏:还有小部分自己的功能没有达到效果,不过总体来说还算是成功的。

这次的课程设计,使得我更加的有动力去完成之后的项目,加油!!