Advertisement
Guest User

Untitled

a guest
Dec 13th, 2019
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.17 KB | None | 0 0
  1. package kr;
  2.  
  3. import java.io.*;
  4. import java.util.Scanner;
  5.  
  6. /**
  7. * Студент Касаткин Александр Денисович
  8. * Группа 11-908
  9. * Высшая школа информационных технологий и систем
  10. * Казанский (Приволжский) федеральный университет
  11. *
  12. * Контрольная работа №2.
  13. *
  14. */
  15. public class SecondControlWork {
  16.  
  17. public static void main(String[] args) throws FileNotFoundException {
  18. String filename = "MOCK_DATA.csv";
  19. // User user = new User();
  20. // user.setFirst_name("First");
  21. System.out.println("Удачи!");
  22. Users users = new Users(filename);
  23. users.getUserById(2);
  24.  
  25. }
  26. }
  27.  
  28.  
  29. /**
  30. * 1. Считать файл csv в массив, каждая строка (кроме первой) которого является объектом типа User (см. задание 2).
  31. * Реализовать методы load, save, saveAs.
  32. * Реализовать метод getUserById, получающий объект типа User, по id (id != номер строки).
  33. *
  34. */
  35. class Users {
  36. String filename;
  37. User[] users;
  38.  
  39. Users(String filename) throws FileNotFoundException {
  40. this.filename = filename;
  41. users = new User[300];
  42. this.load();
  43. }
  44.  
  45. public void load() throws FileNotFoundException {
  46. FileReader fr = new FileReader(filename);
  47. Scanner sc = new Scanner(fr);
  48. sc.nextLine();
  49. sc.useDelimiter(";");
  50. int i = 0;
  51. while (sc.hasNextLine()) {
  52. users[i] = new User(sc.nextInt(), sc.next(), sc.next(), sc.next(), sc.next() == "Male" ? Gender.Male : Gender.Female,
  53. sc.next(), sc.next(), sc.next());
  54. }
  55. }
  56.  
  57. public void save() throws IOException {
  58. FileWriter fw = new FileWriter(filename);
  59. fw.write("id;first_name;last_name;email;gender;money;country;job\n");
  60. for (User user : users) {
  61. fw.write(user.toString() + "\n");
  62. }
  63. }
  64.  
  65. public void saveAs(String filename) throws IOException {
  66. FileWriter fw = new FileWriter(filename);
  67. fw.write("id;first_name;last_name;email;gender;money;country;job\n");
  68. for (User user : users) {
  69. fw.write(user.toString() + "\n");
  70. }
  71. }
  72.  
  73. public User getUserById(int id) {
  74. for (User user : users){
  75. if (user.getId() == id){
  76. return user;
  77. }
  78. }
  79. return null;
  80. }
  81.  
  82.  
  83. // load()
  84. // save()
  85. // saveAs(String newFilename)
  86. // getUserById(int id)
  87. // findUsersWithParam(String haystack, String needle) (см. задание 4.).
  88. }
  89.  
  90. /**
  91. * 2. Создать класс юзер, с полями из CSV файла. Все геттеры/сеттеры + toString. Пол через Enum.
  92. * 3. В первой строке файла содержатся заголовки таблицы.
  93. * Создать метод, позволяющий получить номер столбца, по его названию, например, getColByName("name").
  94. * 4. Создать boolean метод, возвращающий true если пара название/номер столбца и значение соответствует введенным.
  95. * Используя его, создать метод в тестовом классе, который получит строки по названию опрделенной должности/стране,
  96. * и сохранит его в другой файл csv.
  97. */
  98. class User {
  99. private int id = 0;
  100. private String first_name = "";
  101. private String last_name = "";
  102. private String email = "";
  103. Gender gender;
  104. private String money = "";
  105. private String country = "";
  106. private String job = "";
  107.  
  108. public User(int id, String firstName, String lastName, String email, Gender gender, String money, String country, String job) {
  109. this.id = id;
  110. this.first_name = firstName;
  111. this.last_name = lastName;
  112. this.email = email;
  113. this.money = money;
  114. this.country = country;
  115. this.job = job;
  116. this.gender = gender;
  117. }
  118.  
  119. public int getId() {
  120. return id;
  121. }
  122.  
  123. public String getFirst_name() {
  124. return first_name;
  125. }
  126.  
  127. public String getLast_name() {
  128. return last_name;
  129. }
  130.  
  131. public String getEmail() {
  132. return email;
  133. }
  134.  
  135. public String getMoney() {
  136. return money;
  137. }
  138.  
  139. public String getCountry() {
  140. return country;
  141. }
  142.  
  143. public String getJob() {
  144. return job;
  145. }
  146.  
  147. public void setId(int id) {
  148. this.id = id;
  149. }
  150.  
  151. public void setFirst_name(String first_name) {
  152. this.first_name = first_name;
  153. }
  154.  
  155. public void setLast_name(String last_name) {
  156. this.last_name = last_name;
  157. }
  158.  
  159. public void setEmail(String email) {
  160. this.email = email;
  161. }
  162.  
  163. public void setMoney(String money) {
  164. this.money = money;
  165. }
  166.  
  167. public void setCountry(String country) {
  168. this.country = country;
  169. }
  170.  
  171. public void setJob(String job) {
  172. this.job = job;
  173. }
  174.  
  175. @Override
  176. public String toString() {
  177. return "Main info: "+ this.first_name + ", " + this.last_name;
  178. }
  179.  
  180. // 4
  181.  
  182. }
  183.  
  184. enum Gender {
  185. Male, Female
  186. }
  187.  
  188. /**
  189. * 5. Имплементировать класс User, от интерфейса Measurable.
  190. * Реализовать метод getMeasure().
  191. * Реализовать статичные и дефолтные методы в интерфейсе.
  192. * Добавить в main-е выполнение этих методов.
  193. */
  194. interface Measurable {
  195. double getMeasure();
  196.  
  197. static double getAverage(Measurable[] list) {
  198. return 0;
  199. }
  200.  
  201. static double getMaximum(Measurable[] list) {
  202. return 0;
  203. }
  204.  
  205. static double getMinimum(Measurable[] list) {
  206. return 0;
  207. }
  208.  
  209. default boolean isGreaterThan(Measurable other){
  210. return false;
  211. }
  212. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement