asp.net实现一个简单的网页计算器(能够实现加减乘除)

asp.net实现一个能够进行加减乘除)简单的网页计算器

  • 效果图
    在这里插入图片描述

  • 实现代码:
    aspx文件代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Calculator.aspx.cs" Inherits="WebApplication2.Computer2" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>网页计算器</title>
    <style type="text/css">
        .tab {
            margin: 0 0; /*使整个计算器的界面位于网页中央 */
            Height: 290px;
            width: 220px;
            
        }
        .h{
            text-align: center;
        }
        .cellCss{
            Height: 40px;
            width: 50px;
        }
        .rowCss{
            Height: 40px;
            
        }
        .but_ac {
            width: 80px;
            height: 60px;
            
            font-size: 1.2em; /*设置字体大小*/
        }

        .but {
            width: 50px;
            height: 40px;
            font-size: 1.2em;
            background-color:#e0ebeb;
        }
        .butSign {
            width: 50px;
            height: 40px;
            font-size: 1.2em;
            background-color: #a3c2c2;
        }
        .butEqual {
            width: 50px;
            height: 80px;
            font-size: 1.2em;
            background-color: #a3c2c2;
        }
        .but0 {
            width: 100px;
            height: 40px;
            font-size: 1.2em;
            background-color:#e0ebeb;
        }
        .screen {
            width: 210px;
            height: 70px;
            font-size: 1.5em;
            
           
            text-align: right; /*使用户输入的表达数从屏幕的右边开始显示*/
        }
    </style>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            
            <asp:Table ID="Table1" runat="server" CssClass="tab" CellPadding="2" CellSpacing="0" HorizontalAlign="Center" BorderStyle="Double" Caption="网页计算器">

                <asp:TableRow CssClass="rowCss" runat="server" HorizontalAlign="Center">
                    <asp:TableCell CssClass="cellCss" runat="server" ColumnSpan="4">

                        <asp:TextBox ID="TextBox1" runat="server" readOnly="true" CssClass="screen" OnTextChanged="TextBox1_TextChanged"></asp:TextBox><br />
                    </asp:TableCell>
                </asp:TableRow>

                <asp:TableRow CssClass="rowCss" runat="server" HorizontalAlign="Center">
                    <asp:TableCell CssClass="cellCss" runat="server">
                        <asp:Button ID="Button1" CssClass="butSign" runat="server" Text="AC"  OnClick="Button5_Click"/>
                    </asp:TableCell>
                    <asp:TableCell CssClass="cellCss" runat="server">
                        <asp:Button ID="Button2" runat="server" CssClass="butSign" Text="×" OnClick="Button3_Click" />
                    </asp:TableCell>
                    <asp:TableCell CssClass="cellCss" runat="server">
                        <asp:Button ID="Button3" runat="server" CssClass="butSign" Text="÷" OnClick="Button3_Click" />
                    </asp:TableCell>
                    <asp:TableCell CssClass="cellCss" runat="server">
                        <asp:Button ID="Button4" runat="server" CssClass="butSign" Text="<-"  Onclick="Button6_Click"/>
                    </asp:TableCell>
                </asp:TableRow>

                <asp:TableRow CssClass="rowCss" runat="server" HorizontalAlign="Center">
                    <asp:TableCell CssClass="cellCss" runat="server">
                        <asp:Button ID="Button5" CssClass="but" runat="server" Text="7" OnClick="Button1_Click" />
                    </asp:TableCell>
                    <asp:TableCell CssClass="cellCss" runat="server">
                        <asp:Button ID="Button6" CssClass="but" runat="server" Text="8" OnClick="Button1_Click" />
                    </asp:TableCell>
                    <asp:TableCell CssClass="cellCss" runat="server">
                        <asp:Button ID="Button7" CssClass="but" runat="server" Text="9" OnClick="Button1_Click" />
                    </asp:TableCell>
                    <asp:TableCell CssClass="cellCss" runat="server">
                        <asp:Button ID="Button8" CssClass="butSign" runat="server" Text="+" OnClick="Button3_Click" />
                    </asp:TableCell>
                </asp:TableRow>

                <asp:TableRow CssClass="rowCss" runat="server" HorizontalAlign="Center">
                    <asp:TableCell CssClass="cellCss" runat="server">
                        <asp:Button ID="Button9" CssClass="but" runat="server" Text="4" OnClick="Button1_Click" />
                    </asp:TableCell>
                    <asp:TableCell CssClass="cellCss" runat="server">
                        <asp:Button ID="Button10" CssClass="but" runat="server" Text="5" OnClick="Button1_Click" />
                    </asp:TableCell>
                    <asp:TableCell CssClass="cellCss" runat="server">
                        <asp:Button ID="Button11" CssClass="but" runat="server" Text="6" OnClick="Button1_Click" />
                    </asp:TableCell>
                    <asp:TableCell CssClass="cellCss" runat="server">
                        <asp:Button ID="Button12" CssClass="butSign" runat="server" Text="-" OnClick="Button3_Click" />
                    </asp:TableCell>
                </asp:TableRow>

                <asp:TableRow CssClass="rowCss" runat="server" HorizontalAlign="Center">
                    <asp:TableCell CssClass="cellCss" runat="server">
                        <asp:Button ID="Button13" CssClass="but" runat="server" Text="1" OnClick="Button1_Click" />
                    </asp:TableCell>
                    <asp:TableCell CssClass="cellCss" runat="server">
                        <asp:Button ID="Button14" CssClass="but" runat="server" Text="2" OnClick="Button1_Click" />
                    </asp:TableCell>
                    <asp:TableCell CssClass="cellCss" runat="server">
                        <asp:Button ID="Button15" CssClass="but" runat="server" Text="3" OnClick="Button1_Click" />
                    </asp:TableCell>
                    <asp:TableCell CssClass="cellCss" runat="server" RowSpan="2">
                        <asp:Button ID="Button20" CssClass="butEqual" runat="server" Text="="  OnClick="Button4_Click" />
                    </asp:TableCell>
                </asp:TableRow>
                <asp:TableRow CssClass="rowCss" runat="server" HorizontalAlign="Center">
                    <asp:TableCell CssClass="cellCss" runat="server" ColumnSpan="2">
                        <asp:Button ID="Button17" CssClass="but0" runat="server" Text="0" OnClick="Button1_Click" />
                    </asp:TableCell>
                    <asp:TableCell CssClass="cellCss" runat="server">
                        <asp:Button ID="Button18" CssClass="but" runat="server" Text="." OnClick="Button2_Click" />
                    </asp:TableCell>

                    
                </asp:TableRow>
            </asp:Table>
            <br />
        </div>
        <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
        <asp:Button ID="Button16" runat="server" Text="Button" OnClick="Button16_Click" />
    </form>
