C#基础学校项目SOS

时间:2016-05-30 14:15:15

标签: c#

我是编程新手,如果有人可以帮我解决以下问题,我会很高兴:"编写一个程序,询问班级和学生人数。在询问学生姓名后,按学生姓名询问成绩,显示平均成绩并显示最高成绩"。我被困在第3部分,并且可以将名称链接到下一部分。这是我到目前为止所得到的:

static void Main(string[] args)
    {

        // 1 give a name and number of students
        Console.Write("Class = ");
        Convert.ToString(Console.ReadLine());
        Console.Write("Number of students = ");
        int aantalStudenten = Convert.ToInt32(Console.ReadLine());

        Console.WriteLine();

        // 2 ask for the names
        int[] aantal = new int[aantalStudenten];
        Random RandomNumber = new Random();

        for (int i = 0; i < aantalStudenten; i++)
        {
            Console.Write("Geef naam van de {0}e student : ", i + 1);
            string studentNaam  = Convert.ToString(Console.ReadLine());
        }
        Console.WriteLine();

        // 3 give the grade of each student by the name                      
        for (int j = 0; j < aantalStudenten; j++)                
        {
            Console.Write("Cijfer van {0} : "); // here i need the students name)//
            int cijfers = Convert.ToInt32(Console.ReadLine());
        }

        //class avarege here


        //highest grade of the class
        int hoogste = stuCijfer.Max();
        Console.WriteLine("De hoogste cijfer is {}," hoogste;

        //name and grade of each student
        Console.WriteLine();

        Console.WriteLine("Press any key to stop");
        Console.ReadKey();
    }

3 个答案:

答案 0 :(得分:1)

Console.Write("Class = ");
        Convert.ToString(Console.ReadLine());
        Console.Write("Number of students = ");
        int aantalStudenten = Convert.ToInt32(Console.ReadLine());

        Console.WriteLine();

        // 2 ask for the names
        string[] namen = new string[aantalStudenten];
        int[] cijfers = new int[aantalStudenten];
        Random RandomNumber = new Random();

        for (int i = 0; i < aantalStudenten; i++){
            Console.Write("Geef naam van de {0}e student : ", i + 1);
             namen[i] = Convert.ToString(Console.ReadLine());
        }
        Console.WriteLine();

        // 3 give the grade of each student by the name                      
        for (int i = 0; i < aantalStudenten; i++){
            Console.Write("Cijfer van {0} : ", namen[i]);     // here i need the students name)//
            cijfers[i] = Convert.ToInt32(Console.ReadLine());
        }

        double gemiddeld = 0;
        //class avarege here
        for (int i = 0; i < cijfers.Count(); i++) {
            gemiddeld += cijfers[i];
        }

        gemiddeld = gemiddeld / cijfers.Count();
        Console.WriteLine("Het gemiddelde van de klas is: {0}", gemiddeld);


        //highest grade of the class
        int hoogste = 0;
        for (int i = 0; i < cijfers.Count(); i++) {
            if (cijfers[i] > hoogste) {
                hoogste = cijfers[i];
            }
        }

        Console.WriteLine("De hoogste cijfer is {0}",hoogste);

        //name and grade of each student
        Console.WriteLine();

        Console.WriteLine("Press any key to stop");
        Console.ReadKey();

您应该按照您现在工作的方式将学生的姓名放在列表中,每次用户输入新名称时都会覆盖。然后你可以在数组中循环存储得分的名称,在这种情况下你可以使用两个单独的一个,但最好使用字典或2D数组。 但祝你好运

答案 1 :(得分:0)

看起来你试图获取一个字符串,你可以选择它,但它可能已被转换为int。收到名称后,将转换后的部分更改为int。 它看起来像你有int j。在你命名之前我。确保它每次引用回到您确定的完全相同的名称。

在旁注上你可以尝试将名称存储到一个数组中并将它们拉出来引用该数组。这可能有所帮助。

答案 2 :(得分:0)

如果我要正确编写这样的程序,我会创建一个新的Student类来包含名称和分数,然后创建一个列表或数组以包含多个Student实例。希望您熟悉创建新类以及列表或数组的概念。如果您需要帮助了解其中任何一项,请告诉我。