Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 09.01.2018
Сообщений: 2
1

Поиск в структуре и запись в файл

27.04.2019, 11:21. Показов 2074. Ответов 0

Author24 — интернет-сервис помощи студентам
Известны фамилии и оценки в баллах по 5 дисциплинам каждого из 25 студентов
группы. Требуется организовать: ввод, вывод, хранение на внешнем носителе,
сортировку по среднему баллу и его вычисление, поиск по фамилии ученика.
Задание
1. Реализовать решение задачи на основе массива структур с самостоятельной
разработкой следующих функций:
1) Функцию поиска по ФИО студента и вывод записи о нем.
2) Функции сортировки массива студентов по ФИО и среднему баллу.
3) Функции чтения/записи массива в файл.
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
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
159
160
161
162
163
164
165
166
167
168
#include "pch.h"
#include <iostream>
#include <fstream>
 
//Класс «Группа студентов»
using namespace std;
 
struct Student {
    char FIO[30];
    int Ball[5];
    float SrBall;
};
 
class Gruppa {
private:
    int NGruppa;
    Student St[100];
    int size;
    char *name;
    char *FIO;
public:
    Gruppa(int s = 0, int ng = 1) { size = s; NGruppa = ng; };
    Gruppa *G1;
    void showStudent();
    void addStudent(int);
    void sort_FIO();
    void sort_srBall();
    void poisk();
    //void save();
};
 
int main()
{
    setlocale(LC_ALL, "Russian");
    Gruppa G1;
    int count;
    cout << "введите размер группы: ";
    cin >> count; 
 
    G1.addStudent(count);
    G1.showStudent();
    G1.sort_FIO();
    G1.sort_srBall();
    G1.poisk();
    //G1.save();
}
 
//вывод списка студентов
void Gruppa::showStudent() {
    cout << endl << "Список студентов" << endl;
    for (int k = 0; k < size; k++) {
        cout << endl << k + 1 << ") " << St[k].FIO << ' ' << St[k].SrBall;
        for (int i = 0; i < 5; i++) 
            cout << ' ' << St[k].Ball[i];
            cout << endl;
    }
    cout << endl;
}
 
//добавление студентов
void Gruppa::addStudent(int s) {
    char str[30];
        if (size == 0) size = s;
        for (int k = 0; k < size; k++) { 
            cout << endl;
            cout << "FIO: "; cin.get(); cin.get(St[k].FIO, 30); cin.get(); 
            St[k].SrBall = 0;
            cout << "Ball: ";
            for (int i = 0; i < 5; i++) { 
                cin >> St[k].Ball[i];
                St[k].SrBall += St[k].Ball[i]; 
            }
            St[k].SrBall /= 5; 
    }
}
 
//Сортировка по фамилии
void Gruppa::sort_FIO() {
    Student swap;
    ofstream out;
    out.open("D:\\Student.txt", ios::app);
    if (out.is_open()) {
        cout << "Список, отсортированный по фамилии" << endl << endl;
        for (int i = 0; i < size; i++) {
            for (int j = i + 1; j < size; j++)
                if (strcmp(St[i].FIO, St[j].FIO) > 0) {
                    swap = St[i];
                    St[i] = St[j];
                    St[j] = swap;
                }
        }
        for (int i = 0; i < size; i++) {
            cout << i + 1 << ") ";
            cout << "FIO: "<< St[i].FIO << endl;
            cout << "    SrBall: " << St[i].SrBall << endl;
            cout << "    Ball: ";
            for (int j = 0; j < 5; j++)
                cout << ' ' << St[i].Ball[j];
            cout << endl;
        }
        cout << endl;
    }
    out.close();
}
 
//сортировка по ср.баллу
void Gruppa::sort_srBall() {
    Student swap;
    cout << "Список, отсортированный по среднемму баллу" << endl << endl;
    for (int i = 0; i < size; i++) {
        for (int j = i + 1; j < size; j++) {
            if (St[i].SrBall > St[j].SrBall) {
                swap = St[i];
                St[i] = St[j];
                St[j] = swap;
            }
        }
    }
    for (int i = 0; i < size; i++) {
        cout << i + 1 << ") ";
        cout << "FIO: " << St[i].FIO << endl;
        cout << "    SrBall: " << St[i].SrBall << endl;
        cout << "    Ball: ";
        for (int j = 0; j < 5; j++)
            cout << ' ' << St[i].Ball[j];
        cout << endl;
    }
    cout << endl;
}
 
//поиск по фамилии
void Gruppa::poisk() {
    //Gruppa *G1;
    bool f1 = false;
    cout << "Введите имя студента, которого надо найти \n"; cin >> *name;
    cout << "Найденный студент" << endl << endl;
 
    for (int i = 0; i < sizeof(G1)/sizeof(Student); i++) {
        if (strcmp(G1[i].FIO, name) == 0) {
            f1 = true;
            cout << "FIO: " << St[i].FIO << endl;
            cout << "    SrBall: " << St[i].SrBall << endl;
            cout << "    Ball: ";
            for (int j = 0; j < 5; j++)
                cout << ' ' << St[i].Ball[j];
            cout << endl;
            break;
        }
 
        if (f1 == false)
            cout << "Такой фамилии нет" << endl;
    }
}
 
/*void Gruppa::save() {
    Gruppa G1;
    ofstream out;
    out.open("D:\\Student.txt");
    if (out.is_open()) {
        out << "введите размер группы: " << size;
        //out << G1.addStudent(size);
        G1.showStudent();
        G1.sort_FIO();
        G1.sort_srBall();
        //out << G1.posk << endl;
    }
    out.close();
}*/
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.04.2019, 11:21
Ответы с готовыми решениями:

Запись структуры в файл и поиск по структуре
Дано структуру владелец автос параметрами (имя владельца марка авто и цвет) надо записать структуру...

Чтение файлов, запись и дозапись в файл, поиск файлов в каталоге и поиск данных в файле
2. Создать файлы, в которых будут вмещаться строки с именами студентов и их средними балами. Каждый...

Запись данных в файл и поиск
Для получения места в общежитии формируется список студентов, который включает: - Ф. И. О....

Поиск данных и запись в файл
Ребята кто может помочь новичку? У меня есть файл и я считал его построчно и мне надо вывести...

0
27.04.2019, 11:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.04.2019, 11:21
Помогаю со студенческими работами здесь

Добавление и поиск и запись в файл list
Предметная область: отдел кадров, класс: работник, ориентировочный перечень полей: фамилия,...

Поиск файлов и запись результатов в файл
Добрый день! Нашел в интернете кусочек кода программы, которая реализует поиск файлов по...

Поиск фрагмента текста и запись в файл
Здравствуйте. Подскажите как реализовать, есть текстовый файл в котором есть несколько текстовых...

Запись в файл , и поиск содержимого / (Библиотека)
Писал в &quot;Visual Studio 2013&quot; Есть каталог библиотеки. Нужно записать информацию о книге в файл,...


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

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