1

Тема: Сховище в С++

Клас «Сховище» з полями
• назва (public);
• предмети (private);
• тип (protected);
• інвентарний номер;
• адреса;
• вага предмету.
За допомогою методів класу передбачити наступні можливості:
• переміщення предмета з одного сховища у інше (зміна адреси)
• вивід предметів, що містяться у сховищі, назва яких починається на певну букву;
• сортування предметів у сховищі згідно лексикографічної послідовності.
Перевантажений метод: зберігання — з одним параметром (інвентарний номер — ціле число, або назва предмету — текст) — повертає номер місця зберігання, якщо одержано інвентарний номер, або записує новий предмет на склад, якщо передано назву предмету (при цьому предмету призначається місце та інвентарний номер) у масив «предмети».

Допоможіть написати програму, дуже потрібно, особливо ті наступні можливості!
Наперед,дякую.

2

Re: Сховище в С++

Заготовка вже є:
http://pastebin.com/75WJt9qw

3

Re: Сховище в С++

Ящось не зрозумів, а де саме сховище? Я бачу лише клас-контейнер.
Може тобі щось накштал такого потрібно?:

// пп.cpp: определяет точку входа для консольного приложения.
//

#include "stdafx.h"
#include <vector>
#include <algorithm>
#include <string>
#include <iostream>
using namespace std;



class Tool{
public: 
    string name,inv,type,adres;
    double weight;
    Tool(string aname,string ainv,string atype,string aadres,double aweight){
        name=aname;inv=ainv;type=atype;adres=aadres;weight=aweight;
    };
    bool IsThat(char c){return name[0]==c;}
    void write(){cout<<name<<endl;}
};

class Vault{
public:
    vector<Tool*> bank;
    void Add(string aname,string ainv,string atype,string aadres,double aweight){
        Tool *t=new Tool(aname,ainv,atype,aadres,aweight);
        bank.push_back(t);
    }
    void Sorta(){
        sort(bank.begin(),bank.end());
    }
    void write(char c){
        for(vector<Tool*>::iterator v=bank.begin();v!=bank.end();v++){
            Tool *t=*v;
            if(t->IsThat(c)) t->write();
        }
    }
};

int _tmain(int argc, _TCHAR* argv[])
{
    Vault *v=new Vault();
    v->Add("1","1","1","1",1);
    v->Add("2","1","1","1",1);
    v->Add("3","1","1","1",1);
    v->write('1');
        delete v;
    cin.get();
    return 0;
}

4

Re: Сховище в С++

Itari написав:

Ящось не зрозумів, а де саме сховище? Я бачу лише клас-контейнер.
Може тобі щось накштал такого потрібно?:

// пп.cpp: определяет точку входа для консольного приложения.
//

#include "stdafx.h"
#include <vector>
#include <algorithm>
#include <string>
#include <iostream>
using namespace std;



class Tool{
public: 
    string name,inv,type,adres;
    double weight;
    Tool(string aname,string ainv,string atype,string aadres,double aweight){
        name=aname;inv=ainv;type=atype;adres=aadres;weight=aweight;
    };
    bool IsThat(char c){return name[0]==c;}
    void write(){cout<<name<<endl;}
};

class Vault{
public:
    vector<Tool*> bank;
    void Add(string aname,string ainv,string atype,string aadres,double aweight){
        Tool *t=new Tool(aname,ainv,atype,aadres,aweight);
        bank.push_back(t);
    }
    void Sorta(){
        sort(bank.begin(),bank.end());
    }
    void write(char c){
        for(vector<Tool*>::iterator v=bank.begin();v!=bank.end();v++){
            Tool *t=*v;
            if(t->IsThat(c)) t->write();
        }
    }
};

int _tmain(int argc, _TCHAR* argv[])
{
    Vault *v=new Vault();
    v->Add("1","1","1","1",1);
    v->Add("2","1","1","1",1);
    v->Add("3","1","1","1",1);
    v->write('1');
        delete v;
    cin.get();
    return 0;
}

Сховище - назва класу, собі назвав Банк і по тих всіх критеріях треба написати програму

5

Re: Сховище в С++

Сховище - назва класу, собі назвав Банк

Це не сховище, це контейнер. Сховище - це массив контейнерів. У тебе є властивість "предмети". Ти його як реалізував? Як массив char? Але char apps[30]; лише вміщуе 30 букв. Там ніяк не можна розмістити атрибути, характеризующії предмети. Тобто: Твой приклад спроможен вмістити лише один предмет, ось чому я привів свой приклад, щоб показати тобі, що таке насамперед е сховище.

6

Re: Сховище в С++

Itari написав:

Сховище - назва класу, собі назвав Банк

Це не сховище, це контейнер. Сховище - це массив контейнерів. У тебе є властивість "предмети". Ти його як реалізував? Як массив char? Але char apps[30]; лише вміщуе 30 букв. Там ніяк не можна розмістити атрибути, характеризующії предмети. Тобто: Твой приклад спроможен вмістити лише один предмет, ось чому я привів свой приклад, щоб показати тобі, що таке насамперед е сховище.

Будь ласка, допоможіть, по тих вказаних даних.