Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.68/25: Рейтинг темы: голосов - 25, средняя оценка - 4.68
0 / 0 / 0
Регистрация: 14.10.2015
Сообщений: 35

Средний возраст работников

27.12.2017, 11:00. Показов 5103. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно создать метод в классе, который посчитает средний возраст всех работников



Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
public class Person{
      private String name;
      private int age;
      static count;
 
public void setName(String name) {
        this.name = name;
    }
public void setAge(int age) {
        this.age = age;
    }
 
public String getName() {
        return name;
    }
public int getAge() {
        return age;
    }
public Person(){
count++;
}
 
public Person(String name, int age) {
        this.name = name;
        this.age = age;
        count++;
    }
}
 
 
public class Employee extends Person{
     private String profession;
 
public void setProfession(String profession) {
        this.profession = profession;
    }
public String getProfession() {
        return profession;
    }
public Employee(){
   super();
}
 
public Employee(String name, int age, String profession) {
        super(name,age);
        this.profession = profession;
 
    }
 
}
 
 
 
public class Main {
    public static void main(String arg[]) {
          HashMap<Integer,Employee> hashMap = new HashMap<Integer,Employee>();
          hashMap.put(1,new Employee("Вася", 23, "программист"));
          hashMap.put(2,new Employee("Олег", 26, "программист"));
          hashMap.put(3,new Employee("Зоя", 21, "секретарь"));
          hashMap.put(4,new Employee("Ира", 23, "дизайнер"));
 }
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.12.2017, 11:00
Ответы с готовыми решениями:

Посчитайте средний возраст каждой команды и сообщите, для какой из них это значение оказалось больше
Есть две команды регби из 25 человек разного возраста каждая. Члены команды подбирались случайным образом. Выведите на экран в двух...

Как подсчитать средний возраст студентов и количество студентов с задолженностями записать в файл и вывести на экран
Предусмотреть ввод информации с клавиатуры с помощью потоков ввода, вывод информации в файл, статический метод чтения из файла и вывода...

Подсчитать средний возраст работников, у которых оклад меньше заданного
С клавиатуры последовательно вводятся фамилия, оклад и возраст работника. Ввод автоматически прекращается, как только вместо очередной...

9
 Аватар для Aviz__
2738 / 2047 / 507
Регистрация: 17.02.2014
Сообщений: 9,465
27.12.2017, 12:28
Лучший ответ Сообщение было отмечено User14515 как решение

Решение


Кликните здесь для просмотра всего текста

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
public class TestCompany {
 
    public static void main(String[] args) {
        Company nike = new Company();
        nike.addNewEmploye("Вася", 22, "программист");
        nike.addNewEmploye("Петя", 23, "программист");
        nike.addNewEmploye("Зоя", 21, "секретарь");
        System.out.printf("%.2f",nike.getAverageAgeEmployees());
    }
}
//#######
import java.util.ArrayList;
 
/** */
public class Company {
    private ArrayList<Employee> staff = new ArrayList<>();
 
    public void addNewEmploye(String name, int age, String profession){
        staff.add(new Employee(name,age,profession));
    }
 
    public double getAverageAgeEmployees() {
        double tmpSumm = 0.0;
        if (staff.size() == 0)
            return 0.0;
        for (Employee tmpPers : staff)
            tmpSumm += tmpPers.getAge();
        return tmpSumm/staff.size();
    }
}
//######
public class Person {
    private String name;
    private int age;
 
    public void setName(String name) {
        this.name = name;
    }
 
    public void setAge(int age) {
        this.age = age;
    }
 
    public String getName() {
        return name;
    }
 
    public int getAge() {
        return age;
    }
 
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
}
//######
public class Employee extends Person{
    private String profession;
 
    public void setProfession(String profession) {
        this.profession = profession;
    }
    public String getProfession() {
        return profession;
    }
 
    public Employee(String name, int age, String profession) {
        super(name,age);
        this.profession = profession;
    }
 
}
1
0 / 0 / 0
Регистрация: 14.10.2015
Сообщений: 35
27.12.2017, 12:48  [ТС]
Aviz__, этот код можно переделать под HashMap?
0
 Аватар для Aviz__
2738 / 2047 / 507
Регистрация: 17.02.2014
Сообщений: 9,465
27.12.2017, 13:30
User14515, конечно можно! Вот, вы и переделайте))
0
0 / 0 / 0
Регистрация: 14.10.2015
Сообщений: 35
27.12.2017, 15:19  [ТС]
Aviz__, Действительно, это не сложно у меня получилось. Спасибо большое!!! Но вот еще один вопрос
Java
1
2
3
4
Company nike = new Company();
        nike.addNewEmploye("Вася", 22, "программист");
        nike.addNewEmploye("Петя", 23, "программист");
        nike.addNewEmploye("Зоя", 21, "секретарь");
как сделать чтоб все эти значения добавлялись из файла, а не в программе?
0
 Аватар для Aviz__
2738 / 2047 / 507
Регистрация: 17.02.2014
Сообщений: 9,465
27.12.2017, 15:34
если файл имеет следующий формат:
Вася,22,программист
Петя,23,программист
..............................
Олеся,22,программист

Читаете его по строкам, разбиваете на подстроки по ',' преобразуете в тип правильный, и ставите в addNewEmploye
0
0 / 0 / 0
Регистрация: 14.10.2015
Сообщений: 35
27.12.2017, 19:55  [ТС]
Aviz__, а если например формат :
Вася
22
программист
Петя
33
программист

то не обязательно на подстроки разбивать??
только вот как преобразовать, чтоб вставить в addNewEmploye
0
 Аватар для Aviz__
2738 / 2047 / 507
Регистрация: 17.02.2014
Сообщений: 9,465
28.12.2017, 05:24
ваш формат оооочень специфичен и не удобен.
Цитата Сообщение от User14515 Посмотреть сообщение
как преобразовать
Integer.valueOf(strFromFile); - для возраста
0
0 / 0 / 0
Регистрация: 14.10.2015
Сообщений: 35
28.12.2017, 09:54  [ТС]
Aviz__, Спасибо
0
 Аватар для Aviz__
2738 / 2047 / 507
Регистрация: 17.02.2014
Сообщений: 9,465
28.12.2017, 12:04
Собственно, вот так измениться класс Company и TestCompany (читает из файла "data.txt")
С наступающим
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
 
/** */
public class Company {
    private ArrayList<Employee> staff = new ArrayList<>();
 
    public void addNewEmploye(String name, int age, String profession){
        staff.add(new Employee(name,age,profession));
    }
 
    public double getAverageAgeEmployees() {
        double tmpSumm = 0.0;
        if (staff.size() == 0)
            return 0.0;
        for (Employee tmpPers : staff)
            tmpSumm += tmpPers.getAge();
        return tmpSumm/staff.size();
    }
 
    public void addNewEmployesFromFile(String fileName) {
        String tmpStr;
        ArrayList<String> strgsFile = new ArrayList<>();
        try (BufferedReader br = new BufferedReader(new FileReader(fileName))) {
            while ((tmpStr = br.readLine()) != null)
                strgsFile.add(tmpStr);
        } catch (IOException e) {
            e.printStackTrace();
        }
        for (String fS : strgsFile) {
            String [] partsEmp = fS.split(",");
            addNewEmploye(partsEmp[0],Integer.valueOf(partsEmp[1]),partsEmp[2]);
        }
    }
}
//######
public class TestCompany {
 
    public static void main(String[] args) {
        Company nike = new Company();
        nike.addNewEmploye("Вася", 22, "программист");
        nike.addNewEmploye("Петя", 23, "программист");
        nike.addNewEmploye("Зоя", 21, "секретарь");
        nike.addNewEmployesFromFile("data.txt");
        System.out.printf("%.2f",nike.getAverageAgeEmployees());
    }
}
Вложения
Тип файла: txt data.txt (60 байт, 4 просмотров)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.12.2017, 12:04
Помогаю со студенческими работами здесь

Определить средний возраст и вывести порядковые номера членов бригады, возраст которых превышает средний
Имеется список 12 членов бригады с указанием их возраста. Определить средний возраст и вывести порядковые номера членов бригады, возраст...

Выясните средний возраст группы и процент людей, возраст которых < 20 лет
1. Известен возраст группы людей, состоящей из n человек. Выясните средний возраст группы и процент людей, возраст которых &lt; 20 лет. ...

Выясните средний возраст группы и процент людей, возраст которых меньше 20 лет
Помогите пожалуйста написать эту программу. Буду очень благодарен, заранее спасибо. всем добра. Известен возраст группы людей состоящей...

Известен возраст (в годах в виде 14,5 лет и т. д.) каждого ученика класса. Определить средний возраст учеников
Известен возраст (в годах в виде 14,5 лет и т. д.) каждого ученика класса. Определить средний возраст учеников класса. Количество ...

Найти возраст самого старшего и самого молодого посетителей спортзала, а так же посчитать средний возраст посетителей
В спортзал ежедневно приходит какое-то количество посетителей. Необходимо предложить пользователю ввести такие данные: сколько человек...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
YAFU@home — распределённые вычисления для математики. На CPU
Programma_Boinc 20.01.2026
YAFU@home — распределённые вычисления для математики. На CPU YAFU@home — это BOINC-проект, который занимается факторизацией больших чисел и исследованием aliquot-последовательностей. Звучит. . .
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru