问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

编程问题 急!!!

发布网友 发布时间:2022-05-04 11:21

我来回答

1个回答

热心网友 时间:2022-06-21 10:59

//下面是JAVA做的计算器,可参考下
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MyCounter extends Frame
{
//声明三个面板的布局
GridLayout gl1,gl2,gl3,g14;
Panel p0,p1,p2,p3,p4;
JTextField tf1;
TextField tf2;
Button b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b17,b18,b19,b20,b21,b22,b23,b24,b25,b26, b27,b28,b29,b30,b31,b32;
StringBuffer str; //显示屏所显示的字符串
double x,y; //x和y都是运算数
int z; //Z表示单击了那一个运算符.0表示"+",1表示"-",2表示"*",3表示"/"
static double m; //记忆的数字
public MyCounter()
{
gl1=new GridLayout(1,4,10,0); //实例化4个面板的布局
gl2=new GridLayout(4,1,0,15);
gl3=new GridLayout(4,5,10,15);
g14=new GridLayout(1,6,10,15);

tf1=new JTextField(27); //显示屏
tf1.setHorizontalAlignment(JTextField.RIGHT);
tf1.setEnabled(false);
tf1.setText("0");
tf2=new TextField(10); //显示记忆的索引值
tf2.setEditable(false);

//实例化所有按钮、设置其前景色并注册*
b0=new Button("Backspace");
b0.setForeground(Color.red);
b0.addActionListener(new Bt());
b1=new Button("CE");
b1.setForeground(Color.red);
b1.addActionListener(new Bt());
b2=new Button("C");
b2.setForeground(Color.red);
b2.addActionListener(new Bt());
b3=new Button("MC");
b3.setForeground(Color.red);
b3.addActionListener(new Bt());
b4=new Button("MR");
b4.setForeground(Color.red);
b4.addActionListener(new Bt());
b5=new Button("MS");
b5.setForeground(Color.red);
b5.addActionListener(new Bt());
b6=new Button("M+");
b6.setForeground(Color.red);
b6.addActionListener(new Bt());
b7=new Button("7");
b7.setForeground(Color.blue);
b7.addActionListener(new Bt());
b8=new Button("8");
b8.setForeground(Color.blue);
b8.addActionListener(new Bt());
b9=new Button("9");
b9.setForeground(Color.blue);
b9.addActionListener(new Bt());
b10=new Button("/");
b10.setForeground(Color.red);
b10.addActionListener(new Bt());
b11=new Button("sqrt");
b11.setForeground(Color.blue);
b11.addActionListener(new Bt());
b12=new Button("4");
b12.setForeground(Color.blue);
b12.addActionListener(new Bt());
b13=new Button("5");
b13.setForeground(Color.blue);
b13.addActionListener(new Bt());
b14=new Button("6");
b14.setForeground(Color.blue);
b14.addActionListener(new Bt());
b15=new Button("*");
b15.setForeground(Color.red);
b15.addActionListener(new Bt());
b16=new Button("%");
b16.setForeground(Color.blue);
b16.addActionListener(new Bt());
b17=new Button("1");
b17.setForeground(Color.blue);
b17.addActionListener(new Bt());
b18=new Button("2");
b18.setForeground(Color.blue);
b18.addActionListener(new Bt());
b19=new Button("3");
b19.setForeground(Color.blue);
b19.addActionListener(new Bt());
b20=new Button("-");
b20.setForeground(Color.red);
b20.addActionListener(new Bt());
b21=new Button("1/X");
b21.setForeground(Color.blue);
b21.addActionListener(new Bt());
b22=new Button("0");
b22.setForeground(Color.blue);
b22.addActionListener(new Bt());
b23=new Button("+/-");
b23.setForeground(Color.blue);
b23.addActionListener(new Bt());
b24=new Button(".");
b24.setForeground(Color.blue);
b24.addActionListener(new Bt());
b25=new Button("+");
b25.setForeground(Color.red);
b25.addActionListener(new Bt());
b26=new Button("=");
b26.setForeground(Color.red);
b26.addActionListener(new Bt());
b27=new Button("次幂");
b27.setForeground(Color.red);
b27.addActionListener(new Bt());
b28=new Button("log");
b28.setForeground(Color.red);
b28.addActionListener(new Bt());
b29=new Button("sin");
b29.setForeground(Color.red);
b29.addActionListener(new Bt());
b30=new Button("cos");
b30.setForeground(Color.red);
b30.addActionListener(new Bt());
b31=new Button("sec");
b31.setForeground(Color.red);
b31.addActionListener(new Bt());
b32=new Button("csc");
b32.setForeground(Color.red);
b32.addActionListener(new Bt());

//实例化5个面板
p0=new Panel();
p1=new Panel();
p2=new Panel();
p3=new Panel();
p4=new Panel();

//创建一个空字符串缓冲区
str=new StringBuffer();

//添加面板p0中的组件和设置其在框架中的位置和大小
p0.add(tf1); //添加"显示屏"组件
p0.setBounds(10,25,300,40);

//添加面板p1中的组件和设置其在框架中的位置和大小
p1.setLayout(gl1);
p1.add(tf2); //添加显示"记忆索引值"组件
p1.add(b0); //添加backspace组件
p1.add(b1); //添加 CE 组件
p1.add(b2); //添加 C 组件
p1.setBounds(10,65,300,25);

//添加面板p2中的组件并设置其的框架中的位置和大小
p2.setLayout(gl2);
p2.add(b3); //添加 MC 组件
p2.add(b4); //添加 MR 组件
p2.add(b5); //添加 MS 组件
p2.add(b6); //添加 M+ 组件
p2.setBounds(10,110,40,150);

//添加面板p3中的组件并设置其在框架中的位置和大小
p3.setLayout(gl3); //设置p3的布局
p3.add(b7); //添加 7 组件
p3.add(b8); //添加 8 组件
p3.add(b9); //添加 9 组件
p3.add(b10); //添加 / 组件
p3.add(b11); //添加 sqrt 组件
p3.add(b12); //添加 4 组件
p3.add(b13); //添加 5 组件
p3.add(b14); //添加 6 组件
p3.add(b15); //添加 * 组件
p3.add(b16); //添加 % 组件
p3.add(b17); //添加 1 组件
p3.add(b18); //添加 2 组件
p3.add(b19); //添加 3 组件
p3.add(b20); //添加 - 组件
p3.add(b21); //添加 1/x 组件
p3.add(b22); //添加 0 组件
p3.add(b23); //添加 +/-组件
p3.add(b24); //添加 . 组件
p3.add(b25); //添加 + 组件
p3.add(b26); //添加 = 组件
p3.setBounds(60,110,250,150);

//添加面板p4中的组件和设置其在框架中的位置和大小
p4.setLayout(g14);
p4.add(b27); //添加 组件
p4.add(b28); //添加 组件
p4.add(b29); //添加 组件
p4.add(b30); //添加 组件
p4.add(b31); //添加 组件
p4.add(b32); //添加 组件
p4.setBounds(10,150,300,25);

//设置框架中的布局为空布局并添加4个面板
setLayout(null);
add(p0);
add(p1);
add(p2);
add(p3);
add(p4);
setResizable(false);//禁止调整框架的大小
//匿名类关闭窗口
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e1)
{
System.exit(0);
}
});
setBackground(Color.lightGray);
setBounds(100,100,320,280);
setVisible(true);

}
//构造*
class Bt implements ActionListener
{
public void actionPerformed(ActionEvent e2)
{
try{

if(e2.getSource()==b1) //选择"CE"清零
{
tf1.setText("0"); //把显示屏清零
str.setLength(0); //清空字符串缓冲区以准备接收新的输入运算数
}
else if(e2.getSource()==b2)//选择"C"清零
{
tf1.setText("0"); //把显示屏清零
str.setLength(0);
}
else if(e2.getSource()==b23)//单击"+/-"选择输入的运算数是正数还是负数
{
x=Double.parseDouble(tf1.getText().trim());
tf1.setText(""+(-x));
}
else if(e2.getSource()==b25)//单击加号按钮获得x的值和z的值并清空y的值
{
x=Double.parseDouble(tf1.getText().trim());
str.setLength(0); //清空缓冲区以便接收新的另一个运算数
y=0d;
z=0;
}
else if(e2.getSource()==b20)//单击减号按钮获得x的值和z的值并清空y的值
{
x=Double.parseDouble(tf1.getText().trim());
str.setLength(0);
y=0d;
z=1;
}
else if(e2.getSource()==b15)//单击乘号按钮获得x的值和z的值并清空y的值
{
x=Double.parseDouble(tf1.getText().trim());
str.setLength(0);
y=0d;
z=2;
}
else if(e2.getSource()==b10)//单击除号按钮获得x的值和z的值并空y的值
{
x=Double.parseDouble(tf1.getText().trim());
str.setLength(0);
y=0d;
z=3;
}
else if(e2.getSource()==b26)//单击等号按钮输出计算结果
{
str.setLength(0);
switch(z)
{
case 0 : tf1.setText(""+(x+y));break;
case 1 : tf1.setText(""+(x-y));break;
case 2 : tf1.setText(""+(x*y));break;
case 3 : tf1.setText(""+(x/y));break;
}
}
else if(e2.getSource()==b24)//单击"."按钮输入小数
{
if(tf1.getText().trim().indexOf('.')!=-1)//判断字符串中是否已经包含了小数点
{

}
else //如果没有小数点
{
if(tf1.getText().trim().equals("0"))//如果初时显示为0
{
str.setLength(0);
tf1.setText((str.append("0"+e2.getActionCommand())).toString());
}
else if(tf1.getText().trim().equals(""))//如果初时显示为空则不做任何操作
{
}
else
{
tf1.setText(str.append(e2.getActionCommand()).toString());
}
}

y=0d;

}
else if(e2.getSource()==b11)//求平方根
{
x=Double.parseDouble(tf1.getText().trim());
tf1.setText("数字格式异常");
if(x<0)
tf1.setText("负数没有平方根");
else
tf1.setText(""+Math.sqrt(x));
str.setLength(0);
y=0d;
}
else if(e2.getSource()==b16)//单击了"%"按钮
{
x=Double.parseDouble(tf1.getText().trim());
tf1.setText(""+(0.01*x));
str.setLength(0);
y=0d;
}
else if(e2.getSource()==b21)//单击了"1/X"按钮
{

x=Double.parseDouble(tf1.getText().trim());
if(x==0)
{

tf1.setText("除数不能为零");
}
else
{
tf1.setText(""+(1/x));
}
str.setLength(0);
y=0d;
}
else if(e2.getSource()==b3)//MC为清除内存
{
m=0d;
tf2.setText("");
str.setLength(0);
}
else if(e2.getSource()==b4)//MR为重新调用存储的数据
{
if(tf2.getText().trim()!="")//有记忆数字
{
tf1.setText(""+m);
}
}
else if(e2.getSource()==b5)//MS为存储显示的数据
{

m=Double.parseDouble(tf1.getText().trim());
tf2.setText("M");
tf1.setText("0");
str.setLength(0);
}
else if(e2.getSource()==b6)//M+为将显示的数字与已经存储的数据相加要查看新的数字单击MR
{
m=m+Double.parseDouble(tf1.getText().trim());
}
else//选择的是其他的按钮
{
if(e2.getSource()==b22)//如果选择的是"0"这个数字键
{
if(tf1.getText().trim().equals("0"))//如果显示屏显示的为零不做操作
{

}
else
{
tf1.setText(str.append(e2.getActionCommand()).toString());
y=Double.parseDouble(tf1.getText().trim());
}
}
else if(e2.getSource()==b0)//选择的是“BackSpace”按钮
{
if(!tf1.getText().trim().equals("0"))//如果显示屏显示的不是零
{
if(str.length()!=1)
{
tf1.setText(str.delete(str.length()-1,str.length()).toString());//可能抛出字符串越界异常
}
else
{
tf1.setText("0");
str.setLength(0);
}
}
y=Double.parseDouble(tf1.getText().trim());
}
else//其他的数字键
{
tf1.setText(str.append(e2.getActionCommand()).toString());
y=Double.parseDouble(tf1.getText().trim());
}
}
}
catch(NumberFormatException e){
tf1.setText("数字格式异常");
}
catch(StringIndexOutOfBoundsException e){
tf1.setText("字符串索引越界");
}
}
}
public static void main(String args[])
{
new MyCounter();
}

}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
远得要命的爱情丁菲是谁演的 远的要命的爱情里的乔佳影是谁演的 远得要命的爱情乔佳影是什么角色 问。。我在厦门办的银行卡回江西可以用吗? 远得要命的爱情中的乔佳影是个怎样的人 厦门农信社的公告出来了,想问一下银行合同制和劳务派遣和正式工的区别... 厦门的信用社银联卡到南宁能不能用?要不要手续费? 泉州农信社年前新办的卡,存了钱,银行说三个工作日后才能动这个钱,为什 ... ...女鞋的话 是不是必须直通车 我们鞋子都是20---50鞋子利润低 直通车... 拼多多直通车200红包(拼多多直通车每天烧1000) 哪里有钣金萨瓦尼尼(冲剪复合中心)设备招人的,我有两年的工作经验,操作编程都会。p4也能编程, 编写一程序P4129.C实现以下功能 从键盘读入两个字符cBegin和cEnd,要求输出≤cBegin且≥cEnd的所有字符。 stc89c52rc lqfp编程时怎么使用P4口 三菱PLC上的-P2 -P3 -P4代表什么。 STC89C52单片机编程时出现P4 undefined identifier 编程g代码G54.1 P4 是什么意思 跪求:开机时忘记了用户登陆密码怎么办? 普通用户如何使用cmd的net user命令修改自己的登录密码? 在user用户下如何知道管理员登陆密码 我的本地Web登录账号是user,密码是uwwqm,怎样修wⅰfⅰ密码 怎么设置userpassword密码破解开机密码 用户是user密码是wifi登录密码,怎么办? User密码问题 为什么抖音看不到外省的人 例句:你一个人出门在外,一定要照顾好自己。句中一定应做何解释??? 出门在外天冷了关心家人的话 暖心照顾好自己的话 照顾好自己经典语录 嘱咐出门在外的人照顾自己的句子人家回复谢谢怎么回 我离开的这几天你一定要好好照顾自己的句子 C语言编程题 题目:任意输入4个点,求围成四边形的面积 请问stc12C5A60S2四十脚直插单片机用keil编程时怎么把它的P4口作为普通的I&#47;O口用(P4.4-P4.7),谢谢! p4作整数乘法的时钟周期是多少? 我想要P4 1.6 和C42.0的资料 给我小孩起名字我是姓李? C语言编程题 题目:任意输入4个点,求围成四边形的面积是多少? C++程序编程 c语言编程题!!急求!! 关于扑克牌(要完整代码最好有解释) 加工中心刀具半径补偿怎么编程? - 信息提示 你在淘宝买过哪些鸡肋产品? oppo手机悬浮窗怎么缩小 oppo 手机怎样设置创建快捷浮窗 小孩子经常无缘无故鼻子出血是怎么回事 小孩早上起来突然流鼻血是怎么回事啊? 小孩子突然流鼻血了,怎么办 我家1楼宽带已经安了,在二楼买个路由器能不能联接宽带的信号? 家里二楼路由器接了一条网线到一楼,打算一楼再接个无线路由器,请问怎么设置 你好,请教你一个问题:我住处的宽带在二楼有个路由器,我想在一楼用手机WIFI 上网。路由器该怎么安装? 网线接口在2楼,有线路由器在一楼,我想在2楼在按一个无线路由器,能连上么?