18111111
目 录
1 选题.......................................................................................................................... 1
3 系统需求分析.......................................................................................................... 2
3.1 系统可行性分析........................................................................................... 2
3.2 系统需求分析............................................................................................... 2
3.3 项目进度安排............................................................................................... 2
4 系统设计.................................................................................................................. 4
5 系统实现.................................................................................................................. 6
5.1 管理员登录界面实现................................................................................... 6
5.2 管理用户信息界面实现............................................................................... 6
6 系统测试.................................................................................................................. 8
7 结论和心得.............................................................................................................. 9
1 选题
|
选题一 |
算数运算测试 |
|
题目要求 |
|
|
1.实现十道 100 以内加减法数学题,能根据题目计算出答案,与输 入答案对比,判断做题是否正确,最后计算分数。
2.添加排行榜功能存放到文件中
|
|
|
使用Java知识 |
|
|
1.if-else控制语句 2.switch-case语句 3.for()循环语句 4.Java I/O
|
|
|
选题二 |
猜数游戏 |
|
题目要求 |
|
|
|
|
使用Java知识 |
|
|
1.if-else语句 2.while语句 3.Random随机数 4.Java I/O 5.排序算法 |
|
2 系统需求分析
2.1 系统可行性分析
项目一:算数运算法则。生成100以内的随机数通过组合生成计算式,通过if条件语句来判断正误打分,把每次的分数存在文件中以数组的形式读取文件并排序再次存入文件中,此时通过打印文件内容,实现排行榜功能。
项目二:菜蔬游戏。产生100以内的随机数,使用户录入的数字与正确答案比较,猜中结束,猜不中提示大了还是小了,知道猜中。
2.2 系统需求分析
项目一:算数运算测试。实现十道100以内加减法算数题,与正确答案相对比,判断做题是否正确得分。在游戏后添加排行榜功能存入放到文件中。
项目二:猜数游戏。计算机产生随机数,猜中即胜,猜不中,提示大了还是小了,直到猜到。
图1-1 管理用户信息功能模块图
2.3 进度安排
阶段一进度安排如表3-1所示。
表3-1 算数运算测试进度安排表
|
阶段 |
持续时间 |
阶段描述 |
输出 |
|
构思阶段 |
0.5h |
需求分析 |
需求说明,功能模块图 |
|
设计阶段 |
1h |
系统设计 |
设计说明-可以画流程图;数据库设计 |
|
实现阶段 |
5h |
编写代码 |
项目工程源代码 |
|
0.5h |
系统测试 |
进行黑盒测试(功能测试)-测试说明 |
|
|
运行阶段 |
1h |
部署、运行 |
系统使用说明、运维报告、录制视频 |
3-1 猜数游戏进度安排表
|
阶段 |
持续时间 |
阶段描述 |
输出 |
|
构思阶段 |
0.5h |
需求分析 |
需求说明,功能模块图 |
|
设计阶段 |
1h |
系统设计 |
设计说明-可以画流程图;数据库设计 |
|
实现阶段 |
4h |
编写代码 |
项目工程源代码 |
|
2h |
系统测试 |
进行黑盒测试(功能测试)-测试说明 |
|
|
运行阶段 |
2h |
部署、运行 |
系统使用说明、运维报告、录制视频 |
3 系统设计
3.1 系统设计
根据系统的实际功能需求分析,对系统功能部分进行了设计。
项目一:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.*;
import javax.swing.*;
import javax.swing.plaf.SliderUI;
@SuppressWarnings("unused")
public class SuanShu {
JFrame jf =new JFrame();
JPanel jp =new JPanel();
JLabel jl =new JLabel();//显示题目
JLabel jl2 =new JLabel();//显示结果正确与否
JButton jb =new JButton("提交");
JButton jb2 =new JButton("next");
JTextField jtf =new JTextField();//输入答案
private int num1,num2,sum=0,score=0,temp,count=0;
public SuanShu() {
jf.setSize(300,300);
jf.add(jp);
jp.setLayout(null);
jp.add(jl);
jl.setBounds(18,18,100,10);//调整位置,大小
jp.add(jtf);
jtf.setBounds(120,10,40,20);
jp.add(jb);
jb.setBounds(10,50,60,40);
jp.add(jb2);
jb2.setBounds(80,50,60,40);
jp.add(jl2);
jl2.setBounds(60, 100, 200, 50);
jl2.setBounds(60,100,200,50);
jf.setVisible(true);
jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
public void produce() {
Random rand =new Random();
num1 =(int)(Math.random()*100);//产生100以内的随机整数
num2 =(int)(Math.random()*100);
sum =0;
temp =(int)(Math.random()*100)%2;//判断题目是加法还是减法
if(temp==0) {
jl.setText("第"+(count)+"题:"+num1+"+"+num2+"=");//加法题目抽到
count++;
sum =num1+num2;
}else {
count++;
jl.setText("第"+(count)+"题:"+num1+"-"+num2+"=");//抽到减法题目
sum =num1-num2;
}
jb.addActionListener(new ActionListener() { //事件监听器
public void actionPerformed(ActionEvent e) {
int s =Integer.parseInt(jtf.getText());
if(s==sum) {
jl2.setText("恭喜,回答正确!");
score+=10;
}else {
jl2.setText("抱歉,回答错误。"+"正确答案:"+sum);
}
}
}
);
jb2.addActionListener(new ActionListener() {
@SuppressWarnings("static-access")
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(count==10) {
JOptionPane j=new JOptionPane();
j.showMessageDialog(jf, "您的得分是:"+score);
jf.setVisible(false);
}
Random rand =new Random();
num1 =(int)(Math.random()*100);
num2 =(int)(Math.random()*100);
sum =0;
temp =(int)(Math.random()*10)%2;
if(temp==0) {
count++;
jl.setText("第"+(count)+"题:"+num1+"+"+num2+"=");
sum=num1+num2;
}else {
count++;
jl.setText("第"+(count)+"题:"+num1+"-"+num2+"=");
sum=num1-num2;
}
}
});
}
public static void main(String arg[]) {
SuanShu a=new SuanShu();
a.produce();
}
}
项目二:
import java.util.Scanner;
public class GuseeNumber{
public static void main(String[]args) {
int hnumber=(int)(Math.random()*100);
System.out.println("请输入您猜的数:(数字在0-100之间)");
Scanner sc=new Scanner(System.in);
int guess=sc.nextInt();
while(guess!=hnumber) {
if(guess>hnumber) {
System.out.println("太大了,猜小一点");
guess=sc.nextInt();
}else if(guess<hnumber) {
System.out.println("太小了,猜大一点");
guess=sc.nextInt();
}
}
System.out.println("恭喜你猜对了!!");
}
}
3.2 文件设计
根据系统需求分析创建了用于项目一存储得分记录的Scores.txt和用于项目二记录游戏时间的Guess.txt
4 系统实现
4.1 算数运算测试实现
项目一运行结果如图4-1所示。
图4-1 项目一实验结果
4.2 猜数游戏实现
图4-2 项目二实验结果
5 系统测试
算数运算模块测试中主要对生成随机计算式,给出得分。测试结果如表1-3所示
表1-3 算数运算模块测试表
|
编号 |
测试功能 |
输入描述 |
预期结果 |
运行结果 |
|
HP01 |
功能 |
1.生成计算式 2.获取测试得分 3.查看排行榜 |
可以自动生成计算式,并且测试成功 |
正常,与预期结果一致 |
|
HP02 |
生成计算式功能 |
1.生成随机数 2.生成随机加减号 3.生成随机运算式 |
生成10道100以内的加减随机运算式 |
正常,与预期结果一致 |
|
HP03 |
生成排行榜功能 |
1.生成随机运算式 2.参与答题 3.得出总分 |
参与答题,得出总分 |
正常,与预期结果一致 |
表1-4 猜数游戏模块测试表
|
编号 |
测试功能 |
输入描述 |
预期结果 |
运行结果 |
|
HP01 |
功能 |
4.生成随机数 5.获取用时 6.查看排行榜 |
可以生成随机数,并且能够得到游戏用时后显示排行榜 |
正常,与预期结果一致 |
|
HP02 |
生成计算式功能 |
1.生成随机数
|
.生成一个100以内随机整数 |
正常,与预期结果一致 |
|
HP03 |
生成游戏用时功能 |
|
参与答题,得出总时间 |
正常,与预期结果一致 |
测试主要是针对用户的操作,从测试结果中可以看出该模块的所有功能均能正常实现,且测试结果与预期结果一致。
6 结论和心得
Java课程设计这门课程,将我们这一学期学习的JAVA基础知识汇总变成实际操作,也学会了博客和java帮助文档来提高自己。让我们认识到了平时学习的不足和薄弱的地方,也可以做出调整和再次学习。
浙公网安备 33010602011771号