АК5 (ИУ6) 2 семестр, лабораторные работы по с++ (с 17 по 29 лабы) (Отчет по Теме 27)

Посмотреть архив целиком


Отчет по Теме 27

Программирование с использованием классов С++. Простые объекты”

Малышев Егор АК5-21



Условие:


Описать объект, включающий заданные поля и методы. Написать программу, которая создает массив объектов и список объектов и содержит процедуры, работающие с указанными структурами.

Объект - ангар. Параметры: ширина и длина. Методы: конструктор и функция, определяющая площадь помещения. Определить площадь склада, состоящего из нескольких ангаров. Реализовать два варианта (с массивом и списком).


Текст рабочего файла объекта angar.h:


class angar

{

private: int a,b;

public:

angar (){};

angar (int ax, int bx) {init (ax,bx);};

void init(int ax,int bx);

int square(void);

void print()

{printf ("a = %d b = %d\n",a,b);}

};


void angar::init (int ax, int bx)

{a=ax; b=bx;}


int angar::square (void)

{return a*b;}



Текст основной программы:


#include "stdafx.h"

#include

#include

#include "angar.h"


angar mas[20];

struct el {angar obj; el *p;};


void mas_obj()

{

int sq=0,i,aa=0,bb=0,n=0;

puts ("**************Variant s massivom*****************");

while(n<1)

{printf("\nVvedite chislo angarov: ");

scanf ("%d",&n);

}

puts("");

for (i=1; i<=n; i++)

{ printf ("Vvedite parametry angara %d AxB: ",i);

scanf ("%d %d",&aa,&bb);

mas[i-1].init(aa,bb);}

for(i=0;i

{mas[i].print();

sq=sq+mas[i].square();}


printf("\nSymmarnaia plowad sklada: %d\n\n\n\n\n",sq);

}


void spis_obj()

{

el *first,*cur;

int sq=0,i,aa=0,bb=0,n=0;

puts ("**************Variant s massivom*****************");

while (n<1)

{printf("\nVvedite chislo angarov: ");

scanf ("%d",&n);

}

first=new el;

printf ("\nVvedite parametry angara 1 AxB: ");

scanf ("%d %d",&aa,&bb);

first->obj.init(aa,bb);

cur=first;

for(i=1; i

{ printf ("Vvedite parametry angara %d AxB: ",i+1);

scanf("%d %d",&aa,&bb);

cur->p=new el;

cur=cur->p;

cur->obj.init(aa,bb);

}

cur->p=NULL;

cur=first;

while(cur!=NULL)

{

sq+=cur->obj.square();

cur=cur->p;

}

printf("\nSymmarnaia plowad sklada: %d\n",sq);

}



int main(int argc, char* argv[])

{

mas_obj();

spis_obj();

return 0;

}

Результаты работы программы:


Введите число ангаров: 3


Введите параметры ангара 1 АхВ: 1 2

Введите параметры ангара 1 АхВ: 1 1

Введите параметры ангара 1 АхВ: 2 2


Суммарная площадь склада 7



Пояснения:


Программа построена с использованием отдельного заголовочного файла, в котором размещен объект “ангар” со своими полями и методами. Поскольку, как в случае с массивом, так и со списком инициализация группы объектов происходит в цикле, я объявил сразу 3 различных инициализирующих метода: конструктор без параметров, с параметрами и специальный инициализирующий метод init, который и производит внутренне присвоение данных объекта.


Случайные файлы

Файл
9244-1.rtf
20895-1.rtf
163453.rtf
93447.rtf
17912.rtf




Чтобы не видеть здесь видео-рекламу достаточно стать зарегистрированным пользователем.
Чтобы не видеть никакую рекламу на сайте, нужно стать VIP-пользователем.
Это можно сделать совершенно бесплатно. Читайте подробности тут.