作业5 四则运算 测试与封装 5.1

刘恒 http://www.cnblogs.com/iliuh/

chaorenken

http://www.cnblogs.com/lixuanzong/

这个是主函数

package tion;

import java.util.*;
import java.applet.*; //引入Applet类
import java.awt.*;
import java.awt.event.*; //引入系统事件类包。
public class ta extends Applet implements ActionListener{//定义类的同时实现动作事件监听接口。
    Label label1,label2,label3,label4; //声明四个标签对象。
    TextField tf1; //声明一个文本框对象
    TextArea area; //声明一个文本区域对象
    Button bt1,bt2; //声明两个按钮对象
    double lb2=0.0;
    int s=0;
    int a=0;
    int b=0;
    int y=0;
    int z=0;
//s保存总题数;a保存答对的题数;b保存答错的题数。

public void init(){ //初始化。
    label1=new Label(); //创建一个没有显示内容的对象。
    label2=new Label();
    label3=new Label();
    label4=new Label("="); //创建一个显示内容为“=”的对象。
    tf1=new TextField(8);
    area=new TextArea(13,40);//创建一个13行40列的文本区。
    bt1=new Button("计分"); //创建一个显示标题为“计分”的按钮。
    bt2=new Button("重来");
    add(label1);
    add(label2);
    add(label3);
    add(label4);
    add(tf1);
    add(area);
    add(bt1);
    add(bt2);
    this.setSize(400, 150);
//利用顺序布局,增加各组件。
    tf1.addActionListener(this);
    bt1.addActionListener(this);bt2.addActionListener(this); //将this注册为ft1、bt1、bt2的单击事件兼听器。
    label1.setText(String.valueOf((int)(Math.random()*10)));
    label3.setText(String.valueOf((int)(Math.random()*10)));//随机产生两个10以内的整数并分别显示在标签1、3上。
    lb2=(Math.random()); //随机产生一个0~1以内的小数。
    if (lb2>=0 && lb2<=0.25)
        label2.setText("+");
    else if (lb2>0.25 && lb2<=0.5)
        label2.setText("-");
    else if (lb2>0.5 && lb2<=0.75)
        label2.setText("*");
    else if (lb2>0.75 && lb2<=1)
        label2.setText("/");
    }
//if 语句用于控制随机显示“+、-、*、/”四个运算符。

     Init init=new Init();

    @Override
    public void actionPerformed(ActionEvent e) {
        // TODO Auto-generated method stub

    }
}

下面是封装的代码。

package tion;

import java.awt.Button;
import java.awt.Label;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.event.ActionEvent;

public class Init {
    Label label1,label2,label3,label4; //声明四个标签对象。
TextField tf1; //声明一个文本框对象
TextArea area; //声明一个文本区域对象
Button bt1,bt2; //声明两个按钮对象
double lb2=0.0;
int s=0;
int a=0;
int b=0;
int y=0;
int z=0;
//s保存总题数;a保存答对的题数;b保存答错的题数。

public void actionPerformed(ActionEvent e){ //实现事件接口方法。
    if (e.getSource()==tf1){ //判断事件源是tf1还是bt1或bt2。
        s=s+1; //一触发tf1总题数就加1.
        if (label2.getText()=="+"){
            int x=Integer.parseInt(label1.getText())+Integer.parseInt(label3.getText());
//字符转换成数值。
            if (x==Integer.parseInt(tf1.getText()))
                a=a+1; //如果文本框输入的正确,则答对的数目加一。
            else
                b=b+1; //如果文本框输入的错误,则答错的数目加一。
            }
        else if (label2.getText()=="-"){
            int x=Integer.parseInt(label1.getText())-Integer.parseInt(label3.getText());
            if (x==Integer.parseInt(tf1.getText()))
                a=a+1;
            else
                b=b+1;
            }
        else if (label2.getText()=="*"){
            int x=Integer.parseInt(label1.getText())*Integer.parseInt(label3.getText());
            if (x==Integer.parseInt(tf1.getText()))
                a=a+1;
            else
                b=b+1;
            }

        else if (label2.getText()=="/"){
            y=Integer.parseInt(label1.getText());
            z=Integer.parseInt(label3.getText());
            do{
                label3.setText(String.valueOf((int)(Math.random()*10)));
                z=Integer.parseInt(label3.getText()); }
            while (z==0); //用循环保证被除数不为0。
            double x=Double.parseDouble(label1.getText())/Integer.parseInt(label3.getText());
            if (Math.round(x)==(Integer.parseInt(tf1.getText())))//保证两数相除,四舍五入再取整。
                a=a+1;
            else
                b=b+1;
            }
        label1.setText(String.valueOf((int)(Math.random()*10)));
        label3.setText(String.valueOf((int)(Math.random()*10)));
        lb2=Math.random();
        if (lb2>=0 && lb2<=0.25)
            label2.setText("+");
        else if (lb2>0.25 && lb2<=0.5)
            label2.setText("-");
        else if (lb2>0.5 && lb2<=0.75)
            label2.setText("*");
        else if (lb2>0.75 && lb2<=1)
            label2.setText("/");
        tf1.setText("");
        }
    else if(e.getSource()==bt1){ //bt1按钮单击事件。
        area.setText(""); //清空文本区。 area.append("*********************************************"+"\n");
        area.append(" 一共答了:"+s+"道题。"+"\n");
        area.append(" 恭喜你!答对了:"+a+"道题,答错了:"+b+" 道题。"+"\n"); area.append("_____________________________________________"+"\n");
        area.append(" 你当前的成绩为:"+((a*100)/s));//在文本区添加文本。
        }
    else if (e.getSource()==bt2){ //bt2按钮单击事件。
        area.setText("");
        label1.setText(String.valueOf((int)(Math.random()*10)));
        label3.setText(String.valueOf((int)(Math.random()*10)));
        lb2=Math.random();
        if (lb2>=0 && lb2<=0.25)
            label2.setText("+");
        else if (lb2>0.25 && lb2<=0.5)
            label2.setText("-");
        else if (lb2>0.5 && lb2<=0.75)
            label2.setText("*");
        else if (lb2>0.75 && lb2<=1)
            label2.setText("/");
        tf1.setText("");
    }
}
}

