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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
krutyak
Сообщений: n/a
#1

Список учеников имеет следующую структуру: фамилия – класс - оценка по алгебре - оценка по физике - средний балл - C++

22.05.2013, 09:55. Просмотров 1481. Ответов 2
Метки нет (Все метки)

Задание такое

Список учеников имеет следующую структуру: фамилия – класс - оценка по алгебре - оценка по физике - средний балл. При вводе оценок рассчитайте средний балл и выведите информацию об учениках в виде таблицы.
1) Вывести фамилии учеников, не имеющих «двоек».
2) Вывести информацию об учениках заданной фамилии (фамилию ввести с клавиатуры).
3) Выполнить сортировку списка по среднему баллу, вывести отсортированный список
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.05.2013, 09:55     Список учеников имеет следующую структуру: фамилия – класс - оценка по алгебре - оценка по физике - средний балл
Посмотрите здесь:
Обработка записей (список учеников имеет следующую структуру: фамилия – номер школы – число баллов по ЕГЭ – оценка) C++
C++ Вывести на экран всех учащихся, чья оценка меньше 3 баллов и посчитать средний балл по классу
C++ Переведите, Вычислить средний балл учеников класса, если известны оценки каждого ученика по математике, русскому языку и физике. Распечатать списо
Вычислить средний балл в каждой группе студентов и определить, какая группа имеет наибольший средний балл C++
C++ 7.Дан список студентов. Общие поля: Ф.И.О., дата рождения, группа, средний балл. Если средний балл 4 и выше, то указать размер стипендии. Если средний
Вычислить средний балл учеников класса C++
Известна оценка каждого ученика по физике... C++
Вывести средний балл учеников класса по заданному предмету C++
C++ Создать стек, информационными полями которого являются: фамилия и средний балл студента
Вычистить средний балл учеников класса, если известны оценки каждого ученика по C++
Вычислить средний балл оценок каждого студента и напечатать их фамилии и средний балл (объединение (union)) C++
C++ Вычислить средний балл оценок каждого студента и напечатать их фамилии и средний балл

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Miwa123
37 / 37 / 1
Регистрация: 16.04.2013
Сообщений: 317
Записей в блоге: 1
22.05.2013, 14:46     Список учеников имеет следующую структуру: фамилия – класс - оценка по алгебре - оценка по физике - средний балл #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
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
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
 
 class pupil
   { 
   public:
       void set_name(string x_name){name=x_name;}
       void set_last_name(string x_last_name){last_name=x_last_name;}
       void set_eval_algebra(int ocenka){eval_algebra=ocenka;}
       void set_eval_fizika(int ocenka){eval_fizika=ocenka;}
       double get_srednyaya(){double val=(double)(eval_algebra+eval_fizika)/2;return val ;}
       int min_eval(){return min(eval_fizika,eval_algebra);}
       string get_last_name(){return last_name;}
       string get_name(){return name;}
       int get_eval_algebra(){return eval_algebra;}
       int get_eval_fizika(){return eval_fizika;}
 
       
   private:
       int eval_fizika;
       int eval_algebra;
       string name;
       string last_name;
 
   } 
  picture;
 
 
 
void main(void)
 
{ 
      setlocale(LC_ALL,"RUSSIAN");
    int n;
    cout << "Количество учеников: ";
    cin >> n;
    pupil *pup=new pupil[n];
    for(int i=0;i<n;i++)
    {
        string name,last_name;
        int eval_algebra,eval_fizika;
        cout << "Имя ученика: ";
        cin >> name;
        pup[i].set_name(name);
        cout << "Фамилия ученика: ";
        cin >> last_name;
        pup[i].set_last_name(last_name);
        
        cout << "Оценка по физике: ";
        cin >> eval_fizika;
        pup[i].set_eval_fizika(eval_fizika);
        cout << "Оценка по алгебре: ";
        cin >> eval_algebra;
        pup[i].set_eval_algebra(eval_algebra);
        cout << "Средняя оценка ученика: " << pup[i].get_srednyaya() << endl;
        
    }
    cout << endl << "Ученики не имеющие двоек: " << endl;
    for(int i=0;i<n;i++)
    {
        if(pup[i].min_eval()>2)
            cout <<'\t'<< pup[i].get_last_name() << endl;
            
    }
    string again;
    do
    for(int i=0;i<n;i++)
    {
        string last_name;
        cout <<endl<< "Введите фамилию и узнаете все данные об ученике: ";
        cin >> last_name;
        if(pup[i].get_last_name()==last_name)
        {
        cout << "Имя ученика: " << pup[i].get_name() << endl
            << "Оценка по физике: " << pup[i].get_eval_fizika() << endl
            << "Оценка по алгебре: " << pup[i].get_eval_algebra() << endl
            << "Cредний бал: " << pup[i].get_srednyaya() << endl
            << "Минимальный бал: " << pup[i].min_eval() << endl;
        }
        else
            cout << "Ученика с такой фамилией нет"<<endl;
            
    
    cout << "Если хотите еще раз введите true" << endl;
    cin >>again;
    }
    while(again=="true");
    system("pause");
}
3ье доделаю сегодня. сейчас занят

