Advertisement
Guest User

Untitled

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