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 系统可行性分析
- 技术可行性
本次程序运用所需软件为eclipse,采用的Java语言,所以技术上是可行的。
- 经济可行性
本次程序所使用的eclipse软件是免费的,我们不需要额外的开销,经济上是可行的
- 操作可行性
本次程序运用了简单的用户键盘录入操作,简单易懂,很好操作,因此在操作上是可行的
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界面去实现,但还有一些方面理解不了,所以就弄的简单了一点,希望自己能去把功能逐步完善,直到自己满意为止。
猜数游戏:还有小部分自己的功能没有达到效果,不过总体来说还算是成功的。
这次的课程设计,使得我更加的有动力去完成之后的项目,加油!!