memchik

Students

Jun 14th, 2021
703
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. using System;
  2. using System.IO;
  3. using System.Linq;
  4.  
  5. namespace class2
  6. {
  7.     struct Student
  8.     {
  9.         public string fname;
  10.         public string FName
  11.         {
  12.             get { return fname; }
  13.         }
  14.         public string lname;
  15.         public string LName
  16.         {
  17.             get { return lname; }
  18.         }
  19.         public int year;
  20.         public int Year
  21.         {
  22.             get { return year; }
  23.         }
  24.         public long numbers;
  25.         public long Numbers
  26.         {
  27.             get { return numbers; }
  28.         }
  29.         public Student(string fname, string lname, int year, long numbers)
  30.         {
  31.             this.fname = fname;
  32.             this.lname = lname;
  33.             this.year = year;
  34.             this.numbers = numbers;
  35.         }
  36.     }
  37.  
  38.     class Program
  39.     {
  40.  
  41.         static void Main()
  42.         {
  43.             string[] lines = File.ReadAllLines("C:\\Users\\L-PC\\Desktop\\лекции и все подобное\\Технология программирования\\Викины\\классы 2\\class2\\catalog.txt");
  44.             int size = lines.Length;
  45.             Student[] students = new Student[10];
  46.             for (int i = 0; i < size; i++)
  47.             {
  48.                 string[] arguments = lines[i].Split(",");
  49.                 students[i] = new Student(arguments[0], arguments[1], int.Parse(arguments[2]), long.Parse(arguments[3]));
  50.  
  51.             }
  52.  
  53.             int ch = 0;
  54.             while (true)
  55.             {
  56.                 Console.WriteLine("Выберите действие\n1.Вывести список студентов\n2.Добавить студента\n3.Удалить студента из списка\n4.Отсортировать список по определенным полям\n5.Найти студента по имени или фамилии\n6.Выход");
  57.                 ch = int.Parse(Console.ReadLine());
  58.                 if (ch == 1)
  59.                 {
  60.                     Console.WriteLine("Весь список:");
  61.                     Output(students);
  62.                     Console.ReadLine();
  63.                     Console.Clear();
  64.                 }
  65.                 if (ch == 2)
  66.                 {
  67.                     Insert(students);
  68.                     Console.ReadLine();
  69.                     Console.Clear();
  70.                 }
  71.                 if (ch == 3)
  72.                 {
  73.                     Output(students);
  74.                     Console.WriteLine("Введите индекс студента, которого хотите удалить: ");
  75.                     int index = int.Parse(Console.ReadLine());
  76.                     students = Delete(students, index);
  77.                     Console.ReadLine();
  78.                     Console.Clear();
  79.                 }
  80.                 if (ch == 4)
  81.                 {
  82.                     Console.WriteLine("По какому полю сортировать?\n1. По имени\n2. По году рождения");
  83.                     int field = int.Parse(Console.ReadLine());
  84.                     if (field == 1)
  85.                     {
  86.                         var buf = students.OrderBy(x => x.LName).ToArray();
  87.                         students = buf;
  88.                     }
  89.                     if (field == 2)
  90.                     {
  91.                         var buf = students.OrderBy(x => x.year).ToArray();
  92.                         students = buf;
  93.                     }
  94.                     Output(students);
  95.                     Console.ReadLine();
  96.                     Console.Clear();
  97.                 }
  98.                 if (ch == 5)
  99.                 {
  100.                     Search(students);
  101.                     Console.ReadLine();
  102.                     Console.Clear();
  103.                 }
  104.                 if (ch == 6)
  105.                     Environment.Exit(0);
  106.             }
  107.  
  108.         }
  109.         static void Output(Student[] students)
  110.         {
  111.             int i = 0;
  112.             foreach (var student in students)
  113.                 if (student.FName != null)
  114.                 {
  115.                     i++;
  116.                     Console.WriteLine("{0}. Имя: {1}, Фамилия: {2}, Год рождения: {3}, Номер: {4}", i, student.FName, student.LName, student.Year, student.Numbers);
  117.                 }
  118.         }
  119.  
  120.         static Student[] Delete(Student[] students, int index)
  121.         {
  122.             if (students.Length == 0) return students;
  123.             if (students.Length <= index) return students;
  124.             Student[] buf = new Student[students.Length - 1];
  125.             for (int i = 0; i < index; i++)
  126.             {
  127.                 buf[i] = students[i];
  128.             }
  129.             for (int i = index; i < students.Length; i++)
  130.             {
  131.                 buf[i - 1] = students[i];
  132.             }
  133.             return buf;
  134.         }
  135.         static void Insert(Student[] students)
  136.         {
  137.             Console.WriteLine("Введите имя:");
  138.             string fname = Console.ReadLine();
  139.             Console.WriteLine("Введите фамилию:");
  140.             string lname = Console.ReadLine();
  141.             Console.WriteLine("Введите год рождения:");
  142.             int year = int.Parse(Console.ReadLine());
  143.             Console.WriteLine("Введите номер телефона:");
  144.             long numbers = long.Parse(Console.ReadLine());
  145.  
  146.             Student buf = new Student(fname, lname, year, numbers);
  147.  
  148.             for (int i = 0; i < students.Length; i++)
  149.             {
  150.                 if (students[i].fname == null)
  151.                 {
  152.                     students[i] = buf;
  153.                     break;
  154.                 }
  155.             }
  156.  
  157.         }
  158.         static void Search(Student[] students)
  159.         {
  160.             int i = 0;
  161.             Console.WriteLine("По какому полю искать?\n1. По имени\n2. По году рождения");
  162.             int field = int.Parse(Console.ReadLine());
  163.             if (field == 1)
  164.             {
  165.                 Console.WriteLine("Введите имя:");
  166.                 string fname = Console.ReadLine();
  167.                 foreach (var student in students)
  168.                     if (student.FName == fname)
  169.                     {
  170.                         i++;
  171.                         Console.WriteLine("Имя: {0}, Фамилия: {1}, Год рождения: {2}, Номер телефона: {3}", student.FName, student.LName, student.Year, student.Numbers);
  172.                     }
  173.             }
  174.             if (field == 2)
  175.             {
  176.                 Console.WriteLine("Введите год издания:");
  177.                 int year = int.Parse(Console.ReadLine());
  178.                 foreach (var student in students)
  179.                     if (student.Year == year)
  180.                     {
  181.                         i++;
  182.                         Console.WriteLine("Имя: {0}, Фамилия: {1}, Год рождения: {2}, Номер телефона: {3}", student.FName, student.LName, student.Year, student.Numbers);
  183.                     };
  184.             }
  185.             if (i == 0)
  186.                 Console.WriteLine("Ничего не найдено");
  187.         }
  188.     }
  189. }
  190.  
RAW Paste Data