Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.10.2024, 20:47   #1
Матвей2009
Новичок
Джуниор
 
Регистрация: 15.10.2024
Сообщений: 1
По умолчанию проверка/взгляд со стороны на код на джаве для системы набора сотрудника

Всему добрый вечер!
Я сейчас работаю над мини проектом/заданием на Java( консольный), который представляет систему набора сотрудников на работу. Я написал код, но мне нужен взгляд со стороны и могли бы Вы посмотреть и указать на ошибки или может что-то требует улучшения/изменения( в общем рекомендации) ? Спасибо !
Код:
 import java.util.ArrayList; //импорт класса ArrayList, который является динамическим массивом, который расширяется по мере необходимости
import java.util.Scanner; //импорт класса Scanner, который считывает данные, вводимые пользователем, и запоминает их 

//класс о работнике и его атрибутах
class Worker { //атрибуты этого класса о работнике
    String fullName; // имя и фамилия
    int age; // возраст
    String birthDate; // дата рождения
    String jobPosition; // должность/вакансия
    String email; // электронная почта
    double salary; // зарплата
    
    //создание конструктора для инициализации нового работника
    Worker(String fullName, int age, String birthDate, String jobPosition, String email, double salary) {
        // this ссылается на экземпляр класса, внутри которого оно используется
        this.fullName = fullName; //инициализация имени
        this.age = age; // инициализация возраста
        this.birthDate = birthDate; //инициализация даты рождения
        this.jobPosition = jobPosition; //инициализация должности
        this.email = email; //инициализация эл. почты
        this.salary = salary; //инициализация зарплаты
    }
    
    @Override //функция, которая позволяет подклассу/дочернему классу предоставлять конкретную реализацию метода, который уже был предоставлен одним из его суперклассов/родительских классов
    public String toString() { //метод toString(), который возвращает строку, описывающую объект
        return fullName + "\t" + age + "\t" + birthDate + "\t" + jobPosition + "\t" + email + "\t" + salary; // \t - символ табуляции
    }
    
}

//главный класс
public class RecruitmentSystem {
    static Scanner inputScanner = new Scanner(System.in); //создание объекта "сканер", который используется для чтения данных, которые вводятся 
    static ArrayList<Worker> workers = new ArrayList<>(); // создание списка, где хранятся объекты Worker
    
    //метод, где можно увидеть список всех сотрудников
    public static void displayWorkers() {
        System.out.println("Список всех работников:");
        System.out.println("............................................");
        System.out.println("Полное имя\tВозраст\tДата рождения\tДолжность\tEmail\t\tЗарплата");
        System.out.println("............................................");
        for (int i = 0; i < workers.size(); i++) { //инициализация цикла for, где i начинается с 0. Цикл продолжается, пока i меньше размера workers (i++ увеличивает i на 1 после каждой итерации)
            System.out.println((i + 1) + ". " + workers.get(i)); //get() используется для получения элемента указанного индекса в списке
        }
        System.out.println("............................................");
    }
    
    //метод, где можно редактировать/исправлять информацию/данные сотрудников
    public static void fixWorker() {
        System.out.println("Введите индекс работника для исправления данных: ");
        int index = inputScanner.nextInt();
        if (index > 0 && index <= workers.size()) {
            Worker worker = workers.get(index - 1);
            System.out.println("Редактирование данных работника: " + worker.fullName);
            System.out.println("Введите новое имя и фамилию: ");
            worker.fullName = inputScanner.next();
            System.out.println("Введите новый возраст: ");
            worker.age = inputScanner.nextInt();
            System.out.println("Введите новую дату рождения: ");
            worker.birthDate = inputScanner.next();
            System.out.println("Введите новую должность: ");
            worker.jobPosition = inputScanner.next();
            System.out.println("Введите новую электронную почту: ");
            worker.email = inputScanner.next();
            System.out.println("Введите новую зарплату: ");
            worker.salary = inputScanner.nextDouble();
            System.out.println("Данные изменены.");
        } else {
            System.out.println("ERROR! Вы ввели неверный индекс.");
        }
    }

    //метод, где можно добавить нового СОТРУДНИКА
    public static void newWorker() {
        System.out.println("Введите имя и фамилию нового работника:");
        String fullName = inputScanner.next();
        inputScanner.nextLine();
        System.out.println("Введите возраст нового работника:");
        int age = inputScanner.nextInt();
        System.out.println("Введите дату рождения нового работника:");
        String birthDate = inputScanner.next();
        System.out.println("Введите должность нового работника:");
        String jobPosition = inputScanner.next();
        System.out.println("Введите электронную почту нового работника:");
        String email = inputScanner.next();
        System.out.println("Введите зарплату нового работника:");
        double salary = inputScanner.nextDouble();
        //создание нового сотрудника
        Worker newWorker = new Worker(fullName, age, birthDate, jobPosition, email, salary);
        workers.add(newWorker);
        System.out.println("Новый сотрудник был добавлен в список всех работников.");
    }
    
    //метод для удаления работника 
    public static void deleteWorker() {
        System.out.println("Введите индекс работника, чтобы удалить из списка:");
        int index = inputScanner.nextInt();
        if (index > 0 && index <= workers.size()) {
            workers.remove(index - 1);
            System.out.println("Работник был удален из списка.");
        } else {
            System.out.println("ERROR! Вы ввели неверный индекс.");
        }
    }
    
    //Основной метод 
    public static void main(String[] args) {
        char choice;
        
        do {
            System.out.println("Меню:");
            System.out.println("1. Вывод списка всех работников");
            System.out.println("2. Редактирование работника");
            System.out.println("3. Добавление нового работника");
            System.out.println("4. Удаление работника");
            System.out.println("5. Выход из программы");
            System.out.println("Выберите действие: ");
            choice = inputScanner.next().charAt(0);
            
            switch (choice) {
                case '1':
                    displayWorkers();
                    break;
                case '2':
                    fixWorker();
                    break;
                case '3':
                    newWorker();
                    break;
                case '4':
                    deleteWorker();
                    break;
                case '5': 
                    System.out.println("Программа завершила работу. Спасибо за использование.");
                    break;
                default:
                    System.out.println("ERROR!");
            }
        } while (choice != 5);
    }
}
Матвей2009 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
нужен взгляд со стороны U.Alex Общие вопросы по программированию, компьютерный форум 5 06.08.2018 00:35
Еврика + нужен взгляд со стороны! lambargo1 Свободное общение 1 31.05.2018 02:38
взгляд на себя со стороны feel2016 Свободное общение 4 25.06.2016 23:34
Нужен взгляд со стороны... xTeslax C# (си шарп) 0 20.02.2015 12:08
как изменить цвет ячейки и ставку сотрудника при отработке сотрудника 1год tpa Microsoft Office Excel 8 13.07.2013 15:43