簡體   English   中英

如何在C#中設置三種方法來接受用戶輸入並對輸入進行數學運算?

[英]How can I set up three methods in C# that takes a user input and does math on the input?

這是初學者的任務,因此我了解人們不希望給我答案。 但是,如果可能的話,我會很高興被引導向正確的方向,因為我非常注意以下提示:

在控制台應用程序項目的類文件中,我需要創建一個名為“ Operator”的對象。 它必須與三種方法關聯,每種方法分別用於加法,減法和除法。 程序文件必須要求用戶鍵入一個整數,然后將其通過每個方法傳遞,然后作為結果返回到控制台。 他們沒有指定要加/減/除的內容,因此我將使用方法1將“ 4”添加到用戶輸入中,使用方法2減去“ 3”,最后使用方法除以“ 1”。

該對象應該具有自己的cs文件,並且方法應該在程序文件中創建和調用。 我知道有一種方法可以將類和方法放在同一個文件中,但是對於這種分配,他們希望它們分開。

我以為操作員對象應該沒有任何屬性,因為它沒有我能想到的特征。 它只是一個用數字做事的抽象對象。 因此,我建立了一個非常簡單的運算符對象,只包含類名,其中沒有任何內容:

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

namespace threemethods
{
    public class Operator
    {

    }
}

我知道到目前為止這可能是錯誤的,但是我不知道類文件中還需要什么,因為方法都將在程序文件中。 現在,我真正掙扎的地方是程序。 我不知道將所有內容放到哪里,因為我所看到的示例都沒有涉及用戶輸入,而且大多數都沒有在外部完成。 我知道Console.WriteLine(“ Pick a number”)可能會進入main方法,而加法/減法/除法將是main方法之下的單獨方法。 但是除此之外,我不知道應該遵循的模板。 我也不確定如何在使用完所有方法之前將結果從一種方法“傳遞”到下一種方法。 同樣,我並不希望為我完成此工作,但是我確實需要有關如何進行此操作的指南,以幫助我前進。 即使是一般性的概述也應該會有所幫助。 現在我的程序代碼很亂,我無法共享它,因為這沒有任何意義。

非常感謝!

前往阿米爾:

非常感謝你的幫助! 您能否解釋一下如何格式化為調用方法而編寫的控制台代碼? 我感到困惑的原因是,我們被教導要對program.cs文件使用這種格式:

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

namespace threemethods
{
    class Program
    {
     static void Main(int[] args)

然后是下面的主要方法。 因此,當學校給我的格式有所不同時,我不確定如何正確集成您的控制台代碼。 如果我將您的控制台代碼放在程序文件中,您能否告訴我應該添加什么代碼才能使程序正常工作? 例如,如何在控制台代碼之前在文件頂部寫什么?

非常感謝!! 對不起,如果我說的話令人困惑!

更新:

這是關於控制台的cs文件:

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Test
{
    class Program
    {
        public int Data { get; set; }
        static void Main(string[] args)
        {
            Console.WriteLine("Enter input:");
            string line = Console.ReadLine();

            var operatorObject = new Operator(); //You have to add reference, If is not.
            var result = operatorObject.GetAdd(data);

            Console.WriteLine(result);
            Console.ReadLine();
        }
    }
}

現在在此Operator.CS文件中:

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

namespace threemethods
{
    public class Operator
    {
        public double GetAdd(int data)
        {
             data = data + 4;
             return GetSubtract(data);
        }    

        private  double GetSubtract(double data)
        {
             data = data - 3;
             return GetDivide(data);
        }

        private  double GetDivide(double data)
        {
             return data / 3;
        }
    }
}

為此,您必須設置private 2 last方法,並像我的示例一樣使用其中的一個。

使用此示例,您可以僅調用其中一種方法,並且開發如此簡單。

如果您願意,我可以為您創建更多示例。

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

namespace threemethods
{
 public class Operator
 {
    public int Add(int data, int value)
    {
         return data + value;
    }    

    public int Subtract(int data, int value)
    {
        return data - value;
    }

    public int Divide(int data, int value)
    {
         return data / value;
    }
 }
}

請注意,所有方法都返回一個整數。 如果需要,將其更改為一些浮動值。

主要功能:

Console.WriteLine("Enter input:");
var userValue = Convert.ToInt32(Console.ReadLine());

var operatorObject = new Operator();
var result = operatorObject.Add(userValue, 4);
result = operatorObject.Subtract(result, 3);
result = operatorObject.Divide(result, 1);

Console.WriteLine(result);
Console.ReadLine();

盡管您似乎在詢問有關如何實現答案的代碼的新問題,但其他答案已經回答了該問題。 您已經在問題的編輯上敲了釘子,上面想要的答案(Amir或Philipp的答案)只是寫在已經完成的主類中! 以Amir's為例:

using System;

namespace threemethods
{

    public class Operator
    {
        public double GetAdd(int data)
        {
            data = data + 4;
            return GetSubtract(data);
        }

        private double GetSubtract(double data)
        {
            data = data - 3;
            return GetDivide(data);
        }

        private double GetDivide(double data)
        {
            return data / 3;
        }
    }
    class Program
    {
        public static int Data { get; set; }
        static void Main(string[] args)
        {
            Console.WriteLine("Enter input:");
            string line = Console.ReadLine();
            Data = Int32.Parse(line);
            var operatorObject = new Operator();
            var result = operatorObject.GetAdd(Data);
            Console.WriteLine(result);
            Console.ReadLine();
        }
    }
}

注意,您會在main上拋出錯誤,因為控制台入口點的參數是Main(string [] args)而不是Main(int [] args)。 如果您更改此設置,VS會不喜歡! 另外,我建議不要使用不需要的東西來使進口膨脹。 僅使用系統,僅導入系統。 僅僅因為它是默認值並不意味着它是必需的。 此外,使用“數據”字段設置很有趣,而不是我怎么做,您可能不需要它? 我認為,僅在Main中使用一個變量會更容易,並且用更少的代碼就更易讀。 另外,不要忘記解析字符串對象並將其轉換為int進行操作!!!

這將是您的示例實現! 玩得開心。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM