Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package kr;
- import java.io.*;
- import java.util.Scanner;
- /**
- * Студент Касаткин Александр Денисович
- * Группа 11-908
- * Высшая школа информационных технологий и систем
- * Казанский (Приволжский) федеральный университет
- *
- * Контрольная работа №2.
- *
- */
- public class SecondControlWork {
- public static void main(String[] args) throws FileNotFoundException {
- String filename = "MOCK_DATA.csv";
- // User user = new User();
- // user.setFirst_name("First");
- System.out.println("Удачи!");
- Users users = new Users(filename);
- users.getUserById(2);
- }
- }
- /**
- * 1. Считать файл csv в массив, каждая строка (кроме первой) которого является объектом типа User (см. задание 2).
- * Реализовать методы load, save, saveAs.
- * Реализовать метод getUserById, получающий объект типа User, по id (id != номер строки).
- *
- */
- class Users {
- String filename;
- User[] users;
- Users(String filename) throws FileNotFoundException {
- this.filename = filename;
- users = new User[300];
- this.load();
- }
- public void load() throws FileNotFoundException {
- FileReader fr = new FileReader(filename);
- Scanner sc = new Scanner(fr);
- sc.nextLine();
- sc.useDelimiter(";");
- int i = 0;
- while (sc.hasNextLine()) {
- users[i] = new User(sc.nextInt(), sc.next(), sc.next(), sc.next(), sc.next() == "Male" ? Gender.Male : Gender.Female,
- sc.next(), sc.next(), sc.next());
- }
- }
- public void save() throws IOException {
- FileWriter fw = new FileWriter(filename);
- fw.write("id;first_name;last_name;email;gender;money;country;job\n");
- for (User user : users) {
- fw.write(user.toString() + "\n");
- }
- }
- public void saveAs(String filename) throws IOException {
- FileWriter fw = new FileWriter(filename);
- fw.write("id;first_name;last_name;email;gender;money;country;job\n");
- for (User user : users) {
- fw.write(user.toString() + "\n");
- }
- }
- public User getUserById(int id) {
- for (User user : users){
- if (user.getId() == id){
- return user;
- }
- }
- return null;
- }
- // load()
- // save()
- // saveAs(String newFilename)
- // getUserById(int id)
- // findUsersWithParam(String haystack, String needle) (см. задание 4.).
- }
- /**
- * 2. Создать класс юзер, с полями из CSV файла. Все геттеры/сеттеры + toString. Пол через Enum.
- * 3. В первой строке файла содержатся заголовки таблицы.
- * Создать метод, позволяющий получить номер столбца, по его названию, например, getColByName("name").
- * 4. Создать boolean метод, возвращающий true если пара название/номер столбца и значение соответствует введенным.
- * Используя его, создать метод в тестовом классе, который получит строки по названию опрделенной должности/стране,
- * и сохранит его в другой файл csv.
- */
- class User {
- private int id = 0;
- private String first_name = "";
- private String last_name = "";
- private String email = "";
- Gender gender;
- private String money = "";
- private String country = "";
- private String job = "";
- public User(int id, String firstName, String lastName, String email, Gender gender, String money, String country, String job) {
- this.id = id;
- this.first_name = firstName;
- this.last_name = lastName;
- this.email = email;
- this.money = money;
- this.country = country;
- this.job = job;
- this.gender = gender;
- }
- public int getId() {
- return id;
- }
- public String getFirst_name() {
- return first_name;
- }
- public String getLast_name() {
- return last_name;
- }
- public String getEmail() {
- return email;
- }
- public String getMoney() {
- return money;
- }
- public String getCountry() {
- return country;
- }
- public String getJob() {
- return job;
- }
- public void setId(int id) {
- this.id = id;
- }
- public void setFirst_name(String first_name) {
- this.first_name = first_name;
- }
- public void setLast_name(String last_name) {
- this.last_name = last_name;
- }
- public void setEmail(String email) {
- this.email = email;
- }
- public void setMoney(String money) {
- this.money = money;
- }
- public void setCountry(String country) {
- this.country = country;
- }
- public void setJob(String job) {
- this.job = job;
- }
- @Override
- public String toString() {
- return "Main info: "+ this.first_name + ", " + this.last_name;
- }
- // 4
- }
- enum Gender {
- Male, Female
- }
- /**
- * 5. Имплементировать класс User, от интерфейса Measurable.
- * Реализовать метод getMeasure().
- * Реализовать статичные и дефолтные методы в интерфейсе.
- * Добавить в main-е выполнение этих методов.
- */
- interface Measurable {
- double getMeasure();
- static double getAverage(Measurable[] list) {
- return 0;
- }
- static double getMaximum(Measurable[] list) {
- return 0;
- }
- static double getMinimum(Measurable[] list) {
- return 0;
- }
- default boolean isGreaterThan(Measurable other){
- return false;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement