С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Как добавить еще одну характеристику для класса - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ произведение средних арифм. значений "диагоналей " в матрице http://www.cyberforum.ru/cpp-beginners/thread273219.html
Доброго времени суток! Не могли бы вы мне подсказать реализацию на Си, есть задача: по заданной треугольной матрице А сформировать матрицу В, каждый элемент которой равен произведению средних...
C++ "Магические" квадраты Задача Magic. Существует огромное количество разных видов "магических" квадратов. Одним из них является такой квадрат: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16... http://www.cyberforum.ru/cpp-beginners/thread273218.html
Отсутствует заголовок функции C++
Подскажите в чём дело #include <windows.h> int WINAPI WinMain(HINSTANCE hLnstance, HINSTANCE hPrevInstance, LPSTR ipCmdLine, int nCmdShow); { MessageBox(NULL. "Hello. Win32 world"....
Текстовые файлы. C++
Дано целое число N и текстовый файл с именем Name1, содержащий один абзац текста, выровненный по левому краю. Отформатировать текст так, чтобы его ширина не превосходила N позиций, и выровнять текст ...
C++ Вывести на консоль информацию, хранящуюся в массиве структур, заданным образом http://www.cyberforum.ru/cpp-beginners/thread273175.html
Дана информация о пяти студентах. Запись имеет вид: фамилия, год рождения, факультет. Вывести данные о студентах по факультетам. Описание структуры вроде осилила, но мне нужен цикл, для вывода...
C++ Типизированные файлы Дан файл целых чисел. Продублировать в нем все числа, принадлежащие диапазону 5..10. помогите решить пожалуйста, очень надо подробнее

Показать сообщение отдельно
dyap
2 / 2 / 0
Регистрация: 20.09.2010
Сообщений: 58

Как добавить еще одну характеристику для класса - C++

09.04.2011, 22:18. Просмотров 335. Ответов 0
Метки (Все метки)

Программа следующая: есть порт, 2 терминала разгрузки и 3 типа кораблей. Изначально у меня был только типо корабля и пользователь вводил количество кораблей одного типа. Теперь нужно добавить чтобы у каждого корабля был еще груз (который тоже вводит пользователь). Причем у кораблей одного типа может быть разный груз...
Main
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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
#include <iostream>
#include "Terminal.h"
#include "Ship.h"
using namespace std;
 
int main()
{
    setlocale (LC_ALL, "Russian");
    Terminal t1, t2;
    int x11, x12, x21, x22, x31, x32, y11, y12, y21, y22, y31, y32;
 
    cout<<"Введите время и стоимость разгрузки кораблей 1-го(до 50т) типа"<<endl<<"в 1 (медленном) терминале"<<endl;
    cin>>x11>>x12;
    cout<<"Введите время и стоимость разгрузки кораблей 2-го(до 200т) типа"<<endl<<" в 1 (медленном) терминале"<<endl;
    cin>>x21>>x22;
    cout<<"Введите время и стоимость разгрузки кораблей 3-го(до 600т) типа"<<endl<<" в 1 (медленном) терминале"<<endl;
    cin>>x31>>x32;
 
    cout<<"Введите время и стоимость разгрузки кораблей 1-го(до 50т) типа"<<endl<<" во 2 (быстром) терминале"<<endl;
    cin>>y11>>y12;
    cout<<"Введите время и стоимость разгрузки кораблей 2-го(до 200т) типа"<<endl<<" во 2 (быстром) терминале"<<endl;
    cin>>y21>>y22;
    cout<<"Введите время и стоимость разгрузки кораблей 3-го(до 600т) типа"<<endl<<" во 2 (быстром) терминале"<<endl;
    cin>>y31>>y32;
 
    t1.setTypeParameters(1,x11,x12);
    t1.setTypeParameters(2,x21,x22);
    t1.setTypeParameters(3,x31,x32);
    t2.setTypeParameters(1,y11,y12);
    t2.setTypeParameters(2,y21,y22);
    t2.setTypeParameters(3,y31,y32);
 
    int nShip1 = 0, nShip2 = 0, nShip3 = 0, nShip11 = 0, nShip12 = 0, nShip13 = 0, nShip21 = 0, nShip22 = 0, nShip23 = 0,n;
    cout<<"Введите количество кораблей 1 типа"<<endl;
    cin>>nShip1;
    cout<<"Введите количество кораблей 2 типа"<<endl;
    cin>>nShip2;
    cout<<"Введите количество кораблей 3 типа"<<endl;
    cin>>nShip3;
 
 
    Ship* ship = new Ship(3);
    t2.addShip(*ship);
    nShip3--;
    nShip23++;
    while (nShip1 + nShip2 + nShip3 >0)
    {
        int jType;
        Ship* s;
        if (t1.getTime() >= t2.getTime())
        {
            if (nShip3 > 0)
            {
                jType = 3;
                nShip3--;
                nShip23++;
            } 
            else if (nShip2 > 0)
            {
                jType = 2;
                nShip2--;
                nShip22++;
            } 
            else
            {
                jType = 1;
                nShip1--;
                nShip21++;
            }
            s = new Ship(jType);
            t2.addShip(*s);
        }
        else
        {
            if (nShip1 > 0)
            {
                jType = 1;
                nShip1--;
                nShip11++;
            } 
            else if (nShip2 > 0)
            {
                jType = 2;
                nShip2--;
                nShip12++;
            } else
            {
                jType = 3;
                nShip3--;
                nShip13++;
            }
            s = new Ship(jType);
            t1.addShip(*s);
        }
    }
    if (t1.getTime()>t2.getTime())
    {
        cout<<"Время работы порта:"<<t1.getTime()<<" "<<"час(a/ов)"<<endl;
    }
    else
    {
        cout<<"Время работы порта:"<<t2.getTime()<<" "<<"час(a/ов)"<<endl;
    }
    cout<<"Полученная прибыль:"<<t1.getCost()+t2.getCost()<<" "<<"рублей"<<endl;
    cout<<"В первом терминале разгружено: "<<nShip11<<"кораблей 1-го типа,"<<nShip12<<endl<<"кораблей 2-го типа,"<<nShip13<<" кораблей 3-го типа."<<endl;
    cout<<"Во втором терминале разгружено: "<<nShip21<<"кораблей 1-го типа,"<<nShip22<<endl<<"кораблей 2-го типа,"<<nShip23<<" кораблей 3-го типа."<<endl;
    cin>>n;
}
Terminal.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include "Ship.h"
 
class Terminal
{
    int timePerType[3];
    int costPerType[3];
    int timeTotal;
    int costTotal;
public:
Terminal()
{
    costTotal = 0;
    timeTotal = 0;
}
void addShip(Ship& ship);
    int getCost();
    int getTime();
    void setTypeParameters (int type, int time, int cost);
};
Ship.h
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
#ifndef __SHIP_H
#define __SHIP_H
class Ship
{
    int type;
    int luggage;
 
public:
    Ship(int t)
    {
        type = t;
    }
    Ship (int l)
    {
        luggage = l;
    }
    int getType();
    int getLuggage();
 
    bool operator >(const Ship& ship) const
    {
        if (*this > ship)
        {
            return true;
        }
        else
        {
            return false;
        }
    }
};
#endif
Terminal.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include "Terminal.h"
#include "Ship.h"
 
void Terminal::addShip(Ship& ship)
    {
        int j = ship.getType()-1;
        int l = ship.getLuggage();
        timeTotal+=timePerType[j];
        costTotal+=costPerType[j];
    }
int Terminal::getCost()
    {
        return costTotal;
    }
int Terminal::getTime()
    {
        return timeTotal;
    }
void Terminal::setTypeParameters(int type, int time, int cost)
{
    costPerType[type-1] = cost;
    timePerType[type-1] = time;
}
Ship.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
#include "Ship.h"
 
int Ship::getType()
{
    return type;
}
 
int Ship::getLuggage()
{
    return luggage;
}
Собственно то, что нужно добвить - это luggage. Я что-то пытался сделать, но не понимаю как реализовать, чтобы пользовател вводил тип и потом груз...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.