Пример использования структур

Вести сведения о студентах учебной группы (не более 50):

- фамилию и имя;

- итоги сдачи экзаменов – три оценки.

В программе рассчитывается средний балл для каждого студента, выполняется поиск по первой букве фамилии. Текст программы может иметь вид:

#include <stdio.h>

#include <string.h>

#include <conio.h>

struct Spisok {

char Fio[20];

int Ot[3];

float S_Bal;

} *sved; // Указатель на структуру


void Vvod(int nom,struct Spisok *sved)

{

printf("\n Vvedi svedenia %d ", (nom+1));

puts("\n FIO - ");

fflush(stdin);

gets(sved->Fio); // Используем операцию косвенной адресации (->)

float s=0;

for(int i=0;i<3;i++)

{

puts("\n Otcenki - "); scanf(“%d”, sved->Ot[i]);

s+=sved->Ot[i];

}

sved->S_Bal=s/3.;

return;

}

void main(void)

{

struct Spisok Stud[50];

int i,N;

char Bukva,Fio_p[20];

clrscr();

puts("\n Vvedi kol-vo < 50 ");

scanf(“%d”,&N);

for(i=0;i<N;i++)

Vvod(i,&Stud[i]); // Вводим поэлементно

puts("\n Список студентов ”);

for(i=0;i<N;i++) // Используем операцию принадлежности (.)

printf("\n %20s %4.2f",Stud[i].Fio,Stud[i].S_Bal);

puts("\n Поиск сведений по первой букве. \n Введите букву ");

scanf(“%c”, &Bukva);

puts("\n Сведения: ");

int kod_p=0;

for(i=0;i<N;i++)

if(Stud[i].Fio[0]= =Bukva)

{

kod_p=1;

printf("\n %20s %4.2f",Stud[i].Fio,Stud[i].S_Bal);

}

if(kod_p==0) puts("\n Таких НЕТ!");

getch();

}

Варианты индивидуальных заданий

В программах организовать ввод информации о студентах:

- фамилия и инициалы;

- год рождения;

- номер группы;

- оценки за первый семестр: физика, математика, информатика;

- средний балл.

1. Распечатать анкетные данные студентов, сдавших сессию на 4,5.

2. Распечатать анкетные данные студентов-отличников, фамилии которых начинаются с интересующей вас буквы.

3. Распечатать анкетные данные студентов-отличников из интересующей вас группы.

4. Распечатать анкетные данные студентов, фамилии которых начинаются с буквы А, и сдавших математику на 4 и 5.

5. Распечатать анкетные данные студентов, имеющих оценку 3 по физике и оценку 5 по остальным предметам.

6. Распечатать анкетные данные студентов интересующей вас группы. Фамилии студентов начинаются с букв В, Г и Д.

7. Распечатать анкетные данные студентов, не имеющих оценок 3 и 2 по информатике и математике.

8. Вычислить общий средний балл всех студентов и распечатать список студентов со средним баллом выше общего среднего балла.

9. Вычислить общий средний балл всех студентов и распечатать список студентов интересующей вас группы, имеющих средний балл выше общего среднего балла.

10. Распечатать анкетные данные студентов интересующей вас группы, имеющих оценку 2.

11. Распечатать анкетные данные студентов интересующей вас группы, имеющих оценку 5 по информатике.

12. Распечатать анкетные данные студентов, имеющих оценку 4 по физике и оценку 5 по высшей математике.

13. Вычислить общий средний балл студентов интересующей вас группы и распечатать список студентов этой группы, имеющих средний балл выше общего.

14. Распечатать анкетные данные студентов-отличников интересующей вас группы.

15. Распечатать анкетные данные студентов интересующей вас группы, имеющих средний балл выше введенного с клавиатуры.

16. Распечатать анкетные данные студентов интересующей вас группы, имеющих оценку 4 по физике и оценку 5 по высшей математике.

17. Распечатать анкетные данные студентов, упорядоченные по алфавиту.

18. Распечатать анкетные данные студентов, упорядоченные по году рождения.

19. Распечатать анкетные данные студентов, упорядоченные по номеру группы.

20. Распечатать анкетные данные студентов, упорядоченные по среднему баллу.

Контрольные вопросы

1. Как описываются структуры в языке С?

2. Что такое структурная переменная?

3. Поясните термин “указатель на структуру”.

4. Как обратиться к полю структурной переменной?

5. Как организовать массив структурных переменных?



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: