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

文章目录

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


一、简单计算器

新建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.rhkb.cn/news/380125.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JVM:常用工具总结

文章目录 一、jstat工具 一、jstat工具 Jstat工具是JDK自带的一款监控工具&#xff0c;可以提供各种垃圾回收、类加载、编译信息等不同的数据。使用方法为&#xff1a;jstat -gc进程ID每次统计的时间间隔&#xff08;毫秒&#xff09;统计次数。 C代表Capacity容量&#xff0c…

数据库系统概论:事务与并发一致性问题

随着网络应用的普及&#xff0c;数据库并发问题变得越来越重要。数据库并发指的是多个用户或进程同时访问和操作数据库的能力。它是数据库系统性能优化的重要方面&#xff0c;旨在提高系统的吞吐量和响应时间&#xff0c;以满足多用户同时访问数据库的需求。然而&#xff0c;这…

使用viso画流程图做PPT

参考链接&#xff1a;Visio如何快速制作流程图_哔哩哔哩_bilibili 调出框图&#xff1a; 将需要的图形拖过来 小四的话&#xff0c;是12pt 连接框图 改变线的连接类型 添加箭头 选中所有需要添加箭头的图片&#xff0c;然后选择不同样式的箭头&#xff0c;查看号他们的朝向…

测试用例的设计方法

等价类 等价类概念&#xff1a;在所有测试的数据中&#xff0c;具有某种共同特征的数据子集 边界值 边界值分析是对程序输入或输出的边界值进行测试的一种黑盒测试方法 边界值是作为等价类的补充&#xff0c;其主要区别是&#xff1a; 边界值测试设计不是从某一个等价类中…

jenkins 插件版本冲突

一、Jenkins安装git parameter 插件重启后报错与临时解决方案 cd /root/.jenkins cp config.xml config.xml.bak vim config.xml <authorizationStrategy class"hudson.security.FullControlOnceLoggedInAuthorizationStrategy"><denyAnonymousReadAcces…

邮件安全篇:邮件传输加密(SSL/TLS or STATRTTLS)

1. 前言 使用过邮件客户端的同学一定见过下面这张图。这是客户端账号配置界面&#xff0c;里面有SSL、STARTTLS选项。刚接触邮件客户端的同学肯定会有这些疑问&#xff1a;什么是SSL&#xff1f;什么是STARTTLS&#xff1f;两者有什么区别&#xff1f;具体该如何选择呢&#x…

echarts实现3d柱状效果

代码如下&#xff0c;单个的调第一个方法&#xff0c;多个柱状的调第二个方法&#xff0c;具体情况修改参数或者二次开发即可 //3d柱状图 export function getEcharts3DBar (xAxisData:string[][name1,name2,name3], data:number[][1,2,3], colorObj:IBaseObject{topStartColo…

ubuntu 更新源

前言 实现一键替换在线源 一键更新源 ubuntu 全球镜像站以下支持现有ubuntu 20&#xff0c;22&#xff0c;24 echo "Delete the default source" rm -rf /etc/apt/sources.listecho "Build a new source" cat <<EOF>>/etc/apt/sources.li…

Kafka介绍及Go操作kafka详解

文章目录 Kafka介绍及Go操作kafka详解项目背景解决方案面临的问题业界方案ELKELK方案的问题日志收集系统架构设计架构设计组件介绍将学到的技能消息队列的通信模型点对点模式 queue发布/订阅 topicKafka介绍Kafka的架构图工作流程选择partition的原则ACK应答机制Topic和数据日志…

Unity: TextMeshPro生成中文字体(附3.5k,7k,2w常用字集)

免费常用3千5&#xff0c;7千字&#xff0c;2万字中文字体包 1.选择Window/TextMeshPro/Font Asset Creator 注&#xff1a;准备字体&#xff1a;从字体库或其他来源获取中文字体文件&#xff0c;通常为.ttf、.otf或.ttc格式。最简单的方式是从Windows系统文件的Font文件夹里…

Kafka(四) Consumer消费者

一&#xff0c;基础知识 1&#xff0c;消费者与消费组 每个消费者都有对应的消费组&#xff0c;不同消费组之间互不影响。 Partition的消息只能被一个消费组中的一个消费者所消费&#xff0c; 但Partition也可能被再平衡分配给新的消费者。 一个Topic的不同Partition会根据分配…

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

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

【JavaScript 算法】最长公共子序列:字符串问题的经典解法

&#x1f525; 个人主页&#xff1a;空白诗 文章目录 一、算法原理状态转移方程初始条件 二、算法实现注释说明&#xff1a; 三、应用场景四、总结 最长公共子序列&#xff08;Longest Common Subsequence&#xff0c;LCS&#xff09;是字符串处理中的经典问题。给定两个字符串…

[算法题]买卖股票的最好时机(一)

题目链接: 买卖股票的最好时机(一) 利用贪心, 并且遍历求解, 从前往后遍历, 每遍历到一个位置就在该天卖出, 利用一个变量保存在第 i 天卖出时, 在区间 [0, i-1] 中的最小买入价格, 再用一个变量保存每次卖出的最大值, 不断遍历更新卖出的最大值即可. 图示: 题解代码: #inc…

PHP上门按摩专业版防东郊到家系统源码小程序

&#x1f486;‍♀️【尊享级体验】上门按摩专业版&#xff0c;告别东郊到家&#xff0c;解锁全新放松秘籍&#xff01;&#x1f3e0;✨ &#x1f525;【开篇安利&#xff0c;告别传统束缚】&#x1f525; 亲们&#xff0c;是不是厌倦了忙碌生活中的疲惫感&#xff1f;想要享…

问题:4、商业保险与政策性保险的主要不同之处是:经营主体不同、经营目标不同、承保机制不同。 #学习方法#其他#学习方法

问题&#xff1a;4、商业保险与政策性保险的主要不同之处是&#xff1a;经营主体不同、经营目标不同、承保机制不同。 参考答案如图所示

CH552G使用IAP下载

常见下载中的方式ISP&#xff0c;IAP&#xff0c;ICP 参考&#xff0c;CH552G中文手册&#xff0c;参考1 ISP&#xff1a;In System Programing&#xff0c;在系统编程。是常见的&#xff0c;使用软件&#xff0c;先将某个引脚&#xff08;例如boot&#xff09;连接到合适的电…

从微软发iPhone,聊聊企业设备管理

今天讲个上周的旧闻&#xff0c;微软给员工免费发iPhone。其实上周就有很多朋友私信问我&#xff0c;在知乎上邀请我回答相关话题&#xff0c;今天就抽点时间和大家一起聊聊这事。我不想讨论太多新闻本身&#xff0c;而是更想聊聊事件的主要原因——微软企业设备管理&#xff0…

私有化种子索引器bitmagnet

本文软件由网友 P家单推人 推荐 什么是 bitmagnet &#xff1f; bitmagnet 是一个自托管的 BitTorrent 索引器、DHT 爬虫、内容分类器和 torrent 搜索引擎&#xff0c;带有 Web UI、GraphQL API 和 Servarr 堆栈集成。 需要注意的是&#xff0c;该软件目前还处于 alpha 阶段。它…

深入探究理解大型语言模型参数和内存需求

概述 大型语言模型 取得了显著进步。GPT-4、谷歌的 Gemini 和 Claude 3 等模型在功能和应用方面树立了新标准。这些模型不仅增强了文本生成和翻译&#xff0c;还在多模态处理方面开辟了新天地&#xff0c;将文本、图像、音频和视频输入结合起来&#xff0c;提供更全面的 AI 解…