资源描述
《Java语言程序设计》课程设计
题 目 算术运算测试
专 业 信息系统与信息管理
班 级
学 号
学生姓名
同组成员
指导教师
编写日期 2011年7月1日
一、本组课题及本人任务
本组课题 : 算术运算测试程序
本人任务 :共同探讨程序的设计并且负责实验报告的完成
二、程序功能简介
该程序实现十道100以内加减法数学题,能根据题目计算出答案,与输入答案对比,判断做题是否正确,最后计算分数。
界面要求:用图形界面实现。
三、主体内容
1、设计分析
本课题要求我们设计一个java程序,该程序能实现十道100以内加减法数学题,这个要求让我想到了要用循环语句实现,比方说我们学过的for循环和while语句。题目还要求能根据题目计算出答案,并且能与输入答案对比,之后判断做题是否正确,这启示我要用到equals语句实现,题目要求是利用图形用户界面来实现,通过看书以及请教老师,我们达到了这个要求。
该程序的系统开发语言JAVA,开发环境是netbeans 6.9.1。本程序具有的特点是程序简单明了,操作方便,优点是界面直观清晰,灵活实用。
2、程序结构
输出总分
事 件
0-99以内抽取两个数
进行加减运算。
判断正误,判断运行次数,分数叠加
输入个人运算结果
3、程序说明
该计算运算测试程序系统具备调用Math.random() * 100抽取100以内随机数并自行加减运算、输入个人运算结果、对比答案并进行加分运算,得出总分。
具体功能的详细描述如下:
1、当进入“运算测试程序”界面时,根据计算机随机得出的题目,在输入框中输入运算结果,。
选择“提交”按钮时将看到运算对错。
正确时界面框中,输出“恭喜,回答正确。”并自行加分。
错误时界面框中,输出“抱歉,回答错误。和正确答案”。
2、选择“下题”按钮进入下一题。
3、计算机通过“if”语句判断执行次数是否达到10次
当小于10次时进入下次循环。
否则跳入下一步。
4、算出最终分数并显示“您的得分是 ”。
5、退出。
6、JLabel jl = new JLabel(); //显示题目
7、JLabel jl2 = new JLabel(); //显示结果正确与否
8、JButton jb = new JButton("提交");
9、JButton jb2 = new JButton("下题");
10、JTextField jtf = new JTextField(); //输入答案
4、 源程序
package javaapplication1;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.*;
import javax.swing.*;
import javax.swing.plaf.SliderUI;
public class Random_problem {
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 Random_problem(){
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);
jf.setVisible(true);
jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
public void produce() {
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) {
jl.setText("第"+(count)+"题:"+num1 + "+" + num2 + "=");
count++;
sum = num1 + num2;
} else {
count++;
jl.setText("第"+(count)+"题:"+num1 + "-" + num2 + "=");
sum = num1 - num2;
}
jb.addActionListener(new ActionListener() {
@Override
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() {
@Override
public void actionPerformed(ActionEvent e) {
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 args[]) {
Random_problem a = new Random_problem();
a.produce();
}
}
5、操作方法(流程)
程 序 运 行
输入
对比运算结果,并判断正误
输出
输出总分
退 出
答案错误,并输出正确答案
显示答案正确
进入下一题
提交
输入数字
加减运算符
题号,抽取随机数
6、运行结果
7、设计体会
老实的说刚开始听说要写JAVA课程设计的时候真的好紧张,想想自己学的并不好,要编程真的好困难。后来开始慢慢地试着去写,一个下午坐在电脑面前,把课题看了一遍又一遍,也查了不少资料,还参考了书上的例题,看了一遍又一遍总算是有点弄懂了。再看自己的课题时脑子里就有了大概的模型,一句句程序语言开始慢慢地输出。接下来是不停的出错,改错,提高,完善。。。。。上机调试的时候因为有了老师的指导所以程序也运行地很成功。自己的努力终于是有了很好的回报。这次课程设计让我对JAVA语言有了更深入的了解,同时又激励了我,相信一件事只要自己认真努力去做肯定会有收获的。
这次我了解了java真的在日常生活中无处不在以及它的强大功能。还有一种功能的多种实现方式,同样一个实验目地,可以通过字符界面实现,还可以通过图形用户界面实现。通过这次的程序设计,让我觉得一定要好好学习下学期的类似编程语言。
展开阅读全文