Работал над своей практической работой, и у меня поломался вывод информации(в логическом смысле - то есть выводит не то, что предусматривалось программой). Хотя до этого работал, и работал нормально(я заметил эту проблему после того как попытался вывести этот участок кода(с выводом) в отдельную ф-цию(предусматривалось многократное использование в коде)).
Я ничего не понял, что произошло и "почему?".
Я ввожу допустим инфу про два объекта, а оно запоминает только последний и перезаписывает первый, в итоге выводит два блока с одинаковой инфой.
Вот код:
static void Main(string[] args)
{
List <Student> allstudents = new List<Student>();
string temp = " ";
int choise = 0;
bool enterOrEsc = true;
do
{
Console.WriteLine("Hi! Welcome in public account DEKANAT");
Console.WriteLine("What do you want to do?");
Console.WriteLine("1. Add information.");
Console.WriteLine("2. Show information.");
Console.WriteLine("3. Delete information.");
Console.WriteLine("4. Change information.");
Console.WriteLine("5. Search.");
Console.WriteLine("6. Exit.");
Console.Write("Enter number of your choise: ");
choise = Checking(temp, choise);
switch (choise)
{
case 1:
//adding information
Student _student = new Student(/*"firstName", "secondName", "fatherName", "sex", 3, "group", 5*/);
while (true)
{
Console.WriteLine("Add information about student ");
Console.Write("Enter first name (Empty - Exit): ");
_student.firstName = Console.ReadLine();
if (string.IsNullOrWhiteSpace(_student.firstName)) break;
Console.Write("Enter second name: ");
_student.secondName = Console.ReadLine();
Console.Write("Enter father name: ");
_student.fatherName = Console.ReadLine();
Console.Write("Enter sex: ");
_student.sex = Console.ReadLine();
Console.Write("Enter course: ");
_student.course = Convert.ToInt32(Console.ReadLine());
Console.Write("Enter group: ");
_student.firstName = Console.ReadLine();
Console.Write("Enter grade: ");
_student.group = Console.ReadLine();
allstudents.Add(_student);
}
// entering information
break;
case 2:
if (allstudents.Count() == 0) Console.WriteLine("There are no information -__(*_*)__- ");
Console.WriteLine();
int numerator = 0;
foreach (Student student in allstudents)
{
numerator++;
Console.WriteLine("№" + numerator);
Console.WriteLine(student.firstName);
Console.WriteLine(student.secondName);
Console.WriteLine(student.fatherName);
Console.WriteLine(student.sex);
Console.WriteLine(student.course);
Console.WriteLine(student.group);
Console.WriteLine(student.grade);
}
//Show(allstudents);
break;
case 3:
Console.Write("Which information you want to delete? Write number, please: ");
int _delete = Int32.Parse(Console.ReadLine());
allstudents.RemoveAt(_delete - 1);
break;
case 4:
Console.WriteLine("What block with information you want to change?");
Console.Write("Enter the number, please:");
choise = Checking(temp, choise);
Console.Write("First name: ");
allstudents[choise - 1].firstName = Console.ReadLine();
Console.Write("Second name: ");
allstudents[choise - 1].secondName = Console.ReadLine();
Console.Write("Father name: ");
allstudents[choise - 1].fatherName = Console.ReadLine();
Console.Write("Sex: ");
allstudents[choise - 1].sex = Console.ReadLine();
Console.Write("Course: ");
allstudents[choise - 1].course = Int32.Parse(Console.ReadLine());
Console.Write("Group: ");
allstudents[choise - 1].group = Console.ReadLine();
Console.Write("Grade: ");
allstudents[choise - 1].grade = Int32.Parse(Console.ReadLine());
break;
case 5:
Console.WriteLine("Search is realized by three parameters: First name, course and group.");
for(int x = 0; x < allstudents.Count(); x++)
{
}
break;
case 6:
Environment.Exit(0);
break;
}
Console.WriteLine("Do you want to continue?(Press enter - continue, Esc - exit)");
var enteroresc = Console.ReadKey();
if (enteroresc.Key == ConsoleKey.Enter) enterOrEsc = true;
else if (enteroresc.Key == ConsoleKey.Escape) break;
} while (enterOrEsc == true);
Console.WriteLine("");
}
static int Checking(string any_str, int any_number)
{
for(; ; )
{
any_str = Console.ReadLine();
if (Int32.TryParse(any_str, out any_number))
{
break;
}
else
{
Console.WriteLine("Error! Please, try again: ");
}
}
return any_number;
}
//static void Show (List<Student> array)
//{
// int numerator = 0;
// foreach (Student student in array)
// {
// numerator++;
// Console.WriteLine("№" + numerator);
// Console.WriteLine(student.firstName);
// Console.WriteLine(student.secondName);
// Console.WriteLine(student.fatherName);
// Console.WriteLine(student.sex);
// Console.WriteLine(student.course);
// Console.WriteLine(student.group);
// Console.WriteLine(student.grade);
// }
//}
}
Я бы и сам исправил, но я даже не знаю к чему придратся, если буквально недавно всё работало - каких-то изменений, которые могли повлиять на корректный ввод данных нету.
Нашел ошибочку, а все из-за невнимательности и нагромождения кода:
Console.Write("Enter group: ");
_student.firstName = Console.ReadLine();
Console.Write("Enter grade: ");
_student.group = Console.ReadLine();
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости