Автор работы: Пользователь скрыл имя, 14 Января 2012 в 15:19, контрольная работа
Цель: Ознакомиться с классами хранения, областью видимости и временем жизни программных объектов.
БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ИНФОРМАТИКИ
И РАДИОЭЛЕКТРОНИКИ
Факультет непрерывного и дистанционного обучения
Специальность:
информационные системы и технологии
в экономике
Контрольная работа №2
по предмету
«Основы
алгоритмизации и
программирования»
Мироненко Татьяна Владимировна
КЛАССЫ
ХРАНЕНИЯ И ВИДИМОСТЬ
ПЕРЕМЕННЫХ
Цель:
Ознакомиться с классами хранения, областью
видимости и временем жизни программных
объектов.
Варианты индивидуальных заданий
26. Разработать
программу вывода упорядоченного по году
поступления списка студентов-отличников,
предусмотрев ввод исходной информации
о четырех студентах: фамилия и инициалы,
год рождения, год поступления в БГУИР,
оценки за первый семестр по предметам:
физика, высшая математика, информатика.
//kr1_2.cpp использовать только с файлом "my_lib.cpp"
#include "my_lib.cpp"
/*
Разработать программу вывода упорядоченного по году поступления
списка студентов-
о четырех студентах: фамилия и инициалы, год рождения, год поступления
в БГУИР, оценки за первый семестр по предметам: физика,
высшая математика, информатика.
*/
main()
{
register int N, i;
//Ввод
массива структур
printf("Введите количество студентов записываемых в список: ");
scanf("%d", &N);
spisok = new (struct BSUIR[N]);
for(i = 0; i < N; i++)
vvod_struct(
clrscr();
printf("|-----------
vivod_struct(spisok, N);
shell_sort(spisok, N); //сортировка
printf("|-----------
vivod_struct(spisok, N);
delete(spisok);
return 0;
}
Файл «my_lib.cpp»
#include <stdio.h>
#include <stdlib.h>
#include
<conio.h>
typedef struct BSUIR{
char *FIO; //Фамилия и инициалы
int year_god; //Год рождения
int year_post; //Год поступления
float ocenka_ph; //Оценка по физике
float ocenka_VM; //Оценка по высшей математике
float ocenka_inf; //Оценка по информатике
} student; //имя типа
static
student *spisok;
/*void vvod_struct(student *mass, int size);
void vivod_struct(student *mass, int size);
void shell_sort(student *mass, int size);*/
void
swap(int *x,int *y);
//Функция ввода структуры
extern void vvod_struct(student *mass, int p)
{
int i;
flushall();
mass[p].FIO =(char *) malloc(20);
printf("ФИО студента %d: ", p+1);
gets(mass[p].FIO);
printf("Год рождения студента %d: ", p+1);
scanf("%d",&mass[p].
printf("Год поступления студента %d: ", p+1);
scanf("%d",&mass[p].
printf("Оценка по физике студента %d: ", p+1);
scanf("%f",&mass[p].
printf("Оценка по высшей математике студента %d: ", p+1);
scanf("%f",&mass[p].
printf("Оценка по информатике студента %d: ", p+1);
scanf("%f",&mass[p].
printf("\n");
}
//функция вывода структуры на экран
extern void vivod_struct(student *mass, int size)
{
int i;
printf("|-----------
printf("| № | ФИО |Год рожд.|Год пост.|Физ.| ВМ |Информ|\n");
for(i = 0; i < size; i++)
{
printf("|%3d|%
ma
ma
free(mass[i].
}
}
void swap(student *x,student *y)
{
student temp;
temp = *x;
*x = *y;
*y = temp;
}
extern void shell_sort(student *mass, int size)
{
int i,j; //две переменные цикла
int gap; //шаг сортировки
int
sorted; //флаг окончания этапа сортировки
for(gap = size/2; gap > 0; gap /= 2)//начало сортировки
do
{
sorted = 0;
for(i = 0,j = gap; j < size; i++, j++)
if(mass[
{
sw
sorted = 1;
}
}
while(sorted);
}