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

Реализовать структуру Student

24.05.2015, 11:25. Показов 1745. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
HELP GUYS


Следующие задания требуется решить с использованием классов.При этом обязательно оформить методы для выполнения каждого из действий: по вводу данных, выводу их в файл, чтению данных из файла и выводу их на экран, сортировке данных.

Дана структура с именем STUDENT, состоящая из полей:

* фамилия и инициалы,
* номер группы,
* успеваемость (массив из пяти элементов).

Написать программу, которая выполняет следующие действия:

* ввод с клавиатуры данных в массив, состоящий из 10 структур типа STUDENT, и занесение их в файл данных;
* чтение данных из файла и вывод их на экран;
* вывод на экран фамилий и номеров групп для всех студентов, включенных в массив, если средний балл студента больше 4 (если таких нет – вывести об этом сообщение).
*Список студентов должен быть упорядочен по возрастанию номера группы.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.05.2015, 11:25
Ответы с готовыми решениями:

Реализовать структуру Student (не работает вывод на консоль - найти и исправить ошибки в коде)
Описать структуру с именем STUDENT, содержащую следующие поля:-фамилия и инициалы;-номер группы;-успеваемость (массив из пяти...

Реализовать структуру "Student"
Создайте программу для ввода и вывода фамилий и оценок студентов. Введите не менее 10 студентов. Отберите студентов, у которых вторая и...

Реализовать структуру "Student"
Описать структуру с именем STUDENT, содержащую следующие поля: · фамилия и инициалы; · номер группы; · успеваемость (массив из пяти...

2
 Аватар для Solitaire Raven
36 / 36 / 47
Регистрация: 20.04.2015
Сообщений: 198
24.05.2015, 11:34
Лучший ответ Сообщение было отмечено grss как решение

Решение

Вот вам, держите



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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#include <windows.h>
#pragma hdrstop
 
 
#pragma argsused
char *Rus(const char *text);
const int l_name=20, l_ses=5;
struct Student{
char name[l_name+1];
char ses[l_ses+1];
int group;
float av;
};
int compare(const void *student1, const void *student2);
void recode(char *dest, char *source);
 
int main(int argc, char* argv[])
{Student student;
FILE *fin=fopen("dbase.txt", "rt");
if (!fin) {puts(Rus("Невозможно открыть файл")); system("pause"); getch();
return 0;}
FILE *fout=fopen("dbase.bin", "wb");
if (!fout) {puts(Rus("Невозможно открыть файл")); system("pause"); getch();
return 0;}
 
char name[l_name+1];
char ses[l_ses+1];
 
int ses1[5], sum;
while(!feof(fin)){
sum=0;
fgets(student.name, l_name, fin);
fscanf(fin, "%i%s\n", &student.group, &student.ses);
int code;
for(int i=0; i<5; i++){
code=(int)student.ses[i];
switch(code){
case 49: {ses1[i]=1; break;}
case 50: {ses1[i]=2; break;}
case 51: {ses1[i]=3; break;}
case 52: {ses1[i]=4; break;}
case 53: {ses1[i]=5; break;}
}
sum+=ses1[i];}
student.av=(float)sum/5;
 
recode(name, student.name);
recode(ses, student.ses);
printf("%s %i %s %.2f\n", name, student.group, ses, student.av);
 
fwrite(&student, sizeof(Student), 1, fout);
}
puts("\n");
fclose(fin);
puts(Rus("Бинарный файл записан\n"));
 
fseek(fout, 0, SEEK_END);
int n_record=ftell(fout)/sizeof(Student);
fclose(fout);
 
FILE *fbin=fopen("dbase.bin", "rb");
if (!fbin) {puts(Rus("Невозможно открыть файл для чтения\n")); system("pause");
getch(); return 0;}
Student *STUDENT=new Student[n_record];
fseek(fbin, 0, SEEK_SET);
fread(STUDENT, sizeof(Student), n_record, fbin);
fclose(fbin);
 
int i;
puts(Rus("Упорядоченный по возрастанию среднего бала массив"));
qsort(STUDENT, n_record, sizeof(Student), compare);
for(i=0; i<n_record; i++){
recode(name, STUDENT[i].name);
recode(ses, STUDENT[i].ses);
printf("%s %i %s %.2f\n", name, STUDENT[i].group, ses, STUDENT[i].av);}
 
int j=0; puts(Rus("\nПоиск ударников:"));
bool not_found=true;
for (i=0; i<n_record; i++){
int k=1;
for(j=0; j<l_ses; j++)
if (STUDENT[i].ses[j]=='2' || STUDENT[i].ses[j]=='3') k=0;
if(k!=0){recode(name, STUDENT[i].name); not_found=false;
printf("%s %i\n", name, STUDENT[i].group);}
}
if(not_found) puts(Rus("Ударников нет\n"));
 
system("pause");
getch();
        return 0;
}
 
  char bufRus[256];
  char *Rus(const char *text){
  CharToOem(text, bufRus);
  return bufRus;             }
 
  int compare(const void *student1, const void *student2){
  int p;
  if ( ((Student *) student1)->av < ((Student *) student2)->av) p=-1;
  else if ( ((Student *) student1)->av==((Student *) student2)->av) p=0;
  else p=1;
  return p;                                              }
 
  void recode(char *dest, char *source){
  strcpy(dest, source);
  CharToOem(dest, dest);
                                       }
1
1 / 1 / 0
Регистрация: 27.12.2013
Сообщений: 30
18.12.2015, 00:25
Solitaire Raven, при использовании данного кода вылазит такая ошибка: Unhandled exception at 0x77d122c2 in kursov.exe: 0xC0000005: Access violation writing location 0xf54c8cb1. как её можно исправить?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.12.2015, 00:25
Помогаю со студенческими работами здесь

Создать структуру Student
Создать структуру Student, содержащую следующие данные: ФИО, год рождения, оценки за сессию. В новый файл вывести студентов, сдавших сессию.

Создать структуру Student
программа с использованием структуры полей структур. Успеваемость студентов. Фамилия студента, адрес,номер телефона, (Название месяца,...

Описать структуру STUDENT
Прошу помощи, уважаемые программисты! Я гуманитарий, задание для меня, конечно, очень интересное, но и очень непонятное. Как в коде С++...

Описать структуру Student
Описать структуру Student, которая имеет следующие поля: фамилия,группа,средний бал успеваемости.Отсортировать студентов по алфавиту.

Описать структуру STUDENT
у меня такое задание: Описать структуру с именем STUDENT, содержащую следующие поля: • фамилия и инициалы; • номер группы; ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru