Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка ПИ Программирование на С# _Хотов.docx
Скачиваний:
4
Добавлен:
01.07.2025
Размер:
2.22 Mб
Скачать
  1. Решить следующие задачи с использованием класса Queue:

Пример. В текстовом файле записана информация о людях (фамилия, имя, отчество, возраст, вес через пробел). Вывести на экран вначале информацию о людях младше 40 лет, а затем информацию о всех остальных.

using System;

using System.Collections;

using System.IO;

using System.Text;

namespace MyProgram

{

class Program

{

public struct one //структура для хранения данных об одном человеке

{

public string f;

public string i;

public string o;

public int age;

public float massa;

}

public static void Main()

{

StreamReader fileIn = new StreamReader("t.txt", Encoding.GetEncoding(1251));

string line;

Queue people = new Queue();

one a;

Console.WriteLine("ВОЗРАСТ МЕНЕЕ 40 ЛЕТ");

while ((line = fileIn.ReadLine()) != null) //читаем до конца файла

{

string[] temp = line.Split(' '); //разбиваем строку на составные элементы

//заполняем структуру

a.f = temp[0];

a.i = temp[1];

a.o = temp[2];

a.age = int.Parse(temp[3]);

a.massa = float.Parse(temp[4]);

// если возраст меньше 40 лет, то выводим данные на экран, иначе помещаем их в

//очередь для временного хранения

if (a.age < 40)

Console.WriteLine(a.f + "\t" + a.i + "\t" + a.o + "\t" + a.age + "\t" + a.massa);

else people.Enqueue(a);

}

fileIn.Close();

Console.WriteLine("ВОЗРАСТ 40 ЛЕТ И СТАРШЕ");

while (people.Count != 0) //извлекаем из очереди данные

{

a = (one)people.Dequeue();

Console.WriteLine(a.f + "\t" + a.i + "\t" + a.o + "\t" + a.age + "\t" + a.massa);

}

}

}

}

_______________t.txt__________________

Иванов Сергей Николаевич 21 64

Петров Игорь Юрьевич 45 88

Семёнов Михаил Алексеевич 20 70

Пиманов Александр Дмитриевич 53 101

  1. Дан текстовый файл. За один просмотр файла напечатать элементы файла в следующем порядке: сначала все символы, отличные от цифр, а затем все цифры, сохраняя исходный порядок в каждой группе символов.

  2. Дан файл, содержащий числа. За один просмотр файла напечатать элементы файла в следующем порядке: сначала все числа, из интервала [a,b], потом все числа, меньшие a, потом все числа, большие b, сохраняя исходный порядок в каждой группе чисел.

  3. Дан текстовый файл. За один просмотр файла напечатать элементы файла в следующем порядке: сначала все слова, начинающиеся на гласную букву, потом все слова, начинающиеся на согласную букву, сохраняя исходный порядок в каждой группе слов.

  4. Дан файл, содержащий числа. За один просмотр файла напечатать элементы файла в следующем порядке: сначала все положительные числа, потом все отрицательные числа, сохраняя исходный порядок в каждой группе чисел.

  5. Дан текстовый файл. За один просмотр файла напечатать элементы файла в следующем порядке: сначала все слова, начинающиеся с прописной буквы, потом все слова, начинающиеся со строчной буквы, сохраняя исходный порядок в каждой группе слов.

  6. Дан файл, содержащий информацию о сотрудниках фирмы: фамилия, имя, отчество, пол, возраст, размер зарплаты. За один просмотр файла напечатать элементы файла в следующем порядке: сначала все данные о мужчинах, потом все данные о женщинах, сохраняя исходный порядок в каждой группе сотрудников.

  7. Дан файл, содержащий информацию о сотрудниках фирмы: фамилия, имя, отчество, пол, возраст, размер зарплаты. За один просмотр файла напечатать элементы файла в следующем порядке: сначала все данные о сотрудниках, зарплата которых меньше 10000, потом данные об остальных сотрудниках, сохраняя исходный порядок в каждой группе сотрудников.

  8. Дан файл, содержащий информацию о сотрудниках фирмы: фамилия, имя, отчество, пол, возраст, размер зарплаты. За один просмотр файла напечатать элементы файла в следующем порядке: сначала все данные о сотрудниках младше 30 лет, потом данные об остальных сотрудниках, сохраняя исходный порядок в каждой группе сотрудников.

  9. Дан файл, содержащий информацию о студентах: фамилия, имя, отчество, номер группы, оценки по трем предметам текущей сессии. За один просмотр файла напечатать элементы файла в следующем порядке: сначала все данные о студентах, успешно сдавших сессию, потом данные об остальных студентах, сохраняя исходный порядок в каждой группе студентов.

  10. Дан файл, содержащий информацию о студентах: фамилия, имя, отчество, номер группы, оценки по трем предметам текущей сессии. За один просмотр файла напечатать элементы файла в следующем порядке: сначала все данные о студентах, успешно обучающихся на 4 и 5, потом данные об остальных студентах, сохраняя исходный порядок в каждой группе сотрудников.