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

Составить файл об информаций студентов в группе. Найти самый высокий и самый низкий уровень успеваемости студентов в группе - C++

Восстановить пароль Регистрация
 
cre
0 / 0 / 0
Регистрация: 27.09.2013
Сообщений: 13
25.11.2013, 22:10     Составить файл об информаций студентов в группе. Найти самый высокий и самый низкий уровень успеваемости студентов в группе #1
блииин ничего непонела !!на языки С нужно написать программу на тему ввод и ввывод файловых возможности! задание - нужно составить файл об информаций студентов в группе ! самый высокий и самый низкий успеваемости студентов в группе!!!помогите плз!!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.11.2013, 22:10     Составить файл об информаций студентов в группе. Найти самый высокий и самый низкий уровень успеваемости студентов в группе
Посмотрите здесь:

C++ В файле input.txt содержатся сведения о группе студентов. переписать данные файла в файл output.txt, отсортировав их по возрастанию
C++ Из списка студентов на экран вывести данные о тех, кто учится в группе 664, проживает в общежитии, но родился в городе Ижевске
Написать программу, сортирующую список фамилий студентов в группе. C++
C++ В группе студентов определи средний балл каждого за последнюю сессию, распечатать Ф.И.О. студентов со средним баллом не меньше 4, остальных рассор
C++ Структуры: определение месяца, в котором родилось максимальное количество студентов в вашей группе
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4919 / 2662 / 243
Регистрация: 29.11.2010
Сообщений: 7,398
25.11.2013, 22:16     Составить файл об информаций студентов в группе. Найти самый высокий и самый низкий уровень успеваемости студентов в группе #2
Чистый С? Вам сюда: http://www.cyberforum.ru/c-beginners/
Озвучьте пожалуйста внятней задание, что значит фраза
Цитата Сообщение от cre Посмотреть сообщение
самый высокий и самый низкий успеваемости студентов в группе
То есть нужно составить программу для работы с записями о студентах. В программе предусмотреть работу с файлами, функцию вывода информации о студенте на экран. Вычислить по данным записям самый высокий и самый низкий уровень успеваемости студентов в группе. Я правильно понимаю?

Цитата Сообщение от cre Посмотреть сообщение
не_поняла
cre
0 / 0 / 0
Регистрация: 27.09.2013
Сообщений: 13
25.11.2013, 22:19  [ТС]     Составить файл об информаций студентов в группе. Найти самый высокий и самый низкий уровень успеваемости студентов в группе #3
Цитата Сообщение от MrGluck Посмотреть сообщение
То есть нужно составить программу для работы с записями о студентах. В программе предусмотреть работу с файлами, функцию вывода информации о студенте на экран. Вычислить по данным записям самый высокий и самый низкий уровень успеваемости студентов в группе. Я правильно понимаю?
да точнее так правильнее
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4919 / 2662 / 243
Регистрация: 29.11.2010
Сообщений: 7,398
25.11.2013, 22:23     Составить файл об информаций студентов в группе. Найти самый высокий и самый низкий уровень успеваемости студентов в группе #4
Скажите, а вы хотите получить сразу готовое решение или наставление и помощь в реализации?
cre
0 / 0 / 0
Регистрация: 27.09.2013
Сообщений: 13
25.11.2013, 22:27  [ТС]     Составить файл об информаций студентов в группе. Найти самый высокий и самый низкий уровень успеваемости студентов в группе #5
Цитата Сообщение от MrGluck Посмотреть сообщение
Скажите, а вы хотите получить сразу готовое решение или наставление и помощь в реализации?
смотря кто как поможет , тема сложноватая хотелось бы решение
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4919 / 2662 / 243
Регистрация: 29.11.2010
Сообщений: 7,398
25.11.2013, 22:32     Составить файл об информаций студентов в группе. Найти самый высокий и самый низкий уровень успеваемости студентов в группе #6
cre, а какой будет толк от того, что за вас все сделают, а вы потом также весь семестр ничего делать не будете, уповая на халяву?
Вот вам пример реализации работы со структурами на С. Все подробно откомментировано.
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
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#include <locale.h>
#include <ctype.h>
#define SIZE 50        /* размер строк */
#define RESORTS_MAX 20 /* максимальное количество записей */
#define KEY 1          /* наш ключ для шифрования */
#define ALF_SIZE 26    /* размер алфавита */
 
 
/* вспомогательная функция шифрования строки */
void encode(char *);
 
/* объявляем структуру и создаем синоним, чтобы не писать каждый раз struct */
typedef struct 
{
    char name[SIZE];    /* название  */
    char country[SIZE]; /* страна    */
    int cost;           /* стоимость */
} Resort;
 
/* <<<------- объявляем прототипы функций для работы со структурой ------->>> */
void init(Resort *);         /* инициализация структуры  */
void print(const Resort *);  /* вывод структуры на экран */
                             /* считывание с файла структурной переменной */
void readFromFile(Resort *, FILE *);
 
/* <<<---- объявляем прототипы функций для работы с массивом структур ---->>> */
/* вывод всех структур на экран */
void printAll(const Resort *, const int size);
/* поиск по названию */
int findByName(const Resort *, const int size, const char *key);
/* поиск по стоимости меньшей, не превышающей заданную */
int findLessCount(const Resort *, const int size, const int cost);
/* записать зашифрованные данные в файл */
void writeEncoded(const Resort *, const int size, FILE *);
 
 
/******************************************************************************/
/* <<<<<<<<<<------------------ главная функция ------------------->>>>>>>>>> */
/******************************************************************************/
int main(void)
{
    Resort r[RESORTS_MAX]; /* объявляем массив структурных переменных */
    int size = 0;          /* количество курортов */
    char choise; /* переменная выбора в меню */
    FILE *fp = fopen("resorts.txt", "r"); /* открываем файл для чтения */
    
    setlocale(LC_ALL, ""); /* добавляем возможность работать с кириллицей */    
    if (!fp)               /* если файл не найден */
    {
        printf("Невозможно найти файл \"resorts.txt\"\n");
        _getch(); /* пауза */
        return 1; /* возвращаем код ошибки */
    }   
    /* пока не конец файла и массив не полон */
    while (!feof(fp) && size < RESORTS_MAX)
    {
        /* считываем в очередной элемент массива, увеличиваем счетчик числа 
           структур на один */
        readFromFile(&r[size++], fp);
    }
    
    do
    {
        system("cls"); /* очистка экрана */
        /* вывод меню */
        printf("Что желаете сделать:\n");
        printf("1. Записать зашифрованный текст в файл\n");
        printf("2. Вывести все записи\n");
        printf("3. Добавить запись\n");
        printf("4. Найти запись по названию курорта\n");
        printf("5. Вывести курорты не превосходящии по стоимости сумму\n");
        printf("0. Выход\n");
        printf("Ваш выбор: ");
        
        choise = _getch(); /* считываем выбор */        
        
        /* оператор множественного выбора принимает choise как число */
        switch (choise - '0')
        {
            case 1 :
            {
                /* открываем файл для записи */
                FILE *fout = fopen("encode.txt", "w"); 
                /* записываем зашифрованные данные */
                writeEncoded(r, size, fout);
                /* закрываем файл */
                fclose(fout);
                /* выводим информационное сообщение о количестве записанных */
                /* переменных */
                printf("\nЗаписано %d переменных\n", size);
                _getch(); /* пауза */
                break;
            }
            
            case 2 :
                printAll(r, size);
                break;
            
            case 3 :
                if (size < RESORTS_MAX)  /* если есть свободное место */
                    init(&r[size++]);    /* вызываем функцию инициализации
                                           и увеличиваем кол-во элементов */
                else                     /* иначе */
                {
                                         /* выводим сообщение об ошибке */
                    printf("\a\nМассив заполнен"); 
                    _getch();            /* пауза */
                }
                break;
            
            case 4 :
            {
                char name[50];
                printf("\nВведите название курорта: ");
                scanf("%s", name); /* считываем название */
                /* вызываем функцию поиска. если она вернула ложь (0) */
                if (!findByName(r, size, name))
                {
                    /* выводим сообщение о безрезультатном поиске */
                    printf("\nПо вашему запросу ничего не найдено"); 
                    _getch(); /* пауза */
                }
                break;
            }
            
            case 5 :
            {
                int cost;
                printf("\nВведите стоимость: ");
                scanf("%d", &cost); /* считываем стоимость */
                /* вызываем функцию поиска. если она вернула ложь (0) */
                if (!findLessCount(r, size, cost))
                {
                    /* выводим сообщение о безрезультатном поиске */
                    printf("\nПо вашему запросу ничего не найдено"); 
                    _getch(); /* пауза */
                }
                break;
            }
            
            case 0 :
                break;
            
            default :
                printf("\a\nНеверный выбор"); /* выводим сообщение об ошибке */
                _getch(); /* пауза */
                break;
        } /* конец тела switch(choise - '0') */             
    } while (choise != '0'); /* пока не выбрали выход */
 
    fclose(fp); /* закрываем файл */
    return 0;   /* завершилось без проблем */
}
 
/* всопогательная функция шифрования строки. Принимает в качестве параметра
строку и шифрует её */
void encode(char *str)
{
    unsigned int i; /* параметр цикла */
    for (i=0; i < strlen(str); i++)
    {
        if (!isalpha(str[i])) /* если не является буквой */
            continue;   /* пропускаем тело цикла и переходим к след. итерации */
        str[i] -= 'a';       /* чтобы начать с нуля (убираем сдвиг в ASCII) */
        str[i] += KEY;       /* добавляем ключ шифрования */
        str[i] %= ALF_SIZE;  /* равно остатку от деления на мощность алфавита */
        str[i] += 'a';       /* возвращаем место назад */
    }
}
 
/* <<<<<<<------- реализация функций для работы со структурой -------->>>>>>> */
/* функция инициализации структуры. Принимает указатель на структурную
переменную. Запрашивает у пользователя информацию и заполняет поля структуры */
void init(Resort *r)
{
    system("cls"); /* очистка экрана */
    printf("Введите название курорта: "); /* информационное сообщение */
    scanf("%s", r->name);                 /* заполнение полей по указателю */
    printf("Введите страну: ");
    scanf("%s", r->country);
    printf("Введите стоимость: ");
    scanf("%d", &r->cost);
}
 
/* функция вывода полей структуры на экран. Принимает указатель на константную
(read-only) структурную переменную типа Resort. Выводит поля на экран */
void print(const Resort *r)
{
    printf("Название курорта: %s\n", r->name);                
    printf("Страна: %s\n",           r->country);
    printf("Стоимость: %d\n\n",      r->cost);
}
 
/* функция считывания структуры с файла. Принимает в качестве параметров
указатель на структурную переменную и указатель на файловую переменную.
Инициализирует поля структурной переменной данными из файла */
void readFromFile(Resort *r, FILE *fp)
{
    fscanf(fp, "%s", r->name);
    fscanf(fp, "%s", r->country);
    fscanf(fp, "%d", &r->cost);
}
 
 
/* <<<<<<----- реализация функций для работы с массивом структур ------>>>>>> */
/* функция вывода всех структур на экран. Принимает указатель на константный
(read-only) массив структурных переменных, его размер. */
void printAll(const Resort *arr, const int size)
{
    int i;                   /* параметр цикла */
    system("cls");           /* очистка экрана */
    for (i=0; i < size; i++) /* адрес каждого элемента массива */
        print(&arr[i]);      /* передаем в функцию print */
    
    printf("Назад");
    _getch();                /* пауза */
}
 
/* функция поиска структурных переменных по названию. Принимает в качестве
параметров указатель на константный массив структурных переменных, размер
массива, слово, являющееся ключом поиска. Выводит переменные, соответствующие
поиску. В случае, если ни одна не была найдена, возвращает 0 (ложь) */
int findByName(const Resort *arr, const int size, const char *key)
{
    int finded = 0; /* флаг, означающий нашли ли структурную переменную */
    int i;          /* параметр цикла */
    for (i=0; i < size; i++) /* если у какого либо элемента массива */
        if (strcmp(arr[i].name, key) == 0) /* поле name совпало с ключом */
        {
            if (!finded) /* если до этого ни одного не было найдено */
            {
                finded = 1;    /* устанавливаем флаг в истину */
                system("cls"); /* очищаем экран */
                printf("Результат:\n");
            }
            print(&arr[i]); /* вызываем функцию вывода структурной переменной */
        }
    
    if (finded) /* если нашли хоть одну запись */
    {
        printf("Назад");
        _getch();
    }
    return finded; /* возвращаем флаг поиска */
}
 
/* функция поиска структурных переменных по стоимости, не превышающей заданную.
Принимает в качестве параметров указатель на константный массив структурных
переменных, размер массива, целочисленную переменную - порог. Выводит
переменные, соответствующие поиску. В случае, если ни одна не была найдена,
возвращает 0 (ложь) */
int findLessCount(const Resort *arr, const int size, const int cost)
{
    int finded = 0; /* флаг, означающий нашли ли структурную переменную */
    int i;          /* параметр цикла */
    for (i=0; i < size; i++) /* если у какого либо элемента массива */
        if (arr[i].cost <= cost) /* поле суммы оказалось меньше либо равно */
        {
            if (!finded) /* если до этого ни одного не было найдено */
            {
                finded = 1;    /* устанавливаем флаг в истину */
                system("cls"); /* очищаем экран */
                printf("Результат:\n");
            }
            print(&arr[i]); /* вызываем функцию вывода структурной переменной */
        }
    
    if (finded) /* если нашли хоть одну запись */
    {
        printf("Назад");
        _getch();
    }
    return finded; /* возвращаем флаг поиска */
}
 
/* функция записывает зашифрованные данные в файл. Принимает в качестве
параметров указатель на константный массив структурных переменных, размер массива,*/
void writeEncoded(const Resort *arr, const int size, FILE *fp)
{
    int i;                   /* параметр цикла */   
    for (i=0; i < size; i++) /* шифруем и записываем каждый элемент массива */
    {
        /* создаем временные переменные для создания копий для шифрования */
        char name[SIZE], country[SIZE];
        /* копируем в них данные */
        strcpy(name, arr[i].name);
        strcpy(country, arr[i].country);
        /* шифруем полученные имя и страну и записываем их в файл */
        encode(name);
        encode(country);
        fprintf(fp, "%s ", name);
        fprintf(fp, "%s ", country);
        /* поле стоимость записываем без шифрования */
        fprintf(fp, "%d\n", arr[i].cost); 
    }
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.11.2013, 22:36     Составить файл об информаций студентов в группе. Найти самый высокий и самый низкий уровень успеваемости студентов в группе
Еще ссылки по теме:

Программа выводит неверный ответ (дан массив структур, содержащий сведения об успеваемости студентов - вывести список неуспевающих студентов) C++
Ежедекадно в течение июня измерялся уровень воды в десяти речках. Определить подекадно: в каких речках наблюдался самый высокий уровень C++
Определить процентный состав отличников и двоечников в каждой группе студентов C++

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

Или воспользуйтесь поиском по форуму:
cre
0 / 0 / 0
Регистрация: 27.09.2013
Сообщений: 13
25.11.2013, 22:36  [ТС]     Составить файл об информаций студентов в группе. Найти самый высокий и самый низкий уровень успеваемости студентов в группе #7
файл тема сложная хотяб по немногу чтото понят ,как решали идт
Yandex
Объявления
25.11.2013, 22:36     Составить файл об информаций студентов в группе. Найти самый высокий и самый низкий уровень успеваемости студентов в группе
Ответ Создать тему
Опции темы

Текущее время: 01:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru