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

Описать структуру с именем STUDENT - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 46, средняя оценка - 4.65
ВТ и ПО 13
Сообщений: n/a
29.04.2011, 22:47     Описать структуру с именем STUDENT #1
Описать структуру с именем STUDENT, содержащую следующие поля:-фамилия и инициалы;-номер группы;-успеваемость (массив из пяти элементов).Написать программу, выполняющую следующие действия: -ввод с клавиатуры данных в массив, состоящий из 10 структур типа STUDENT; записи должны быть упорядочены по возрастанию среднего балла;-вывод на дисплей фамилий и номеров групп для всех студентов, имеющих оценки 4 и 5;-если таких студентов нет, вывести соответствующее сообщение.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.04.2011, 22:47     Описать структуру с именем STUDENT
Посмотрите здесь:

Описать структуру с именем STUDENT C++
Описать структуру с именем Student C++
C++ Описать структуру с именем STUDENT...
Описать структуру с именем STUDENT C++
Описать структуру с именем STUDENT C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Evgen88
42 / 42 / 5
Регистрация: 04.11.2010
Сообщений: 119
01.05.2011, 01:16     Описать структуру с именем STUDENT #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
//---------------------------------------------------------------------------
#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);
                                       }
Во вложении файл необходимый для работы программы.
Вложения
Тип файла: txt dbase.txt (126 байт, 255 просмотров)
zhg06
0 / 0 / 0
Регистрация: 28.04.2012
Сообщений: 4
01.05.2012, 13:41     Описать структуру с именем STUDENT #3
Помогите!!! поечему у меня выходят эти ошибки при компиляции данной программы:
[ILINK32 Error] Error: Unresolved external '__InitVCL' referenced from C:\BORLAND\BCB_2007_LITE\LIB\CP32MTI.LIB|crtlvcl

[ILINK32 Error] Error: Unresolved external '__ExitVCL' referenced from C:\BORLAND\BCB_2007_LITE\LIB\CP32MTI.LIB|crtlvcl
jsat
0 / 0 / 0
Регистрация: 20.04.2012
Сообщений: 14
05.05.2012, 20:57     Описать структуру с именем STUDENT #4
Исходник от Evgen88 работает, пробуй File->New->Other->Console App...
Дмитрий901
0 / 0 / 0
Регистрация: 28.10.2012
Сообщений: 4
01.11.2012, 21:26     Описать структуру с именем STUDENT #5
Помогите пожалуста...Очень срочно нужно. За рание спасибо.
Описать структуру с именем STUDENT, содержащую следующие поля:
• фамилия и инициалы;
• номер группы;
• успеваемость (массив из пяти элементов).
Написать программу, выполняющую следующие действия:
• ввод с клавиатуры данных в массив, состоящий из десяти структур типа STUDENT;
• упорядочить записи по возрастанию номера группы;
• вывод на дисплей фамилий и номеров групп для всех студентов, включённых в массив, если средний бал студента больше 4.0; если таких студентов нет, то вывести соответствующее сообщение.
LK
Заблокирован
02.11.2012, 05:33     Описать структуру с именем STUDENT #6
Посмотрел бы в самый низ страницы:
Описать структуру с именем STUDENT
Описать структуру с именем STUDENT
ну и здесь - именно про студентскую сруктуру тем на форуме - 100500...
Дмитрий901
0 / 0 / 0
Регистрация: 28.10.2012
Сообщений: 4
07.11.2012, 20:55     Описать структуру с именем STUDENT #7
Здравствуйте..помогите пожалуйста..составил программу но почему то нет упорядочености записей. посмотрите исправть..И помогите составить спецификацию с блок схемой по этой программе..Очень срочно...За ранее спасибо. Вот программа
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
#include <iostream>
#include <string>
using namespace std; 
 
struct STUDENT // структура STUDENT
{ 
string name; 
int group; 
float ses[5]; 
};
 
int main() 
{ 
setlocale(LC_ALL,"Russian");
const int size = 10; // количество студентов
STUDENT stud1[size]; // массив 
int i, j, n; 
int count = 0; // счётчик студентов с плохими отметками 
// eсли он равен количеству студентов значит 
// хорошистов нет
 
for ( n = 0; n < size; n++) // ввод информации
{ 
cout << "Введите фамилию студента " << endl; 
cin >> stud1[n].name; 
cout << "Введите номер группы " << endl; 
cin >> stud1[n].group; 
cout << "Введите 5 оценок " << endl; 
for (int i = 0; i < 5; i++) 
cin >> stud1[n].ses[i]; 
} 
 
STUDENT stud2[size]; // массив для упорядоченных элементов
i = 0, j = 0;
int min, imin;
min = 1023; 
 
while (stud2[size-1].group < 0){    //заполнение массива упорядоченно
for ( i = 0; i < size; i++){ //вычисление минимального элемента
if (stud1[i].group < min){
min = stud1[i].group; 
imin = i;   
}
} 
stud2[j] = stud1[imin]; //перенос элементов
stud1[imin].group = 1023;
min = 1023; 
j++;
}
float sum = 0; // счётчик суммы оценок
cout << "Фамилии и номера групп студентов со средней оценкой выше 4.0" << endl;
for ( i = 0; i < size; i++) 
{
for (j = 0; j < 5; j++) 
sum += stud2[i].ses[j]; 
 
if(sum / 5 > 4.0) // условие хорошиста
{ 
cout << "Фамилия: " << stud2[i].name << endl; 
cout << "Номер группы: " << stud2[i].group << endl; 
} 
else 
count++;
 
sum = 0;
} 
if(count == size) 
cout << "Такие студенты отсутствуют " << endl; 
 
system("Pause");
 
return 0;
}
Michail97
 Аватар для Michail97
5 / 5 / 0
Регистрация: 18.09.2016
Сообщений: 80
12.10.2016, 18:16     Описать структуру с именем STUDENT #8
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
#include<iostream>
#include<clocale>
using namespace std;
int const n=5;
 
int main(){
setlocale(LC_ALL,".1251");
 
struct student{
char fio[20];
int number;
float usp[n];};
 
student N[n];
int StudBestcount;
 
for(int i=0;i<n;++i){
    cout<<"Введите фамилию и инициалы студента "<<i<<"-ого списка:"<<endl;
    cin>>N[i].fio;
    cout<<"Номер группы студента "<<i<<"-ого списка:"<<endl;
    if(i==0)cin>>N[i].number;
    else  cin>>N[i].number;
    cout<<"Введите оценки студента "<<i<<"-ого списка:"<<endl;
    if(i==0){
    for(int j=0;j<n;++j){
        cout<<"Subject["<<j<<"]:";cin>>N[i].usp[j];
    if(N[i].usp[j]>0 && N[i].usp[j]<=5)continue;
    else {--j;cout<<"Пятибалльная система!"<<endl;}}}
    else
        for(int j=0;j<n;++j){
        cout<<"Subject["<<j<<"]:";cin>>N[i].usp[j];
        if(N[i].usp[j]>0 && N[i].usp[j]<=5)continue;
    else {--j;cout<<"Пятибалльная система!"<<endl;}}}
cout<<"Сведения о студентах по возрастанию номера группы"<<endl;
for(int i=0;i<n-1;++i){
        int imin=i;
for(int j=i+1;j<n;++j)
    if(N[j].number<N[imin].number) imin=j;
float temp=N[i].number; N[i].number=N[imin].number;N[imin].number=temp;}
for(int i=0;i<n;++i){
    cout<<"Фамилия и инициалы студента:"<<N[i].fio<<endl;
    cout<<"Номер группы студента: "<<N[i].number<<endl;
    cout<<"Оценки студента: "<<N[i].fio<<":"<<endl;
    for(int j=0;j<n;++j)
         cout<<"Subject["<<j<<"]:"<<N[i].usp[j]<<endl;}
cout<<"\nОтличники:\n"<<endl;
for(int i=0;i<n;++i)
for(int j=0;j<n;++j){
    StudBestcount=0;
    if(N[i].usp[j]>=4.0){cout<<"Фамилия и инициалы студента-отличника:"<<N[i].fio<<endl;
                        cout<<"Номер группы студента-отличника:"<<N[i].number<<endl;
                        j=(n-1);
                        ++StudBestcount;}}
    if(StudBestcount==0) cout<<"Студентов-отличников нет!"<<endl;
 
 
 
 
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.10.2016, 19:06     Описать структуру с именем STUDENT
Еще ссылки по теме:

C++ Описать структуру с именем Student
C++ Описать структуру с именем STUDENT
Описать структуру с именем Student C++

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

Или воспользуйтесь поиском по форуму:
Kastaneda
12.10.2016, 19:06     Описать структуру с именем STUDENT
  #9

Не по теме:

Информация к размышлению

Кликните здесь для просмотра всего текста
Описать структуру с именем STUDENT

Yandex
Объявления
12.10.2016, 19:06     Описать структуру с именем STUDENT
Ответ Создать тему
Опции темы

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