отчет 27 (АЯиП отчеты по лабам (кроме 24))
Описание файла
Файл "отчет 27" внутри архива находится в следующих папках: АЯиП отчеты по лабам (кроме 24), Отчеты. Документ из архива "АЯиП отчеты по лабам (кроме 24)", который расположен в категории "". Всё это находится в предмете "информатика" из 2 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "лабораторные работы", в предмете "информатика" в общих файлах.
Онлайн просмотр документа "отчет 27"
Текст из документа "отчет 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 <stdio.h>
//#include <string.h>
#include <conio.h>
#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<n;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<n; 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;
}
Тест: