jQuery实现计算器怎样去写连续加减法还有小数点

jQuery实现计算器怎样去写连续加减法还有小数点,第1张

放一个输入框和计算按钮
<input type="text" id="xxx" />
<input type="button" value="计算" onclick="test()" />
然后在js里面写
function test() {
var str = $('#xxx')val();
var result = eval(str);
alert(result);
}

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>计数器</title>
</head>
<body>
<input type="text" name="text" id="pre" onblur="validate(thisvalue);">
<select id="operator">
<option value="+">+</option>
<option value="-">-</option>
<option value=""></option>
<option value="/">/</option>
</select>
<input type="text" name="text" id="next" onblur="validate(thisvalue);">
<span>=</span>
<input type="text" id="result" readonly="true">
<input type="button" id="btn" value="提交" onclick="calculator();">
<script>
function validate(str){
var reg = /^\d+$/;
if (!regtest(str)) {
alert("请输入数字");
}
}
function calculator(){
var pre=documentgetElementById("pre")value;
var next=documentgetElementById("next")value;
var opra=documentgetElementById("operator")value;
var result=0;
switch(opra) {
case "+":
result=parseInt(pre)+parseInt(next);
break;
case "-":
result=parseInt(pre)-parseInt(next);
break;
case "":
result=parseInt(pre)parseInt(next);
break;
case "/":
if(parseInt(next)!=0){
result=parseInt(pre)/parseInt(next);
}
else{
alert("除数不能为0");
return;
}
break;
default:
break;
}
documentgetElementById("result")value=result;
}
</script>
</body>
</html>

下面简单的写了一个,也可以简化一下的,你自己看看是否合适:
import javaawt;
import javaawtevent;
public class count extends WindowAdapter implements ActionListener{
Frame f;
TextField txt1;
TextField txt2;
TextField txt3;
Label lbl1;
Label lbl2;
Label lbl3;
Button btn1;
Button btn2;
Button btn3;
Button btn4;
void init(){
f=new Frame("计算器");
lbl1=new Label("x");
lbl2=new Label("y");
lbl3=new Label("结果");
txt1=new TextField(10);
txt2=new TextField(10);
txt3=new TextField(10);
btn1=new Button(" 求 和 ");
btn2=new Button(" 求 差 ");
btn3=new Button(" 清 除 ");
btn4=new Button(" 退 出 ");

fsetLayout(new FlowLayout());
fadd(lbl1); fadd(txt1);
fadd(lbl2); fadd(txt2);
fadd(lbl3); fadd(txt3);
fadd(btn1);fadd(btn2);fadd(btn3);fadd(btn4);
fsetVisible(true);
fpack();

btn1addActionListener(this);
btn2addActionListener(this);
btn3addActionListener(this);
btn4addActionListener(this);
faddWindowListener(this);
}
public void windowClosing(WindowEvent e){
Systemexit(0);
}
public void actionPerformed(ActionEvent e){
if(egetSource()==btn1){
String s1=txt1getText();
String s2=txt2getText();
double d1=DoubleparseDouble(s1);
double d2=DoubleparseDouble(s2);
double d3=d1+d2;
String s3=DoubletoString(d3);
txt3setText(s3);
}
if(egetSource()==btn2){
String s1=txt1getText();
String s2=txt2getText();
double d1=DoubleparseDouble(s1);
double d2=DoubleparseDouble(s2);
double d3=d1-d2;
String s3=DoubletoString(d3);
txt3setText(s3);
}
if(egetSource()==btn3){
String s="";
txt1setText(s);
txt2setText(s);
txt3setText(s);
}
if(egetSource()==btn4){
Systemexit(0);
}
}
public static void main(String[]args){
new count()init();
}
}