因为有些不懂啊,只能这样了,加油

时间: 2024-10-05 23:09:04

作业5 四则运算 测试与封装 5.1的相关文章

作业5 四则运算 测试与封装 5.2

作业5 四则运算 测试与封装  5.2 开发环境:   Eclipse 开发人员:   欧其锋(201306114305) 余汉城(201306114317)(http://www.cnblogs.com/yuhancheng/) 分工:   欧其锋:异常处理 余汉城:重构 源代码: 1 package GongNengpk; 2 3 import GongNengpkTest.ChuShuLingException; 4 import GongNengpkTest.JCException; 5

【作业报告】作业5 四则运算 测试与封装 5.1

测试与封装 5.1 程序开发简介: [开发环境]:eclipse [开发人员]:Ives & 郑胜斌 [博客地址]:38郑胜斌 [开发时间]:2015-04-30 [版本]:5.1 [要求]: 封装 测试 封装: 概念 封装是把过程和数据包围起来,对数据的访问只能通过已定义的接口.面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治.封装的对象,这些对象通过一个受保护的接口访问其他对象.封装是一种信息隐藏技术,在java中通过关键字private实现封装.什么是封装?封装把对象的所

20150421 作业5 四则运算 测试与封装 5.1

import java.util.ArrayList; import java.util.Random; import java.util.Scanner; public class fengzhuang {// Software Engineering 軟件工程 作業2 static String jia = "+"; static String jian = "-"; static String cheng = "*"; static Str

作业5 四则运算 测试与封装

1 import java.math.BigDecimal; 2 import java.text.NumberFormat; 3 import java.util.*; 4 public class Core { 5 public int calc(String zifu,int max,int fanwei1,int fanwei2,int jingdu) throws ChushulingException, fanweiException, zifushuException 6 { 7

20150421 作业5 四则运算 测试与封装 5.1 5.2(doing)

结伴队友:王佳寧,他的博客地址:http://www.cnblogs.com/paopaotai/ 5.2 黑白盒測試 測試項目名稱 黑盒測試 測試人員 葉子鵬&王佳寧 測試編號 測試頁面 測試部件 輸入數據 預測輸出 實際輸出 測試狀態 1 SE2_2.jsp 請輸入題目數量:  aa(字母) 提示:請輸入數字   正常 2 SE2_2.jsp 請輸入題目數量:  啊(中文) 提示:請輸入數字   正常 3 SE2_2.jsp 請輸入題目數量:  --(字符) 提示:請輸入數字 !請輸入一個數

作业5 四则运算 测试与封装 5.1 5.2

第二阶段目标 - 通过测试程序和API 接口测试其简单的加减乘除功能.并能看到代码覆盖率. 第三阶段目标 - 通过测试程序和API 接口测试对于各种参数的支持.并能看到代码覆盖率. 代码如下: 1 import java.math.BigDecimal; 2 import java.text.NumberFormat; 3 import java.util.*; 4 public class Core { 5 public int calc(String zifu,int max,int fan

练习5.1——四则运算 测试与封装

主程序 package com.h2; import java.text.DecimalFormat; import java.util.Scanner; import java.util.regex.Pattern; /* * 1.定制数量 * 2.控制是否有乘除法 * 3.控制数值范围 * 4.定制真分数练习题 * 5.校检用户输入 * 6.输出答题正确率 */ public class Main { public static int max = 10;// 控制算式个数 public s

四则运算 测试与封装 (完善) 5.2 5.3

一.结对小伙伴:陈淑筠 http://www.cnblogs.com/babybluecsj/ 二.(1)我用小伙伴上一次5.1的作业来单元测试,发现当除数为零时,运行时未抛出异常,于是我们加上了    1.     if(fh2=='/'){             if(b==0){                 throw new Exception("除数不能为0!");             }             answer=a/b;         } 2. t

四则运算测试与封装5.1 结对

开发环境:eclipse 结对同伴 :罗凯杰 同伴博客:http://www.cnblogs.com/lkjie/ 未封装的程序: import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Size { public static void main(String[] args) { // TODO Auto-generated method stub myframe f=new myframe(