С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/25: Рейтинг темы: голосов - 25, средняя оценка - 4.52
3 / 3 / 3
Регистрация: 13.02.2016
Сообщений: 158
1

Расчёт средней зарплаты за любой месяц

12.03.2016, 02:57. Показов 4808. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
4. В двумерном массиве хранится информация о зарплате 18 человек за каждый месяц года (в первом столбце — зарплата за январь, во втором — за февраль и т. д.). Составить программу для расчета средней зарплаты за любой месяц.(функции заполнения, распечатки, расчета)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Блог
12.03.2016, 02:57
Ответы с готовыми решениями:

Расчет средней зарплаты за любой месяц
В Двумерном массиве хранится информация о зарплате 18 человек за каждый месяц года (в первом...

Составить программу для расчета средней зарплаты за любой месяц
В двумерном массиве хранится информация о зарплате 18 человек за каждый месяц года (в первом...

Составить программу для расчета средней зарплаты за любой месяц
В двумерном массиве хранится информация о зарплате 18 человек за каждый месяц года (в первом...

Расчет средней зарплаты сотрудников фирмы
В среде турбо паскаль составить и отладить прграмму,которая позволяет посчитать среднюю зарплату...

5
17 / 17 / 10
Регистрация: 14.06.2012
Сообщений: 151
12.03.2016, 13:57 2
Лучший ответ Сообщение было отмечено Mari_ly как решение

Решение

C++
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
74
75
76
77
78
79
80
81
82
83
//4. В двумерном массиве хранится информация о зарплате 18 человек за каждый месяц года
//(в первом столбце — зарплата за январь, во втором — за февраль и т. д.).
//Составить программу для расчета средней зарплаты за любой месяц.(функции заполнения, распечатки, расчета) 
 
#include <iostream>
#include <cstdlib>
 
using namespace std;
 
void InputSalary(float **mass, int column, int row);
void PrintSalary(float **mass, int column, int row);
float CalcSalaryPerMonth(float **mass, int column, int row, unsigned int monthForCalc);
 
int main()
{
    float **Salary = new float*[18];
 
    for (int i = 0; i < 18; i++)
    {
        Salary[i] = new float[12];
    }
 
    InputSalary(Salary, 18, 12);
    cout << "\n";
    PrintSalary(Salary, 18, 12);
 
    cout << CalcSalaryPerMonth(Salary, 18, 12, 13) << "\n";
 
    system("pause");
 
    for (int i = 0; i < 18; i++)
    {
        delete[] Salary[i];
    }
    delete[] Salary;
 
    return 0;
}
 
void InputSalary(float **mass, int column, int row)
{
    for (int i = 0; i < column; i++)
    {
        for (int j = 0; j < row; j++)
        {
            //cout << "Input salary for employee #" << i + 1 << " in " << j + 1 << " month: "; ЕСЛИ САМОМУ ВВОДИТЬ
            //cin >> mass[i][j];
            mass[i][j] = rand() % 45; //ЧТОБЫ САМО ЗАПОЛНИЛО ПСЕВДОСЛУЧАЙНЫМИ ЧИСЛАМИ
        }
    }
};
 
void PrintSalary(float **mass, int column, int row)
{
    for (int i = 0; i < column; i++)
    {
        for (int j = 0; j < row; j++)
        {
            cout << "| " << mass[i][j];
        }
        cout << " |\n";
    }
};
 
float CalcSalaryPerMonth(float **mass, int column, int row, unsigned int monthForCalc)
{
    while (monthForCalc > row || monthForCalc < 1)
    {
        cout << "Incorrect month!\nInput value in this diapason [1 - 12]: ";
        cin >> monthForCalc;
    }
 
    monthForCalc--;
 
    float middleSalary(0);
 
    for (int i = 0; i < column; i++)
    {
        middleSalary += mass[i][monthForCalc];
    }
 
    return (middleSalary / 18);
};
1
Модератор
Эксперт С++
13722 / 10919 / 6478
Регистрация: 18.12.2011
Сообщений: 29,148
12.03.2016, 14:12 3
XpertVision, Зачем массивы создавать динамически, если размеры константные?
C++
1
2
3
4
5
6
7
8
9
10
11
12
int main()
{
   const inr NM=12,NQ=18;
   float Salary[NM][NQ];
 
   InputSalary(Salary, NQ, NM);
   cout << "\n";
   PrintSalary(Salary, 18, 12);
   cout << CalcSalaryPerMonth(Salary, NQ, NM, 13) << "\n";
   system("pause");
   return 0;
}
1
17 / 17 / 10
Регистрация: 14.06.2012
Сообщений: 151
12.03.2016, 14:47 4
zss,

C++
1
 InputSalary(Salary, NQ, NM);
Так нельзя передавать двумерный массив в функцию. Потому и сделал динамически, лично для меня так более понятно с точки зрения синтаксиса, чем городить ту канитель, чтобы статический массив передать.
1
Модератор
Эксперт С++
13722 / 10919 / 6478
Регистрация: 18.12.2011
Сообщений: 29,148
12.03.2016, 14:51 5
Лучший ответ Сообщение было отмечено Mari_ly как решение

Решение

Цитата Сообщение от XpertVision Посмотреть сообщение
Так нельзя передавать двумерный массив в функцию
Кто это Вам сказал?
Вот полный код
C++
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
//4. В двумерном массиве хранится информация о зарплате 18 человек за каждый месяц года
//(в первом столбце — зарплата за январь, во втором — за февраль и т. д.).
//Составить программу для расчета средней зарплаты за любой месяц.(функции заполнения, распечатки, расчета) 
 
#include <iostream>
#include <cstdlib>
 
using namespace std;
const int NM=12,NQ=18;
 
void InputSalary(float mass[][NQ], int column, int row);
void PrintSalary(float mass[][NQ], int column, int row);
float CalcSalaryPerMonth(float mass[][NQ], int column, int row, unsigned int monthForCalc);
 
int main()
{
   float Salary[NM][NQ];
 
   InputSalary(Salary, NQ, NM);
   cout << "\n";
   PrintSalary(Salary, 18, 12);
   cout << CalcSalaryPerMonth(Salary, NQ, NM, 13) << "\n";
   system("pause");
   return 0;
}
 
void InputSalary(float mass[][NQ], int column, int row)
{
    for (int i = 0; i < column; i++)
    {
        for (int j = 0; j < row; j++)
        {
            //cout << "Input salary for employee #" << i + 1 << " in " << j + 1 << " month: "; ЕСЛИ САМОМУ ВВОДИТЬ
            //cin >> mass[i][j];
            mass[i][j] = rand() % 45; //ЧТОБЫ САМО ЗАПОЛНИЛО ПСЕВДОСЛУЧАЙНЫМИ ЧИСЛАМИ
        }
    }
};
 
void PrintSalary(float mass[][NQ], int column, int row)
{
    for (int i = 0; i < column; i++)
    {
        for (int j = 0; j < row; j++)
        {
            cout << "| " << mass[i][j];
        }
        cout << " |\n";
    }
};
 
float CalcSalaryPerMonth(float mass[][NQ], int column, int row, unsigned int monthForCalc)
{
    while (monthForCalc > row || monthForCalc < 1)
    {
        cout << "Incorrect month!\nInput value in this diapason [1 - 12]: ";
        cin >> monthForCalc;
    }
 
    monthForCalc--;
 
    float middleSalary(0);
 
    for (int i = 0; i < column; i++)
    {
        middleSalary += mass[i][monthForCalc];
    }
 
    return (middleSalary / 18);
};
Кстати, статический массив можно передать как одномерный, т.к. он расположен в памяти непрерывно.
Только тогда в функциях придется самостоятельно вычислять номер элемента как i*NM+j
2
17 / 17 / 10
Регистрация: 14.06.2012
Сообщений: 151
12.03.2016, 15:15 6
zss, Спасибо за разъяснение с передачей двумерного массива.

Написал, что нельзя, так как Вы не написали своё объявление функции и я посчитал, что тогда ваш код относиться к функциям в моём примере.
1
12.03.2016, 15:15
BasicMan
Эксперт
19315 / 2622 / 84
Регистрация: 17.02.2009
Сообщений: 10,364
Блог
12.03.2016, 15:15
Помогаю со студенческими работами здесь

Расчет зарплаты за 1 месяц в запросе
Здравствуйте,а можно не создавать другую тему? почти такой же вопрос. подскажите пожалуйста...

Найдите фамилию работника, зарплата которого наименее отклоняется от средней зарплаты всех работников за текущий месяц
Ведомость на зарплату представлена как две таблицы. Одна содержит фамилии работников цеха, а вторая...

Расчет зарплаты каждому работнику (Выполнить можно в любой версии Access)
Помогите, пожалуйста!!!

Зарплаты распределены нормально, определить 95% интервал для средней зарплаты.
Из 200 работников банка случайным образом отобрано 20 человек, средняя заработная плата которых...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru