- •Оглавление
- •Лабораторная работа №1
- •Лабораторная работа №2 Форматный ввод-вывод
- •Лабораторная работа №3 Составление алгоритма решения задачи и его реализация
- •1. Изучить:
- •1. Изучить:
- •Пример выполнения работы
- •Контрольные вопросы
- •Лабораторная работа №4 Программирование алгоритмов циклической структуры
- •1. Изучить:
- •Пример выполнения работы
- •Контрольные вопросы
- •Лабораторная работа №5 Обработка одномерных массивов
- •1. Изучить:
- •Пример выполнения работы
- •Контрольные вопросы
- •Лабораторная работа №6 Обработка двумерных массивов
- •1. Изучить:
- •Пример выполнения работы
- •Контрольные вопросы
- •Лабораторная работа №7 Типовые приемы алогитмизации
- •1. Изучить:
- •Пример выполнения работы
- •Контрольные вопросы
- •Лабораторная работа №8 Обработка символьных данных
- •1. Изучить:
- •Пример выполнения работы
- •1. Изучить:
- •Пример выполнения работы
- •Пример выполнения работы
- •1. Изучить:
- •Пример выполнения работы
- •Контрольные вопросы
- •Лабораторная работа №12 Работа с файлами на верхнем уровне
- •1. Изучить:
- •Пример выполнения работы
- •Контрольные вопросы
- •Лабораторная работа №13 Организация работы в графическом режиме
- •1. Изучить:
- •Пример выполнения работы
- •Контрольные вопросы
- •Лабораторная работа №14 Создание графика
- •1. Изучить:
- •Пример выполнения работы
- •Контрольные вопросы
- •Лабораторная работа №15 Организация перемещения объекта по заданной траектории
- •1. Изучить:
- •Пример выполнения работы
- •Лабораторная работа №16 Организация работы в текстовом режиме
- •1. Изучить:
- •Пример выполнения работы
- •Контрольные вопросы
- •Лабораторная работа №17 Создание светового меню
- •1. Изучить:
- •Контрольные вопросы
- •Лабораторная работа №18 Динамическое распределение памяти, создание списка
- •1. Изучить:
- •Пример выполнения работы
- •Контрольные вопросы
Пример выполнения работы
Задание.
Написать программу, осуществляющую ввод информации о результатах сдачи студентами экзаменационных сессий, количество семестров не более 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;
}
