Вывести год с максимальным количеством строк - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте ! Было задание на вывод записей текстового файла с числом страниц больше указанного. Теперь надо вывести год в котором больше всего книг (строк). Как это сделать я не знаю. Буду благодарен полному коду выполненного задания.
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.IO;
  7. namespace Lab8
  8. {
  9. struct Library//объявление структуры
  10. {
  11. public string avtor;
  12. public string kniga;
  13. public int god;
  14. public int str;
  15. public Library(string avtor, string kniga, int god, int str)
  16. {
  17. this.avtor = avtor;
  18. this.kniga = kniga;
  19. this.god = god;
  20. this.str = str;
  21. }
  22. }
  23. class Program
  24. {
  25. private static object book;
  26. static StreamReader file() //открытие файла с записями о книгах
  27. {
  28. FileStream aFile = new FileStream("Library.txt", FileMode.OpenOrCreate);
  29. StreamReader sr = new StreamReader(aFile, Encoding.Default);
  30. return sr;
  31. }
  32. static void Programma(string strLine, StreamReader sr, int S, int N) //основная функция
  33. {
  34. System.IO.File.Delete("logs.txt"); //удаление файла
  35. FileStream bFile = new FileStream("logs.txt", FileMode.OpenOrCreate); // файл для результатов
  36. StreamWriter sw = new StreamWriter(bFile, Encoding.Default);//запись в файл
  37. sw.WriteLine("Последний поисковый запрос:");
  38. Library[] Bibl = new Library[N];
  39. int i = 0;
  40. char[] separator = { '*' };
  41. while (strLine != null)//заполнение структуры информацией из файла
  42. {
  43. string[] Z = strLine.Split(separator);
  44. Bibl[i].avtor = Z[0];
  45. Bibl[i].kniga = Z[1];
  46. Bibl[i].god = Convert.ToInt32(Z[2]);
  47. Bibl[i].str = Convert.ToInt32(Z[3]);
  48. i++;
  49. strLine = sr.ReadLine();
  50. }
  51. sr.Close();
  52. foreach (Library book in Bibl) //перебор всех записей о книгах
  53. {
  54. if (book.god > S)//цикл условия
  55. {
  56. sw.WriteLine("{0}, {1}, {2}, {3} ", book.avtor, book.kniga, book.god, book.str); //запись строки в файл
  57. Console.WriteLine("{0}, {1}, {2}, {3} ", book.avtor, book.kniga, book.god, book.str); //вывод строки на экран
  58. }
  59. }
  60. sw.Close(); //конец записи
  61. }
  62. static void Main(string[] args)
  63. {
  64. begin:
  65. int N = System.IO.File.ReadAllLines("Library.txt").Length;//подсчитывает кол-во строк в файле=кол-ву записей в структуре
  66. StreamReader sr = file();
  67. string strLine = sr.ReadLine();
  68. Console.WriteLine("Введите год:");
  69. int S = Convert.ToInt32(Console.ReadLine()); //ввод кол-ва страниц
  70. Console.WriteLine("Подходящие книги:");
  71. Programma(strLine, sr, S, N);
  72. Console.WriteLine();
  73. Console.WriteLine("Выполнить новый поиск? Y - да");
  74. string c = Console.ReadLine();
  75. if (c == "Y") //цикл для повтора
  76. {
  77. sr.Close();
  78. goto begin;
  79. }
  80. }
  81. }
  82. }
Вот текст текстового файла : Адига Аравинд*Белый тигр* 2009*156 4Барнс Джулиан*3Артур и Джордж* 2008*120 Афлатуни Сухбат*Конкурс красоты* 2009*217 3Барнс Джулиан*4Артур и Джордж* 2008*120 Барнс Джулиан*Артур и Джордж* 2007*120 Барри Себастьян*Тайные скрижали* 2009*412 1Барнс Джулиан*1Артур и Джордж* 2008*120 2Барнс Джулиан*2Артур и Джордж* 2008*120

Решение задачи: «Вывести год с максимальным количеством строк»

textual
Листинг программы
  1.             string[] lib = File.ReadAllLines(@"c:\library.txt",Encoding.Default);
  2.             var result = lib.Select(x => x.Split(new char[] { '*' }, StringSplitOptions.RemoveEmptyEntries))
  3.                 .GroupBy(x => x[2])
  4.                 .OrderByDescending(g => g.Count()).First().Key;
  5.             Console.WriteLine(result.Trim());
  6.             Console.ReadKey(true);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.273 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы