АЯиП отчеты по лабам (кроме 24) (отчет 27)

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

Лабораторная работа 27.

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



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

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


Объект:


Angar

-m_a

-m_b

angar (){};

~angar () {};

init();

square();

print()



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


Файл angar.h


#ifndef _angar_h_100424_

#define _angar_h_100424_

class angar

{

private:

int m_a,m_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) //void - берет из самого объекта

{

return a*b;

}


#endif;


Файл lab27.cpp


// lab27.cpp : Defines the entry point for the console application.

// Описать объект, включающий заданные поля и методы.

//Написать программу, которая создает массив объектов и список объектов

//и содержит процедуры, работающие с указанными структурами.

// Объект - ангар. Параметры: ширина и длина.

//Методы: конструктор и функция, определяющая площадь помещения.

//Определить площадь склада, состоящего из нескольких ангаров.

//Реализовать два варианта (с массивом и списком).


#include "stdafx.h"

#include

//#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("\nSymmarnaya ploshad sklada is %d angarov: %d\n\n\n\n\n",n,sq);

}


//ввод списка

void spis_obj()

{

el *first,*cur;

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

puts ("______________Variant so spiskom______________");

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("\nSymmarnaya ploshad sklada is %d angarov: %d\n",n,sq);

while (first!=NULL) //освобождение памяти

{

cur=first;

first=first->p;

delete cur;

}


}


int _tmain(int argc, _TCHAR* argv[])

{

mas_obj();

spis_obj();

getch();

return 0;

}




Тест:



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

Файл
89637.rtf
153418.rtf
10599.rtf
18594-1.rtf
34364.rtf




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