Skip to content

Instantly share code, notes, and snippets.

@Viacheslav77
Last active January 26, 2016 13:28
Show Gist options
  • Save Viacheslav77/cb3aac665ef0a6ea1505 to your computer and use it in GitHub Desktop.
Save Viacheslav77/cb3aac665ef0a6ea1505 to your computer and use it in GitHub Desktop.
Developers
public abstract class Developer {
protected String job;
protected String name;
protected double basicSalary;
protected int experience;
public Developer(String job, String name, double basicSalary, int experience) {
this.job = job;
this.name = name;
this.basicSalary = basicSalary;
this.experience = experience;
}
public String getJob(){
return job;
}
public String getName() {
return name;
}
public double getBasicSalary() {
return basicSalary;
}
public abstract double getSalary();
}
package Developers;
public class JuniorDeveloper extends Developer {
public JuniorDeveloper(String job, String name, double basicSalary, int experience) {
super(job, name, basicSalary, experience);
}
@Override
public double getSalary() {
return basicSalary + (experience > 0 ? basicSalary * experience * 0.1 : 0);
}
}
package Developers;
// 1. Написать своего наследника Developer. Добавить его в существующий проект.
// 2.Создать список разработчиков и заполнить его случайным образом. Вывести на экран
// только Senior developer-овс зарплатой больше 1200у.е.
// 3.Написать код, который разделит список объектов Developer на 3 отдельных списка для
import java.util.Random;
public class Main {
public static void main(String[] args) {
Developer[] list = {
new PodavanDeveloper("PodavanDeveloper", "Vika", 500, 0),
new JuniorDeveloper("JuniorDeveloper", "Mike", 500, 0),
new JuniorDeveloper("JuniorDeveloper", "Dima", 500, 1),
new JuniorDeveloper("JuniorDeveloper", "Vova", 500, 2),
new SeniorDeveloper("SeniorDeveloper", "Jack", 500, 5),
new TeamLeadDeveloper("TeamLeadDeveloper", "Robby", 500, 7)
};
StringBuilder sb;
for (Developer d : list) {
sb = new StringBuilder() // !!!
.append(d.getJob())
.append(" ")
.append(d.getName())
.append(": ")
.append(d.getBasicSalary())
.append(" -> ")
.append(d.getSalary());
System.out.println(sb.toString());
}
//Создать список разработчиков и заполнить его случайным
//образом. Вывести на экран только Senior developer-ов с
//зарплатой больше 1200 у.е.
String [] name = { "Vika","Galia", "Valia","Petia","Vasia","Nastia","Vova","Slava"};
String [] job = { "PodavanDeveloper", "JuniorDeveloper","SeniorDeveloper", "TeamLeadDeveloper"};
Developer [] list1 = new Developer [100];
for(int i=0; i< list1.length; i++){
Random r = new Random ();
int j = r.nextInt(4);
switch (j){
case 0:
list1 [i] = new PodavanDeveloper(job[j] , name[r.nextInt(7)], 500, 0);
break;
case 1:
list1 [i] = new JuniorDeveloper(job[j] , name[r.nextInt(7)], 500, 0);
break;
case 2:
list1 [i] = new SeniorDeveloper(job[j] , name[r.nextInt(7)], 500, r.nextInt(15));
break;
case 3:
list1 [i] = new TeamLeadDeveloper(job[j] , name[r.nextInt(7)], 500, r.nextInt(15));
break;
}
}
System.out.println("\n" + "-------------------Созданный случайным образом список разработчиков ---------------------" + "\n");
for (Developer d : list1) {
sb = new StringBuilder()
.append(d.getJob())
.append(" ")
.append(d.getName())
.append(": ")
.append(d.getBasicSalary())
.append(" -> ")
.append(d.getSalary());
System.out.println(sb.toString());
}
System.out.println("-------------------SeniorDeveloper c зарплатой > 1500 --------------------------" + "\n" );
for (Developer d : list1) {
if ((d.getSalary()> 1500) && d.getJob().equals("SeniorDeveloper")){
sb = new StringBuilder() // !!!
.append(d.getJob())
.append(" ")
.append(d.getName())
.append(": ")
.append(d.getBasicSalary())
.append(" -> ")
.append(d.getSalary());
System.out.println(sb.toString());
}
}
//Написать код, который разделит список объектов Developer
//на 3 отдельных списка для Juniors, Seniors и Team Leads.
//Вывести списки на экран.
System.out.println("\n" +"-------------------4 отдельных списка для Podavans, Juniors, Seniors и Team Leads. --------------------------" + "\n");
Developer [] podavan = new Developer[100];
Developer [] junior = new Developer[100];
Developer [] senior = new Developer[100];
Developer [] teamliad = new Developer[100];
int p,j,s,t;
p=j=s=t=0;
for (int i = 0; i< list1.length; i++){
if(list1[i].getJob().equals("PodavanDeveloper")){
podavan [p] = list1[i];
p++;
}
if(list1[i].getJob().equals("JuniorDeveloper")){
junior [j] = list1[i];
j++;
}
if(list1[i].getJob().equals("SeniorDeveloper")){
senior [s] = list1[i];
s++;
}
if(list1[i].getJob().equals("TeamLeadDeveloper")){
teamliad [t] = list1[i];
t++;
}
}
//System.out.println(p + " " + j + " " + s + " " + t);
System.out.println("\n" +"Подаваны " + p +" --------------" + "\n");
prn(podavan, p);
System.out.println("\n" + "Джуны "+ j+ "\n");
prn(junior, j);
System.out.println("\n" + "Сеньёры " + s + "\n");
prn(senior, s);
System.out.println("\n" + "Тимлиды " + t + "\n");
prn(teamliad, t);
}
public static void prn(Developer[] d, int k){
StringBuilder sb;
for (int i =0; i < k; i++) {
sb = new StringBuilder() // !!!
.append(d[i].getJob())
.append(" ")
.append(d[i].getName())
.append(": ")
.append(d[i].getBasicSalary())
.append(" -> ")
.append(d[i].getSalary());
System.out.println(sb.toString());
}
}
}
package Developers;
//Написать своего наследника Developer. Добавить его в
//существующий проект.
public class PodavanDeveloper extends Developer{
public PodavanDeveloper (String job, String name, double basicSalary, int experience){
super (job, name, basicSalary, experience);
}
@Override
public double getSalary (){
return (basicSalary * 0.5)+ (experience > 0 ? basicSalary * experience * 0.1 : 0);
}
}
package Developers;
public class SeniorDeveloper extends Developer {
public SeniorDeveloper(String job, String name, int basicSalary, int experience) {
super(job, name, basicSalary, experience);
}
@Override
public double getSalary() {
return (basicSalary * 2) + (experience > 0 ? basicSalary * experience * 0.1 : 0);
}
}
package Developers;
public class TeamLeadDeveloper extends Developer {
public TeamLeadDeveloper(String job, String name, double basicSalary, int experience) {
super(job, name, basicSalary, experience);
}
@Override
public double getSalary() {
return (basicSalary * 4) + (experience > 0 ? basicSalary * experience * 0.1 : 0);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment