Автор работы: Пользователь скрыл имя, 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);
}