更改数组和显示中的值

时间:2014-03-06 16:52:51

标签: c# arrays methods indexing

您好我写了一个代码,该代码应该显示每个人的姓名,然后能够选择我选择的人,然后显示他们的等级,让我能够改变它。我得到它显示他们的等级,但我不知道如何改变那个人的等级值,而是它改变每个人的等级,并显示它如何更改它?那么它只显示那个人的变化?并添加我想要的任何值?如何在人名旁边显示更改后的值?如果你能帮助我,我会非常感谢你。

    static void Main(string[] args)
    {
        int selection;
        do
        {
            String[] A = { "Tim", "Jhon", "Sam", "Derp"};
            int[] B = { 90, 89, 60, 40 };
            DisplayMenu();
            Console.Write("Enter you selection: ");
            int.TryParse(Console.ReadLine(),out selection);
            switch (selection)
            {
                case 1:
                    Console.WriteLine(
            "{0}  ", B[0]);
                    AddToGrade(B);
                    break;
                case 2:
                    Console.WriteLine(
            "{0}  ", B[1]);
                    AddToGrade(B);
                    break;
                case 3:
                    Console.WriteLine(
            "{0}  ", B[2]);
                    AddToGrade(B);
                    break;
                default:
                    Console.WriteLine(
            "{0}  ", B[3]);
                    AddToGrade(B);
                    break;
            }
            Console.ReadKey();
        } while (selection != 4);

    }
    static void DisplayMenu()
    {
        Console.Clear();
        Console.WriteLine("Select a student 1-4");
        Console.WriteLine("1. Time");
        Console.WriteLine("2. Jhon");
        Console.WriteLine("3. Sam");
        Console.WriteLine("4. Derp");
    }
    static void AddToGrade(int[] array)
    {

        Console.WriteLine("Input New Value: ");
        int newValue = Convert.ToInt32(Console.ReadLine());
        for (int i = 0; i < array.Length; i++)
        {
            array[i] += newValue;
            Console.Write("New Grade: {0}", array[i]);
        }
    }

1 个答案:

答案 0 :(得分:0)

AddToGrade应接受代表要更改成绩的index

static void AddToGrade(int[] array ,int index)
{
     Console.WriteLine("Input New Value: ");
     int newValue = Convert.ToInt32(Console.ReadLine());
     array[index] += newValue;
     Console.Write("New Grade: {0}", array[index]);
}

切换后(在Console.ReadKey();之前)只需调用:

AddToGrade(B, selection - 1);

此外,您应该使用更多功能来使您的代码健壮和优雅, 例如(这个例子也会让你将格式保存在一个地方)

static void DisplayNameGrade(int index, String[] A, int[] B)
{
    Console.WriteLine("Name: {0}, Grade: {1}", A[index], B[index])
}

通常,您应该学习Object Oriented Programming的基本概念,并使用类,成员和函数设计代码。