Базовый школьный проект C# SOS

Я новичок в программировании, и я был бы рад, если бы кто-нибудь помог мне со следующим вопросом: «Напишите программу, которая запрашивает класс и количество учеников. ученик, покажи средний и покажи высший балл». Я застрял в части 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();
    }

c#
person Parsa    schedule 30.05.2016    source источник
comment
сохраните имена в массиве строк, а затем используйте его как параллельный массив с оценкой. ТАК они оба будут использовать один и тот же индекс j при вызове имени. поэтому имя 0 будет сопоставлено с классом 0 и т. Д. С оценками, хранящимися как целые числа или числа с плавающей запятой, вы можете сравнить их друг с другом, чтобы найти максимальную оценку. когда вы выполняете цикл, вы можете сохранить индекс в переменной, которая будет использоваться после закрытия цикла для отображения результатов.   -  person Shon    schedule 30.05.2016


Ответы (3)


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. но удачи дальше

person Vincent T    schedule 30.05.2016

Похоже, вы пытаетесь получить строку, в которой вы выбираете имя, но она могла быть преобразована в int. Измените часть, в которой вы преобразовали его в int, когда получили имя. Также похоже, что у вас есть для int j. Прежде чем вы назвали его int i. Убедитесь, что он каждый раз ссылается на то же самое имя, которое вы идентифицировали.

в примечании вы можете попытаться сохранить имена в массиве и вытащить их, ссылаясь на массив. Это может помочь.

person LarrytheBard    schedule 30.05.2016

Если бы мне нужно было правильно закодировать такую ​​программу, я бы создал новый класс Student, содержащий имя и оценку, а затем создал бы список или массив, содержащий несколько экземпляров Student. Надеюсь, вы знакомы с концепциями создания новых классов, а также со списками или массивами. Если вам нужна помощь в понимании любого из них, дайте мне знать.

person BlueMonkMN    schedule 30.05.2016
comment
На этом уровне было бы проще использовать параллельные массивы и многомерные массивы. - person Shon; 30.05.2016
comment
@Shon Если кто-то не знаком с концепцией классов и инкапсуляции, то могут подойти параллельные массивы или многомерные массивы, но это упражнение кажется разработанным для обучения использованию классов, и если кто-то знакомый с этими концепциями, я бы сказал, что на самом деле это более простое решение. - person BlueMonkMN; 30.05.2016
comment
Класс здесь относится к классу, а не к термину программирования. - person Shon; 30.05.2016
comment
@Shon Я знаю об этом, поэтому я сказал, что, надеюсь, вы знакомы с концепциями создания новых классов .... Если постер не знаком, то это может быть неправильный ответ для них, но если они хотят учиться, я готов ответить на дополнительные вопросы по теме. Причина, по которой я думаю, что вопрос предназначен для понимания необходимости классов, заключается в том, что в этом случае Student - это сущность с несколькими свойствами. - person BlueMonkMN; 30.05.2016