终于编写出来了,代码如下: Option Explicit Dim strNumber As String Dim strPoint As String Dim dblNum1 As Double Dim intOperator As Integer '清除结果 Private Sub cmdGT_Click() txtDisplayText = "0" strNumber = "" strPoint = "" intOperator = 7 End Sub '输入数字 Private Sub cmdNumber_Click(Index As Integer) strNumber = strNumber & cmdNumber(Index)Caption txtDisplayText = strNumber & strPoint End Sub Private Sub cmdOnOff_Click() End End Sub '运算过程 Private Sub cmdOperator_Click(Index As Integer) Dim dblnum2 As Double '是第一次单击运算符时,将输入的值先赋给第一个数,否则赋值给第二个数进行运算 If intOperator = 7 Then dblNum1 = CDbl(txtDisplayText) Else dblnum2 = CDbl(Val(txtDisplayText)) '根据输入的符号进行运算 '求普通运算 Select Case intOperator Case 0 dblNum1 = dblNum1 + dblnum2 Case 1 dblNum1 = dblNum1 - dblnum2 Case 2 dblNum1 = dblNum1 dblnum2 Case 3 If dblnum2 <> 0 Then dblNum1 = dblNum1 / dblnum2 Else MsgBox "除数不能为“0”!请重新输入除数。", vbOKOnly + vbInformation, "除零错误" Index = intOperator End If Case 6 dblNum1 = dblNum1 dblnum2 / 100 End Select End If '取得当前输入的运算符,以做下次运算 intOperator = Index strNumber = "" txtDisplay = CStr(dblNum1) '判断是否为文本框中的数字加点 If Not txtDisplay Like "" Then txtDisplayText = txtDisplayText & "" End If End Sub Private Sub cmdOtherOper_Click(Index As Integer) Dim dblNum As Double '求平方根,平方, dblNum = CDbl(Val(txtDisplayText)) Select Case Index Case 0 '验证数据是否有效 If dblNum >= 0 Then txtDisplayText = CStr(Sqr(dblNum)) Else MsgBox "负数不能开平方根!", _ vbOKOnly + vbCritical, "开平方根错误" End If Case 1 txtDisplayText = CStr(dblNum ^ 2) End Select '判断是否为文本框中的数字加点 If Not txtDisplay Like "" Then txtDisplayText = txtDisplayText & "" End If End Sub Private Sub cmdPoint_Click() strNumber = strNumber & strPoint strPoint = "" End Sub Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) '使被按下的数字键的对应按钮取得焦点 Select Case KeyCode Case 48 To 57 cmdNumber(KeyCode - 48)SetFocus Case 96 To 105 cmdNumber(KeyCode - 96)SetFocus Case Else '使按下的符号键对应的按钮取得焦点 If KeyCode = 107 Or (Shift = vbShiftMask And KeyCode = 187) Then cmdOperator(0)SetFocus cmdOperator_Click (0) ElseIf KeyCode = 109 Or KeyCode = 189 Then cmdOperator(1)SetFocus cmdOperator_Click (1) ElseIf KeyCode = 106 Or (Shift = vbShiftMask And KeyCode = 56) Then cmdOperator(2)SetFocus cmdOperator_Click (2) ElseIf KeyCode = 111 Or KeyCode = 191 Then cmdOperator(3)SetFocus cmdOperator_Click (3) ElseIf KeyCode = 13 Then cmdOperator(7)SetFocus cmdOperator_Click (7) ElseIf KeyCode = 8 Then cmdGTSetFocus Call cmdGT_Click End If End Select End Sub Private Sub Form_KeyPress(KeyAscii As Integer) '将合法的数据输入到文本框 Select Case KeyAscii Case 48 To 58 '调用数字键点击处理程序 cmdNumber_Click KeyAscii - 48 KeyAscii = 0 Case 46 '调用小数点输入 cmdPoint_Click KeyAscii = 0 Case 13 '当敲击回车时,不能触发Form的 KeyUp 事件,因此在这里设置文本框的焦点 txtDisplaySetFocus Case Else KeyAscii = 0 End Select End Sub Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer) txtDisplaySetFocus End Sub Private Sub Form_Load() strNumber = "" strPoint = "" intOperator = 7 End Sub


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13164631.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-06-14
下一篇 2023-06-14

发表评论

登录后才能评论

评论列表(0条)

保存