Advertisement
Guest User

Untitled

a guest
Mar 20th, 2019
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.55 KB | None | 0 0
  1. /*CRUD
  2. CrUD - Create, Update, Delete.
  3.  
  4. Программа запускается с одним из следующих наборов параметров:
  5. -c name sex bd
  6. -u id name sex bd
  7. -d id
  8. -i id
  9.  
  10. Значения параметров:
  11. name - имя, String
  12. sex - пол, "м" или "ж", одна буква
  13. bd - дата рождения в следующем формате 15/04/1990
  14. -c - добавляет человека с заданными параметрами в конец allPeople, выводит id (index) на экран
  15. -u - обновляет данные человека с данным id
  16. -d - производит логическое удаление человека с id, заменяет все его данные на null
  17. -i - выводит на экран информацию о человеке с id: name sex (м/ж) bd (формат 15-Apr-1990)
  18.  
  19. id соответствует индексу в списке.
  20. Все люди должны храниться в allPeople.
  21. Используйте Locale.ENGLISH в качестве второго параметра для SimpleDateFormat.
  22.  
  23. Пример параметров:
  24. -c Миронов м 15/04/1990
  25.  
  26. Пример вывода для параметра -і:
  27. Миронов м 15-Apr-1990
  28.  
  29.  
  30. Требования:
  31. 1. Класс Solution должен содержать public static поле allPeople типа List<Person>.
  32. 2. Класс Solution должен содержать статический блок, в котором добавляются два человека в список allPeople.
  33. 3. При запуске программы с параметром -с программа должна добавлять человека с заданными параметрами в конец списка allPeople, и выводить id (index) на экран.
  34. 4. При запуске программы с параметром -u программа должна обновлять данные человека с заданным id в списке allPeople.
  35. 5. При запуске программы с параметром -d программа должна логически удалять человека с заданным id в списке allPeople.
  36. 6. При запуске программы с параметром -i программа должна выводить на экран данные о человеке с заданным id по формату указанному в задании.*/
  37.  
  38. import java.util.ArrayList;
  39. import java.text.ParseException;
  40. import java.text.SimpleDateFormat;
  41. import java.util.Date;
  42. import java.util.List;
  43. import java.util.Locale;
  44.  
  45. /*
  46. CRUD
  47. */
  48. import java.util.Date;
  49.  
  50. public class Person {
  51. private String name;
  52. private Sex sex;
  53. private Date birthDate;
  54.  
  55. private Person(String name, Sex sex, Date birthDate) {
  56. this.name = name;
  57. this.sex = sex;
  58. this.birthDate = birthDate;
  59. }
  60.  
  61. public static Person createMale(String name, Date birthDate) {
  62. return new Person(name, Sex.MALE, birthDate);
  63. }
  64.  
  65. public static Person createFemale(String name, Date birthDate) {
  66. return new Person(name, Sex.FEMALE, birthDate);
  67. }
  68.  
  69. public String getName() {
  70. return name;
  71. }
  72.  
  73. public void setName(String name) {
  74. this.name = name;
  75. }
  76.  
  77. public Sex getSex() {
  78. return sex;
  79. }
  80.  
  81. public void setSex(Sex sex) {
  82. this.sex = sex;
  83. }
  84.  
  85. public Date getBirthDate() {
  86. return birthDate;
  87. }
  88.  
  89. public void setBirthDate(Date birthDate) {
  90. this.birthDate = birthDate;
  91. }
  92. }
  93. public enum Sex {
  94. MALE,
  95. FEMALE
  96. }
  97.  
  98. public class Solution {
  99. public static List<Person> allPeople = new ArrayList<Person>();
  100. static {
  101. allPeople.add(Person.createMale("Иванов Иван", new Date())); //сегодня родился id=0
  102. allPeople.add(Person.createMale("Петров Петр", new Date())); //сегодня родился id=1
  103. }
  104.  
  105. public static void main(String[] args)
  106. {
  107. //start here - начни тут
  108. if (args.length < 2 || args.length > 7 || args.length == 3){
  109. return;
  110. }else processParams(args);
  111. }
  112.  
  113. public static void processParams(String[] args){
  114. SimpleDateFormat format1 = new SimpleDateFormat("dd/MM/yyyy", Locale.ENGLISH);
  115. SimpleDateFormat format2 = new SimpleDateFormat("dd-MMM-yyyy", Locale.ENGLISH);
  116. String name = "";
  117. Date bd = null;
  118. int id;
  119.  
  120. switch (args[0]){
  121. case "-c":
  122. name = args[1];
  123. if (!args[2].equals("м") && !args[2].equals("ж")){
  124. name = name + " " + args[2];
  125. }
  126. try
  127. {
  128. bd = format1.parse(args[args.length - 1]);
  129. }catch (ParseException e){
  130. System.out.println("ParseException: maybe wrong date format");
  131. return;
  132. }
  133.  
  134. allPeople.add(args[args.length - 2].equals("м") ? Person.createMale(name, bd) : Person.createFemale(name, bd));
  135. System.out.println(allPeople.size()-1);
  136. break;
  137.  
  138. case "-u":
  139. id = Integer.parseInt(args[1]);
  140. name = args[2];
  141. if (!args[3].equals("м") && !args[3].equals("ж")){
  142. name = name + " " + args[3];
  143. }
  144. try
  145. {
  146. bd = format1.parse(args[args.length-1]);
  147. }catch (ParseException e){
  148. System.out.println("ParseException: maybe wrong date format");
  149. return;
  150. }
  151. allPeople.get(id).setSex(args[args.length - 2].equals("м") ? Sex.MALE : Sex.FEMALE);
  152. allPeople.get(id).setName(name);
  153. allPeople.get(id).setBirthDate(bd);
  154. break;
  155.  
  156. case "-d":
  157. id = Integer.parseInt(args[1]);
  158. allPeople.get(id).setBirthDate(null);
  159. allPeople.get(id).setSex(null);
  160. allPeople.get(id).setName(null);
  161. break;
  162.  
  163. case "-i":
  164. id = Integer.parseInt(args[1]);
  165. System.out.println(allPeople.get(id).getName() + (allPeople.get(id).getSex() == Sex.MALE ? " м " : " ж ") + format2.format(allPeople.get(id).getBirthDate()));
  166. break;
  167. }
  168. }
  169. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement