Задача на структуру STUDENT, отсортировать и вывести фамилии и группы студентов имеющих оценку 2

О задаче:
[свернуть]

По книге:C/C++ Программирование на языке высокого уровня: Учебник для вузов 
Автор книги: Павловская Татьяна Александровна
Задача на тему: Структуры
Вариант задачи: 3 — (на странице 145)’ style=’default’ collapse_link=’true’]

Условия задачи:
[свернуть]

1. Описать структуру с именем STUDENT, содержащую следующие поля:
[свернуть]

  • NAME — фамилию и инициалы;
  • GROUP — номер группы;
  • SES — успеваемость (массив из пяти элементов).

‘ style=’default’ collapse_link=’true’]

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

  • ввод с клавиатуры данных в массив STUD1, состоящий из десяти структур типа STUDENT; записи должны быть упорядочены по алфавиту;
  • вывод на дисплей фамилий и номеров групп для всех студентов, имеющих хотя бы одну оценку 2; 
  • если таких поездов нет, выдать на дисплей соответствующее сообщение.

‘ style=’default’ collapse_link=’true’]

Листинг(исходник) программы:
[свернуть]

Struct.cpp
[свернуть]


#define Num 10
struct STUDENT
{	char NAME[80];
int GROUP;
int SES[5];
};

‘ style=’default’ collapse_link=’true’]

main.cpp
[свернуть]


#include <iostream>
#include <locale>
#include "Struct.cpp"
using namespace std;

STUDENT STUD1[Num];

void main()
{
setlocale(LC_ALL,"Russian");	// Объявляем локализацию текста в консоли
for(int i=0; i<Num; i++) // Заполнение структуры данными
{
system("cls");
cin.get(); cout<<"Введите ФИО студента: "; cin.getline(STUD1[i].NAME,80);
cout<<"Введите номер группы: ";	cin>>STUD1[i].GROUP;
cout<<"Введите пять оценок студента через пробел: "; for(int j=0; j<5;j++) cin>>STUD1[i].SES[j];
system("cls");
}

for (int i=0; i<Num; i++)
{
for(int j=0; j<Num; j++)
{
if(STUD1[i].NAME[0] < STUD1[j].NAME[0])
{
swap(STUD1[i], STUD1[j]);
}
else if(STUD1[i].NAME[0] == STUD1[j].NAME[0])
{
if(STUD1[i].NAME[1] < STUD1[j].NAME[1])
{
swap(STUD1[i], STUD1[j]);
}
}
}
}

for(int i=0; i<Num; i++) 
{
cout<<"\\nФИО студента: "<<STUD1[i].NAME;
cout<<"\\tНормер группы: "<<STUD1[i].GROUP<<endl;
}
cout << endl;
bool flag = true; 
for (int i=0; i<Num; i++)
{
for (int j=0; j<5; j++)
{
if(STUD1[i].SES[j] == 2)
{
for(int k=0; k<sizeof(STUD1[i].NAME); k++)
{
if(k==0) cout<<"Студент ";
if(STUD1[i].NAME[k] == \' \')	// Проверка символов на равенство "пробел" или нет.
{
break;
}
else cout<<STUD1[i].NAME[k]; //Вывод символа если не равен "пробелу"
}
cout<<" из группы "<<STUD1[i].GROUP<<" имеет оценку два."<<endl; 
flag = true; break;
}
}
}
cout<<endl<<endl; 
if(!flag) cout<<"Студентов с двойками не найдено."<<endl<<endl; ; 
system("pause");
}

‘ style=’default’ collapse_link=’true’]

Автор: Павел Кадыров

Задача на структуру STUDENT, отсортировать и вывести фамилии и группы студентов имеющих оценку 2: 0 комментариев

  1. Здравствуйте!!
    Можете показать с какока имменно момента программы начинается поиск и где он заканчивается?

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *