软件工程个人作业(2)

源代码: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-13 19:02:03

软件工程个人作业(2)的相关文章

软件工程第一次作业补充

软件工程第一次作业的补充 对于作业"在一周之内快速看完<构建之法>,列出你不懂的5-10个问题". 作业要求有: (1)在每个问题后面,请说明哪一章节的什么内容引起了你的提问,提供一些上下文 (2)列出一些事例或资料,支持你的提问 (3)说说你提问题的原因,你说因为自己的假设和书中的不同而提问,还是不懂书中的术语,还是对推理过程有疑问,还是书中的描述和你的经验(直接经验或间接经验)矛盾? 例如:我看了这一段文字 (引用文字),有这个问题 (提出问题):我查了资料,有这些说法

软件工程教学作业 汇总

本篇文章收集并整理各位教师在博客园中发表的软件工程教学作业,希望为各位老师.学生和爱好者提供便利. 如果博文作者提出异议或意见,本人虚心接受并诚恳道歉. 小林觉 http://www.cnblogs.com/juking/ 学年 学期 作业 链接 简介 2015-2016 1 1 http://www.cnblogs.com/juking/p/4787124.html http://www.cnblogs.com/juking/p/4803578.html   2015-2016 1 2 htt

软件工程第一次作业程序开发历程

收到软件工程的作业,面对题目“......”.我先拟定了一个大概的思路,以及一些关键的函数.思路利用循环产生30道算术式,并计算答案,存储答案,在利用循环显示30道题的答案. 而关键函数我认为就是随机正整数的产生.考虑到这点,我决定用javascript来编写我的程序,其一是因为最近学习js,其二是因为对c和c++有点陌生了,然后javascript有Math.random这个函数,尽管它只能产生0与1之间的随机数.决定完语言后,我又分析了下题目,考虑到涉及真分数的问题,我将程序分成整数与真分数

软件工程个人作业02-1

老师对自动出题的系统又有了新的功能: 1.是否有乘除法: 2.是否有括号:最多可支持十个数参与计算 3.数值范围: 4.加减结果有无负数: 5.除法结果有无余数: (因为和上文的思路有些交汇,不懂的可以参考上文 >>点击这里参考上文) 下面是我的思路: 1.是否有乘除法: 分条件设置a的值 如果选择无乘除:a=(int)(0+Math.random()*2);//a=0或a=1时分别对应着string数组的"+""-" 如果选择无乘除:a=(int)(0

软件工程结对作业02(借鉴版)

软件工程结对作业02(借鉴版) 在编写程序的时候因为不会将Java程序嵌入进jsp中所以借鉴了一个学姐的程序,下面是学姐的程序.但在对学姐程序就行修改时发现了一些问题: 在Newjsp中能调用html中的题目个数的参数 在Myjsp中不能调用html中的题目个数的参数 其中这个参数timugeshu,是我自己后来添加的,用来改变题目个数的,与Java程序无关,只在jsp文件中作用 源程序: NewFeil.html <!DOCTYPE html> <html> <head&g

软件工程课堂作业04

软件工程课堂作业04 源代码: 1 package jian; 2 import java.io.*; 3 import java.util.Scanner; 4 public class Point3D{ 5 public static int Lenght(int list[],int lenght) 6 { 7 int i,max; 8 max=list[0]; 9 for(i=1;i<=(lenght-1);i++) 10 { 11 if(list[i]>max) 12 { 13 ma

软件工程个人作业12

软件工程个人作业12 程序题目: •三人行设计了一个灌水论坛.信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个“水王”,他不但喜欢发帖,还会回复其他ID发的每个帖子.坊间风闻该“水王”发帖数目超过了帖子数目的一半. •如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者的ID也在其中,你能快速的找到这个传说中的水王吗? 一.设计思想 根据“水王”发帖数目超过了帖子数目的一半,通过寻找发帖数过半的ID找出“水王”. 二.源代码: 1 package finding; 2 3 impor

软件工程结对作业 四则运算界面设计

软件工程结对作业 四则运算界面设计 康鑫  PB16060203 娄雨禛  PB16060356 一.项目分析 二.进度规划与完成情况 三.主要函数 四.简单的数据测试 五.编程困惑与心得 原文地址:https://www.cnblogs.com/RainLou/p/8735480.html

作业八:软件工程学期作业总结

1.学习收获 A):你书写的代码量(多少行) 看到要统计书写代码量才想起自己在编码后没有妥善地保管好代码,而是删除整个工程项目或者在项目中删除以前的代码继续写下一次的.粗略地估计下,大三开学到现在,除了满课的日子,每天编写代码的数量都会在300行左右.(虽然觉得少得有点惭愧,但是每次都会因为学到很多东西感到充实). B):熟悉(了解)哪几个软件工具? MyEclipse:完成软工作业时,经常使用到. GitHub :会一些最基本的使用操作. 除此之外还有MY SQL,MYSQL SQL Serv

软件工程概论作业02

这周,我们上了软件工程概论第三节课,终于体会到的程序员的不易,作业一次比一次难,老师提出的要求越来越多,就像未来的客户一样,要求永远无止境. 这次还在上次的要求上提出了新的要求,要求可选择整数还是分数,可指定范围,不可重复. 可怜的二柱子同学,老师又对他的自动出题系统提出了新的要求: 可以控制下列参数: 是否有乘除法: 是否有括号(最多可以支持十个数参与计算): 数值范围: 加减有无负数: 除法有无余数! 日期 开始时间 结束时间 中断时间 净时间 活动 备注 C U 3/10 14:00 16