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

Обработка записей (список учеников имеет следующую структуру: фамилия – номер школы – число баллов по ЕГЭ – оценка) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Прямые на плоскости(С++) http://www.cyberforum.ru/cpp-beginners/thread884925.html
Доброго времени суток господа. Помогите пожалуйста написать эту задачку в С++. Сам с этой задачей пока не разбирался, времени нету, а задач много :cry: (сам пока другими разбираюсь :pardon:) ...
C++ void в проекте на c++ Создаю проект, создал модули состоящие из текста! пытаюсь объединить все в одном модуле вывод ошибку! что нужно исправить вот код #include <iostream> #include <stdio.h> #define CASE using... http://www.cyberforum.ru/cpp-beginners/thread884903.html
написать такой класс, который представляет собой двоичное число C++
не могу справиться вот с этим: написать такой класс, который представляет собой двоичное число. биты держит в виде объекта std::vector <bool>. написать для этого класса следующие операции: слож,...
C++ Найти все целые числа из промежутка от 300 до 600, у которых сумма делителей кратна 10 (Netbeans)
Ребят, помогите пожалуйста написать программу для данной задачи: Найти все целые числа из промежутка от 300 до 600, у которых сумма делителей кратна 10. Никак не получается:( Либо ошибку выдает...
C++ Выполнить сортировку одномерного массива X(100) методом бинарных вставок http://www.cyberforum.ru/cpp-beginners/thread884842.html
Здравствуйте уважаемые пользователи форума, прошу составить программу в с++ просто нужно сдать программу эту через 2 дня
C++ Заполнить массив по следующему правилу Заполнить массив А с 6 строк и 9 столбцов по следующему правилу: подробнее

Показать сообщение отдельно
Polovnik
Сообщений: n/a

Обработка записей (список учеников имеет следующую структуру: фамилия – номер школы – число баллов по ЕГЭ – оценка) - C++

30.05.2013, 13:33. Просмотров 1621. Ответов 1
Метки (Все метки)

Разработать и отладить программу обработки записей. Предусмотреть:
- ввод данных
- вывод результатов (на экран в виде таблицы и в файл)

Задача:

Список учеников имеет следующую структуру: фамилия – номер школы – число баллов по ЕГЭ (от 0 до 100) – оценка. При вводе числа баллов рассчитайте оценку (до 40 баллов – «2», 40-59 баллов – «3», 60-89 баллов – «4», 90-100 баллов – «5») и выведите информацию об учениках в виде таблицы.
1) Вывести фамилии и номер школы учеников, получивших оценку «3».
2) Вывести информацию об учениках данной школы (номер школы ввести с клавиатуры).
3) Выполнить сортировку списка по количество баллов, вывести отсортированный список

Если возможно, то сделать программу через Case, чтобы по нажатию цифр (1,2,3) выбирать что необходимо сделать

Программа написана, однако она работает не совсем правильно, не могу понять почему. Проблема в том, что после того как я ввел данные по первому человеку он меня перебрасывает на ввод "Число баллов по ЕГЭ" у второго, хотя она должна была перекинуть на строку с "Фамилия", потом "Номер школы".
Плюс я не смог сделать все это через Case

Вот сама программа

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
#include "stdafx.h"
#include <iostream>
#include <vector>
 
 
using namespace std;
 
struct student
{
    char name[50];
    int schoolnumber;
    int points;
    int rating;
};
 
void output_1 (vector<student> list)
{
    cout<<"Имя\tНомер школы\tБаллы ЕГЭ\tОценка"<<endl;
    for (int i=0; i<list.size(); i++)
    {
        cout<<list[i].name<<"\t"<<list[i].schoolnumber<<"\t"<<list[i].points<<"\t"<<list[i].rating<<endl;
    }
}
 
void output_2 (vector<student> list)
{
    cout<<"Имя\tНомер школы\tБаллы ЕГЭ\tОценка"<<endl;
    for (int i=0; i<list.size(); i++)
    {
        if (list[i].rating==3)
            cout<<list[i].name<<"\t"<<list[i].schoolnumber<<endl;
    }
}
 
void output_3 (vector<student> list)
{
    int n=0;
    cout<<"Введите номер школы для вывода: "<<endl;
    cin>>n;
    cout<<"\nИмя\tНомер школы\tБаллы ЕГЭ\tОценка"<<endl;
    for (int i=0; i<list.size(); i++)
    {
        if (list[i].schoolnumber==n)
            cout<<list[i].name<<"\t"<<list[i].schoolnumber<<"\t"<<list[i].points<<"\t"<<list[i].rating<<endl;
    }
}
 
void output_4 (vector<student> list)
{
    student st1;
    bool f=1;
    while (f=1)
    {
        f=0;
        for (int i=0; i<list.size()-1; i++)
            if (list[i].points>list[i+1].points)
            {
                st1=list[i];
                list[i]=list[i+1];
                list[i+1]=st1;
                f=1;
            }
    }
    cout<<"\nИмя\tНомер школы\tБаллы ЕГЭ\tОценка"<<endl;
    for (int i=0; i<list.size(); i++)
    {
        cout<<list[i].name<<"\t"<<list[i].schoolnumber<<"\t"<<list[i].points<<"\t"<<list[i].rating<<endl;
    }
}
 
 
 
student input_st ()
{
    student st1;
    cout<<"Введите данные по ученику: "<<"\nИмя ученика: ";
    cin.getline(st1.name,50);
    cout<<"\nНомер школы: ";
    cin>>st1.schoolnumber;
    cout<<"\nКоличество баллов ЕГЭ: ";
    cin>>st1.points;
    cout<<endl;
    if (st1.points<40) st1.rating=2;
    if ((st1.points>=40) && (st1.points<60)) st1.rating=3;
    if ((st1.points>=60) && (st1.points<90)) st1.rating=4;
    if (st1.points>=90) st1.rating=5;
    return st1; 
}
 
int main()
{
    setlocale (0,"");
    vector <student> list;
    bool flag=1;
    while (flag==1)
    {
        system("cls");
        list.push_back(input_st());
        cout<<"Ввести еще одного ученика? да - 1; нет - 0"<<endl;
        cin>>flag;
    }
    
    cout<<"\nВывод всей информации: "<<endl;
    output_1(list);
    system("pause");
 
    cout<<"\nВывод всей информации по троечникам: "<<endl;
    output_2(list);
    system("pause");
 
    cout<<"\nВывод всей информации по определенной школе: "<<endl;
    output_3(list);
    system("pause");
 
    cout<<"\nВывод отсортированной информации: "<<endl;
    output_4(list);
    system("pause");
 
    return 0;
}
Буду очень признателен за помощь.
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru