C# Calculator Class

前端 未结 4 866
太阳男子
太阳男子 2021-01-17 00:36

I was given this homework assignment, which I have been having a hard time with. The form was written and we had to write the class. Currently when I run the program my equa

4条回答
  •  心在旅途
    2021-01-17 01:24

    The main problem I see with your code is that you are only adding one of your operands, So for example 8 + 8 will always equal 8 for example.You have to do something like this ( included Add and reciprocal functions only):

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace Calculator
    {
    public class Calculator
    {
    
        public Decimal displayValue;
        public Decimal currentValue;
    
        private Decimal Operand_1;
        private Decimal Operand_2;
    
        private bool Operand_1_Added = false;
        private bool Operand_2_Added = false;
    
        private string Operation = "";
    
       private void AddOperand(Decimal Operand)
        {
                if(Operand_1_Added) 
                    {
                      Operand_2 = Operand;
                      Operand_2_Added = true;
                    }
                else {
                      Operand_1 = Operand;
                      Operand_1_Added = true;
                      currentValue = Operand_1;
                     }
         }
    
    
    
       public void Add(Decimal Arg1)
        {  
            this.AddOperand(Arg1);
            Operation = "Addition";
        }
    
       public void Reciprocal(Decimal Arg)
        {
         this.AddOperand(Arg);
         Operation = "Reciprocal";
        }
    
    
         public void Clear()
         {
             currentValue = 0;
             displayValue = 0;
             Operand_1 = 0;
             Operand_2 = 0;
         }
    
         public void Equals()
          {
             switch(Operation)
                 {
                     case "Addition": 
                              currentValue = Operand_1 + Operand_2;
                              break;
                     case "Reciprocal":
                              currentValue = 1/Operand_1;
                              break;
                     default: break; 
                  }
          }
    
       public void Equal(Decimal displayValue)
       {
        currentValue = displayValue;
       }
         public decimal CurrentValue
         {
           get
              {
               return currentValue;
              }
    
         }
    }
    

    Haven't tested code but this should work with the form class.

提交回复
热议问题