Практические / Отчеты студентов 2011-2012 / ВТ-12 ЛР / Снегирев / Strukturbl
.docx
Московский государственный университет леса
Факультет ЭСТ
Кафедра " Вычислительной техники"
Лабораторная работа №9.
Структуры.
Студент: Снегирев Н.В.
Группа: Вт-12
Принял: Ларионов Н.В.
Задание:
Вариант 2
1. Описать структуру с именем STUDENT, содержащую следующие поля:
• фамилия и инициалы;
• номер группы;
• успеваемость (массив из пяти элементов).
2. Написать программу, выполняющую следующие действия:
• ввод с клавиатуры данных в массив, состоящий из десяти структур типа
STUDENT; записи должны быть упорядочены по возрастанию среднего балла;
• вывод на дисплей фамилий и номеров групп для всех студентов, имеющих
оценки 4 и 5;
• если таких студентов нет, вывести соответствующее сообщение.
Структура
1.
Программа:
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>
struct STUDENT{
char Inicialbl[20];
unsigned NUMR;
char YSPEX[5];
} SPIS[5],T;
int main()
{
int i,j,k=0;
unsigned Num;
for (i=0; i<5; i++)
{
printf ("\nnapisatb inicialbl");
scanf ("%s",&SPIS[i].Inicialbl);
if(strlen(SPIS[i].Inicialbl)==0) break;
printf ("\nGryppa");
scanf ("%u",&SPIS[i].NUMR);
printf ("\nYSPEX");
scanf ("%s",SPIS[i].YSPEX);
k++;
}
for(i=0; i<k; i++)
for(j=0; j<k-i-1; j++)
if (SPIS[i].Inicialbl<SPIS[j].Inicialbl)
{
T=SPIS[i];
SPIS[j]=SPIS[j+1];
SPIS[j+1]=T;
}
printf ("Studs Grypa Yspex\n");
for (i=0; i<k; i++)
printf ("%-19s #%3u %4s\n",SPIS[i].Inicialbl,SPIS[i].NUMR,SPIS[i].YSPEX);
while (1)
{
printf ("vvesti nomer");
scanf ("%i",&Num);
j=0;
for (i=0; i<k; i++)
if (Num==SPIS[i].NUMR)
{
printf ("\n 1p: %s\n 2p: %u\n 3p: %s\n\n",SPIS[i].Inicialbl,SPIS[i].NUMR,SPIS[i].YSPEX);
j=1;
}
if(i<j)
printf ("net takix");
system ("pause");
return 0;
}
}