| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > .NET для новичков > Структуры и параметризованные коллекции |
| Автор: Pa1nk1ller 6.1.2012, 12:31 |
| Всем доброго времени суток!!! помогите пожалуйста с задачей. никак не могу понять сто надо сделать. Описать структуру, соответствующую заданиям лабораторной работы 10. Создать параметризованную коллекцию (см. раздел «Классы-прототипы») для хра-нения описанной структуры. Вид коллекции выбрать самостоятельно. Написать Windows-приложение для работы с этой коллекцией, позволяющее выполнять: □ добавление элемента в коллекцию с клавиатуры; □ считывание данных из файла; □ запись данных в тот же или указанный файл; □ удаление элемента из коллекции1. Приложение должно содержать меню и диалоговые окна и предусматривать обработку возможных ошибок пользователя с помощью исключений. Вот лабораторная 10: Описать структуру с именем STUDENT, содержащую следующие поля: □ фамилия и инициалы; □ номер группы; □ успеваемость (массив из пяти элементов). Написать программу, выполняющую следующие действия: □ ввод с клавиатуры данных в массив, состоящий из десяти структур типа STUDENT (записи должны быть упорядочены по возрастанию номера группы); □ вывод на экран фамилий и номеров групп для всех студентов, включенных в массив, если средний балл студента больше 4,0 (если таких студентов нет, вывести соответствующее сообщение). Вот решение 10 лабораторной: using System; using System.Collections.Generic; using System.Text; namespace zadanie_10 { class Program { const int STUDENTS_QUANTITY = 2; const int SUBJECT_QUANTITY = 5; static void Main(string[] args) { Student[] Results = new Student[STUDENTS_QUANTITY]; GetStudents(Results); CheckGoodMark(Results); Console.ReadKey(); } public struct Student { public string Surname; public string Initials; public int GroupNumber; public int[] Marks; } static void GetStudents(Student[] Students) { string buf; Student student = new Student(); student.Marks = new int[SUBJECT_QUANTITY]; for (int i = 0; i < STUDENTS_QUANTITY; i++) { Console.WriteLine("Введите фамилию студента:"); student.Surname = Console.ReadLine(); Console.WriteLine("Введити инициалы студента:"); student.Initials = Console.ReadLine(); Console.WriteLine("Введите группу студента:"); buf = Console.ReadLine(); student.GroupNumber = Convert.ToInt32(buf); Console.WriteLine("Введите оценку студента: "); for (int h = 0; h < SUBJECT_QUANTITY; h++) { buf = Console.ReadLine(); student.Marks[h] = Convert.ToInt32(buf); } Students[i] = student; } //сортировка for (int h = STUDENTS_QUANTITY - 1; h > 0; h--) { for (int s = 0; s < h; s++) { if (Students[s].GroupNumber > Students[s + 1].GroupNumber) { int tmp1 = Students[s].GroupNumber; string tmp2 = Students[s].Surname; string tmp3 = Students[s].Initials; int[] tmp4 = Students[s].Marks; Students[s].GroupNumber = Students[s + 1].GroupNumber; Students[s].Surname = Students[s + 1].Surname; Students[s].Initials = Students[s + 1].Initials; Students[s].Marks = Students[s + 1].Marks; Students[s + 1].GroupNumber = tmp1; Students[s + 1].Surname = tmp2; Students[s + 1].Initials = tmp3; Students[s + 1].Marks = tmp4; } } } } static void CheckGoodMark(Student[] Students) { bool found = false; int summa = 0; float aver = 0; for (int i = 0; i < STUDENTS_QUANTITY; i++) { for (int j = 0; j < SUBJECT_QUANTITY; j++) summa += Students[i].Marks[j]; aver = summa/5; if (aver >= 4.0) { found = true; Console.Write("Студент " + Students[i].Surname + " " + Students[i].Initials); Console.Write(" из группы N" + Students[i].GroupNumber); Console.WriteLine(" имеет средний бал больше 4,0"); } aver = 0; summa = 0; } if (!found) { Console.WriteLine("записей не найдено"); } } } } помогите кто может или объясните пожалуйста! заранее спасибо!!! |
| Автор: Fortnox 6.1.2012, 14:14 |
| Касательно кого пункта? Вы используете массив, а в задании сказано параметризованную коллекцию, к ним относятся:
Добавлено через 1 минуту и 38 секунд Ах да, если нужна сразу сделанная лаба, вам в http://forum.vingrad.ru/forum/Vingrad-help-center.html. |