Форум программистов, компьютерный форум CyberForum.ru

Проконсультируйте пожалуйста - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Не правильно работает! http://www.cyberforum.ru/cpp-beginners/thread1015399.html
#include "stdafx.h" #include <iostream> #include <math.h> #include <stdio.h> using namespace std; double func1(double,double,double,double,double,double); double func2(double &,double &,double &,double &,double &,double &); double func3(double *,double *,double *,double *,double *,double *);
C++ Преобразование массива одного типа в другой Есть массив int-овых чисел. Нужно его перевести в массив double. Поэлементно с помощью цикла очень долго, не подходит. Может быть есть какая-нибудь функция или библиотека, чтобы быстро преобразовать тип? http://www.cyberforum.ru/cpp-beginners/thread1015380.html
C++ Где тут ошибка то?
#include <iostream> using namespace std; int main() { int b=1, c=0; while (1) { if (b==13); break; else
C++ Двумерные массивы (количество элементов массива, значение которых больше среднего арифметического значения элементов этого массива)
Дан двумерный квадратный массив из 16 элементов.Написать программу, которая находит и выводит количество элементов массива, значение которых больше среднего арифметического значения элементов этого массива. ( Программу написать в Pascal,двумрным массивом)
C++ Найти чему равно http://www.cyberforum.ru/cpp-beginners/thread1015351.html
вот такое деление. Не могу написать программку, получается не правильное число. Число должно равняться числу 0,761597. Помогите разобраться.
C++ потоки вывода доброго времени суток, Уважаемые форумчане! есть проблема, суть проблемы заключается в следующем: ни как не могу передать поток в конструктор класса(конструктор должен принимать ostream, что бы можно было передавать в него разные типы потоков.), помогите разобраться что я не правильно делаю? в хедере класса объявил поток std::ostream & strm и так же прописал непосредственно конструктор... подробнее

Показать сообщение отдельно
кверти
4 / 4 / 1
Регистрация: 22.09.2013
Сообщений: 133
Завершенные тесты: 2
22.11.2013, 16:33  [ТС]     Проконсультируйте пожалуйста
Цитата Сообщение от dzrkot Посмотреть сообщение
неее))
1)Главная функция
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
#include <iostream>
#include <stdio.h>
#include <windows.h>
 
//Переменные для хранения оценок.
//Переменные для 1-го студента.
float math_1,algebra_1,amp_1;
//Переменные для 2-го студента.
float math_2,algebra_2,amp_2;
//Переменные для 3-го студента.
float math_3,algebra_3,amp_3;
 
//Переменные требуемые для расчета стипендии.
float summa_1, // Сумма оценок 1-го студента.
step_1;  // Размер стипендии 1-го студента.
float summa_2, // Сумма оценок 2-го студента.
step_2;  // Размер стипендии 2-го студента.
float summa_3, // Сумма оценок 3-го студента
step_3;  // Размер стипендии 3-го студента
 
//Массив для хранения качества сдачи экзаменов выше 3.
float quality[3];
//Массив для хранения качества сдачи экзаменов выше 4.
float quality_1[3];
 
void InputData();      // Функция для ввода данных.
void calculateScholarship(); //Функция расчета стипендии.
void calculateQuantitivePerformance(); // Функция для определения качества сдачи экзамена не ниже 3.
void calculateQualitativePerformance();// Функция для определения качества сдачи экзамена не ниже 4.
void PrintTable(); //Функция для вывода результата.
 
void main()
{
    setlocale(0,"");
 
    InputData();
    calculateScholarship();
    calculateQuantitivePerformance();
    calculateQualitativePerformance();
    PrintTable();
    system("pause");
}
2)Считывание оценок
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
// Функция для ввода оценок.
#include <iostream>
#include <stdio.h>
#include <windows.h>
 
//Переменные для 1-го студента.
extern float math_1,algebra_1,amp_1;
//Переменные для 2-го студента.
extern float math_2,algebra_2,amp_2;
//Переменные для 3-го студента.
extern float math_3,algebra_3,amp_3;
 
void InputData()
{
    // math_x - оценка по мат.анализу
    // algebra_x - оценка по алгебре
    // amp_x - оценка по ЯМП
 
    printf("Введите оценку 1-го студента по мат.анализу: ");
    scanf("%f",&math_1);
 
    printf("Введите оценку 1-го студента по алгебре: ");
    scanf("%f",&algebra_1);
 
    printf("Введите оценку 1-го студента по ЯМП: ");
    scanf("%f",&amp_1);
 
    printf("Введите оценку 2-го студента по мат.анализу: ");
    scanf("%f",&math_2);
 
    printf("Введите оценку 2-го студента по алгебре: ");
    scanf("%f",&algebra_2);
 
    printf("Введите оценку 2-го студента по ЯМП: ");
    scanf("%f",&amp_2);
 
    printf("Введите оценку 3-го студента по мат.анализу: ");
    scanf("%f",&math_3);
 
    printf("Введите оценку 3-го студента по алгебре: ");
    scanf("%f",&algebra_3);
 
    printf("Введите оценку 3-го студента по ЯМП: ");
    scanf("%f",&amp_3);
 
    system("cls");
}
3)Вычисление стипендии
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
84
85
// Функция для вычисления размера стипендии.
#include <stdio.h>
 
//Переменные для 1-го студента.
extern float math_1,algebra_1,amp_1;
//Переменные для 2-го студента.
extern float math_2,algebra_2,amp_2;
//Переменные для 3-го студента.
extern float math_3,algebra_3,amp_3;
 
void calculateScholarship()
{
    // math_x - оценка по мат.анализу
    // algebra_x - оценка по алгебре
    // amp_x - оценка по ЯМП
 
    extern float summa_1, // Сумма оценок 1-го студента.
        step_1;  // Размер стипендии 1-го студента. 
 
    summa_1 = math_1 + algebra_1 + amp_1;
 
    if (summa_1 > 8)
    {
        if ((math_1 == 3 ) || (algebra_1 == 3) || (amp_1 == 3))
        {
            step_1 = summa_1 * 250;
        }
        if ((math_1 > 3) && (algebra_1 > 3) && (amp_1 > 3))
        {   
            step_1 = summa_1 * 250;
            step_1 = step_1 + (step_1 / 100 * 25);
        }
        if ((math_1 > 4) && (algebra_1 > 4) && (amp_1 > 4))
        {   
            step_1 = summa_1 * 250;
            step_1 = step_1 + (step_1 / 100 * 50);
        }
    } else step_1 = 0;
 
    extern float summa_2, // Сумма оценок 2-го студента.
        step_2;  // Размер стипендии 2-го студента.
 
    summa_2 = math_2 + algebra_2 + amp_2;
 
    if (summa_2 > 8)
    {
        if ((math_2 == 3 ) || (algebra_2 == 3) || (amp_2 == 3))
        {
            step_2 = summa_2 * 250;
        }
        if ((math_2 > 3) && (algebra_2 > 3) && (amp_2 > 3))
        {           
            step_2 = summa_2 * 250;
            step_2 = step_2 + (step_2 / 100 * 25);
        }
        if ((math_2 > 4) && (algebra_2 > 4) && (amp_2 > 4))
        {   
            step_2 = summa_2 * 250;
            step_2 = step_2 + (step_2 / 100 * 50);
        }
    } else step_2 = 0;
 
    extern float summa_3, // Сумма оценок 3-го студента.
        step_3;  // Размер стипендии 3-го студента.
 
    summa_3 = math_3 + algebra_3 + amp_3;
 
    if (summa_3 > 8)
    {
        if ((math_3 == 3 ) || (algebra_3 == 3) || (amp_3 == 3))
        {
            step_3 = summa_3 * 250;
        }
        if ((math_3 > 3) && (algebra_3 > 3) && (amp_3 > 3))
        {
            step_3 = summa_3 * 250;
            step_3 = step_3 + (step_3 / 100 * 25);
        }
        if ((math_3 > 4) && (algebra_3 > 4) && (amp_3 > 4))
        {
            step_3 = summa_3 * 250;
            step_3 = step_3 + (step_3 / 100 * 50);
        }
    } else step_3 = 0;
}
4)Вычисление количества и качества
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
#include <stdio.h>
 
//Переменные хранящие оценки.
//Переменные для 1-го студента.
extern float math_1,algebra_1,amp_1;
 
//Переменные для 2-го студента.
extern float math_2,algebra_2,amp_2;
 
//Переменные для 3-го студента.
extern float math_3,algebra_3,amp_3;
 
//Массив для хранения качества сдачи экзаменов выше 3.
extern float quality[3];
//Массив для хранения качества сдачи экзаменов выше 4.
extern float quality_1[3];
 
void calculateQuantitivePerformance()
{
    for (int i=1;i<=3;i++)
    {
        quality[i]=0;
        quality_1[i]=0;
    }
 
    if(math_1 >= 3) quality[0] += 1;
    if(math_2 >= 3) quality[0] += 1;
    if(math_3 >= 3) quality[0] += 1;
 
    quality[0] = quality[0] / 3 * 100;
 
    if(algebra_1 >= 3) quality[1] += 1;
    if(algebra_2 >= 3) quality[1] += 1;
    if(algebra_3 >= 3) quality[1] += 1;
 
    quality[1] = quality[1] /  3 * 100;
 
    if(amp_1 >= 3) quality[2] += 1;
    if(amp_2 >= 3) quality[2] += 1;
    if(amp_3 >= 3) quality[2] += 1;
 
    quality[2] = quality[2] /  3 * 100;
}
void calculateQualitativePerformance()
{
    if(math_1 >= 3) quality_1[0] += 1;
    if(math_2 >= 3) quality_1[0] += 1;
    if(math_3 >= 3) quality_1[0] += 1;
 
    quality_1[0] /= 3 * 100;
 
    if(algebra_1 >= 3) quality_1[1] += 1;
    if(algebra_2 >= 3) quality_1[1] += 1;
    if(algebra_3 >= 3) quality_1[1] += 1;
 
    quality_1[1] /= 3 * 100;
 
    if(amp_1 >= 3) quality_1[2] += 1;
    if(amp_2 >= 3) quality_1[2] += 1;
    if(amp_3 >= 3) quality_1[2] += 1;
 
    quality_1[2] /= 3 * 100;
}
5)Отчетная таблица
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
#include <iostream>
#include <stdio.h>
#include <windows.h>
                                       
//Переменные хранящие оценки.
//Переменные для 1-го студента.
extern float math_1,algebra_1,amp_1;
//Переменные для 2-го студента.
extern float math_2,algebra_2,amp_2;
//Переменные для 3-го студента.
extern float math_3,algebra_3,amp_3;
 
//Переменные требуемые для расчета стипендии.
extern float step_1;  // Размер стипендии 1-го студента.
extern float step_2;  // Размер стипендии 2-го студента.
extern float step_3;  // Размер стипендии 3-го студента
 
//Массив для хранения качества сдачи экзаменов выше 3.
extern float quality[2];
//Массив для хранения качества сдачи экзаменов выше 4.
extern float quality_1[2];                                
 
void PrintTable()
{
    setlocale(0,"");
 
    printf("№ студента     Алгебра  Мат.анализ  ЯМП  Стипендия, руб\n");
    printf("\n");
           printf("1                %1.0f        %1.0f          %1.0f      %7.2f\n",math_1,algebra_1,amp_1,step_1);
    printf("\n");
    printf("2                %1.0f        %1.0f          %1.0f      %7.2f\n",math_2,algebra_2,amp_2,step_2);
    printf("\n");
    printf("3                %1.0f        %1.0f          %1.0f      %7.2f\n",math_3,algebra_3,amp_3,step_3);
    printf("\n");
    printf("Кол.усп        %4.1f     %4.1f       %4.1f\n",quality[0],quality[1],quality[2]);
    printf("\n");
    printf("Кач.усп        %4.1f     %4.1f       %4.1f\n",quality_1[0],quality_1[1],quality_1[2]);
}
Вышло что-то типо такого. Программа работает , но нужно оптимизировать половину кода(

Добавлено через 2 минуты
Цитата Сообщение от кверти Посмотреть сообщение
1)Главная функция
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
#include <iostream>
#include <stdio.h>
#include <windows.h>
 
//Переменные для хранения оценок.
//Переменные для 1-го студента.
float math_1,algebra_1,amp_1;
//Переменные для 2-го студента.
float math_2,algebra_2,amp_2;
//Переменные для 3-го студента.
float math_3,algebra_3,amp_3;
 
//Переменные требуемые для расчета стипендии.
float summa_1, // Сумма оценок 1-го студента.
step_1;  // Размер стипендии 1-го студента.
float summa_2, // Сумма оценок 2-го студента.
step_2;  // Размер стипендии 2-го студента.
float summa_3, // Сумма оценок 3-го студента
step_3;  // Размер стипендии 3-го студента
 
//Массив для хранения качества сдачи экзаменов выше 3.
float quality[3];
//Массив для хранения качества сдачи экзаменов выше 4.
float quality_1[3];
 
void InputData();      // Функция для ввода данных.
void calculateScholarship(); //Функция расчета стипендии.
void calculateQuantitivePerformance(); // Функция для определения качества сдачи экзамена не ниже 3.
void calculateQualitativePerformance();// Функция для определения качества сдачи экзамена не ниже 4.
void PrintTable(); //Функция для вывода результата.
 
void main()
{
    setlocale(0,"");
 
    InputData();
    calculateScholarship();
    calculateQuantitivePerformance();
    calculateQualitativePerformance();
    PrintTable();
    system("pause");
}
2)Считывание оценок
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
// Функция для ввода оценок.
#include <iostream>
#include <stdio.h>
#include <windows.h>
 
//Переменные для 1-го студента.
extern float math_1,algebra_1,amp_1;
//Переменные для 2-го студента.
extern float math_2,algebra_2,amp_2;
//Переменные для 3-го студента.
extern float math_3,algebra_3,amp_3;
 
void InputData()
{
    // math_x - оценка по мат.анализу
    // algebra_x - оценка по алгебре
    // amp_x - оценка по ЯМП
 
    printf("Введите оценку 1-го студента по мат.анализу: ");
    scanf("%f",&math_1);
 
    printf("Введите оценку 1-го студента по алгебре: ");
    scanf("%f",&algebra_1);
 
    printf("Введите оценку 1-го студента по ЯМП: ");
    scanf("%f",&amp_1);
 
    printf("Введите оценку 2-го студента по мат.анализу: ");
    scanf("%f",&math_2);
 
    printf("Введите оценку 2-го студента по алгебре: ");
    scanf("%f",&algebra_2);
 
    printf("Введите оценку 2-го студента по ЯМП: ");
    scanf("%f",&amp_2);
 
    printf("Введите оценку 3-го студента по мат.анализу: ");
    scanf("%f",&math_3);
 
    printf("Введите оценку 3-го студента по алгебре: ");
    scanf("%f",&algebra_3);
 
    printf("Введите оценку 3-го студента по ЯМП: ");
    scanf("%f",&amp_3);
 
    system("cls");
}
3)Вычисление стипендии
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
84
85
// Функция для вычисления размера стипендии.
#include <stdio.h>
 
//Переменные для 1-го студента.
extern float math_1,algebra_1,amp_1;
//Переменные для 2-го студента.
extern float math_2,algebra_2,amp_2;
//Переменные для 3-го студента.
extern float math_3,algebra_3,amp_3;
 
void calculateScholarship()
{
    // math_x - оценка по мат.анализу
    // algebra_x - оценка по алгебре
    // amp_x - оценка по ЯМП
 
    extern float summa_1, // Сумма оценок 1-го студента.
        step_1;  // Размер стипендии 1-го студента. 
 
    summa_1 = math_1 + algebra_1 + amp_1;
 
    if (summa_1 > 8)
    {
        if ((math_1 == 3 ) || (algebra_1 == 3) || (amp_1 == 3))
        {
            step_1 = summa_1 * 250;
        }
        if ((math_1 > 3) && (algebra_1 > 3) && (amp_1 > 3))
        {   
            step_1 = summa_1 * 250;
            step_1 = step_1 + (step_1 / 100 * 25);
        }
        if ((math_1 > 4) && (algebra_1 > 4) && (amp_1 > 4))
        {   
            step_1 = summa_1 * 250;
            step_1 = step_1 + (step_1 / 100 * 50);
        }
    } else step_1 = 0;
 
    extern float summa_2, // Сумма оценок 2-го студента.
        step_2;  // Размер стипендии 2-го студента.
 
    summa_2 = math_2 + algebra_2 + amp_2;
 
    if (summa_2 > 8)
    {
        if ((math_2 == 3 ) || (algebra_2 == 3) || (amp_2 == 3))
        {
            step_2 = summa_2 * 250;
        }
        if ((math_2 > 3) && (algebra_2 > 3) && (amp_2 > 3))
        {           
            step_2 = summa_2 * 250;
            step_2 = step_2 + (step_2 / 100 * 25);
        }
        if ((math_2 > 4) && (algebra_2 > 4) && (amp_2 > 4))
        {   
            step_2 = summa_2 * 250;
            step_2 = step_2 + (step_2 / 100 * 50);
        }
    } else step_2 = 0;
 
    extern float summa_3, // Сумма оценок 3-го студента.
        step_3;  // Размер стипендии 3-го студента.
 
    summa_3 = math_3 + algebra_3 + amp_3;
 
    if (summa_3 > 8)
    {
        if ((math_3 == 3 ) || (algebra_3 == 3) || (amp_3 == 3))
        {
            step_3 = summa_3 * 250;
        }
        if ((math_3 > 3) && (algebra_3 > 3) && (amp_3 > 3))
        {
            step_3 = summa_3 * 250;
            step_3 = step_3 + (step_3 / 100 * 25);
        }
        if ((math_3 > 4) && (algebra_3 > 4) && (amp_3 > 4))
        {
            step_3 = summa_3 * 250;
            step_3 = step_3 + (step_3 / 100 * 50);
        }
    } else step_3 = 0;
}
4)Вычисление количества и качества
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
#include <stdio.h>
 
//Переменные хранящие оценки.
//Переменные для 1-го студента.
extern float math_1,algebra_1,amp_1;
 
//Переменные для 2-го студента.
extern float math_2,algebra_2,amp_2;
 
//Переменные для 3-го студента.
extern float math_3,algebra_3,amp_3;
 
//Массив для хранения качества сдачи экзаменов выше 3.
extern float quality[3];
//Массив для хранения качества сдачи экзаменов выше 4.
extern float quality_1[3];
 
void calculateQuantitivePerformance()
{
    for (int i=1;i<=3;i++)
    {
        quality[i]=0;
        quality_1[i]=0;
    }
 
    if(math_1 >= 3) quality[0] += 1;
    if(math_2 >= 3) quality[0] += 1;
    if(math_3 >= 3) quality[0] += 1;
 
    quality[0] = quality[0] / 3 * 100;
 
    if(algebra_1 >= 3) quality[1] += 1;
    if(algebra_2 >= 3) quality[1] += 1;
    if(algebra_3 >= 3) quality[1] += 1;
 
    quality[1] = quality[1] /  3 * 100;
 
    if(amp_1 >= 3) quality[2] += 1;
    if(amp_2 >= 3) quality[2] += 1;
    if(amp_3 >= 3) quality[2] += 1;
 
    quality[2] = quality[2] /  3 * 100;
}
void calculateQualitativePerformance()
{
    if(math_1 >= 3) quality_1[0] += 1;
    if(math_2 >= 3) quality_1[0] += 1;
    if(math_3 >= 3) quality_1[0] += 1;
 
    quality_1[0] /= 3 * 100;
 
    if(algebra_1 >= 3) quality_1[1] += 1;
    if(algebra_2 >= 3) quality_1[1] += 1;
    if(algebra_3 >= 3) quality_1[1] += 1;
 
    quality_1[1] /= 3 * 100;
 
    if(amp_1 >= 3) quality_1[2] += 1;
    if(amp_2 >= 3) quality_1[2] += 1;
    if(amp_3 >= 3) quality_1[2] += 1;
 
    quality_1[2] /= 3 * 100;
}
5)Отчетная таблица
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
#include <iostream>
#include <stdio.h>
#include <windows.h>
                                       
//Переменные хранящие оценки.
//Переменные для 1-го студента.
extern float math_1,algebra_1,amp_1;
//Переменные для 2-го студента.
extern float math_2,algebra_2,amp_2;
//Переменные для 3-го студента.
extern float math_3,algebra_3,amp_3;
 
//Переменные требуемые для расчета стипендии.
extern float step_1;  // Размер стипендии 1-го студента.
extern float step_2;  // Размер стипендии 2-го студента.
extern float step_3;  // Размер стипендии 3-го студента
 
//Массив для хранения качества сдачи экзаменов выше 3.
extern float quality[2];
//Массив для хранения качества сдачи экзаменов выше 4.
extern float quality_1[2];                                
 
void PrintTable()
{
    setlocale(0,"");
 
    printf("№ студента     Алгебра  Мат.анализ  ЯМП  Стипендия, руб\n");
    printf("\n");
           printf("1                %1.0f        %1.0f          %1.0f      %7.2f\n",math_1,algebra_1,amp_1,step_1);
    printf("\n");
    printf("2                %1.0f        %1.0f          %1.0f      %7.2f\n",math_2,algebra_2,amp_2,step_2);
    printf("\n");
    printf("3                %1.0f        %1.0f          %1.0f      %7.2f\n",math_3,algebra_3,amp_3,step_3);
    printf("\n");
    printf("Кол.усп        %4.1f     %4.1f       %4.1f\n",quality[0],quality[1],quality[2]);
    printf("\n");
    printf("Кач.усп        %4.1f     %4.1f       %4.1f\n",quality_1[0],quality_1[1],quality_1[2]);
}
Вышло что-то типо такого. Программа работает , но нужно оптимизировать половину кода(
А нет качество больше 4 не правильно
 
Текущее время: 13:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru