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

Класс "Автобус". Пересадить всех людей во 2 автобус - C++

Восстановить пароль Регистрация
 
Kora
0 / 0 / 0
Регистрация: 23.10.2013
Сообщений: 12
29.04.2014, 23:57     Класс "Автобус". Пересадить всех людей во 2 автобус #1
Легла в больницу на 1 месяц, когда вернулась преподаватель по Алгоритмическим языкам, сказал чтоб я составила эту программу или не допустит до зачета =\
С объектно-ориентированным программированием ни разу за 2 курса учебы не сталкивалась, одногруппники лекции не писали, но не пропускали пары, поэтому им эту задачу не надо делать. Помочь некому, преподаватель ничего не объясняет. Поэтому прошу вас помочь с данной задачей
Любой комментарий по данной задаче будет важен для меня


Составить объектно-ориентированную программу.
Класс. Автобус - объект, в который садятся и выходят люди. Единица вместимости равна одному человеку.
Поля(закрытые для доступа): // это у меня сделано
-вместимость, максимальное количество людей в автобусе;
-количество людей в автобусе в данный момент времени;
Методы(открытые для доступа): // не получается никак =\
-конструктор автобуса, частично заполненного людьми, параметры конструктора - вместимость и количество людей;
-показать состояние автобуса - вывести в отдельную строку на экран вместимость автобуса и количество людей;
// следующие пункты, я думаю мне пока рановато делать, но на всякий случай напишу
-узнать сколько свободного места в автобусе; (знаю как сделать)
-узнать количество людей находящихся в сейчас в автобусе; (тоже знаю)
-высадить X людей из автобуса, если это невозможно вывести сообщение об ошибке и ничего не делать с автобусом;
-посадить Y людей в автобуса, если это невозможно вывести сообщение об ошибке и ничего не делать с автобусом;

Задача! пересадить всех людей во 2 автобус
Взять 2 автобуса вместимости V1 и V2 в которых находятся соответственно по L1 и L2 людей.
Показать начальное состояние автобусов.
Высадить всех людей из 1-ого автобуса
Пересадить этих людей во 2-й автобус
Если не хватило мест во 2-ом автобусе, пересадить сколько можно людей
Сообщить сколько удалось пересадить
Показать конечно состояние автобуса
Числа V1,V2,L1,L2 - произвольные, вводимые при работе программы

пробовала сделать =\
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
#include <iostream>
#include <string>
#include <stdlib.h>
 
using namespace std;
 
 
class Avtobys {
        
    private:
        int vsego;
        int zaneto;
    
    public:
        Avtobys(int mest=20, int mestz=8)
        {
        
        vsego=mest;
        zaneto=mestz;
    };
    
    void show()
    {
        cout<<"ГўГ±ГҐГЈГ® ìåñò = "<<vsego<<endl<<"Г§Г*Г*ГҐГІГ® = "<<zaneto<<endl;
    };
    
    return 0;
    };
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.04.2014, 23:57     Класс "Автобус". Пересадить всех людей во 2 автобус
Посмотрите здесь:

C++ Создать класс "точка" и производный класс "отрезок"
читаю главу 10 книги стивена праты - "объекты и классы". автор во всех примерах поступает следуйщим образм: объявляет класс в одном фаиле... C++
C++ Нужно вывести всех людей, имя которых начинаеться на букву "Л"
Структура "Автобус" C++
C++ Класс "Графический объект", от которого будут наследоваться классы "круг" и "квадрат"
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Prgrm101
3 / 3 / 3
Регистрация: 08.04.2014
Сообщений: 20
30.04.2014, 00:35     Класс "Автобус". Пересадить всех людей во 2 автобус #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Если я правильно понял что нужно сделать, то так:
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
#include <iostream>
#include <string>
#include <stdlib.h>
 
using namespace std;
 
 
class Avtobys {
 
    private:
        int vsego;
        int zaneto;
 
    public:
        Avtobys(int mest=20, int mestz=8)
        {
          vsego=mest;
          zaneto=mestz;
        };
    void in(int count)
    {
      if (count>vsego-zaneto) {cout<<"Такое количество не может ввойти";return;
      }
      zaneto+=count;
    }
    void out(int count)
    {
      if (count>zaneto || count<0) {cout<<"Такое количество не может выйти";return;
      }
      zaneto-=count;
    }
    int free(void)
    {
      return vsego-zaneto;
    }
    int now(void)
    {
      return zaneto;
    }
    void show()
    {
        cout<<"всего мест = "<<vsego<<endl<<"зането = "<<zaneto<<endl;
    }
 
};
int main()
{
int v1,v2,l1,l2;
cout<<"Вместимость и количество занятых мест первого автобуса: ";
cin>>v1>>l1;
cout<<"Вместимость и количество занятых мест второго автобуса: ";
cin>>v2>>l2;
Avtobys bus1(v1,l1);
Avtobys bus2(v2,l2);
cout<<"Состояние первого автобуса:\n";
bus1.show();
cout<<"Состояние второго автобуса:\n";
bus2.show();
int count=0;
if (bus2.free()>=bus1.now()) {
  count=bus1.now();
}
else count=bus2.free();
bus1.out(count);
bus2.in(count);
cout<<"Удалось пересадить "<<count<<" пасажиров\n";
cout<<"Состояние первого автобуса:\n";
bus1.show();
cout<<"Состояние второго автобуса:\n";
bus2.show();
system("pause");
return 0;
}
Kora
0 / 0 / 0
Регистрация: 23.10.2013
Сообщений: 12
30.04.2014, 00:47  [ТС]     Класс "Автобус". Пересадить всех людей во 2 автобус #3
Спасибо огромное!!!
Всё работает, так как надо
Hrollo
34 / 34 / 6
Регистрация: 05.11.2013
Сообщений: 147
30.04.2014, 00:48     Класс "Автобус". Пересадить всех людей во 2 автобус #4
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
82
83
84
85
86
87
88
89
90
#include <iostream>
 
using namespace std;
 
class Bus
{
private:
    const int size;
    int top;
public:
    explicit Bus(int s = 20):size(s),top(0)
    {
 
    }
    Bus(int people,int s = 20):size(s),top(people)
    {
 
    }
    void full_bus()const
    {
        if(top == size)
            cout<<"Bus is full.Maximum places = "<<size<<" number of people = "<<top<<endl;
    }
 
    void info()const
    {
        cout<<"max places:"<<size<<endl;
        cout<<"people in bus:"<<top<<endl;
    }
 
    int max()const
    {
        return size;
    }
 
    int free_places()
    {
        return size-top;
    }
 
    int count_people()const
    {
        return top;
    }
    void add_people(int p);
    void del_people(int p);
    ~Bus()
    {
 
    }
};
 
void Bus::add_people(int p)
{
    if((top+p) <= size)
        top+=p;
    else
        cout<<"Don't free places"<<endl;
}
void Bus::del_people(int p)
{
    if((top-p)>=0)
        top-=p;
    else
        cout<<"Error"<<endl;
}
 
int main()
{
    Bus V1(15,20),V2(17,25);
    V1.info();
    cout<<endl;
    V2.info();
    int people = V1.count_people();
    V1.del_people(V1.count_people());
    V1.info();
    if((people + V2.count_people())<= V2.max())
    {
        V2.add_people(people);
    }
    else
    {
        cout<<"Transplented "<<V2.max()-V2.count_people()<<" human"<<endl;
        V2.add_people(V2.max()-V2.count_people());
    }
    V1.info();
    cout<<endl;
    V2.info();
    return 0;
}
Kora
0 / 0 / 0
Регистрация: 23.10.2013
Сообщений: 12
30.04.2014, 00:51  [ТС]     Класс "Автобус". Пересадить всех людей во 2 автобус #5
Hrollo, вам тоже огромное спасибо за помощь!)
но для меня ваш код сложноват
Yandex
Объявления
30.04.2014, 00:51     Класс "Автобус". Пересадить всех людей во 2 автобус
Ответ Создать тему
Опции темы

Текущее время: 22:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru