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

Учусь программированию на языке с++ самостоятельно - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Отловить и обработать сигнал ошибки sigsegv http://www.cyberforum.ru/cpp-beginners/thread1142145.html
пытаюсь отловить и обработать сигнал ошибки в примере #include <windows.h> #include <signal.h> void my_handler (int signum) { MessageBoxA(NULL,"SIGFPE Error!","POSIX Signal",MB_ICONSTOP); signal(signum, SIG_DFL);
C++ Закрыть все переменные класса и добавить методы доступа к ним Привет ребят помогите пожалуйста, создал класс открытый, нужно закрыть все переменные и создать функцию с помощью которой можно будет обратиться ко всем закрытым переменным. Заранее спасибо за помощь! #include <iostream> #include <string> using namespace std; class Human{ public: string itsName; int itsAge; string itsProf; http://www.cyberforum.ru/cpp-beginners/thread1142128.html
Заполнить матрицу случайными числами и отобразить симметрично главной диагонали. C++
Заполнить матрицу случайными числами. Отобразить матрицу симметрично относительно главной диагонали. Помогите написать программу, пожалуйста
Создать функцию, тестирующую вхождение точки в шар C++
Три размера то, что излагает шар и точку в пространстве, структурно выявлять. В нее, входит, шар, который далась Точка, проверив функцию создавать и тестировать. На каком языке это написано? Если не можете на русском, то напишите на английском. Переведем.
C++ Структура "Полином" http://www.cyberforum.ru/cpp-beginners/thread1142060.html
Алгебраическое понятие полином структурное внесение, которое характеризует. Функцию создавать следующий и тестировать: а) внедрять полиномы; б) выпускать полиномы; в) формировать полином.
C++ Создать анимацию идущего человека В Visual C++ создать анимацию идущего человека. Помогите. подробнее

Показать сообщение отдельно
tceygo
Сообщений: n/a
23.04.2014, 20:34     Учусь программированию на языке с++ самостоятельно
Учу С++ по книге Джона Смайли "Учимся програмировать на С++"
После добавления цикла начаись проблемы, подскажите что не так.

Код програмы до:
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
// Grades.cpp
#include <iostream>
 
