目 录
1 选题.......................................................................................................................... 1
2 系统需求分析.......................................................................................................... 2
2.1 系统可行性分析........................................................................................... 2
2.2 系统需求分析............................................................................................... 2
2.3 项目进度安排............................................................................................... 2
3 系统设计.................................................................................................................. 4
4系统实现....................................................................................................... 4
4.1 程序代码....................................................................................................... 4
4.2 系统测试.................................................................................................................. 6
5结论和心得.............................................................................................................. 9
1 选题
选题一 |
算术运算测试 |
题目要求 |
|
实现十道 100 以内加减法数学题,能根据题目计算出答案,与输入答案对比,判断做题是否正确,最后计算分数。添加排行榜功能存放到文件或数据库中。 |
|
使用Java知识 |
|
用双层for循环,BufferedReader用法,switch case
|
|
选题二 |
猜数游戏 |
题目要求 |
|
计算机产生随机数,猜中即胜,猜不中,提示是大了还是小了,继续猜,直至猜到,给出所用时间和评语。保留用户测试成绩,做出成绩排行榜。排行榜存放到文件或数据库中。 |
|
使用Java知识 |
|
使用random()产生随机数,if语句,starttime和endtime,do-while语句, Scanner
|
2 系统需求分析
2.1 系统可行性分析
一、算数运算测试
1、技术可行性
本次程序运用的是Eclipse这个软件中的GUI插件技术,采用的Java语言,Java面向对象,GUI基础语言,所以技术上是可行的。
2、操作可行性
实现简单减法运算,操作简单便捷,因此操作上是可行的。
二、猜数游戏
1、技术可行性
本次程序运用的是Eclipse这个软件中的GUI插件技术,采用的Java语言,Java面向对象,GUI基础语言,所以技术上是可行的。
2、经济可行性
因为本次程序使用的Eclipse软件是免费的,在这个软件上就能满足我们的需求,我们不需要额外的开销,所以经济上也是可行的。
3、操作可行性
本次程序只需要用户有这个软件并配置好了环境变量并且安装WindowBuilder插件就可以使用,操作简单便捷,符合大部用户的使用习惯。因此在操作上是可行的
2.2 系统需求分析
一、算数运算测试需求分析
计算机随机产生两个数字,判断其进行加法运算还是减法运算,用户自己输入答案,然后系统判断答案是否与用户输入的答案一致,测试10次,给出评语和成绩,并将成绩保存到文件中。
二、猜数游戏需求分析
计算机产生随机数(1-100之间),猜中即胜,猜不中,提示是大了还是小了,继续猜,直至猜到;猜出后给出猜数次数、成绩及评语。说明:总分100分,每题10分,答错不加分
2.3 进度安排
阶段一进度安排如表3-1所示。
表3-1 进度安排表
阶段 |
持续时间 |
阶段描述 |
输出 |
构思阶段 |
10分钟 |
需求分析 |
需求说明,功能模块图 |
设计阶段 |
60分钟 |
系统设计 |
设计说明-可以画流程图;数据库设计 |
实现阶段 |
300分钟 |
编写代码 |
项目工程源代码 |
20分钟 |
系统测试 |
进行黑盒测试(功能测试)-测试说明 |
|
运行阶段 |
12分钟 |
部署、运行 |
系统使用说明、运维报告、录制视频 |
3 系统设计
3.1 系统设计
根据系统的实际功能需求分析,对系统功能部分进行了设计。
1、先进入测试,计算机会随机产生两个数字,判断其是加法运算还是减法运算,然后则开始计算加减法,用户根据算式计算得数,输出后计算机会给出正确答案,并将正确答案与用户给出的答案进行比较,若相同,则答案正确,否则答案错误,连续十题,最后给出用户成绩并保存。
2、计算机用Random产生随机数,让用户进行猜测,若猜不中,计算机就提示,是猜大了还是猜小了,然后用户继续猜,直至猜到为止。猜到后会根据用户猜数字的次数给出成绩和猜的时间。
4 系统实现
4.1程序代码
1、算数运算测试
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Test {
public static void main(String[] args) {
int count = 0;
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
for (int i = 0; i < 10; i++) {
int a = (int) (Math.random() * 100);
int b = (int) (Math.random() * 100);
int c = (int) (Math.random() * 2);
int r = 0;
switch (c) {
case 0:
if (a + b >= 100) {
a = 100 - b;
}
System.out.print(a + " + " + b + " = ");
r = a + b;
break;
case 1:
if (a < b) {
int t = a;
a = b;
b = t;
}
System.out.print(a + " - " + b + " = ");
r = a - b;
}
int input;
try {
input = Integer.valueOf(in.readLine());
} catch (Exception e1) {
System.out.println("答案错误\n");
continue;
}
if (input == r) {
count++;
System.out.println("答案正确\n");
} else {
System.out.println("答案错误\n");
}
}
if (null != in) {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
System.out.println("答对数量:" + count + "\n得分: " + count * 10);
}
}
2、猜数游戏
import java.util.Scanner;
public class Game {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int number = (int) (Math.random() * 100); // 产生随机数
int guess;// 用户猜的数字
int count = 0;// 猜测次数
System.out.println("猜数游戏,猜一猜是多少?");
long starttime=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 endtime=System.currentTimeMillis();
System.out.println("这个数字是"+number);
System.out.println("您猜的次数是"+count);
System.out.println("您猜的时间是"+((endtime-starttime)/100/60)+"秒"); // 根据猜测次数给出评价
if (count == 1) {
System.out.println("你太聪明了!");
}else if (count >= 2 && count <= 5) {
System.out.println("不错,再接再厉!");
} else {
System.out.println("要努力啊!");
}
}
}
4.2系统测试
选题一:算术运算测试
1、产生随机术加减
2、输入答案比较判断
3、结果
选题二:猜数游戏
1、产生随机数,开始猜数
2、输入数字判断
3、成绩和评语
5结论和心得
通过此次课程设计,使我更加扎实的掌握了有关java方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。过而能改,善莫大焉。在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获取。
在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事,才能在今后的道路上劈荆斩棘,而不是知难而退。
最后,感谢老师以及同学们的悉心的教导和热心的帮助,没有他们我自己也不可能完成此次在项目中的任务,也让我明白了团队的重要性。