41964

Написать программу на языке C++, моделирующую поведение курицы (Hen) путём создания соответствующего класса

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

Информатика, кибернетика и программирование

Листинг программы: include iostrem include cstring include cmth include cstdlib using nmespce std; clss Chickhen { privte: chr nme; double w h f; Кормление урожай норма кормления sttic int e; норма яйценосности public: Chickhenvoid; Chickhenchr double; Chickhenconst Chickhen ; virtul Chickhen; double hrvest; double feeddouble; }; int Chickhen::e=10; Chickhen::Chickhen { w=0; h=0; f=0; nme=new chr[7]; strcpy nme nonme ; } Chickhen::Chickhen chrndouble F { nme=new chr[strlenn1]; strcpynmen; f=F; h=0; w=0;...

Русский

2013-10-27

14.17 KB

13 чел.

Задание: Написать программу на языке C++, моделирующую поведение курицы (Hen) путём создания соответствующего класса. Каждой курице дают уникальное имя и определяют норму кормления f0. Для всех куриц данного типа определена яйценоскость в день E0. Курицу сперва кормят (feed), затем собирают результат (gather). Количество собранных яиц в день E зависит от кормления f следующим образом:

 

В функции main провести тестирование работоспособности разработанного класса. Использование данного класса не должно приводить к утечке памяти, неопределённому поведению и аварийному завершению программы. Длина имени объекта не ограничена.

Листинг программы:

#include <iostream>

#include <cstring>

#include <cmath>

#include <cstdlib>

using namespace std;

class Chickhen {

private:

char *name;

double w, h, f; //Кормление, урожай, норма кормления

static int e; //норма яйценосности

public:

Chickhen(void);

Chickhen(char*, double);

Chickhen(const Chickhen &A);

virtual ~Chickhen();

double harvest();

double feed(double);

};

int Chickhen::e=10;

Chickhen::Chickhen() {

w=0; h=0; f=0;

name=new char[7];

strcpy (name, "noname");

}

Chickhen::Chickhen (char*n,double F)

{

name=new char[strlen(n)+1];

strcpy(name,n);

f=F; h=0; w=0;

}

Chickhen::Chickhen (const Chickhen &A)

{

if(A.name) {

name=new char[strlen(A.name)+1];

strcpy(name,A.name);

}else name=0;

f=A.f; e=A.e; h=A.h; w=A.w;

}

Chickhen::~Chickhen(){ delete[]name; }

double Chickhen::feed(double f)

{

h=int(e*exp(-(((w-f)*(w-f))/((4*f)*(4*f)))));

return h;

}

double Chickhen::harvest()

{

w=0; h=0;

return h;

}

int main()

{

Chickhen CHIK ("Chickhen", 20);

cout << "Chickhen" << CHIK , feed (20) << endl;

cout << "Chickhen" << CHIK , harvest() << endl;

cout << "Chickhen" << CHIK , feed (22) << endl;

cout << "Chickhen" << CHIK , harvest() << endl;

return 0;

}

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


 

А также другие работы, которые могут Вас заинтересовать

23368. Исследование уровнемера У1500 180 KB
  Порядок выполнения работы Ознакомиться с описанием уровнемера У1500. Подключить вилку разъема датчика уровнемера к соответствующему гнезду на задней панели измерителя. Установить поплавок уровнемера поочередно в пяти точках по мерной линейке по заданию преподавателя сначала по возрастанию – прямой ход а затем в тех же точках по убыванию – обратный ход и занести соответствующие показания прибора в таблицу см.
23369. Исследование метрологических характеристик электромеханических приборов 646 KB
  Построить графики зависимости абсолютной погрешности прибора от его показаний при его работе на постоянном токе. Определить максимальное значение приведенной основной погрешности прибора для постоянного тока. На основе анализа полученных данных сделать вывод о соответствии основной погрешности и вариации показаниям определяемым классом точности испытуемого прибора.
23370. Исследование преобразователя давления Метран 100 444 KB
  Провести поверку преобразователя давления Метран100 с помощью грузопоршневого и образцового пружинного манометров. Построить градуировочную характеристику зависимости унифицированного токового сигнала Iвых от входного давления Рд. Описание лабораторной установки Лабораторная установка представляет собой поверочный грузопоршневой манометр МП60 пресс на котором установлены образцовый манометр с пределом измерения 25 МПа и преобразователь давления Метран 100 с цифровым индикатором жидкокристаллическим дисплеем для представления...
23371. Создание мультимедийных приложений 115 KB
  В настоящей лабораторной работе будет показано как создать простейшие приложения для прослушивания звуковых файлов и просмотра анимации с помощью компонента MediaPlayer. Компонент MediaPlayer Компонент MediaPlayer расположен на странице System Палитры Компонентов. Общий вид компонента MediaPlayer представлен на рис. Вид MediaPlayer на форме Ниже в таблице 16.
23372. Использование компонента Timer. Организация простейшей мультипликации 68.5 KB
  В данной работе приводятся примеры работы компонента Timer обеспечивающего доступ к системному таймеру компьютера и его использование совместно с компонентом Image для создания простейшей мультипликации. Компонент Timer. Прием сообщений от таймера компьютера в приложении Delphi обеспечивает специальный компонент Timer со страницы System Палитры Компонентов.
23373. Конструирование меню и работа со стандартными окнами диалога Windows 322.4 KB
  Контекстное меню Рабочая область редактора Панель инструментов Меню Рис. Создание главного меню приложения Для создания главного меню приложения необходимо: поместить на форму компонент MainMenu Главное меню со станицы Standard Палиры Компонентов. Двойным щелчком по данному невизуальному компоненту вызвать редактор меню: Перемещаясь по обозначенным пунктам меню задаем в свойстве Caption каждого пункта.
23374. Отображение графической информации в Delphi 112.5 KB
  Объект Canvas Delphi имеет в своём распоряжении специальный объект который оформлен в виде свойства Canvas. Слово Canvas можно перевести на русский язык как холст для рисования или канва. Если у объекта есть свойство Canvas на его поверхности можно рисовать. Кроме компонентов перечисленных выше свойством Canvas обладают также: Image SpLitter ControlBox а так же объект TPrinter который благодаря этому свойству позволяет распечатывать графические изображения на принтере.
23375. Определение момента инерции с помощью маятника Обербека 349 KB
  Китаева Определение момента инерции с помощью маятника Обербека Методические указания к выполнению лабораторной работы № 6 по курсу механики молекулярной физики и термодинамики. Маятник Обербека предназначен для изучения прямолинейного равнопеременного и вращательного движения в частности для определения ускорения момента инерции тел. Векторное уравнение 1 эквивалентно трём скалярным уравнения 2 каждое из которых из которых представляет собой основное уравнение динамики вращательного движения относительно неподвижной оси или :...
23376. Определение отношения молярных теплоёмкостей газа при постоянном давлении и объёме по методу Клемана и Дезорма 687.5 KB
  Целью настоящей работы является определение отношения молярных теплоёмкостей воздуха при постоянном давлении и объёме по методу Клемана и Дезорма. Тогда 5 Так для воздуха имеем: . Первая 1 широкая для лучшего адиабатического расширения воздуха находящегося в сосуде соединена с сосудом и запирается краном ; вторая 2 – соединена с насосом и снабжена краном ; третья 3 соединена с Uобразным жидкостным водяным манометром 4....