int main ()
{
    using namespace std;
    const float ENGLISH_MIDTERM_PERCENTAGE = .25;
    const float ENGLISH_FINALEXAM_PERCENTAGE = .25;
    const float ENGLISH_RESEARCH_PERCENTAGE = .30;
    const float ENGLISH_PRESENTATION_PERCENTAGE = .20;
    const float MATH_MIDTERM_PERCENTAGE = .50;
    const float MATH_FINALEXAM_PERCENTAGE =.50;
    const float SCIENCE_MIDTERM_PERCENTAGE = .40;
    const float SCIENCE_FINALEXAM_PERCENTAGE = .40;
    const float SCIENCE_RESEARCH_PERCENTAGE = .20;
    int midterm = 0;
    int finalExamGrade = 0;
    int research = 0;
    int presentation =0;
    float finalNumericGrade = 0;
    char finalLetterGrade;
    char response[256];
    
    // Для якого типу студента ведеться обчислення?
    cout << "Enter student typ " << 
    "(1=English, 2=Math, 3=Science): ";
    cin.getline(response,256);
    if (strlen(response)==0) { 
        cout << "You must select a Student Typ";
        return 1;
    }
    if ((atoi(response) < 1) | (atoi(response) > 3)) {
        cout << response << " is not a valid student type";
        return 1;
    }
    // Підходящий тип студента переходимо до обчислень
    switch(atoi(response))
    {
    //Випадок 1 - студент факультету англійської мови
    case 1:
        cout << "Enter the midterm grade: " ;
        cin.getline(response,256);
        midterm = atoi (response);
        cout << "Enter the Final Examination Grade: ";
        cin.getline(response,256);
        finalExamGrade = atoi (response);
        cout << "Enter the Research Grade: ";
        cin.getline(response,256);
        research = atoi(response);
        cout << "Enter the Presentation Grade: ";
        cin.getline(response,256);
        presentation = atoi(response);
        
        finalNumericGrade = (midterm*ENGLISH_MIDTERM_PERCENTAGE) +
        (finalExamGrade*ENGLISH_FINALEXAM_PERCENTAGE) +
        (research*ENGLISH_RESEARCH_PERCENTAGE) +
        (presentation * ENGLISH_PRESENTATION_PERCENTAGE);
        
        if (finalNumericGrade >= 93) finalLetterGrade = 'A';
        else
        if ((finalNumericGrade >= 85) & (finalNumericGrade < 93)) finalLetterGrade = 'B';
        else
        if ((finalNumericGrade >= 78) & (finalNumericGrade < 85)) finalLetterGrade = 'C';
        else
        if ((finalNumericGrade >= 70) & (finalNumericGrade < 78)) finalLetterGrade = 'D';
        else
        if (finalNumericGrade < 70) finalLetterGrade = 'F';
        
        cout << endl << "***ENGLISH STUDENT***" << endl << endl;
        cout << "Midterm grade is: " << midterm << endl;
        cout << "Final Exam is: " << finalExamGrade << endl;
        cout << "Research Grade: " << research << endl;
        cout << "Presentation grade: " << presentation << endl;
        cout << "Final Numeric Grade: " << finalNumericGrade << endl;
        cout << "Final Letter Grade: " << finalLetterGrade;
        break;
//Случай 2 - студент факультета математики
    case 2:
        cout << "Enter the Midterm Grade: ";
        cin.getline(response,256);
        midterm = atoi(response);
        cout << "Enter the Final Examination Grade: ";
        cin.getline(response,256);
        finalExamGrade = atoi(response);
        
        finalNumericGrade = (midterm*MATH_MIDTERM_PERCENTAGE) + 
        (finalExamGrade*MATH_FINALEXAM_PERCENTAGE);
        
        if (finalNumericGrade >= 90) finalLetterGrade = 'A';
        else
        if ((finalNumericGrade >= 83) & (finalNumericGrade < 90)) finalLetterGrade = 'B';
        else
        if ((finalNumericGrade >= 76) & (finalNumericGrade < 83)) finalLetterGrade = 'C';
        else
        if ((finalNumericGrade >= 65) & (finalNumericGrade <76)) finalLetterGrade = 'D';
        else
        if (finalNumericGrade <65) finalLetterGrade = 'F';
        cout << endl << "***MATH STUDENT***" << endl << endl;
        cout << "Midterm grade is: " << midterm << endl;
        cout << "Final Exam grade is: " << finalExamGrade << endl;
        cout << "Final Numeric Grades is: " << finalNumericGrade << endl;
        cout << "Final Letter Grades is: " << finalLetterGrade;
        break;
// Случай 3 - студент факультета естестваных наук
    case 3:
        cout << "Enter the Midterm Grade: ";
        cin.getline(response,256);
        midterm = atoi(response);
        cout << "Enter the Final Examination Grade: ";
        cin.getline(response,256);
        finalExamGrade = atoi(response);
        cout << "Enter the Research Grade: ";
        cin.getline(response,256);
        research = atoi(response);
        finalNumericGrade = (midterm*SCIENCE_MIDTERM_PERCENTAGE) +
        (finalExamGrade*SCIENCE_FINALEXAM_PERCENTAGE) +
        (research*SCIENCE_RESEARCH_PERCENTAGE);
        
        if (finalNumericGrade >= 90) finalLetterGrade = 'A';
        else
        if ((finalNumericGrade >= 80) & (finalNumericGrade <90)) finalLetterGrade = 'B';
        else
        if ((finalNumericGrade >= 70) & (finalNumericGrade <80)) finalLetterGrade = 'C';
        else 
        if ((finalNumericGrade >= 60) & (finalNumericGrade < 70)) finalLetterGrade = 'D';
        else
        if (finalNumericGrade < 60) finalLetterGrade = 'F';
        cout << endl << "***SCIENCE STUDET***" << endl << endl;
        cout << "Midterm grade is: " << midterm << endl;
        cout << "Final Exam is: " << finalExamGrade << endl;
        cout << "Research grade is: " << research << endl;
        cout << "Final Numeric Grade is: " << finalNumericGrade << endl;
        cout << "Final Letter Grade is: " << finalLetterGrade;
        break;
    default:
        cout << response << " - is not a valid student type";
    return 1;
    }
    return 0;
}
Результат:


Код програмы после:
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
// Grades5_1.cpp
 
#include<iostream>
#include<string>
 
int main ()
{
    using namespace std;
    
    const float ENGLISH_MIDTERM_PERCENTAGE = .25;
    const float ENGLISH_FINALEXAM_PERCENTAGE = .25;
    const float ENGLISH_RESEARCH_PERCENTAGE = .30;
    const float ENGLISH_PRESENTATION_PERCENTAGE = .20;
    const float MATH_MIDTERM_PERCENTAGE = .50;
    const float MATH_FINALEXAM_PERCENTAGE = .50;
    const float SCIENCE_MIDTERM_PERCENTAGE = .40;
    const float SCIENCE_FINALEXAM_PERCENTAGE = .40;
    const float SCIENCE_RESEARCH_PERCENTAGE = .20;
    int midterm = 0;
    int finalExamGrade = 0;
    int research = 0;
    int presentation = 0;
    float finalNumericGrade = 0;
    char finalLetterGrade;
    char response[256];
    string moreGradesToCalculate;
    
    cout << "Do you want to calculate a grade? ";
    cin >> moreGradesToCalculate;
    
    for (int i = 0; i < moreGradesToCalculate.length(); i++) {
        moreGradesToCalculate[i] = toupper (moreGradesToCalculate[i]);
        }
    while(moreGradesToCalculate == "YES") {
    // Для якого типу студента ведуться розрахунки
        cout << "Enter student typ " << 
    "(1=English, 2=Math, 3=Science): ";
    cin.getline(response,256);
    if (strlen(response)==0) { 
        cout << "You must select a Student Typ";
        return 1;
    }
    if ((atoi(response) < 1) | (atoi(response) > 3)) {
        cout << response << " is not a valid student type";
        return 1;
    }
        // Підходящий тип студента переходимо до обчислень
        switch(atoi(response))      
        {
            //Випадок 1 - студент факультету англійської мови
            case 1:
                cout << "Enter the midterm grade: " ;
                cin.getline(response,256);
                midterm = atoi (response);
                cout << "Enter the Final Examination Grade: ";
                cin.getline(response,256);
                finalExamGrade = atoi (response);
                cout << "Enter the Research Grade: ";
                cin.getline(response,256);
                research = atoi(response);
                cout << "Enter the Presentation Grade: ";
                cin.getline(response,256);
                presentation = atoi(response);
        
                finalNumericGrade = (midterm*ENGLISH_MIDTERM_PERCENTAGE) +
                (finalExamGrade*ENGLISH_FINALEXAM_PERCENTAGE) +
                (research*ENGLISH_RESEARCH_PERCENTAGE) +
                (presentation * ENGLISH_PRESENTATION_PERCENTAGE);
        
                if (finalNumericGrade >= 93) finalLetterGrade = 'A';
                else
                if ((finalNumericGrade >= 85) & (finalNumericGrade < 93)) finalLetterGrade = 'B';
                else
                if ((finalNumericGrade >= 78) & (finalNumericGrade < 85)) finalLetterGrade = 'C';
                else
                if ((finalNumericGrade >= 70) & (finalNumericGrade < 78)) finalLetterGrade = 'D';
                else
                if (finalNumericGrade < 70) finalLetterGrade = 'F';
        
                cout << endl << "***ENGLISH STUDENT***" << endl << endl;
                cout << "Midterm grade is: " << midterm << endl;
                cout << "Final Exam is: " << finalExamGrade << endl;
                cout << "Research Grade: " << research << endl;
                cout << "Presentation grade: " << presentation << endl;
                cout << "Final Numeric Grade: " << finalNumericGrade << endl;
                cout << "Final Letter Grade: " << finalLetterGrade;
                break;
            //Случай 2 - студент факультета математики
            case 2:
                cout << "Enter the Midterm Grade: ";
                cin.getline(response,256);
                midterm = atoi(response);
                cout << "Enter the Final Examination Grade: ";
                cin.getline(response,256);
                finalExamGrade = atoi(response);
        
                finalNumericGrade = (midterm*MATH_MIDTERM_PERCENTAGE) + 
                (finalExamGrade*MATH_FINALEXAM_PERCENTAGE);
        
                if (finalNumericGrade >= 90) finalLetterGrade = 'A';
                else
                if ((finalNumericGrade >= 83) & (finalNumericGrade < 90)) finalLetterGrade = 'B';
                else
                if ((finalNumericGrade >= 76) & (finalNumericGrade < 83)) finalLetterGrade = 'C';
                else
                if ((finalNumericGrade >= 65) & (finalNumericGrade <76)) finalLetterGrade = 'D';
                else
                if (finalNumericGrade <65) finalLetterGrade = 'F';
                cout << endl << "***MATH STUDENT***" << endl << endl;
                cout << "Midterm grade is: " << midterm << endl;
                cout << "Final Exam grade is: " << finalExamGrade << endl;
                cout << "Final Numeric Grades is: " << finalNumericGrade << endl;
                cout << "Final Letter Grades is: " << finalLetterGrade;
                break;
            // Случай 3 - студент факультета естестваных наук
            case 3:
                cout << "Enter the Midterm Grade: ";
                cin.getline(response,256);
                midterm = atoi(response);
                cout << "Enter the Final Examination Grade: ";
                cin.getline(response,256);
                finalExamGrade = atoi(response);
                cout << "Enter the Research Grade: ";
                cin.getline(response,256);
                research = atoi(response);
                finalNumericGrade = (midterm*SCIENCE_MIDTERM_PERCENTAGE) +
                (finalExamGrade*SCIENCE_FINALEXAM_PERCENTAGE) +
                (research*SCIENCE_RESEARCH_PERCENTAGE);
        
                if (finalNumericGrade >= 90) finalLetterGrade = 'A';
                else
                if ((finalNumericGrade >= 80) & (finalNumericGrade <90)) finalLetterGrade = 'B';
                else
                if ((finalNumericGrade >= 70) & (finalNumericGrade <80)) finalLetterGrade = 'C';
                else 
                if ((finalNumericGrade >= 60) & (finalNumericGrade < 70)) finalLetterGrade = 'D';
                else
                if (finalNumericGrade < 60) finalLetterGrade = 'F';
                cout << endl << "***SCIENCE STUDET***" << endl << endl;
                cout << "Midterm grade is: " << midterm << endl;
                cout << "Final Exam is: " << finalExamGrade << endl;
                cout << "Research grade is: " << research << endl;
                cout << "Final Numeric Grade is: " << finalNumericGrade << endl;
                cout << "Final Letter Grade is: " << finalLetterGrade;
                break;
            default:
                cout << response << " - is not a valid student type";
            return 1;
            } // кінець оператора switch
        cout << endl << endl << "Do you have anothee grade to calculate? ";
        cin >> moreGradesToCalculate;
        for (int i = 0; i < moreGradesToCalculate.length(); i++) {
            moreGradesToCalculate[i] = toupper (moreGradesToCalculate[i]);
            }  // кінець цикла for
        }      // кінець цикла while
    cout << "Thanks for using the Grades Calculation program!";
    return 0;
    }
После ввода ответа на вопрос и единократного нажатия клавиши ENTR Имеем вот такой результат:
 
Текущее время: 23:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru