【.NET全栈】ASP.NET开发Web应用——计算器

news2024/12/22 23:31:02

文章目录

  • 一、简单计算器
  • 二、复杂计算器


一、简单计算器

新建Web应用项目,窗体页面
在这里插入图片描述

窗体设计代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="AdoDemo.Default" %>

<!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>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <asp:TextBox ID="txtNum1" runat="server" Width="100px"></asp:TextBox>
            <asp:TextBox ID="txtNum2" runat="server" Width="100px"></asp:TextBox>
            <br />
            <asp:DropDownList ID="ddlOperation" runat="server">
                <asp:ListItem Text="+" Value="Addition"></asp:ListItem>
                <asp:ListItem Text="-" Value="Subtraction"></asp:ListItem>
                <asp:ListItem Text="*" Value="Multiplication"></asp:ListItem>
                <asp:ListItem Text="/" Value="Division"></asp:ListItem>
            </asp:DropDownList>

            <asp:Button ID="btnCalculate" runat="server" Text="计算" OnClick="btnCalculate_Click"/>

            <br />
            <asp:Label ID="lbResult" runat="server" Text=""></asp:Label>
        </div>
    </form>
</body>
</html>

后台代码:

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

namespace AdoDemo
{
    public partial class Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void btnCalculate_Click(object sender, EventArgs e)
        {
            double num1, num2;
            if (double.TryParse(txtNum1.Text, out num1) && double.TryParse(txtNum2.Text, out num2))
            {
                switch (ddlOperation.SelectedValue)
                {
                    case "Addition":
                        lbResult.Text = (num1 + num2).ToString();
                        break;

                    case "Subtraction":
                        lbResult.Text = (num1 - num2).ToString();
                        break;

                    case "Multiplication":
                        lbResult.Text = (num1 * num2).ToString();
                        break;

                    case "Division":
                        lbResult.Text = (num1 / num2).ToString();
                        break;
                }
            }
            else
            {
                lbResult.Text = "请输入有效数字!";
            }
        }
    }
}


运行结果:
在这里插入图片描述

二、复杂计算器

创建项目:

在这里插入图片描述

窗体设计代码(查看设计器/查看标记进行设计模式和设计代码模式切换):

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="AdoDemo.Default" %>

<!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>
        body {
            font-family: Arial, sans-serif;
            background-color: #f0f0f0;
            display: flex;
            justify-content: center;
            align-items: center;
            height: 100vh;
            margin: 0;
        }
        .calculator {
            background-color: #fff;
            border-radius: 10px;
            box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
            padding: 20px;
            width: 300px;
        }
        .display {
            background-color: #222;
            color: #fff;
            font-size: 2em;
            padding: 10px;
            text-align: right;
            border-radius: 5px;
            margin-bottom: 10px;
        }
        .buttons {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 10px;
        }
        .button {
            background-color: #f0f0f0;
            border: none;
            border-radius: 5px;
            font-size: 1.5em;
            padding: 20px;
            cursor: pointer;
            transition: background-color 0.3s;
        }
        .button:hover {
            background-color: #ddd;
        }
        .button.operator {
            background-color: #ff9500;
            color: #fff;
        }
        .button.operator:hover {
            background-color: #e08900;
        }
    </style>
</head>
<body>
    <form id="form1" runat="server">
        <div class="calculator">
            <asp:TextBox ID="txtDisplay" runat="server" CssClass="display" ReadOnly="true" Width="292px"></asp:TextBox>
            <div class="buttons">
                <asp:Button ID="btnClear" runat="server" Text="C" CssClass="button" OnClick="btnClear_Click" />
                <asp:Button ID="btnBackspace" runat="server" Text="←" CssClass="button" OnClick="btnBackspace_Click" />
                <asp:Button ID="btnPercent" runat="server" Text="%" CssClass="button" OnClick="btnPercent_Click" />
                <asp:Button ID="btnDivide" runat="server" Text="÷" CssClass="button operator" OnClick="btnOperator_Click" />
                <asp:Button ID="btn7" runat="server" Text="7" CssClass="button" OnClick="btnNumber_Click" />
                <asp:Button ID="btn8" runat="server" Text="8" CssClass="button" OnClick="btnNumber_Click" />
                <asp:Button ID="btn9" runat="server" Text="9" CssClass="button" OnClick="btnNumber_Click" />
                <asp:Button ID="btnMultiply" runat="server" Text="×" CssClass="button operator" OnClick="btnOperator_Click" />
                <asp:Button ID="btn4" runat="server" Text="4" CssClass="button" OnClick="btnNumber_Click" />
                <asp:Button ID="btn5" runat="server" Text="5" CssClass="button" OnClick="btnNumber_Click" />
                <asp:Button ID="btn6" runat="server" Text="6" CssClass="button" OnClick="btnNumber_Click" />
                <asp:Button ID="btnSubtract" runat="server" Text="-" CssClass="button operator" OnClick="btnOperator_Click" />
                <asp:Button ID="btn1" runat="server" Text="1" CssClass="button" OnClick="btnNumber_Click" />
                <asp:Button ID="btn2" runat="server" Text="2" CssClass="button" OnClick="btnNumber_Click" />
                <asp:Button ID="btn3" runat="server" Text="3" CssClass="button" OnClick="btnNumber_Click" />
                <asp:Button ID="btnAdd" runat="server" Text="+" CssClass="button operator" OnClick="btnOperator_Click" />
                <asp:Button ID="btn0" runat="server" Text="0" CssClass="button" OnClick="btnNumber_Click" />
                <asp:Button ID="btnDecimal" runat="server" Text="." CssClass="button" OnClick="btnDecimal_Click" />
                <asp:Button ID="btnEquals" runat="server" Text="=" CssClass="button operator" OnClick="btnEquals_Click" />
            </div>
        </div>
    </form>
</body>
</html>

后台代码:

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

namespace AdoDemo
{
    public partial class Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                ViewState["CurrentValue"] = "0";
                ViewState["Operator"] = string.Empty;
                ViewState["FirstOperand"] = string.Empty;
            }
        }

        protected void btnNumber_Click(object sender, EventArgs e)
        {
            string number = ((Button)sender).Text;
            if (ViewState["CurrentValue"].ToString() == "0")
            {
                ViewState["CurrentValue"] = number;
            }
            else
            {
                ViewState["CurrentValue"] += number;
            }
            txtDisplay.Text = ViewState["CurrentValue"].ToString();
        }

        protected void btnOperator_Click(object sender, EventArgs e)
        {
            ViewState["FirstOperand"] = ViewState["CurrentValue"];
            ViewState["Operator"] = ((Button)sender).Text;
            ViewState["CurrentValue"] = "0";
        }

        protected void btnEquals_Click(object sender, EventArgs e)
        {
            double firstOperand = Convert.ToDouble(ViewState["FirstOperand"]);
            double secondOperand = Convert.ToDouble(ViewState["CurrentValue"]);
            string operatorSymbol = ViewState["Operator"].ToString();

            double result = 0;
            switch (operatorSymbol)
            {
                case "+":
                    result = firstOperand + secondOperand;
                    break;
                case "-":
                    result = firstOperand - secondOperand;
                    break;
                case "×":
                    result = firstOperand * secondOperand;
                    break;
                case "÷":
                    result = firstOperand / secondOperand;
                    break;
            }

            ViewState["CurrentValue"] = result.ToString();
            txtDisplay.Text = result.ToString();
        }

        protected void btnClear_Click(object sender, EventArgs e)
        {
            ViewState["CurrentValue"] = "0";
            ViewState["Operator"] = string.Empty;
            ViewState["FirstOperand"] = string.Empty;
            txtDisplay.Text = "0";
        }

        protected void btnBackspace_Click(object sender, EventArgs e)
        {
            string currentValue = ViewState["CurrentValue"].ToString();
            if (currentValue.Length > 1)
            {
                ViewState["CurrentValue"] = currentValue.Substring(0, currentValue.Length - 1);
            }
            else
            {
                ViewState["CurrentValue"] = "0";
            }
            txtDisplay.Text = ViewState["CurrentValue"].ToString();
        }

        protected void btnPercent_Click(object sender, EventArgs e)
        {
            double currentValue = Convert.ToDouble(ViewState["CurrentValue"]);
            ViewState["CurrentValue"] = (currentValue / 100).ToString();
            txtDisplay.Text = ViewState["CurrentValue"].ToString();
        }

        protected void btnDecimal_Click(object sender, EventArgs e)
        {
            if (!ViewState["CurrentValue"].ToString().Contains("."))
            {
                ViewState["CurrentValue"] += ".";
            }
            txtDisplay.Text = ViewState["CurrentValue"].ToString();
        }
    }
}






运行结果:

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1936623.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

打造智慧图书馆:AI视频技术助力图书馆安全与秩序管理

一、背景需求 随着信息技术的飞速发展&#xff0c;图书馆作为重要的知识传播场所&#xff0c;其安全管理也面临着新的挑战。为了确保图书馆内书籍的安全、维护读者的阅读环境以及应对突发事件&#xff0c;TSINGSEE青犀旭帆科技基于EasyCVR视频监控汇聚平台技术与AI视频智能分析…

《0基础》学习Python——第十九讲__爬虫\<2>

一、用get请求爬取一般网页 首先由上节课我们可以找到URL、请求方式、User-Agent以及content-type 即&#xff1a;在所在浏览器页面按下F12键&#xff0c;之后点击网路-刷新&#xff0c;找到第一条双击打开标头即可查看上述所有内容&#xff0c;将上述URL、User-Agent所对应的…

WGS84经纬度坐标 GCJ02火星坐标 BD09百度坐标互相转换

WGS84经纬度坐标 GCJ02火星坐标 BD09百度坐标互相转换 背景&#xff1a;uniapp做的微信小程序&#xff0c;使用到了相机拍照并获取位置坐标信息&#xff1b;在腾讯地图上展示坐标点位置信息&#xff1b; 由于业务需要我们的PC端用的不是腾讯地图&#xff0c;需要使用WGS84坐标或…

目标检测 | YOLO v1、YOLO v2、YOLO v3与YOLO v3 SPP理论讲解

☀️教程&#xff1a;霹雳吧啦Wz ☀️链接&#xff1a;https://www.bilibili.com/video/BV1yi4y1g7ro?p1&vd_sourcec7e390079ff3e10b79e23fb333bea49d 一、YOLO v1 针对于two-stage目标检测算法普遍存在的运算速度慢的缺点&#xff0c;YOLO创造性的提出了one-stage目标检测…

Jupyter notebook如何快速的插入一张图片?如何控制插入图片的缩放、靠左展示(ChatGPT)

在Jupyter Notebook中&#xff0c;你可以使用Markdown语法快速插入图片&#xff0c;并且可以通过HTML标签来控制图片的展示方式和缩放。 注意&#xff1a;以下所有操作都有一个前提&#xff0c;即选择Cell-CellType-Markdown 1. 快速插入图片 要在Jupyter Notebook中插入图…

【Langchain大语言模型开发教程】模型、提示和解析

&#x1f517; LangChain for LLM Application Development - DeepLearning.AI 学习目标 1、使用Langchain实例化一个LLM的接口 2、 使用Langchain的模板功能&#xff0c;将需要改动的部分抽象成变量&#xff0c;在具体的情况下替换成需要的内容&#xff0c;来达到模板复用效…

JavaEE (1)

web开发概述 所谓web开发,指的是从网页中向后端程序发送请求,与后端程序进行 交互. 流程图如下 Web服务器是指驻留于因特网上某种类型计算机的程序. 可以向浏览器等Web客户端提供文档&#xff0c;也可以放置网站文件&#xff0c;让全世界浏览&#xff1b; 它是一个容器&…

新时代:让中药煎制自动化、信息化

新时代&#xff1a;让中药煎制自动化、信息化 现代医疗领域&#xff0c;科技创新始终在为传统医疗服务带来革命性的改进。某行业医疗巨头&#xff0c;一家拥有国家专利100多项的创新型企业&#xff0c;不仅推出了多款中药煎药包装设备&#xff0c;还自主研发了一系列医疗健康体…

tailwindcss——vscode好用的插件

tailwindcss极大的减少了css的书写&#xff0c;提升了开发效率。这个插件也特别好用。 Tailwind CSS IntelliSense

【电子数据取证】关于CoblatStrike的流量特征取证分析

文章关键词&#xff1a;电子数据取证、流量分析、流量取证 一、前言 近期&#xff0c;网络安全团队在对公司内部网络进行安全检查时发现&#xff0c;有五台电脑出现了不明的网络流量。这些电脑并没有执行任何明显的操作&#xff0c;但是网络流量却显示它们正在向外传输数据。…

如何使用 Java 框架监控和反馈持续交付状态

如何使用 Java 框架监控和反馈持续交付状态 在持续交付 (CD) 流程中&#xff0c;及时监控和反馈是至关重要的。通过实时获取有关构建、部署和测试的反馈&#xff0c;团队可以迅速发现并解决问题&#xff0c;从而改善软件质量和缩短交付周期。 Java 框架 Java 生态系统提供了…

django学习入门系列之第四点《写JavaScript的位置选择》

文章目录 往期回顾 位置1&#xff1a;head标签的尾部位置2&#xff1a;body标签的尾部 一般推荐放位置二&#xff08;无论是文件导入还是直接写&#xff09; 往期回顾 1.【快速开发网站】 2.【浏览器能识别的标签1】 3.【浏览器能识别的标签2】 4.【浏览器能识别的标签3】 5…

Linux云计算 |【第一阶段】SERVICES-DAY4

主要内容&#xff1a; DHCP概述、PXE批量装机、配置PXE引导、Kickstart自动应答、Cobbler装机平台 一、DHCP服务概述及原理 DHCP动态主机配置协议&#xff08;Dynamic Host Configuration Protocol&#xff09;&#xff0c;由IETF&#xff08;Internet网络工程师任务小组&…

最新!CSSCI(2023-2024)期刊目录公布!

【SciencePub学术】据鲁迅美术学院7月16日消息&#xff0c;近日&#xff0c;南京大学中国社会科学研究评价中心公布了中文社会科学引文索引&#xff08;CSSCI&#xff09;&#xff08;2023—2024&#xff09;数据库最新入选目录。 C刊一般指CSSCI来源期刊&#xff0c;即南大核心…

C++ | Leetcode C++题解之第263题丑数

题目&#xff1a; 题解&#xff1a; class Solution { public:bool isUgly(int n) {if (n < 0) {return false;}vector<int> factors {2, 3, 5};for (int factor : factors) {while (n % factor 0) {n / factor;}}return n 1;} };

GPT-4o mini 比gpt-3.5更便宜(2024年7月18日推出)

https://openai.com/index/gpt-4o-mini-advancing-cost-efficient-intelligence/ 人工智能学习网站 https://chat.xutongbao.top

CTFshow--web--xss

目录 web316 web317~319 web320~326 web327 web328 web329 web330 web331 web332 web333 先在自己的服务器写上代码 <?php$content $_GET[1]; if(isset($content)){file_put_contents(flag.txt,$content); }else{echo no data input; }要拿到管理员的cookie , 而…

BUUCTF逆向wp [MRCTF2020]Xor

第一步 查壳&#xff0c;该题是32位&#xff0c;无壳。 第二步 跟进main&#xff0c;发现反汇编不了 通过下图我们可以发现一串类似字符串的东西 第三步 我们看一下汇编 我们可以得到这些信息&#xff1a;flag的长度为27&#xff08;下面是对本条指令cmp edx 27指令的应用…

隐语隐私计算实训营「联邦学习」第 3 课:隐语架构概览

【隐私计算实训营】是蚂蚁集团隐语开源社区出品的线上课程&#xff0c;自实训营上线以来&#xff0c;获得行业内外广泛关注&#xff0c;吸引上千余名开发者报名参与。本次暑期夏令营课程中&#xff0c;除了最新上线的「联邦学习系列」&#xff0c;还包含了「隐私保护数据分析」…

TypeScript 教程(十):项目配置、代码质量与前端框架集成

目录 前言回顾类型声明文件与异步编程1. tsconfig.json 高级配置a. 基本配置b. 高级配置选项 2. 使用 Webpack 构建 TypeScript 项目a. 安装依赖b. 配置 Webpack 3. 使用 Babel 编译 TypeScripta. 安装依赖b. 配置 Babelc. 配置 Webpack 使用 Babel 4. 使用 ESLint 和 TSLinta.…