Добавлено через 1 час 38 минут
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
#include <iostream>
#include <string>
#include <algorithm>
#include <windows.h>
using namespace std;
 
 class pupil
   { 
   public:
       void set_name(string x_name){name=x_name;}
       void set_last_name(string x_last_name){last_name=x_last_name;}
       void set_eval_algebra(int ocenka){eval_algebra=ocenka;}
       void set_eval_fizika(int ocenka){eval_fizika=ocenka;}
       double get_srednyaya(){double val=(double)(eval_algebra+eval_fizika)/2;return val ;}
       int min_eval(){return min(eval_fizika,eval_algebra);}
       string get_last_name(){return last_name;}
       string get_name(){return name;}
       int get_eval_algebra(){return eval_algebra;}
       int get_eval_fizika(){return eval_fizika;}
        
   private:
       int eval_fizika;
       int eval_algebra;
       string name;
       string last_name;
    };
 
int main()
 { 
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    int n;
    cout << "Количество учеников: ";
    cin >> n;
    pupil *pup=new pupil[n];
    for(int i=0;i<n;i++)
    {
        string name,last_name;
        int eval_algebra,eval_fizika;
        cout << "Имя ученика: ";
        cin >> name;
        pup[i].set_name(name);
        cout << "Фамилия ученика: ";
        cin >> last_name;
        pup[i].set_last_name(last_name);
        cout << "Оценка по физике: ";
        cin >> eval_fizika;
        pup[i].set_eval_fizika(eval_fizika);
        cout << "Оценка по алгебре: ";
        cin >> eval_algebra;
        pup[i].set_eval_algebra(eval_algebra);
        cout << "Средняя оценка ученика: " << pup[i].get_srednyaya() << endl << endl;
    }
    cout << "Ученики не имеющие двоек: " << endl;
    for(int i=0;i<n;i++)
    {
        if(pup[i].min_eval()>2)
            cout <<'\t'<< pup[i].get_last_name() << endl;
            
    }
    string last_name,again;
    bool val;
    cout << endl<<"Хотите узнать оценки ученика? ДА - true"<<endl;
    cin >> again;
    while(again=="true")
    {
    val=false;
    cout << endl<< "Введите фамилию и узнаете все данные об ученике: ";
    cin >> last_name;
        for(int i=0;i<n;i++)
        {
            if(pup[i].get_last_name()==last_name)
                {
                cout << "Имя ученика: " << pup[i].get_name() << endl
                << "Оценка по физике: " << pup[i].get_eval_fizika() << endl
                << "Оценка по алгебре: " << pup[i].get_eval_algebra() << endl
                << "Cредний бал: " << pup[i].get_srednyaya() << endl
                << "Минимальный бал: " << pup[i].min_eval() << endl;
                val=true;
                }
            
        }
        if(!val)
            cout<<"Ученика с такой фамилией нет"<<endl;
    cout << "Если хотите еще раз введите true" << endl;
    cin >> again;
    }
    for(int i=0;i<n-1;i++)
        for(int i=0;i<n-1;i++)
        {
            if(pup[i].get_srednyaya()>pup[i+1].get_srednyaya())
                {
                pupil *temp=new pupil;
                *temp=pup[i+1];
                pup[i+1]=pup[i];
                pup[i]=*temp;
                delete temp;
                }
        }
    cout << endl<<"Рейтинг учеников по средней оценке:"<<endl;
     for(int i=0;i<n;i++)
         cout<< pup[i].get_last_name() << "\t\t" << pup[i].get_srednyaya() << endl;
         delete pup;
       system("pause");
        return 0;
}
Всё работает. Одно но - придется зайти в настройки консоли и поменять шрифт на Lucida Console. Для нормального отображения русского шрифта
krutyak
Сообщений: n/a
22.05.2013, 16:59     Список учеников имеет следующую структуру: фамилия – класс - оценка по алгебре - оценка по физике - средний балл #3
Спасибо огромное
Yandex
Объявления
22.05.2013, 16:59     Список учеников имеет следующую структуру: фамилия – класс - оценка по алгебре - оценка по физике - средний балл
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru