0 0

c#写的计算器,,为什么不出计算结果呀3

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 计算器
{
    class Program
    {
        static void Main(string[] args)
        {
            //两个要计算的数
            double x, y;
            //计算结果
            double result = 0;
            //运算符
            string strOp = "";
            Console.WriteLine("请输入一个数:");
            x = double.Parse(Console.ReadLine());
            Console.WriteLine("请输入另一个数:");
            y = double.Parse(Console.ReadLine());
            Console.WriteLine("请选择要进行的运算:");
            Console.WriteLine("-- 1<加法>2<减法>3<乘法>4<除法>");
            //接受运算符
            string o = Console.ReadLine();
            //判断运算符是否为空
            if (o.Trim ().Length >0)
            {
                //使用switch语句,来判断该进行何种运算
                switch (o)
                {
                    //加法
                    case"1":
                        result = Add(x, y);
                        strOp = "+";
                        break;
                        //减法
                    case "2":
                           result = Subtratract(x,y);
                           strOp = "-";
                           break ;
                        //乘法
                    case"3":
                            result = Multiply(x,y);
                            strOp = "*";
                            break ;
                        //除法
                    case"4":
                            result = Divide(x,y);
                            strOp = "/";
                            break;
                    default :
                            Console.WriteLine("选择运算符错误");
                            return;

                }
                Console .WriteLine ("正在计算");
                //输出一个简单的进度条
                for (int i= 1;i<=15;i++)
                {
                    Console.WriteLine (".");
                    System.Threading.Thread.Sleep (500);
                }
                Console .WriteLine ("\n\n计算结果如下:");
                    Console .WriteLine ("\n{0}{1}{2}={3}\n",x,strOp,y,result);

            }
            else
            {
                //如果计算符为空,则输入错误提示
                Console.WriteLine ("您的输入有误!");
            }

        }
        ///<summary>
        ///加法计算
        ///</summary>
        ///<param name ="n1">加数</param>
        ///<param name = "n2">另一个加数</param>
        ///<returns>计算结果:和</returns>
        static double Add(double n1,double n2)
        {
            return n1+n2;
        }
        ///<summary>
        ///减法计算
        ///</summary>
        ///<param name ="n1">被减数</param>
        ///<param name = "n2">减数</param>
        ///<returns>计算结果:差</returns>
        static double Subtratract(double n1, double n2)
        {
            return n1-n2;
        }
          ///<summary>
        ///乘法计算
        ///</summary>
        ///<param name ="n1">因数</param>
        ///<param name = "n2">另一因数</param>
        ///<returns>计算结果:积</returns>
        static double Multiply(double n1,double n2)
        {
            return n1*n2;
        }
          ///<summary>
        ///除法计算
        ///</summary>
        ///<param name ="n1">被除数</param>
        ///<param name = "n2">除数</param>
        ///<returns>计算结果:商</returns>
       static double Divide(double n1,double n2)
        {
            return n1/n2;
        }
    }
}
2011年4月16日 12:56

3个答案 按时间排序 按投票排序

0 0

我把代码给你贴回来。首先告诉你,这段代码是能正确运行的。
希望你能从中找出差异来,并有所感悟。

class ConsoleCounter
    {
        static void Main(string[] args)
        {
            //两个要计算的数 
            double x, y;
            //计算结果 
            double result = 0;
            //运算符 
            string strOp = "";
            Console.WriteLine("请输入一个数:");
            x = double.Parse(Console.ReadLine());
            Console.WriteLine("请输入另一个数:");
            y = double.Parse(Console.ReadLine());
            Console.WriteLine("请选择要进行的运算:");
            Console.WriteLine("-- 1<加法>2<减法>3<乘法>4<除法>");
            //接受运算符 
            string o = Console.ReadLine();
            //判断运算符是否为空 
            if (o.Trim().Length > 0)
            {
                //使用switch语句,来判断该进行何种运算 
                switch (o)
                {
                    //加法 
                    case "1":
                        result = Add(x, y);
                        strOp = "+";
                        break;
                    //减法 
                    case "2":
                        result = Subtratract(x, y);
                        strOp = "-";
                        break;
                    //乘法 
                    case "3":
                        result = Multiply(x, y);
                        strOp = "*";
                        break;
                    //除法 
                    case "4":
                        result = Divide(x, y);
                        strOp = "/";
                        break;
                    default:
                        Console.WriteLine("选择运算符错误");
                        return;

                }
                Console.WriteLine("正在计算");
                //输出一个简单的进度条 
                for (int i = 1; i <= 15; i++)
                {
                    Console.WriteLine(".");
                    System.Threading.Thread.Sleep(500);
                }
                Console.WriteLine("\n\n计算结果如下:");
                Console.WriteLine("\n{0}{1}{2}={3}\n", x, strOp, y, result);

            }
            else
            {
                //如果计算符为空,则输入错误提示 
                Console.WriteLine("您的输入有误!");
            }

        }
        ///<summary> 
        ///加法计算 
        ///</summary> 
        ///<param name ="n1">加数</param> 
        ///<param name = "n2">另一个加数</param> 
        ///<returns>计算结果:和</returns> 
        static double Add(double n1, double n2)
        {
            return n1 + n2;
        }
        ///<summary> 
        ///减法计算 
        ///</summary> 
        ///<param name ="n1">被减数</param> 
        ///<param name = "n2">减数</param> 
        ///<returns>计算结果:差</returns> 
        static double Subtratract(double n1, double n2)
        {
            return n1 - n2;
        }
        ///<summary> 
        ///乘法计算 
        ///</summary> 
        ///<param name ="n1">因数</param> 
        ///<param name = "n2">另一因数</param> 
        ///<returns>计算结果:积</returns> 
        static double Multiply(double n1, double n2)
        {
            return n1 * n2;
        }
        ///<summary> 
        ///除法计算 
        ///</summary> 
        ///<param name ="n1">被除数</param> 
        ///<param name = "n2">除数</param> 
        ///<returns>计算结果:商</returns> 
        static double Divide(double n1, double n2)
        {
            return n1 / n2;
        }
    } 

2011年4月16日 22:19
0 0

再给你贴一个Java计算器(帮网友写的简陋+-*/计算器):

package cn.com.chat;

import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Dimension;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.Panel;
import java.awt.TextField;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class Calculator {
	
	//运算符
	char flag ;
	//两个进行运算的数
    String num1 = "";
    String num2 = "";
	
	private Frame frame;

	private String[] name = { "MC", "MR", "MS", "M+", "M-", "←", "CE", "C", "±",
			"√", "7", "8", "9", "/", "%", "4", "5", "6", "*", "1/x", "1",
			"2", "3", "-" };

	private Button[] button = new Button[name.length];

	private TextField tf;

	private Panel centerpanel,northpanel,southpanel;//定义3个panel  中 北 南

	private GridLayout gLayout,gLayout2;


	public  void doCalc() {
		frame = new Frame("计算器");
		//		frame.setLayout(null);//取消布局管理器

		gLayout = new GridLayout(5,5,3,3);
		northpanel = new Panel();//北
		centerpanel = new Panel();//中
		southpanel = new Panel();
		tf = new TextField(25);//定义文本框的宽度丶
		northpanel.add(tf);//把文本框添加到panel中以便于定位丶
		frame.add(northpanel,BorderLayout.NORTH);//文本框定位北 

		MyActionListener mal = new MyActionListener();
		for (int i = 0; i < name.length; i++) {
			button[i] = new Button(name[i]);
			button[i].addActionListener(mal);
			centerpanel.add(button[i]);
		}

		Button	b1 = new Button();
		Button	b2 = new Button();
		Button	b3 = new Button();
		Button	b4 = new Button();

		b1 = new Button("       0      ");
		b2 = new Button("       .      ");
		b3 = new Button("       +      ");
		b4 = new Button("       =      ");
		b1.addActionListener(mal);
		b2.addActionListener(mal);
		b3.addActionListener(mal);
		b4.addActionListener(mal);
		
		southpanel.add(b1);
		southpanel.add(b2);
		southpanel.add(b3);
		southpanel.add(b4);

		centerpanel.setLayout(gLayout);//布局
		frame.add(centerpanel,BorderLayout.CENTER);
		frame.add(southpanel,BorderLayout.SOUTH);
		frame.pack();      //frame的大小自动生成
		frame.setResizable(false);
		frame.setVisible(true);
		/*
		 * 实现窗口关闭
		 */
		frame.addWindowListener(new WindowAdapter() {
			
				public void windowClosing(WindowEvent arg0) {
					frame.dispose();
				}
			}
					);
		/*
		 * 让frame界面在屏幕中央显示
		 */
		Dimension d = Toolkit.getDefaultToolkit().getScreenSize();//屏幕大小!
		frame.setLocation(d.width/2 - frame.getWidth()/2, d.height/2 - frame.getHeight()/2);

	}

	
	private class MyActionListener implements ActionListener{

		public void actionPerformed(ActionEvent e) {
			Button button = (Button)e.getSource();
			//获取按键的值
			String text = button.getLabel().trim();
			if (text.equals("+")) {
				flag = '+';
				num1 = tf.getText();
				tf.setText("");
			}else if (text.equals("-")) {
				flag = '-';
				num1 = tf.getText();
				tf.setText("");
			}else if (text.equals("*")) {
				flag = '*';
				num1 = tf.getText();
				tf.setText("");
			}else if (text.equals("/")) {
				flag = '/';
				num1 = tf.getText();
				tf.setText("");
			}else if (text.equals("=")) {
				num2 = tf.getText().trim();
				tf.setText(getResult(flag, Double.valueOf(num1),Double.valueOf(num2)) +"");
			}else if(text.charAt(0) >= '0' && text.charAt(0) <= '9'  ){
				
				if (tf.getText().equals("0.0")) {
					tf.setText( text);
				}else {
					tf.setText(tf.getText() + text);
				}
				
				
			}else if(text.equals(".")){
				tf.setText(tf.getText() + text);
			}
			else if (text.equals("C")) {
				tf.setText("0.0");
				num1 = "";
				num2 = "";
			}
			
			
		}

	}
	
	/**
	 * @author Java
	 * @version 1.0
	 * @param a
	 * @param b
	 * @return  sum
	 */
	@SuppressWarnings("unused")
	private double getResult(char flag,double num1,double num2)
    {
            double result = 0;
            switch (flag)
            { 
                case '+': result = num1 + num2;break;
                case '-': result = num1 - num2; break;
                case '*': result = num1 * num2; break;
                case '/': result = num1 / num2; break;

            }
            return result;
    }
	
	public static void main(String[] args) {
		new Calculator().doCalc();
	}

}




只是简单的+ - * / 其他没去做 , 关键的就是两个数:点+ - * / 的时候,要记录输入的数,然后就是点完+ - * / 之后的那个数, 两者去处理 结果就出来了

2011年4月16日 21:18
0 0

用控制台程序来写计时算器   给你贴个窗体的计算器

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace calculator
{
    public partial class Form1 : Form
    {
        char FH;
        double num1 = 0;
        double num2 = 0;
        public Form1()
        {
            InitializeComponent();
        }

        private void button14_Click(object sender, EventArgs e)
        {
            num1 = Convert.ToDouble(this.textBox1.Text);
            this.textBox1.Text = "";
            FH = '-';
        }

        private void button6_Click(object sender, EventArgs e)
        {
            if (textBox1.Text.Length < 32)
            {
                this.textBox1.AppendText("1");
                this.textBox1.Focus();
            }
        }

        private void button5_Click(object sender, EventArgs e)
        {
            if (textBox1.Text.Length < 32)
            {
                this.textBox1.AppendText("2");
                this.textBox1.Focus();
            }
        }

        private void button4_Click(object sender, EventArgs e)
        {
            if (textBox1.Text.Length < 32)
            {
                this.textBox1.AppendText("3");
                this.textBox1.Focus();
            }
        }

        private void button9_Click(object sender, EventArgs e)
        {
            if (textBox1.Text.Length < 32)
            {
                this.textBox1.AppendText("4");
                this.textBox1.Focus();
            }
        }

        private void button8_Click(object sender, EventArgs e)
        {
            if (textBox1.Text.Length < 32)
            {
                this.textBox1.AppendText("5");
                this.textBox1.Focus();
            }
        }

        private void button7_Click(object sender, EventArgs e)
        {
            if (textBox1.Text.Length < 32)
            {
                this.textBox1.AppendText("6");
                this.textBox1.Focus();
            }
        }

        private void button10_Click(object sender, EventArgs e)
        {
            if (textBox1.Text.Length < 32)
            {
                this.textBox1.AppendText("7");
                this.textBox1.Focus();
            }
        }

        private void button11_Click(object sender, EventArgs e)
        {
            if (textBox1.Text.Length < 32)
            {
                this.textBox1.AppendText("8");
                this.textBox1.Focus();
            }
        }

        private void button12_Click(object sender, EventArgs e)
        {
            if (textBox1.Text.Length < 32)
            {
                this.textBox1.AppendText("9");
                this.textBox1.Focus();
            }
        }

        private void button3_Click(object sender, EventArgs e)
        {
            if (textBox1.Text.Length < 32)
            {
                this.textBox1.AppendText("0");
                this.textBox1.Focus();
            }
        }

        private void button17_Click(object sender, EventArgs e)
        {
            this.textBox1.Text = "";
            this.textBox1.Focus();
        }


        private void button13_Click(object sender, EventArgs e)
        {
            num1 = Convert.ToDouble(this.textBox1.Text);
            this.textBox1.Text = "";
            FH = '+';
        }

        private void button1_Click(object sender, EventArgs e)
        {
            num2 = Convert.ToDouble(this.textBox1.Text);
            this.textBox1.Text = this.Getnumble() + "";
        }
        private double Getnumble()
        {
            double s = 0;
            switch (FH)
            { 
                case '+': s = num1 + num2;break;
                case '-': s = num1 - num2; break;
                case '*': s = num1 * num2; break;
                case '/': s = num1 / num2; break;

            }
            return s;
        }

        private void button15_Click(object sender, EventArgs e)
        {
            num1 = Convert.ToDouble(this.textBox1.Text);
            this.textBox1.Text = "";
            FH = '*';
        }

        private void button16_Click(object sender, EventArgs e)
        {
            num1 = Convert.ToDouble(this.textBox1.Text);
            this.textBox1.Text = "";
            FH = '/';
        }

        private void button2_Click(object sender, EventArgs e)
        {
            this.textBox1.AppendText (".");
        }

        private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            //阻止从键盘输入键 
            char a = e.KeyChar;
            if (a >= '0' && a <= '9' || a == '\b' )
            {
                e.Handled = false; //起作用
            }
            else
            {
                e.Handled = true;//不起作用
            }
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            this.textBox1.Focus();
        }
    }
}



2011年4月16日 21:05

相关推荐

    C#写的可以连续计算的计算器

    本项目名为“C#写的可以连续计算的计算器”,是一个基于C#语言实现的基础计算器程序,它具有进行基本数学运算的功能,如加、减、乘、除,并且支持连续计算,即用户可以连续输入多个算式而无需每次都重新启动程序。...

    C#实现计算器

    对于简单的计算器,我们可能需要几个按钮(数字0-9、加减乘除运算符、等于号、清除键等)以及一个显示计算结果的文本框。每个按钮都有一个点击事件,当用户点击按钮时,事件处理器将执行相应的操作。 例如,我们...

    C#窗体计算器.rar

    【标题】:“C#窗体计算器.rar”是一个使用C#编程语言开发的Windows桌面应用程序,它实现了一个基本的图形用户界面(GUI)计算器。这个项目适合初学者学习,旨在帮助他们掌握C#中的Windows Forms技术和事件处理机制...

    C#写的计算器

    在这个"C#写的计算器"项目中,我们可以深入理解C#的基本语法、控制结构和面向对象编程的概念。 首先,计算器程序通常会包含一个主界面,用户可以通过这个界面输入数字并选择运算符。在C#中,这通常涉及Windows ...

    C# WPF 计算器 有运算优先级

    【C# WPF 计算器 有运算优先级】是一个使用C#编程语言和Windows Presentation Foundation(WPF)框架构建的计算器应用。这个项目旨在教授如何在C#环境中实现一个具备运算优先级功能的计算器,它能正确处理加、减、乘...

    C#-简单计算器.zip

    这个计算器是为初学者设计的,特别是那些正在进行课程设计或学习C#基础的学员。它利用Microsoft Visual Studio 2017(VS2017)作为集成开发环境(IDE),提供了加、减、乘、除等基本的数学运算功能。 C#是一种面向...

    C#科学计算器源码

    总的来说,这个C#科学计算器项目涵盖了从基础的数学运算到高级的科学计算,以及C#编程中的事件驱动、面向对象设计和错误处理等多方面的知识。对于学习C#编程或增强数学计算能力的人来说,这是一个极好的实践项目。

    C#表达式计算器代码

    在本文中,我们将深入探讨如何实现一个C#表达式计算器,该计算器能够处理复杂的数学表达式并计算出正确的结果。这个程序的关键在于理解和处理运算符的优先级,并使用合适的数据结构来有效地执行计算。 首先,我们...

    计算器(C#源码) C#实现计算器的基本功能 仿windows计算器(C#源码)

    - **C#计算器**:强调了计算器的实现语言为C#,这是一种广泛用于Windows应用开发和Web服务的语言。 - **.NET计算器**:表明项目是基于.NET框架构建的,这提供了一整套用于开发跨平台应用程序的工具和服务。 【压缩...

    C# 计算器 源代码 C#计算器源代码 windows 窗体程序 源程序

    在本文中,我们将深入探讨如何使用C#编程语言构建一个基于Windows窗体的计算器应用程序。首先,让我们了解C#的基础知识以及如何构建这样的程序。 C#(读作"C Sharp")是微软公司开发的一种面向对象的编程语言,主要...

    C# 计算器(加了注释)

    【C# 计算器(加了注释)】是一个基于C#编程语言实现的简易计算器项目,旨在帮助初学者理解和学习C#的基础语法、控制流以及面向对象编程的概念。这个计算器程序通常会包含基本的四则运算功能,即加法、减法、乘法和...

    C#计算器源码

    在本资源中,我们主要关注的是"C#计算器源码"这一主题。C#是一种由微软开发的面向对象的编程语言,常用于构建Windows应用程序、Web应用以及游戏等。计算器源码是实现基本数学运算的程序代码,它展示了如何在C#环境中...

    C#计算器源码 C#计算器源码 C#计算器源码

    在本项目中,我们讨论的是一个使用C#编程语言实现的计算器源码。C#是一种由微软开发的面向对象的编程语言,广泛应用于Windows桌面应用、游戏开发、Web应用以及移动应用等领域。这个计算器源码提供了对基本算术运算的...

    C#简易计算器.zip

    这个C#简易计算器项目提供了一个很好的起点,让学习者了解如何在C#中创建基本的函数、处理用户输入和展示结果。随着技能的提升,开发者可以扩展这个计算器,使其能够处理更复杂的计算,包括括号、优先级、连续运算等...

    C#复杂计算器源码

    在本项目中,"C#复杂计算器源码"是一个基于C#编程语言开发的计算器应用程序,专注于处理复杂的数学表达式,包括嵌套的括号、多级运算等。这个计算器程序能够解析并计算用户输入的含有加减乘除以及括号的表达式,但并...

    c# 计算器 c#入门 计算器 简单计算器 简单工厂

    除了简单工厂模式,C#计算器还可以涉及其他概念,如异常处理(处理除以零的情况)、用户界面交互(如使用WPF或WinForms)、以及数据绑定(将结果显示区与运算结果关联)。这将涉及到更多的C#特性,如属性、事件处理...

    运用C#设计计算器应用程序

    在本项目中,我们将深入探讨如何使用C#编程语言来设计一个功能丰富的计算器应用程序,它不仅支持基本的加、减、乘、除运算,还具备开方和倒数的功能。这个计算器模拟了Windows操作系统中常见的计算器界面和交互逻辑...

    c# 科学计算器 简单计算器

    在C#编程环境中,开发一个科学计算器或简单计算器是一项常见的任务,这有助于理解事件驱动编程、用户界面设计以及数学计算的实现。以下是一些相关的知识点: 1. **基础语法与控制结构**:C#是一种面向对象的语言,...

Global site tag (gtag.js) - Google Analytics