Перейти к основному содержимому

Лабораторная работа №4: "Консольные приложения на C# с использованием массивов, строк и культурализации"

Цель работы:

Изучить и закрепить навыки работы с массивами, форматированием вывода с использованием спецификаторов, ветвлением кода, циклами, форматированием и сравнением строк, работой с null и пустыми строками, обработкой исключений, а также использовать механизмы культурализации вывода в C#.

Теория

Форматирование чисел, дат, перечислений и других типов в .NET

Исключения и обработка исключений

CultureInfo Класс

Варианты индивидуальных заданий


Вариант 1: Анализ строковых данных с культурализацией

Описание задачи:

  1. Пользователь вводит количество строк в массиве и сами строки.
  2. Программа должна определить количество строк, содержащих только цифры, и вывести их с использованием форматирования в виде валюты (C) в текущей культуре.
  3. Преобразовать все строки в массиве в формат "Title Case" (каждое слово с заглавной буквы) с использованием конкретной культуры, выбранной пользователем (например, "en-US", "fr-FR", "ru-RU"). При использовании другой культуры должно быть обработано исключение CultureNotFoundException.
  4. Найти и вывести все строки, содержащие null или являющиеся пустыми, с заменой null на "N/A" и пустой строки на "Empty".
  5. Пользователь вводит подстроку, и программа должна найти все строки, содержащие эту подстроку, независимо от регистра (используя StringComparison.OrdinalIgnoreCase), и вывести их в нижнем регистре (ToLower).
  6. Отформатировать вывод дат из массива в соответствии с выбранной культурой, если в строках содержатся даты в формате "dd.MM.yyyy". Если даты в формате неверном, обработать исключение FormatException.

Вариант 2: Операции с числовыми массивами и культурализация дат

Описание задачи:

  1. Пользователь вводит количество элементов в массиве и сами элементы массива чисел с плавающей точкой.
  2. Программа должна:
    • Отобразить сумму всех элементов массива, отформатированную в виде процентного значения (P), в зависимости от текущей культуры пользователя.
    • Отобразить минимальное и максимальное значения массива в научном формате (E) с учетом выбранной культуры.
  3. Пользователь вводит дату в формате "yyyy-MM-dd". Программа должна преобразовать и вывести дату в формат "D" на языке текущей культуры. Если формат введенной даты неверен, обработать исключение FormatException.
  4. Реализовать сортировку массива и вывести результат с учетом разделителя десятичного числа в выбранной культуре.
  5. Пользователь вводит еще одно число. Программа должна проверить наличие этого числа в массиве, используя инвариантную культуру (CultureInfo.InvariantCulture), и вывести сообщение "Число найдено" или "Число не найдено".
  6. Если массив содержит отрицательные значения, программа должна заменить их на положительные и вывести результат с форматированием в виде валюты (C) с учетом культуры "en-US".

Вариант 3: Работа со строками, числами и культурализацией дат

Описание задачи:

  1. Пользователь вводит количество элементов в массиве строк и сами строки.
  2. Программа должна выполнить:
    • Проверку каждой строки на то, является ли она числом (включая отрицательные числа), и отобразить эти строки в формате валюты(C) для культуры "ja-JP" (японская культура).
    • Заменить все пустые строки на "Empty" и null на "N/A".
  3. Пользователь вводит еще одну строку, которая может быть датой. Программа должна проверить, является ли строка валидной датой в формате "MM/dd/yyyy" и, если да, отобразить дату в формате "D" для культуры "de-DE" (немецкая культура). Если это не так, обработать исключение FormatException.
  4. Если строка содержит символы, не являющиеся буквами, программа должна вывести их отдельно, используя спецификатор X (шестнадцатеричный формат).
  5. Реализовать поиск строк, которые совпадают с введенной пользователем строкой, игнорируя регистр (используя StringComparison.OrdinalIgnoreCase), и отобразить их в формате, соответствующем культуре "fr-FR".
  6. Обработать возможное исключение ArgumentNullException, если какая-либо строка не задана или содержит null.

Вариант 4: Массивы дат, строки и культурализация

Описание задачи:

  1. Пользователь вводит количество дат и сами даты в формате "dd.MM.yyyy".
  2. Программа должна определить:
    • Самую раннюю и самую позднюю дату в массиве и отобразить их в формате "dddd, MMMM dd, yyyy" для текущей культуры.
    • Разницу в днях между самой ранней и самой поздней датами, отформатированную с использованием спецификатора N.
  3. Пользователь выбирает культуру (например, "it-IT", "zh-CN", "ar-SA"), и программа должна отобразить все даты в формате, соответствующем выбранной культуре. Если введена недействительная культура, обработать CultureNotFoundException.
  4. Проверить, содержит ли массив хотя бы одну дату в выходные дни (суббота или воскресенье) и вывести такие даты в формате, подходящем для выбранной культуры.
  5. Запросить у пользователя еще одну дату и найти ближайшую к ней дату из массива. Если введена неверная дата, программа должна обработать исключение FormatException.
  6. Все даты, содержащие null значения или пустые строки, должны быть заменены на "Дата не указана".

Вариант 5: Работа с массивами чисел и строк с культурализацией

Описание задачи:

  1. Пользователь вводит количество элементов в массиве строк и чисел и сами элементы.
  2. Программа должна:
    • Определить, какие строки являются валидными числами в текущей культуре пользователя, и вывести их с использованием форматирования валюты (C).
    • Заменить все строки, не являющиеся валидными числами, на null и вывести результат с пометкой "Invalid" для null значений.
  3. Пользователь выбирает культуру (например, "es-ES" для испанской культуры). Программа должна отобразить все числа из массива в формате, соответствующем выбранной культуре.
  4. Программа должна найти и вывести все числа массива, которые кратны введенному пользователем числу, отформатированному в виде процентов (P) для выбранной культуры.
  5. Если введенная строка числа содержит разделитель, не соответствующий текущей культуре, программа должна обработать исключение FormatException и предложить пользователю ввести число снова.
  6. Программа должна завершиться с сообщением о завершении работы на языке выбранной пользователем культуры.

Общие требования к лабораторной работе:

  • Программа должна быть структурирована и содержать методы, выполняющие отдельные подзадачи.
  • Обязательно использовать спецификаторы форматирования (C, P, E, D, X, и др.) с учетом выбранной культуры.
  • Применять механизм культурализации вывода (CultureInfo) в форматировании строк, чисел и дат.
  • Реализовать проверку и обработку исключений (FormatException, ArgumentNullException, CultureNotFoundException и др.).
  • Использовать сравнение строк с учетом и без учета регистра (StringComparison.OrdinalIgnoreCase) в зависимости от задачи.
  • Обеспечить информативный вывод сообщений об ошибках и результатов выполнения программы с учетом культуры пользователя.