C#计算器

最近刚刚学习C#,在师傅的要求下,写了个计算器的程序

  1 using System;
  2 using System.Collections.Generic;
  3 using System.ComponentModel;
  4 using System.Data;
  5 using System.Drawing;
  6 using System.Linq;
  7 using System.Text;
  8 using System.Threading.Tasks;
  9 using System.Windows.Forms;
 10
 11 namespace WindowsFormsApplication7
 12 {
 13
 14     public partial class Form1 : Form
 15     {
 16         public Form1()
 17         {
 18             InitializeComponent();
 19         }
 20
 21         private void button1_Click(object sender, EventArgs e)
 22         {
 23             if(sender is Button)
 24             {
 25                 Button b=(Button)sender;
 26
 27                 if (b.Name == "BtnPlus" | b.Name == "BtnJian" | b.Name == "BtnCheng" | b.Name == "BtnChu" | b.Name == "BtnPoint")//判断所按键是否为符号键
 28                 {
 29                     if (textBox1.Text.Substring(textBox1.Text.Length - 1, 1) == "+" | textBox1.Text.Substring(textBox1.Text.Length - 1, 1) == "." | textBox1.Text.Substring(textBox1.Text.Length - 1, 1) == "-" | textBox1.Text.Substring(textBox1.Text.Length - 1, 1) == "*" | textBox1.Text.Substring(textBox1.Text.Length - 1, 1) == "/")
 30                     {
 31                         textBox1.Text = textBox1.Text.Substring(0, textBox1.Text.Length - 1);//当当前字符串最后位为符号时,用当前符号替换原有符号
 32                         textBox1.Text += b.Text;
 33                     }
 34                     else
 35                     {
 36                         textBox1.Text += b.Text;//如果当前字符串最后位为非符号位,添加符号
 37                     }
 38                 }
 39                 else if(b.Name=="BtnC")//当前位为C时,清除当前文本
 40                 {
 41                     textBox1.Text="";
 42                 }
 43                 else if(b.Name=="BtnEqual")//当前按键为“=”时
 44                 {
 45
 46                     List<int> int1 = new List<int>();//此数组为了保存当前文本字符串符号位的索引
 47                     List<string> string1 = new List<string>();//此处保存当前符号位索引对应的符号
 48                     List<string> string2 = new List<string>();//此处保存符号位之间的文本信息
 49                     for (int i = 0; i<textBox1.Text.Length; i++)//巡回查找当前字符,并对三个list进行操作
 50                     {
 51
 52                         if(textBox1.Text[i]==‘+‘)
 53                         {
 54                           int1.Add(i);
 55                           string1.Add("+");
 56                         }
 57                         else if (textBox1.Text[i] == ‘-‘)
 58                         {
 59                             int1.Add(i);
 60                             string1.Add("-");
 61
 62                         }
 63                         else if (textBox1.Text[i] == ‘*‘)
 64                         {
 65                             int1.Add(i);
 66                             string1.Add("*");
 67                         }
 68                         else if (textBox1.Text[i] == ‘/‘)
 69                         {
 70                             int1.Add(i);
 71                             string1.Add("/");
 72                         }
 73
 74                     }
 75
 76                    string2.Add(textBox1.Text.Substring(0,int1[0]));
 77
 78                     for (int j = 0; j < string1.Count-1; j++)
 79                     {
 80                         string2.Add(textBox1.Text.Substring(int1[j]+1,int1[j+1]-int1[j]-1));
 81                     }
 82                     string2.Add(textBox1.Text.Substring(int1[int1.Count - 1]+1));
 83                     double P = Convert.ToDouble(string2[0]);//P为计算的最终值
 84                     for(int j=0;j<string1.Count;j++)
 85                     {
 86                         switch(string1[j])
 87                         {
 88
 89                             case "+":
 90                                 P+= Convert.ToDouble(string2[j + 1]);
 91                                 break;
 92                             case "-":
 93                                 P -= Convert.ToDouble(string2[j + 1]);
 94                                 break;
 95                             case "*":
 96                                 P *= Convert.ToDouble(string2[j + 1]);
 97                                 break;
 98                             case "/":
 99                                 P /= Convert.ToDouble(string2[j + 1]);
100                                 break;
101                         }
102                         textBox1.Text = P.ToString();
103
104                     }
105
106                 }
107
108                 else
109                 {
110                     textBox1.Text += b.Text;
111                 }
112             }
113         }
114
115         private void textBox1_TextChanged(object sender, EventArgs e)
116         {
117
118         }
119
120         private void Form1_Load(object sender, EventArgs e)
121         {
122             this.textBox1.Focus();
123         }
124     }
125 }

附上界面照片

时间: 2024-10-14 01:26:26

C#计算器的相关文章

【自动化__GUI自动化】__java__Windows应用程序识别__计算器

一.代码如下 package www.woniu.gui.one; import java.awt.AWTException; import java.awt.Robot; import java.awt.Toolkit; import java.awt.datatransfer.Clipboard; import java.awt.datatransfer.DataFlavor; import java.awt.datatransfer.Transferable; import java.aw

bzoj2242: [SDOI2011]计算器.

2242: [SDOI2011]计算器 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 4353  Solved: 1679[Submit][Status][Discuss] Description 你被要求设计一个计算器完成以下三项任务: 1.给定y,z,p,计算Y^Z Mod P 的值: 2.给定y,z,p,计算满足xy≡ Z ( mod P )的最小非负整数: 3.给定y,z,p,计算满足Y^x ≡ Z ( mod P)的最小非负整数. In

j2ee-JSP之简单计算器

来源韩顺平.j2ee视频实战教程jsp第1讲(下集) -------------------------------------------------------------------------------------------------------- 简单计算器,可以控制输入的数(仅第一个数)不能为空且不能为字符串 myCal.jsp代码 1 <!--这是计算器的界面 --> 2 <!-- 可以控制输入的数不能为空且不能为字符串 --> 3 <%@ page co

通过键盘接收数值和字符,实现计算器功能。

import java.util.Scanner; /** * @author 蓝色以太 * 通过键盘接收数值和字符,实现计算器功能. */ public class Calculator { public static void main(String[] args) { Scanner sc=new Scanner(System.in); System.out.println("请输入第一个数值:"); double num1=sc.nextDouble(); System.out

Android计算器APP练习(1)--- 界面

Android Studio 2.3.2 .参考文章:http://blog.csdn.net/like_program/article/details/51813632 1. 新建工程 MyCalculator,一路下一步,均采用默认值. 2. 按照要求修改三个xml文件内容.很多地方工程名字不一样,改成自己的名字. 3. 按照步骤修改Activity_main.XML文件,遇到问题: android:singleLine="false" 过时 暂时处理方式:删掉此行. 4. 按照步

一个简单的税利计算器(网页版)

嗯嗯,做一个简单的网页版的税率计算器,功能比较简单,但是相对比较实用.因为参考了一些其他作品,所以在计算汇率的时候习惯性的是以美元做单位.具体的功能有着较为详细的标注.仅供大家学习参考下. <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>JavaScript Loan Calculator</title>

反转波兰计算器

#include <iostream>using namespace std;typedef double stackEntry; const int overflow = 1;const int underflow = 2;const int success = 0; const int maxstack = 100;//栈的最大尺寸class stack{public: stack(); int pop(); int push(const stackEntry &item); in

JAVA编写的简单计算器

package com.hellojava.practice.test; import java.awt.BorderLayout; import java.awt.GridLayout; import java.awt.Panel; import java.awt.TextField; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; impo

winform与面向对象应用做一个计算器12月28日

代码部分: public partial class 计算器 : Form { public 计算器() { InitializeComponent(); } private double sum = 0;//存放运算结果 private string biaodashi="";//用于存放除了刚点过的运算符的前面表达式部分 private string preyunsuanfu="";//用来存放上一步运算符,用于下次点运算符的时候算上一步的结果 private

LeetCode OJ:Basic Calculator(基础计算器)

Implement a basic calculator to evaluate a simple expression string. The expression string may contain open ( and closing parentheses ), the plus + or minus sign -, non-negative integers and empty spaces . You may assume that the given expression is