</body>
</html>

aspx.cs文件代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace WebApplication2
{
    public partial class Comput : System.Web.UI.Page
    {
        double result;
        protected void Page_Load(object sender, EventArgs e)
        {
        
        }
        /*实现数字运算符*/
        protected void Button1_Click(object sender, EventArgs e)
        {
            Button btn = (Button)sender;
            if (TextBox1.Text == "")
            {
                TextBox1.Text = btn.Text;
            }
            else
            {
                TextBox1.Text += btn.Text;
            }
            
        }

        protected void TextBox1_TextChanged(object sender, EventArgs e)
        {

        }
        /*实现结果运算符“=”功能*/
        protected void Button4_Click(object sender, EventArgs e)
        {
            string s_txt = TextBox1.Text;
      
            int space = s_txt.IndexOf(' ');
            
            if (space < 0)  //如果只输入一个数值后直接按等于键‘=’
            {
                TextBox1.Text = TextBox1.Text;
            }
            else
            {
                string c1 = s_txt.Substring(0, space);//获取字符串s_txt中的从0开始的n个字符,其中space为想要提取的字符个数
                char operation = Convert.ToChar(s_txt.Substring((space + 1), 1));
                string c2 = s_txt.Substring(space + 3);
                double arg1 = Convert.ToDouble(c1);
                double arg2 = Convert.ToDouble(c2);

                TextBox1.Text = result.ToString();
                switch (operation)
                {
                    case '+':
                        result = arg1 + arg2;
                        break;
                    case '-':
                        result = arg1 - arg2;
                        break;
                    case '×':
                        result = arg1 * arg2;
                        break;
                    case '÷':
                        result = arg1 / arg2;
                        break;

                    default:
                        throw new ApplicationException();
                }
                TextBox1.Text = result.ToString();
            }

        }
        /*实现小数点*/
        protected void Button2_Click(object sender, EventArgs e)
        {
            Button btn = (Button)sender;
            string sc_txt = TextBox1.Text;
            int space = sc_txt.IndexOf(' ');
            if(TextBox1.Text == "") //屏幕中还没有输入其他数字就直接按小数点
            {
                TextBox1.Text = "0.";
            }
            else
            {
                

                string str_last = sc_txt.Substring(sc_txt.Length - 1, 1);
                if (str_last == " ") //判断小数点是否为该操作数的起始点
                {
                    TextBox1.Text += "0.";
                }
                else
                {
                    /*判断第二个数是否已有小数点,避免因为第一个数值有小数点而误判*/
                    if (space < 0) //若space>0,说明已输入操作符
                    {
                        if (sc_txt.Contains("."))   // sc_txt.Contains(".")用于判断是否有指定字符
                        {

                            TextBox1.Text = TextBox1.Text;
                        }
                        else
                        {
                            TextBox1.Text += btn.Text;
                        }
                    }
                    else 
                    {                      
                        //string c1 = s_txt.Substring(0, space);//获取字符串s_txt中的从0开始的n个字符,其中space为个数
                        //char operation = Convert.ToChar(s_txt.Substring((space + 1), 1));
                        string s2 = sc_txt.Substring(space + 3);
                        if (s2.Contains("."))   // sc_txt.Contains(".")用于判断是否有指定字符
                        {

                            TextBox1.Text = TextBox1.Text;
                        }
                        else
                        {
                            TextBox1.Text += btn.Text;
                        }
                    }
                    
                }
            }
           
        }
        /*实现加减乘除运算符*/
        protected void Button3_Click(object sender, EventArgs e)
        {
            Button btn = (Button)sender;
            //要求先输入数字后,才能输入运算符
            if (TextBox1.Text == "")
            {
                TextBox1.Text = "";
            }
            else
            {
                TextBox1.Text = TextBox1.Text + " " + btn.Text + " ";
            }
                
        }
        /*实现退格按钮,点击一次退格,清除最右边的一个字符*/
        protected void Button6_Click(object sender, EventArgs e)
        {
            string s = TextBox1.Text;
            string ss;
            string s_last= s.Substring(s.Length - 1,1);
            if(s_last==" ")
            {
                 ss = s.Substring(0, s.Length - 3);
            }
            else
            {
                 ss = s.Substring(0, s.Length - 1);
            }
            
            TextBox1.Text = ss;
        }
        //全部清空键
        protected void Button5_Click(object sender, EventArgs e)
        {
            
            TextBox1.Text = "";
        }

        protected void Button16_Click(object sender, EventArgs e)
        {
            string str1=TextBox2.Text;
        }
        
    }
}

该网页计算器的功能比较简单,目前只能两个操作数的加减乘除。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值