Этот пример разделяет конкретный код Java, реализующую систему управления сотрудниками для вашей ссылки. Конкретный контент заключается в следующем
Соответствующее содержание, которое в основном практикуется в этой системе:
1. Заявления управления процессом
2. классы, объекты
3. инкапсуляция, наследование, полиморфизм
4. перегрузка и переписывание методов
5. Модификатор доступа
6. Статический
Описание требования:
Основная информация о информации сотрудников - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Атрибуты: номер работника, имя сотрудника, должности сотрудника, дни отпуска, базовая зарплата, обычная зарплата работников:
На основании базовой заработной платы увеличение рабочего приема пищи на 10%, 50% субсидии на работу, 200 юаней жилищных субсидий Базовая зарплата + базовая зарплата * 0,1 + базовая зарплата * 0,5 + 200
---------менеджер----------
Атрибуты: номер сотрудника, имя сотрудника, должности сотрудника, дни ухода, базовая зарплата зарплата:
На основании базовой заработной платы, 20% рабочего питания, 50% субсидий на работу, 500 юаней.
----------- Директор ----------
Атрибуты: номер сотрудника, имя сотрудника, должности сотрудника, дни ухода, базовая зарплата, зарплата директора:
На основании базовой заработной платы, 8% рабочего питания, 30% субсидий на работу, 2000 юаней жилищных субсидий, 3000 юаней инвестиционной субсидии базовая зарплата + базовая зарплата * 0,08 + базовая зарплата * 0,3 + 2000 + 3000
----------другой-----------
После вычета зарплаты все сотрудники не уходят. Вся основная зарплата оплачивается. Если у вас есть отпуск, среднесуточная зарплата будет вычтена* количество дней отпуска.
Общие идеи дизайна:
Существует родительский класс одного сотрудника, один обычный сотрудник, один менеджер и один подкласс председателя, а метод заработной платы родительского класса переписывается соответственно. Последний тестовый класс.
Интерфейс после реализации показан на рисунке:
Нет проблем с написанием подклассов родительского класса. Обратите внимание на инкапсуляцию как можно больше. Лучше всего использовать частные для изменения свойств. Редактор был ленивым и в основном тратит время на написание тестовых классов o ( ̄ε ̄*) o.
ПРИМЕЧАНИЕ. Поскольку эта система хранит только объекты в массивах объектов, фиксированная длина устанавливается на 100 при инициализации массива, а система автоматически инициализирует каждый элемент массива в NULL. Поэтому при написании методов испытаний вы должны обратить внимание на написание ошибок нулевых указателей в назначениях. Редактор глуп, поэтому я потратил некоторое время, чтобы написать это (_)
Кроме того, если вы измените информацию сотрудника, обратите внимание на то, что делать, если изменится позиция сотрудника. В конце концов, объект изменился, и метод обработки зарплаты отличается.
Опубликован следующий код:
Во -первых, сотрудник родительского класса
// Premium Class Public Class Employee {String ID; String name; Строковая позиция; int holiday; двойная зарплата; public employee () {} public void sumsalary () {} public void display () {System.out.println ("id:"+id+", имя:"+name+", position:"+position+", количество дней отпуска:"+Holiday+", зарплата:"+зарплата); }}Три подкатегории:
Public Class CommonMelopeee Extends employee {@Override public void sumsalary () {super.salary = super.salary+super.salary*0.1+super.salary*0.5+200-super.holiday*(super.salary/30); }} менеджер открытого класса Extens Employee {@Override public void sumsalary () {super.salary = super.salary+super.salary*0.2+super.salary*0.5+200-super.holiday*(super.salary/30); }} Директор открытого класса Extends employee {@Override public void sumsalary () {super.salary = super.salary+зарплата*0,08+super.salary*0.3+2000+3000-super.holiday*(super.salary/30); }}Далее - класс для тестового класса, вот слишком много, чтобы завершить сложение, удаление, модификацию и поиск.
Public Class Testemd {Static Scanner SC = новый сканер (System.in); статический сотрудник [] em = новый сотрудник [100]; public static void caozuo () { System.out.println("--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Изменить --- »); System.out.println ("--- 4 запрос ---"); System.out.println ("--- 0 Выход ---"); System.out.println ("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- UpdateEr (); System.out.println ("-------------"); Дни: «); int holiday = sc.nextint (); System.out.print (« Основная зарплата: »); двойная зарплата = sc.nextdouble (); switch (позиция) {случай« обычный работник »: работник A = New Commonmployee (); A.Id = ID; A.Name = name; A.Position =« Обычный работник »; A.Holiday = Holidary yrestary; (int i = 0; i < 100; i++) { if (em[i] == null) { em[i] = a; System.out.println("Added successfully!"); em[i].display(); break; } else { continue; } } break; case "Manager": Employee b = new Manager(); b.ID = id; b.name = name; b.position = "Manager"; b.holiday = holiday; b.salary = salary; b.sumSalary(); for (int i = 0; i < 100; i++) { if (em[i] == null) { em[i] = b; System.out.println("Added successfully!"); em[i].display(); break; } else { continue; } } break; case "Chairman": Employee c = new Director(); c.ID = id; c.name = name; c.position = "Chairman"; c.holiday = holiday; c.salary = salary; c.sumSalary(); for (int i = 0; i < 100; i++) { if (em[i] == null) { em[i] = c; System.out.println("Added successfully!"); em[i].display(); break; } else { continue; } } break; System.out.println("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ String n = sc.next(); for (int i = 0; sc.next (); CAOZUO (); 99) {Продолжить; System.out.println ("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- System.out.println («Что вы хотите изменить sc.next (); em[i].position = position; em[i].holiday = holiday; em[i].salary = salary; em[i].sumSalary(); System.out.println("Modification successful!"); em[i].display(); } else { em[i] = null; Employee a = new CommonEmployee(); a.ID = id; a.name = name; a.position = "ordinary Сотрудник "; A.Holiday = Holiday; a.salary = зарплата; a.sumsalary (); for (int j = 0; j <100; j ++) {if (em [j] == null) {em [j] = a; system.out.println (« Модификация была успешной! »); (I] {em [I] em [j]. em[i].sumSalary(); System.out.println("Modified successfully!"); em[i].display(); } else { em[i] = null; Employee c = new Director(); c.ID = id; c.name = name; c.position = "Chairman"; c.holiday = holiday; c.salary = salary; c.sumSalary(); for (int j = 0; j < 100; Thread.sele (2000); {if (i! = 99) {Продолжить; System.out.println("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Todo Auto Generation Block E.printstacktrace ();Я пришел на сообщение, как только закончил писать программу. Я не нашел никаких проблем с простым тестом. Если вы найдете что -то не так, пожалуйста, поправьте меня. Спасибо.
Для получения дополнительных учебных материалов обратите внимание на специальную тему «Разработка системы управления».
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.