Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методические указания по С++.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
793.09 Кб
Скачать

Пример выполнения работы

Задание.

Написать программу, осуществляющую ввод информации о результатах сдачи студентами экзаменационных сессий, количество семестров не более 9, количество оценок в семестре не более 6:

- фамилия студента;

- группа;

- оценки.

Вывести на экран введенную информацию в виде таблицы и информацию о студентах, имеющих средний балл выше 3.

Программа решения задачи имеет вид:

#include<stdio.h>

#include<conio.h>

void main()

{

struct student

{

char fio[25],gr[7]; // Ф.И.О. студента

int mark[9][6],kurs,kol[9]; // оценки по семестрам, курс, сессии

}st[250];

int m,kolst,i,j,l,k,n,p,o,q,s;

float sr;

printf("\n Введите количество студентов:");

scanf("%d",&kolst);

for (i=0; i<kolst;i++) // ввод информации о студентах

{

printf("Введите фамилию:");

scanf("%s",&st[i].fio);

printf("Введите группу:");

scanf("%s",&st[i].gr);

printf("Введите курс:");

scanf("%d",&st[i].kurs);

if (st[i].kurs==5) // это чтобы не было 10 сессии

l=1;

else l=0;

for (j=0;j<st[i].kurs*2-l;j++)

{

printf("Введите количество оценок в %d семестре:",j+1);

scanf("%d",&st[i].kol[j]);

printf("Введите оценки за %d семестр:",j+1);

for (k=0;k<st[i].kol[j];k++)

scanf("%d",&st[i].mark[j][k]);

}

}

printf("Информация о студентах \n");

printf("┌─────────┬────────┬───────┬────────┬───────────┐\n");

printf("│ФИО студента│ Группа │ Курс │ Семестр │ Оценки │\n");

printf("│ │ │ │ ├─┬─┬─┬─┬─┬─│\n");

printf("├─────────┼────────┼───────┼────────┼─┼─┼─┼─┼─┼─┤\n");

m=0; // кол-во студентов с баллом выше 3

for (i=0; i<kolst;i++) // цикл по студентам

{

sr=0; // средний балл

n=0; // количество оценок

if(st[i].kurs==5)

l=1;

else l=0;

for (j=0;j<st[i].kurs*2-l;j++) // цикл по семестру (сколько проучился)

{

for (k=0;k<st[i].kol[j];k++) // цикл по оценкам в j-той сессии

sr+=st[i].mark[j][k]; // k-тая оценка в j-той сессии

n+=st[i].kol[j];

}

sr/=n; \\средний балл

if (sr>=4)

{

printf("│ %-16s│ %-7s", st[i].fio,st[i].gr);

for (p=1;p<st[i].kurs+1;p++) // вывод курса

{

printf("│%-7d",p);

for (o=2*p-l-1;o<2*p-l+1;o++) // вывод o-того семестра

{

printf("│%-8d",o);

for (q=0;q<st[i].kol[o-1];q++) // вывод оценок в o-том семестре

printf("│%-d",st[i].mark[o-1][q]);

if (q<6) // чтобы были пустые ячейки, если оценок меньше 6

for (s=0;s<6-q;s++)

printf("│ ");

printf("│\n"); // переход на следующую строку в таблице

printf("│ │ │ ");

}

printf("│ │ │ │ │ │ │ │\n");

printf("│ │ ");

}

printf("│ │ │ │ │ │ │ │ │\n");

m++;

}

}

printf("└─────────┴────────┴───────┴────────┴─┴─┴─┴─┴─┴─┘\n");

if (m= =0)

printf("Студенты, имеющие средний балл, больший 3,отсутствуют\n");

getch();

return;

}