软件工程作业02

源代码:package zuoye2;

import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;

class jiemian
{
    public jiemian()
    {
    JFrame  jf=new JFrame("四则运算");
    jf.setBounds(200, 100, 500, 500);
    jf.setLayout(null);
    Container c=jf.getContentPane();
    JCheckBox j1=new JCheckBox("有乘除法");
    JCheckBox j2=new JCheckBox("有括号");
    JCheckBox j3=new JCheckBox("有负数");
    JCheckBox j4=new JCheckBox("有余数");
    JLabel l1=new JLabel("请输入数值范围");
    JLabel l4=new JLabel("请输入参数个数(1—10)");
    JLabel l2=new JLabel("—");
    JLabel l3=new JLabel("请输入题目数目(1-30)");
    JTextField t1=new JTextField("0");
    JTextField t2=new JTextField();
    JTextField t3=new JTextField();
    JTextField t4=new JTextField();
    j1.setBounds(100, 100, 80,20);
    j2.setBounds(100, 130, 80,20);
    l4.setBounds(100, 160, 180,20);
    j3.setBounds(100, 220, 80,20);
    j4.setBounds(100, 250, 80,20);
    t1.setBounds(100, 190, 50,20);
    l1.setBounds(100, 280, 150,20);
    t2.setBounds(100, 310, 50,20);
    t3.setBounds(180, 310, 50,20);
    l2.setBounds(160, 310, 30,20);
    l3.setBounds(100, 340, 150,20);
    t4.setBounds(100, 370, 50,20);
    c.add(j1);
    c.add(j2);
    c.add(j3);
    c.add(l4);
    c.add(j4);
    c.add(t1);
    c.add(l1);
    c.add(t2);
    c.add(t3);
    c.add(l2);
    c.add(l3);
    c.add(t4);
    JButton b1=new JButton("确定");
    JButton b2=new JButton("退出");
    b1.setBounds(350, 150,70, 50);
    b2.setBounds(350, 300,70, 50);
    c.add(b1);
    c.add(b2);
    b1.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e)
        {
            jf.dispose();
            String a1,a2,a3,a4,a5;
            int c1,c2,c3,c4,c5;
            boolean f1=false,f2=false,f3=false,f4=false,f5=false;
            a1=t1.getText().toString();
            a2=t2.getText().toString();
            a3=t3.getText().toString();
            a4=t4.getText().toString();
            if(a2.equals("")||a3.equals(""))
            {
                JOptionPane.showMessageDialog(null, "范围不能为空", "范围不能为空", JOptionPane.ERROR_MESSAGE);
                System.exit(0);
            }
            else if(a4.equals(""))
            {
                JOptionPane.showMessageDialog(null, "数目不能为空", "数目不能为空", JOptionPane.ERROR_MESSAGE);
                System.exit(0);
            }
            else if(j2.isSelected())
            {
                if (a1.equals(""))
                {
                JOptionPane.showMessageDialog(null, "参数个数不能为空", "参数个数不能为空", JOptionPane.ERROR_MESSAGE);
                System.exit(0);
                }
                else if(Integer.parseInt(a1)>10||Integer.parseInt(a1)<=0)
                    {
                    JOptionPane.showMessageDialog(null, "参数个数超出", "参数个数超出", JOptionPane.ERROR_MESSAGE);
                    System.exit(0);}
            }
            else if(Integer.parseInt(a4)<=0||Integer.parseInt(a4)>30)
            {
                JOptionPane.showMessageDialog(null, "题目数目不正确", "题目数目不正确", JOptionPane.ERROR_MESSAGE);
                System.exit(0);
            }
            else if(Integer.parseInt(a3)<=Integer.parseInt(a2))
            {
                JOptionPane.showMessageDialog(null, "范围不正确", "范围不正确", JOptionPane.ERROR_MESSAGE);
                System.exit(0);
            }
            if(j1.isSelected())
            {
                f1=true;
            }
            if(j2.isSelected())
            {
                f2=true;
            }
            if(j3.isSelected())
            {
                f3=true;
            }
            if(j4.isSelected())
            {
                f4=true;
            }
            c1=Integer.parseInt(a1);
            c2=Integer.parseInt(a2);
            c3=Integer.parseInt(a3);
            c4=Integer.parseInt(a4);
            yunsuan a=new yunsuan(c1,c2,c3,c4,f1,f2,f3,f4);
        }

    });
    b2.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e)
        {
            jf.dispose();
        }

    });
    jf.setVisible(true);
    jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }
}
package zuoye2;

public class m extends jiemian
{

    public static void main(String[] args)
    {
        // TODO Auto-generated method stub
        jiemian a=new jiemian();
    }

}

}
            else
            {
                if(e[i]==1)
                {
                    a[i]=r1[i].nextInt(c3-c2)+c2;
                    b[i]=r2[i].nextInt(c3-c2)+c2;
                    d[i]=a[i]+b[i];
                    a1[i]=String.valueOf(a[i]);
                    b1[i]=String.valueOf(b[i]);
                    d1[i]=String.valueOf(d[i]);
                    j1[i]=new JLabel(a1[i]);
                    j2[i]=new JLabel("+");
                    j3[i]=new JLabel(b1[i]);
                    j4[i]=new JLabel("=");

                }
                if(e[i]==2)
                {
                    int x;
                    a[i]=r1[i].nextInt(c3-c2)+c2;
                    b[i]=r2[i].nextInt(c3-c2)+c2;
                    if(b[i]>a[i])
                    {
                        x=b[i];
                        b[i]=a[i];
                        a[i]=x;

                    }
                    d[i]=a[i]-b[i];
                    a1[i]=String.valueOf(a[i]);
                    b1[i]=String.valueOf(b[i]);
                    d1[i]=String.valueOf(d[i]);
                    j1[i]=new JLabel(a1[i]);
                    j2[i]=new JLabel("-");
                    j3[i]=new JLabel(b1[i]);
                    j4[i]=new JLabel("=");

                }
            }

            if(e[i]==3)
            {
                a[i]=r1[i].nextInt(c3-c2)+c2;
                b[i]=r2[i].nextInt(c3-c2)+c2;
                d[i]=a[i]*b[i];
                a1[i]=String.valueOf(a[i]);
                b1[i]=String.valueOf(b[i]);
                d1[i]=String.valueOf(d[i]);
                j1[i]=new JLabel(a1[i]);
                j2[i]=new JLabel("X");
                j3[i]=new JLabel(b1[i]);
                j4[i]=new JLabel("=");

            }
            if(f4==false)
            {
            if(e[i]==4)
            {
                d[i]=r1[i].nextInt(c3-c2)+c2;
                b[i]=r2[i].nextInt(c3-c2)+c2;
                a[i]=b[i]*d[i];
                while(d[i]==0||b[i]==0)
                {
                    r1[i]=new Random();
                    r2[i]=new Random();
                    d[i]=r1[i].nextInt(20);
                    b[i]=r2[i].nextInt(20);
                    a[i]=b[i]*d[i];
                }

                a1[i]=String.valueOf(a[i]);
                b1[i]=String.valueOf(b[i]);
                d1[i]=String.valueOf(d[i]);
                j1[i]=new JLabel(a1[i]);
                j2[i]=new JLabel("/");
                j3[i]=new JLabel(b1[i]);
                j4[i]=new JLabel("=");

            }
            }
            else
            {
                if(e[i]==4)
                {
                    j7[i]=new JLabel("余");
                    a[i]=r1[i].nextInt(c3-c2)+c2;
                    b[i]=r2[i].nextInt(c3-c2)+c2;
                    while(a[i]==0||b[i]==0)
                    {
                        r1[i]=new Random();
                        r2[i]=new Random();
                        d[i]=r1[i].nextInt(20);
                        b[i]=r2[i].nextInt(20);
                        a[i]=b[i]*d[i];
                    }

                    a1[i]=String.valueOf(a[i]);
                    b1[i]=String.valueOf(b[i]);
                    d1[i]=String.valueOf(d[i]);
                    j1[i]=new JLabel(a1[i]);
                    j2[i]=new JLabel("/");
                    j3[i]=new JLabel(b1[i]);
                    j4[i]=new JLabel("=");

                }
            }
            if(e[i]==4&&f4==true)
            {
            j1[i].setBounds(50+j*42, 50+(k/2)*32, 40, 30);
            j++;
            j2[i].setBounds(50+j*42, 50+(k/2)*32, 40, 30);
            j++;
            j3[i].setBounds(50+j*42, 50+(k/2)*32, 40, 30);
            j++;
            j4[i].setBounds(50+j*42, 50+(k/2)*32, 40, 30);
            j++;
            j5[i].setBounds(50+j*42, 50+(k/2)*32, 40, 30);
            j++;
            j7[i].setBounds(65+j*42,50+(k/2)*32, 40, 30);
            j++;
            j6[i].setBounds(50+j*42,50+(k/2)*32, 40, 30);
            j++;
            j++;
            j++;
            k++;
            if(k!=0&&k%2==0)
            {
                j=0;
            }
            c.add(j1[i]);
            c.add(j2[i]);
            c.add(j3[i]);
            c.add(j4[i]);
            c.add(j5[i]);
            c.add(j6[i]);
            c.add(j7[i]);
            }
            else
            {
                j1[i].setBounds(50+j*42, 50+(k/2)*32, 40, 30);
                j++;
                j2[i].setBounds(50+j*42, 50+(k/2)*32, 40, 30);
                j++;
                j3[i].setBounds(50+j*42, 50+(k/2)*32, 40, 30);
                j++;
                j4[i].setBounds(50+j*42, 50+(k/2)*32, 40, 30);
                j++;
                j5[i].setBounds(50+j*42, 50+(k/2)*32, 40, 30);
                j++;
                j++;
                j++;
                j++;
                j++;
                k++;
                if(k!=0&&k%2==0)
                {
                    j=0;
                }
                c.add(j1[i]);
                c.add(j2[i]);
                c.add(j3[i]);
                c.add(j4[i]);
                c.add(j5[i]);
            }
        }
        jf.setVisible(true);
        jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }

}

设计思路:

1.建立一个frame面板,通过添加复选框来选择是否有乘除法,是否有余数,是否有括号以及是否有负数
2.通过添加文本框来控制计算范围和题目数目。
3.当点击确定按钮,当前窗口关闭,数据提交,并新建一个frame窗口,frame窗口大小根据题目数目而定。
4.通过random产生随机数来控制计算题目以及加减乘除(0-3分别代表加减乘除,若没有选择有乘除,则产生0或1,从而将乘除运算排除掉)
5.根据是否选择有余数来控制除法。若没有余数,则将生成的两个随机数之积作为被除数,第二个随机数作为除数。
6.若选择有负数,加减不做处理,否则比较减数与被减数大小。若减数大于被减数,则将二者交换。
7.通过建立JLabel数组来向窗口输出题目,题目坐标按照题目数累加
8.通过建立文本框来填入答案
9.括号和检验重复没做。

 
时间: 2025-01-01 23:23:35

软件工程作业02的相关文章

《Junit》——软件工程作业.vo2

<Junit>--软件工程作业.vo2 一.开发工具选择 我选择Eclipse: 二.编写与测试环节 (1)编写想要测试的Java类 (2)导入Junit (3)编写测试类 单元测试覆盖标准: [x] 语句覆盖:选择合适用例,所有语句被执行一次. [x] 判定覆盖:每个判定至少取一次真.一次假. [x] 条件覆盖:每个条件的各种可能结果至少满足一次. [x] 判定条件覆盖:同时满足判断覆盖和条件覆盖. [x] 条件组合覆盖:所有组合情况都要覆盖一次. 代码如下: package first;

《结对作业2》——软件工程作业.vo5

软件工程作业.vo5 一.题目选择 我们选择题目一: [x] 能够自动生成四则运算练习题 [x] 可以定制题目数量 [x] 用户可以选择运算符 [x] 用户设置最大数(如十以内.百以内等) [x] 用户选择是否有括号.是否有小数 [x] 用户选择输出方式(如输出到文件.打印机等) 二.职责分配 驾驶员--毕振国-博客地址 导航员--杨颢 三.结果展示 1.操作界面示例 2.输出界面示例 ++(此处应有掌声,啪啪啪啪啪啪啪啪啪啪啪啪啪啪啪--)++ 四.代码审查表 代码地址: https://co

软件工程作业作业02

1.设计思想: 建立一个主函数,声明参数变量.另建一个空成员变量的类,用于设置主函数中的成员变量,或对调用的数组进行相关操作,然后在主函数将字符串进行连接. 2.程序代码: package 课堂; import java.util.Random; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.PrintStream; public class The

2017软件工程作业---第一次

首先自我介绍一下,我叫李传康,江苏徐州人,毕业于吉林建筑大学,专业是计算机科学与技术,为人还算友善,欢迎随时来扰. 一.下面,让我来回答一些问题: (1)回想一下你曾经对计算机专业的畅想 当初你是如何做出选择计算机专业的决定的?你认为过去接触到的课程是否符合你对计算机专业的期待,为什么?你觉得计算机是你喜欢的领域吗,它是你擅长的领域吗?(注:不可以回答 "不是","是".请把这当成以后工作时面试题,需要回答足够长度,提供足够信息,让对方了解你.比如,给出为什么.)

软件工程作业 - Week 1

构建之法读后疑问: 初步的完成构建程序设计思路之后实现过程中发现了问题或者可以优化的地方是立马就改进还是完成之后按照步骤统一进行优化. 覆盖性测试,针对一些永远用不到只是用来预防极为极端的情况下,例如内存不足等,非常难以模拟的代码也需要覆盖吗?如果是成本岂不是很高 所谓敏捷开发在任何时候都适合吗?如果不是得话是什么时候不适合呢 拿一些测试应该由编写的人完成 哪一些应该由其他人完成比较好?有没有具体的划分 封闭开发以及合作开发应该以怎么样的频率交替核实?例如两个人开发进度不同 一个人需要交流 另一

软件工程作业-08

•每个人评价一下大家手头正在使用输入法或者搜索类的软件产品. 从用户界面.记住用户选择.短期刺激.长期使用的好处坏处.不要让用户犯简单的错误. 评价软件: 搜狗拼音 用户界面 这是界面,非常简单,用户可以自定义皮肤,让用户感到非常舒适,比较个性化. 而在使用上搜狗拼音也充分考虑到了用户的使用体验使打字时的界面非常炫酷或者唯美,这点做得非常棒. 记住用户选择 在记住用户选择方面,想必每个输入法都必须做到这一点,而相比而言搜狗做得更好,它会记住用户刚刚输入的子并把它放在第一个选择位置上. 而且搜狗输

第四次软件工程作业

1.敏捷开发是在什么样的背景下产生的?其主要特点有哪些?什么时候选择敏捷开发更恰当,为什么? 敏捷开发产生的背景:从20世纪70年代到90年代提出并使用的许多软件开发方法都试图在软件构思.文档化.开发和测试的过程中强加某种形式的严格性. 在20世纪90年代后期,一些抵制这种严格性的开发人员系统地阐述了他们自己的原则,试图强调灵活性在快速有效的软件生产中所发挥的作用.他们将他 们的思想整理为“敏捷宣言”. 主要特点:1. 工作在小的团队中    2. 团队是跨功能的-包括测试人员,开发人员,文档开

软件工程作业(一)

(一)QQ 1.最初使用QQ仅仅是为了和同学联系比较方便,我觉得QQ它的目标不仅仅是为了盈利.的确,QQ有很多功能是需要交钱的,但是它在和别人通信这个最重要的方面是免费的.所以,我个人认为QQ他的目标不仅仅是为了盈利,更重要的是为人们服务. 2.我是从腾讯官网上下载的. 3.通过弹出崩溃窗口来通知用户出行bug.QQ自带检查更功能,有新版本时会自动提醒用户更新. 4.第一,QQ每个一段时间会发布一个新的版本,会添加一些新的功能,像能够添加语音功能.打电话功能等.第二,QQ添加了很多元素,像QQ空

软件工程作业二

1书中说开发者要做足够好的软件,那么什么样软件是“足够好”的软件呢? 2作为一名大学生,如果我们要做软件这个职业的话,我们必然要成为软件工程师,那么作为一名软件工程师我们要怎样提升自己的能力和价值? 3当一个团队中发生了严重的分歧,我们应该如何处理呢? 4我们经常讲要有团队意识,尤其是软件工程师,但是现在社会上又有一种声音要全面发展的人才,这是否与书中强调的团队有冲突呢? 5在一个软件开发之前我们应该有哪些准备呢?在软件后续的维护中我们又需要做些什么呢? 6创新出来的新产品一定会比旧产品更受到人