阶段一 Java程序设计
Java课程设计
(阶段一文档)
二〇二〇年七月
目 录
1 选题 1
2 系统需求分析 2
2.1 系统可行性分析 2
2.2 系统需求分析 3
2.3 项目进度安排 4
3 系统设计 4
3.1 系统设计 5
4 系统实现 9
4.1 算数测试 10-12
4.2 猜数游戏 13
5 结论和心得 14
1 选题
|
选题一 |
算术运算测试 |
|
题目要求 |
|
|
实现十道 100 以内加减法数学题,能根据题目计算出答案,与输 入答案对比,判断做题是否正确,最后计算分数。 添加排行榜功能存放到文件或数据库中
|
|
|
使用Java知识 |
|
|
判断语句 分支 循环和循环的嵌套 随机数的产生 一维数组和二维数组 构造方法 方法调用 等......
|
|
|
选题二 |
猜数游戏 |
|
题目要求 |
|
|
计算机产生随机数,猜中即胜,猜不中,提示是大了还是小了, 继续猜,直至猜到,给出所用时间和评语。保留用户测试成绩,做出成绩排行榜。 排行榜存放到文件或数据库中。
|
|
|
使用Java知识 |
|
|
判断语句 分支 循环和循环的嵌套 随机数的产生 一维数组 构造方法 方法调用 文件的创建 文件的写入 等...... |
|
2 系统需求分析
2.1 系统可行性分析
- 技术可行性
本次程序运用所需软件为eclipse,采用的Java语言,所以技术上是可行的。
- 经济可行性
本次程序所使用的eclipse软件是免费的,我们不需要额外的开销,经济上是可行的
- 操作可行性
本次程序运用了简单的用户键盘录入操作,简单易懂,很好操作,因此在操作上是可行的
2.2 系统需求分析
算术运算测试
功能要求:实现十道 100 以内加减法数学题,能根据题目计算出答案,与输
入答案对比,判断做题是否正确,最后计算分数。
存放到文件或数据库中。
猜数游戏
功能要求:计算机产生随机数,猜中即胜,猜不中,提示是大了还是小了,
继续猜,直至猜到,给出所用时间和评语。保留用户测试成绩,做出成绩排行榜。
排行榜存放到文件
2.3 进度安排
阶段一进度安排如表3-1所示。
表3-1 进度安排表
|
阶段 |
持续时间 |
阶段描述 |
输出 |
|
构思阶段 |
1小时天 |
需求分析 |
需求说明,模块图 |
|
设计阶段 |
2小时天 |
代码设计 |
设计说明 |
|
实现阶段 |
1.5天 |
编写代码 |
项目工程源代码 |
|
1天 |
系统测试 |
进行黑盒测试(功能测试)-测试说明 |
|
|
运行阶段 |
3小时 |
部署、运行 |
运行报告、录制视频 |
3 系统设计
3.1 系统设计
算术测试:
构造方法:
import java.util.Random;
public class Calculate{
int result; //用来表示随机数运算后得到的结果
int[][]score=new int[10][10]; //定义一个数组来存放成绩
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);
System.out.println(randomNumber1+"+"+randomNumber2+"=??");
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;
}
System.out.println(randomNumber1+"-"+randomNumber2+"=??");
result=randomNumber1-randomNumber2;
return result;
}
public int panduan(int num1,int num2,int num3,int num4) { //构造了一个普通方法,对用户输入的答案与正确答案进行比较
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("请输入你的正确答案:");
anser=input.nextInt(); //录入用户的答案
A.panduan(anser,A.result,i,j); //调用方法进行判断
sum[i]+=A.score[i][j];
}
System.out.println("你的总分为:"+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) {
System.out.println("对不起,猜大了");
}
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界面去实现,但还有一些方面理解不了,所以就弄的简单了一点,希望自己能去把功能逐步完善,直到自己满意为止。
猜数游戏:还有小部分自己的功能没有达到效果,不过总体来说还算是成功的。
这次的课程设计,使得我更加的有动力去完成之后的项目,加油!!
浙公网安备 33010602011771号