Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Профан
0 / 0 / 0
Регистрация: 06.06.2011
Сообщений: 49
#1

Прокомментировать - C++

15.06.2011, 17:34. Просмотров 312. Ответов 1
Метки нет (Все метки)

Написать программу на языке C + +, моделирующую поведение строителя пира-
миды (Mason) путём создания соответствующего класса.
Каждый строитель идентифицируется именем и долей B 2 (0; 1) каменных бло-
ков, разбиваемых при кладке. Все рабочие имеют одинаковое ограничение - проф-
союз запрещает принимать более N0 блоков за смену.
Высота H построенного строения зависит от количества выданных сле N блоков-
дующим образом

H = 10 • Pmin (N, N0) (1 - б).

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

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#include <iostream>
#include <cstring>
#include <cmath>
 
using namespace std;
 
class Mason {
private:
char *name;
double b;
int N;
double h;
 
public:
const static int N0 = 200;
Mason(const char *name_w, double B);
Mason(const Mason &obj);
~Mason();
double build(int t);
const char* GetName() const { return name; }
int min(int N) { if(N>=N0) return N0; else return N; }
void PrintName() { cout << name << ": "; }
};
 
Mason::Mason( const char *name_w, double B )
{
name = new char[strlen(name_w)+1];
strcpy( name, name_w );
b = B;
h = 0;
N = 0;
}
 
Mason::~Mason()
{
delete[] name;
name = 0;
}
 
Mason::Mason( const Mason &obj )
{
name = new char[strlen(obj.name)+1];
b = obj.b;
h = obj.h;
strcpy(name, obj.name);
}
 
double Mason::build( int t = 130 )
{
 
int min_N = min(t);
h = 10 * sqrt( min_N * (1 - b));
//cout << "b = " << b << ' ' << "N0 = " << N0 <<' ';
return h;
}
 
int main(int argc, char *argv[])
{
Mason ob1( "Vladimir", 0.9 );
ob1.PrintName();
cout << ob1.build(130) << "\n\n";
 
Mason ob2( "Misha", 0.9 );
ob2.PrintName();
cout << ob2.build(230) << "\n\n";
 
Mason ob3( "Aleksey", 0.9 );
ob3.PrintName();
cout << ob3.build(200) << "\n\n";
 
Mason ob4( "Andrei", 0.8 );
ob2 = ob4;
ob4.PrintName();
cout << ob4.build(199) << "\n\n\n";
 
//ob2 = ob4;
ob2.PrintName();
cout << ob2.build(300) << endl;
 
return 0;
}
Результат

Vladimir:36.0555 Misha:44.7214 Aleksei:44.7214 Andrei:63.0872

Andrei:63.2456
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.06.2011, 17:34     Прокомментировать
Посмотрите здесь:

Прокомментировать! - C++
Ребята помогите прокомментировать код плиз! :) #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;fstream&gt; #include &quot;locale.h&quot; ...

Прокомментировать v3.0 - C++
Цели Написать программу на языке c++, моделирующую иерархию классов ры- баков (Fisher), добывающих рыбу. Все рыбаки имеют имена. Улов y...

Прокомментировать - C++
Задача такая. Найти произведение в строках между первым и последним нулевыми элементами #include&lt;iostream.h&gt; #include&lt;iomanip.h&gt; ...

Прокомментировать код - C++
Добрый вечер! Есть вопросы по коду... не понимаю некоторые строки. Их выделю розовым цветом. Буду очень благодарна!!! #include...

Прокомментировать код - C++
есть код программы, нужно объяснить её программный код. и исправить ошибки.помогите пожалуйста. int dwsp(double* x, double* y); int...

Прокомментировать код - C++
Нужна помощь. Необходимо поставить комментарии к каждой строке программы. #include &quot;stdafx.h&quot; #include &quot;conio.h&quot; #include...

Прокомментировать код - C++
// Функция решения квадратного уравнения #include &quot;stdio.h&quot; #include &quot;StdAfx.h&quot; #include &quot;conio.h&quot; #include&lt;locale.h&gt; 2 1 ...

Прокомментировать код - C++
Может кто нибудь помочь с комментариями просто очень надо) // x.cpp: определяет точку входа для консольного приложения. // ...

Прокомментировать код - C++
#include &lt;iostream&gt; #include &lt;string&gt; using namespace std; void sort(int* m, int n); struct Notebook { int ram; ...

Прокомментировать код - C++
Прокомментировать код #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;stdlib.h&gt; #define n 5 int main() { int...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
grizlik78
Эксперт С++
1904 / 1436 / 109
Регистрация: 29.05.2011
Сообщений: 2,990
16.06.2011, 04:07     Прокомментировать #2
Во-первых, наличие отступов не только желательно, но и обязательно.
Во-вторых, я бы рекомендовал, если есть возможность и нет особой необходимости, не использовать new/delete, а использовать контейнеры. Например vector или, в данном случае, скорее string.
С ними и утечку памяти получить сложнее, и конструктор копирования с деструктором в данном случае становятся необязательными.
Yandex
Объявления
16.06.2011, 04:07     Прокомментировать
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru