Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.FileNotFoundException;
- import java.io.FileReader;
- import java.io.FileWriter;
- import java.io.IOException;
- import java.util.Scanner;
- /**
- * Студент Белов В. В.
- * Группа 11-908
- * Высшая школа информационных технологий и систем
- * Казанский (Приволжский) федеральный университет
- * <p>
- * Контрольная работа №2.
- */
- public class SecondControlWork {
- public static void main(String[] args) throws FileNotFoundException {
- String filename = "MOCK_DATA.csv";
- Users users = new Users(filename);
- }
- }
- /**
- * 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;
- }
- // findUsersWithParam(String haystack, String needle) (см. задание 4.).
- }
- /**
- * 2. Создать класс юзер, с полями из CSV файла. Все геттеры/сеттеры + toString. Пол через Enum.
- * 3. В первой строке файла содержатся заголовки таблицы.
- * Создать метод, позволяющий получить номер столбца, по его названию, например, getColByName("name").
- * 4. Создать boolean метод, возвращающий true если пара название/номер столбца и значение соответствует введенным.
- * Используя его, создать метод в тестовом классе, который получит строки по названию опрделенной должности/стране,
- * и сохранит его в другой файл csv.
- */
- class User {
- int id;
- String firstName, lastName, email, country, job, money;
- Gender gender;
- public User(int id, String firstName, String lastName, String email, Gender gender, String money, String country, String job) {
- this.id = id;
- this.firstName = firstName;
- this.lastName = lastName;
- this.email = email;
- this.money = money;
- this.country = country;
- this.job = job;
- this.gender = gender;
- }
- // getters&setter
- public int getId() {
- return id;
- }
- public void setId(int id) {
- this.id = id;
- }
- public String getFirstName() {
- return firstName;
- }
- public void setFirstName(String firstName) {
- this.firstName = firstName;
- }
- public String getLastName() {
- return lastName;
- }
- public void setLastName(String lastName) {
- this.lastName = lastName;
- }
- public String getEmail() {
- return email;
- }
- public void setEmail(String email) {
- this.email = email;
- }
- public String getCountry() {
- return country;
- }
- public void setCountry(String country) {
- this.country = country;
- }
- public String getJob() {
- return job;
- }
- public void setJob(String job) {
- this.job = job;
- }
- public Gender getGender() {
- return gender;
- }
- public void setGender(Gender gender) {
- this.gender = gender;
- }
- public String getMoney() {
- return money;
- }
- public void setMoney(String money) {
- this.money = money;
- }
- public String toString() {
- return id + ";" + firstName + ";" + lastName + ";" + email + ";" + money + ";" + country + ";" + job + ";" + gender;
- }
- }
- 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