C#之简易计算器设计
在学完了C#的方法和数据类型之后,写了一个简易的计算器的界面。本次界面具备加减乘除求余等五项运算。不过存在一点缺陷就是无法判断输入数据的类型,是整数还是小数,由于目前所学知识有限,等学到以后再进行完善。
本设计源代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace MathsOperators
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
int OperandFlag=0;
public MainWindow()
{
InitializeComponent();
}
private void Quit_Click(object sender, RoutedEventArgs e)
{
Close();//关闭WPF窗口
}
/*编写加法的方法*/
private void AddStractValue()
{
int Left = int.Parse(LeftNum.Text);
int Right = int.Parse(RightNum.Text);
int ShowResult = Left + Right;
Expresssion.Text ="("+ Left+")" + "+" +"("+ Right+")";
Result.Text = ShowResult.ToString();
}
/*编写减法的方法*/
private void SubStractValue()
{
int Left = int.Parse(LeftNum.Text);
int Right = int.Parse(RightNum.Text);
int ShowResult = Left - Right;
Expresssion.Text = "(" + Left + ")" + "-" + "(" + Right + ")";
Result.Text = ShowResult.ToString();
}
/*编写乘法的方法*/
private void MultStractValue()
{
int Left = int.Parse(LeftNum.Text);
int Right = int.Parse(RightNum.Text);
int ShowResult = Left * Right;
Expresssion.Text = "(" + Left + ")" + "*" + "(" + Right + ")";
Result.Text = ShowResult.ToString();
}
/*编写除法的方法*/
private void DivStractValue()
{
int Left = int.Parse(LeftNum.Text);
int Right = int.Parse(RightNum.Text);
float ShowResult = (float)(Left) / Right;
Expresssion.Text = "(" + Left + ")" + "/" + "(" + Right + ")";
Result.Text = ShowResult.ToString();
}
/*编写求余法的方法*/
private void RemStractValue()
{
int Left = int.Parse(LeftNum.Text);
int Right = int.Parse(RightNum.Text);
int ShowResult = Left % Right;
Expresssion.Text = "(" + Left + ")" + "%" + "(" + Right + ")";
Result.Text = ShowResult.ToString();
}
private void Calculate_Click(object sender, RoutedEventArgs e)
{
switch (OperandFlag)
{
case 1: AddStractValue(); break;
case 2: SubStractValue(); break;
case 3: MultStractValue(); break;
case 4: DivStractValue(); break;
case 5: RemStractValue(); break;
default: break;
}
}
private void Add_Checked(object sender, RoutedEventArgs e)
{
OperandFlag = 1;
}
private void Sub_Checked(object sender, RoutedEventArgs e)
{
OperandFlag = 2;
}
private void Mult_Checked(object sender, RoutedEventArgs e)
{
OperandFlag = 3;
}
private void Div_Checked(object sender, RoutedEventArgs e)
{
OperandFlag = 4;
}
private void Remain_Checked(object sender, RoutedEventArgs e)
{
OperandFlag = 5;
}
private void LeftNum_TextChanged(object sender, TextChangedEventArgs e)
{
}
}
}
本设计界面如下:

部分计算如下:
99+12=111;

(99)-(-18)=117

99*(-18)=-1782

99/(-18)=-5.5

99%(-18)=9

C#之简易计算器设计的更多相关文章
- C#Windows Form简易计算器实现(上)
第一次写博客,来分享一个简易计算器的代码.作为一名准程序员,就是要多写代码才能孰能生巧.重视基础知识才能飞的更快更高以及更稳. 代码可能会写的很糟糕,不完美不安全之处希望发现的越多越好 c#编写计算器 ...
- 课堂限时训练-简易计算器·mini dc
课堂限时训练-简易计算器·mini dc 实验题目 采用后缀表达式法,设计一个建议计算器,实现+.-.*./四种运算. 代码实现 码云链接 关键代码部分及结果如下: 实验分析 首先,分析一下后缀表达式 ...
- Qt、C++ 简易计算器
Qt.C++实现简易计算器: 以下内容是我实现这个简易计算器整个过程,其中包括我对如何实现这个功能的思考.中途遇到的问题.走过的弯路 整个实现从易到难,计算器功能从简单到复杂,最开始设计的整个实现步骤 ...
- 自制c#简易计算器
这是一个课堂作业,我觉得作为一个简易的计算器不需要态度复杂的东西,可能还有一些bug,有空再慢慢加强. using System;using System.Collections.Generic;us ...
- 剖析简易计算器带你入门微信小程序开发
写在前面,但是重点在后面 这是教程,也不是教程. 可以先看Demo的操作动图,看看是个什么玩意儿,GitHub地址(https://github.com/dunizb/wxapp-sCalc) 自从微 ...
- PHP学习笔记02——简易计算器
<!DOCTYPE html> <html> <head> <title>PHP简易计算器</title> </head> &l ...
- JavaScript之简易计算器
<head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8&quo ...
- 菜鸟学习Struts——简易计算器
这是学习Struts的一个简单的例子文件结构如下: 1.配置Struts环境 2.新建input.jsp,success.jsp,error.jsp input.jsp代码如下: <%@ pag ...
- Python之实现一个简易计算器
自己动手写计算器 一.功能分析 用户输入一个类似这样 3*( 4+ 50 )-(( 100 + 40 )*5/2- 3*2* 2/4+9)*((( 3 + 4)-4)-4) 这样的表达式,假设表达式里 ...
随机推荐
- IOS 小新兵
2017-07-02 lipo -info BaiduOAuthSDK.a 查看a文件支持的架构 第一个坎: 报错: 未找到模块baiduLogin对应的类BaiduLoginModule.若是自 ...
- linux和普通文本的换行问题
情景一: 普通文本 vim操作换行 :%s#xxx#\n#g 情景二: linux环境换行 vim :%s#xxx#\r#g
- Selenium+python入门
在 WebDriver 中, 将这些关于鼠标操作的方法封装在 ActionChains 类提供 ActionChains 类提供了鼠标操作的常用方法: perform(): 执行所有 ActionCh ...
- css中的属性
一.字体 1.字体类型 font-family "Microsoft YaHei","微软雅黑" 2.字体大小 font-size 默认16px 3.字体字重 ...
- 2018.11.28 poj3294 Life Forms(后缀数组+双指针)
传送门 后缀数组经典题目. 我们先把所有的字符串都接在一起. 然后求出hththt数组和sasasa数组. 然后对于sasasa数组跑双指针统计答案. 如果双指针包括进去的属于不同字符串的数量达到了题 ...
- openstack网络基本概念(转)
OpenStack的Neutron能够管理OpenStack环境中的虚拟 网络基础设施(VNI).和物理网络基础设施(PNI). OpenStack的Neutron同意租户创建虚拟网络拓扑结构.包括的 ...
- java术语(PO/POJO/VO/BO/DAO/DTO)
PO(persistant object) 持久对象在o/r 映射的时候出现的概念,如果没有o/r映射,就没有这个概念存在了.通常对应数据模型(数据库),本身还有部分业务逻辑的处理.可以看成是与数据库 ...
- thinkphp3.2.3 数据库增删改查
版本3.23 1. 多表查找一条数据 M('a表')->join("b表 on b表.id=a表.id")->where('条件')->find(); 2.查找一 ...
- SQL编写-谁和谁是好朋友
problem: 用户表 姓名 张三 李四 王五 好友表 姓名 好友姓名 张三 李四 张三 王五 李四 张三 用户表里面姓名必须在好友表里面互加为好友,请问如何找出还没有加为好友的姓名 ...
- 使用MyGeneration创建模板:介绍(翻译)
原文信息 原文地址 原文作者信息: Justin Greenwood MyGeneration Software http://www.mygenerationsoftware.com April 2 ...