Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 

Repository files navigation

Описание созданных в программе классов:

1. CheckFields - класс для проверки соответсвия полей заданным критериям:

  • Конструктор CheckFields() - разделяет полученную от пользователя строку на массив строк sample из шести элементов. Каждый элемент массива соотвествует одному полю записи: sample[0] - фамилия, sample[1] - имя, sample[2] - отчество, sample[3] - дата рождения, sample[4] - номер телефона, sample[5] - обозначение пола f или m.
  • checkData() - метод, проверяющий все поля на соотвтествия критериям. для sampe[0-2] не выполняется никаких проверок, т.к. они являются обычными строковыми полями. sample[3] проверяется парсингом на соотвтествие значению даты в формате (dd.mm.yyyy). sample[4] проверяется парсингом на соответвие целочисленному значению, sample[5] проверяется парсингом на соответсвие символьному значению (f или m). В случае если элементы samlpe[3-5] не могут выполнить парсинг, либо не соответствуют доп. условиям бросается исключение и тут же обрабатывается, показывая в случае ошибки, какое поле заполнено неверно, а также присвая значения null для некорректного элемента.

2. InputAmmount : класс, для получение от пользователя текстовой строки и проверки что она содержит шесть полей (т.е. в строке имеется ровно 5 пробелов). Для этого реализовано три метода:

  • get() - получение строки от пользователя и вывод на экран подсказки по вводимым данным;

  • ammountofFields() - метод считает количество пробелов в строке и возвращает число равное количеству данных в веденной строке;

  • info() - вспомогательный метод для просмотра введенной пользователем строки;

  • checkAmmount() - метод для проверки соотвтствия количества данных. В случае если количество полей не ровно 6 (Фамилия, имя, отчество, дата рождения, номер телефона, пол), метод возращает код ошибки (-1);

  • CorrectInput() метод реализующий бесконечный ввод (пока пользователь не введет верное количество полей), в ходе выполнения пользователю выводятся сообщения о том, ввел ли он корректные, либо некорректные данные.

3. InputPrompt - класс, отвечающий за получение от пользователя ответа на запрос, хочет ли он ввести ещё одну запись, либо закончить выполнение программы.

4. Record - класс, отвечающий за хранение одного экземпляра записи. Он содержит шесть полей в разных форматах, а также перегруженный метод toString() для получения всех данных экземпляра в строковом виде. Данный метод помогает записать данные в файл в необходимом формате.

5. SaveToFile Класс для записи полей экземпляра Record в файл. Содержит один метод saveTXT() для записи (либо добавления) текущей записи в формате .txt . В методе через геттер берется строковое поле с фамилией экземпляра Record и назначается как имя файла. В случае если такой файл уже существует, в него записывается новая строка.

Этапы выполнения программы:

  1. Создаются экземпляры классов InputAmmount, SaveToFile, InputPrompt.
  2. Создаем цикл, внутри которого происходит создание новой записи. Вне зависимсоти от того, корректно ли пользователь ввел данные, ему предлагается создать ещё одну запись (повторить цикл). В результате выполнения цикла программа либо завершает работу, либо пользователь вводит новые данные.
  3. Внутри цикла происходит сперва проверка что пользователь ввел необходимое количество данных в бесконечном цикле.
  4. После проверяются все поля записи на соответствие требованиям, в случае если все введенно корректно, появяится соответствующее сообщение. Если в одном из полей была допущена ошибка, в программе отобразится где именно данные введенны неправильно.
  5. Если все данные были введенны корректно, в программе создается экземпляр класса Record, и происходит запись в файлс с помощью класса SaveToFile.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages