отчет 28 (956695)
Текст из файла
Лабораторная работа 28.
Программирование с использованием классов в С++. Наследование и композиция.
Задача: Разработать и реализовать диаграмму классов для описанных объектов предметной области, используя механизмы наследования и композиции. Проверить ее на тестовом примере, с демонстрацией всех возможностей разработанных классов на конкретных данных.
Даны:
Объект вещественное число, умеющий печатать свое значение и отвечать на запрос о значении своего числового поля, значении целой и вещественной частях числового поля.
Объект массив вещественных чисел переменной длины, которая определяется в процессе инициализации и для хранения длины используется специальное поле. Объект умеет выводить на печать значение своих элементов, возвращать размер массива, значение любого элемента по его индексу, среднее арифметическое целых и дробных частей своих элементов.
Диаграмма классов:
chislo | Mas1 | |
+ a | - z[50] + n | |
Chislo (){}; ~Chislo (){}; init() samo () celoe () drob () | Mas1 (){}; ~Mas1 (){}; init(); printmas(); printsize(); printask(); srcel(); srdrob(); |
Текст программы:
Файл chislo.h
#ifndef _chislo_h_100508_
#define _chislo_h_100508_
class Chislo
{
public:
float a;
Chislo (){};
Chislo (float ax) {init (ax);};
void init(float ax) {a=ax;};
float samo (void) {return a;};
int celoe (void) {int a1=a; return a1;};
float drob (void) {int a1=a; return (a-a1);};
};
#endif
Файл mas.h
#ifndef _Mas1_h_100508_
#define _Mas1_h_100508_
class Mas1:public Chislo
{
private:
Chislo z[50];
public:
int n;
Mas1 (){};
Mas1 (int i){init();};
void init(void);
void printmas(void);
void printsize(void);
void printask(void);
void srcel(void);
void srdrob(void);
};
void Mas1::init(void)
{
int i;
for (i=1; i<n+1; i++)
{
printf ("Vvedite element %d: ",i);
scanf ("%f",&z[i-1].a);
}
}
void Mas1::printmas(void)
{
int i;
for (i=1; i<n+1; i++)
{
printf ("\nElement %d: ",i);
printf ("%f",z[i-1].a);
}
}
void Mas1::printsize(void)
{
printf("\nRazmernost massiva ravna: %d\n\n",n);
}
void Mas1::printask(void)
{
int i=0;
while ((i<1) | (i>n))
{
printf ("Vvedite nomer elementa, kotoriy nado vyvesti: ");
scanf ("%d",&i);
}
printf ("Vivodimiy element: %f\n",z[i-1].a);
}
void Mas1::srcel(void)
{
int i;
float sr=0,sum=0;
for (i=1; i<n+1; i++)
sum+=z[i-1].celoe();
sr=sum/n;
printf("\nSr.ar. celyh chastei elementov massiva: %f",sr);
}
void Mas1::srdrob(void)
{
int i;
float sr=0,sum=0;
for (i=1; i<n+1; i++)
sum+=z[i-1].drob();
sr=sum/n;
printf("\nSr.ar. drobnyh chastei elementov massiva: %f\n",sr);
}
#endif
Файл lab28.cpp
// lab28.cpp: определяет точку входа для консольного приложения.
//Разработать и реализовать диаграмму классов для описанных объектов предметной области,
//используя механизмы наследования и композиции. Проверить ее на тестовом примере,
//с демонстрацией всех возможностей разработанных классов на конкретных данных.
// Даны:Объект вещественное число, умеющий печатать свое значение и отвечать на запрос
//о значении своего числового поля, значении целой и вещественной частях числового поля.
//Объект массив вещественных чисел переменной длины, которая определяется в процессе
//инициализации и для хранения длины используется специальное поле.
//Объект умеет выводить на печать значение своих элементов, возвращать размер массива,
//значение любого элемента по его индексу, среднее арифметическое целых и дробных частей своих элементов.
#include "stdafx.h"
#include "chislo.h"
#include "Mas1.h"
#include <conio.h>
//ОСНОВНАЯ ПРОГРАММА
int main(int argc, char* argv[])
{
Chislo c;
Mas1 mas;
printf ("Vvedite znachenie odinochnogo chisla: ");
scanf("%f",&c.a);
printf ("\nVyvodim chislo: %9.4f\n",c.samo());
printf ("Vyvodim ego celuyu chast: %9d\n",c.celoe());
printf ("Vyvodim ego drobnuyu chast: %9.4f\n",c.drob());
printf ("\nVvedite razmernost massiva nasleduemix elementov: ");
scanf ("%d",&mas.n);
mas.init();
mas.printmas();
mas.printsize();
mas.printask();
mas.srcel();
mas.srdrob();
getch();
return 0;
}
Тест:
Характеристики
Тип файла документ
Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.
Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.
Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.