Advertisement
Guest User

Untitled

a guest
Dec 13th, 2019
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 7.46 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 IOException {
  18.         String filename = "MOCK_DATA.csv";
  19.         Users users = new Users(filename);
  20.         users.save();
  21.         users.findUsersWithParam("id", "200", "out.txt");
  22.     }
  23. }
  24.  
  25. class Users {
  26.     private String filename;
  27.     private User[] users;
  28.  
  29.     public int getColById(String name) throws FileNotFoundException {
  30.         FileReader fr = new FileReader(filename);
  31.         Scanner sc = new Scanner(fr);
  32.         sc.useDelimiter(";");
  33.         int i = 0;
  34.         while (sc.hasNext()) {
  35.             if (sc.next().equals(name)) {
  36.                 return i;
  37.             }
  38.             i++;
  39.         }
  40.         return -1;
  41.     }
  42.  
  43.     Users(String filename) throws FileNotFoundException {
  44.         this.filename = filename;
  45.         users = new User[300];
  46.         this.load();
  47.     }
  48.  
  49.     public void load() throws FileNotFoundException {
  50.         FileReader fr = new FileReader(filename);
  51.         Scanner sc = new Scanner(fr);
  52.         sc.nextLine();
  53.         sc.useDelimiter(";");
  54.         int i = 0;
  55.         while (sc.hasNextLine()) {
  56.             users[i] = new User(sc.nextInt(), sc.next(), sc.next(), sc.next(), sc.next().equals("Male") ? Gender.Male : Gender.Female,
  57.                     sc.next(), sc.next(), sc.next());
  58.         }
  59.     }
  60.  
  61.     public void save() throws IOException {
  62.         FileWriter fw = new FileWriter(filename);
  63.         fw.write("id;first_name;last_name;email;gender;money;country;job\n");
  64.         for (User user : users) {
  65.             fw.write(user.toString() + "\n");
  66.         }
  67.     }
  68.  
  69.     public void saveAs(String filename) throws IOException {
  70.         FileWriter fw = new FileWriter(filename);
  71.         fw.write("id;first_name;last_name;email;gender;money;country;job\n");
  72.         for (User user : users) {
  73.             fw.write(user.toString() + "\n");
  74.         }
  75.     }
  76.  
  77.     public User getUserById(int id) {
  78.         for (User user : users) {
  79.             if (user.getId() == id) {
  80.                 return user;
  81.             }
  82.         }
  83.         return null;
  84.     }
  85.  
  86.     public void findUsersWithParam(String haystack, String needle, String fileName) throws IOException {
  87.         FileWriter fw = new FileWriter(fileName);
  88.         switch (haystack) {
  89.             case "id": {
  90.                 for (User user : users){
  91.                     if (("" + user.getId()).equals(needle)){
  92.                         fw.write(user.toString());
  93.                     }
  94.                 }
  95.             }
  96.             case "first_name": {
  97.                 for (User user : users){
  98.                     if (user.getFirstName().equals(needle)){
  99.                         fw.write(user.toString());
  100.                     }
  101.                 }
  102.             }
  103.             case "last_name": {
  104.                 for (User user : users){
  105.                     if (user.getLastName().equals(needle)){
  106.                         fw.write(user.toString());
  107.                     }
  108.                 }
  109.             }
  110.             case "email": {
  111.                 for (User user : users){
  112.                     if (user.getEmail().equals(needle)){
  113.                         fw.write(user.toString());
  114.                     }
  115.                 }
  116.             }
  117.             case "gender": {
  118.                 for (User user : users){
  119.                     if (("" + user.getGender()).equals(needle)){
  120.                         fw.write(user.toString());
  121.                     }
  122.                 }
  123.             }
  124.             case "money": {
  125.                 for (User user : users){
  126.                     if (user.getMoney().equals(needle)){
  127.                         fw.write(user.toString());
  128.                     }
  129.                 }
  130.             }
  131.             case "country": {
  132.                 for (User user : users){
  133.                     if (user.getCountry().equals(needle)){
  134.                         fw.write(user.toString());
  135.                     }
  136.                 }
  137.             }
  138.         }
  139.     }
  140. }
  141.  
  142. /**
  143.  * 4. Создать boolean метод, возвращающий true если пара название/номер столбца и значение соответствует введенным.
  144.  * Используя его, создать метод в тестовом классе, который получит строки по названию опрделенной должности/стране,
  145.  * и сохранит его в другой файл csv.
  146.  */
  147. class User {
  148.     private int id;
  149.     private String firstName, lastName, email, country, job, money;
  150.     private Gender gender;
  151.  
  152.     public User(int id, String firstName, String lastName, String email, Gender gender, String money, String country, String job) {
  153.         this.id = id;
  154.         this.firstName = firstName;
  155.         this.lastName = lastName;
  156.         this.email = email;
  157.         this.money = money;
  158.         this.country = country;
  159.         this.job = job;
  160.         this.gender = gender;
  161.     }
  162. // getters&setter
  163.  
  164.     public int getId() {
  165.         return id;
  166.     }
  167.  
  168.     public void setId(int id) {
  169.         this.id = id;
  170.     }
  171.  
  172.     public String getFirstName() {
  173.         return firstName;
  174.     }
  175.  
  176.     public void setFirstName(String firstName) {
  177.         this.firstName = firstName;
  178.     }
  179.  
  180.     public String getLastName() {
  181.         return lastName;
  182.     }
  183.  
  184.     public void setLastName(String lastName) {
  185.         this.lastName = lastName;
  186.     }
  187.  
  188.     public String getEmail() {
  189.         return email;
  190.     }
  191.  
  192.     public void setEmail(String email) {
  193.         this.email = email;
  194.     }
  195.  
  196.     public String getCountry() {
  197.         return country;
  198.     }
  199.  
  200.     public void setCountry(String country) {
  201.         this.country = country;
  202.     }
  203.  
  204.     public String getJob() {
  205.         return job;
  206.     }
  207.  
  208.     public void setJob(String job) {
  209.         this.job = job;
  210.     }
  211.  
  212.     public Gender getGender() {
  213.         return gender;
  214.     }
  215.  
  216.     public void setGender(Gender gender) {
  217.         this.gender = gender;
  218.     }
  219.  
  220.     public String getMoney() {
  221.         return money;
  222.     }
  223.  
  224.     public void setMoney(String money) {
  225.         this.money = money;
  226.     }
  227.  
  228.     public String toString() {
  229.         return id + ";" + firstName + ";" + lastName + ";" + email + ";" + money + ";" + country + ";" + job + ";" + gender;
  230.     }
  231. }
  232.  
  233.  
  234. enum Gender {
  235.     Male, Female
  236. }
  237.  
  238. /**
  239.  * 5. Имплементировать класс User, от интерфейса Measurable.
  240.  * Реализовать метод getMeasure().
  241.  * Реализовать статичные и дефолтные методы в интерфейсе.
  242.  * Добавить в main-е выполнение этих методов.
  243.  */
  244. interface Measurable {
  245.     double getMeasure();
  246.  
  247.     static double getAverage(Measurable[] list) {
  248.         return 0;
  249.     }
  250.  
  251.     static double getMaximum(Measurable[] list) {
  252.         return 0;
  253.     }
  254.  
  255.     static double getMinimum(Measurable[] list) {
  256.         return 0;
  257.     }
  258.  
  259.     default boolean isGreaterThan(Measurable other) {
  260.         return false;
  261.     }
  262. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement