Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

программа-клиет,использующая стек на базе масива( С++ )

7.3K
21 октября 2007 года
vova_b
49 / / 24.09.2006
Народ помогите написать. Нужно написать программу-клиет использующую АТД стек на баззе масива, программа должна читать и зиписывать в фаил данные Ф.И.О и номер квартиры, должна иметь меню 1)Добавить 2)Вывести 3)Удалить выведенное. Помогите очень вас прошу кто может........
320
22 октября 2007 года
m_Valery
1.0K / / 08.01.2007
Цитата: vova_b
Народ помогите написать. Нужно написать программу-клиет использующую АТД стек на баззе масива, программа должна читать и зиписывать в фаил данные Ф.И.О и номер квартиры, должна иметь меню 1)Добавить 2)Вывести 3)Удалить выведенное. Помогите очень вас прошу кто может........

  1. Почему именно стек ? Это по заданию так или ты сам решил использовать стек?Стек-простейшая динамическая структура данных.Он реализует концепцию LIFO (Last In First Out), то есть элемент который добавили в стек последним выйдет из него первым.Уверен,что это подходит для твоей задачи ?
  2. Класс stack надо писать самому или можно использовать стандартный ?
  3. Что будет хранить этот стек ? Наверное, обьекты какого класса, например, User (где есть переменные lastname,firstname,address).
  4. Спрашивай что то более конкретное.Что не получается ? Что не понятно ? Все непонятно ?;) Предлагаю для начала написать класс пользователя.
7.3K
22 октября 2007 года
vova_b
49 / / 24.09.2006
1.Стек так-как сказано в задании, и именно стек на базе массива!
2.Я неочень понемаю в стеках поэтому сказать точно немогу, сам незнаю объясни что значит стандартный???
3.Стек будет хранить Имя Фамилио Отчество и номер квартиры (FIO, №)
4. Вообще я со стеками никогда не работал и мне вообще ниче не понятно, вот и прошу помощи!
320
22 октября 2007 года
m_Valery
1.0K / / 08.01.2007
Цитата: vova_b
1.Стек так-как сказано в задании, и именно стек на базе массива!
2.Я неочень понемаю в стеках поэтому сказать точно немогу, сам незнаю объясни что значит стандартный???
3.Стек будет хранить Имя Фамилио Отчество и номер квартиры (FIO, №)
4. Вообще я со стеками никогда не работал и мне вообще ниче не понятно, вот и прошу помощи!



Cтандартный это значит #include <stack> и далее обьявляешь его как:

 
Код:
...
stack<class T> s;
...

Или свой писать надо ?
7.3K
22 октября 2007 года
vova_b
49 / / 24.09.2006
Цитата: m_Valery
Cтандартный это значит #include <stack> и далее обьявляешь его как:
 
Код:
...
stack<class T> s;
...

Или свой писать надо ?


Не свой писать ненадо!

320
23 октября 2007 года
m_Valery
1.0K / / 08.01.2007
Вот пример.Допиши функцию считывания из файла и все.
Код:
#include <iostream>
#include <stack>
#include <string>
using namespace std;
class Student{ 
public:
    //Конструктор по умолчанию
    Student::Student(){}
//Функции доступа к полям
    string lastname()const { return lastname_; }
    void lastname(const std::string&);
    string firstname()const { return firstname_; }
    void firstname(const std::string&);
    string address()const{ return address_; }
    void address(const std::string&);
private:
    //Поля данных
    string lastname_;
    string firstname_;
    string address_;
};
void Student::lastname(const std::string& s)
{
  lastname_ = s;
}

void Student::firstname(const std::string& s)
{
  firstname_ = s;
}

void Student::address(const std::string& s)
{
  address_ = s;
}

void Print(stack<Student>& );
int Menu();
void Create(stack<Student>&);
void DeleteAll(stack<Student>&);
int _tmain(int argc, _TCHAR* argv[])
{
    int menu = 0;
    stack<Student> s;
//напиши и вызови тут функцию для считывания
//данных из файла
    Print(s);
    while(menu != 4)
    {
        menu = Menu();
        Student b;
        string str1,str2,str3;
        switch(menu){
           
        case 1:
            Create(s);
            break;
        case 2:
            if(s.empty() == true){
                cout<<"Stack is empty"<<endl;
                break;
            }
            else
            Print(s);
            break;
        case 3:
            DeleteAll(s);
            break;
        case 4:
            exit(0);
            break;
        default:
            system("cls");
            break;
        }
    }
    return 0;
}

void Print(stack<Student>& a)
{
    int size= a.size();
    stack<Student> b;
    while(!a.empty())
    {
        cout<<a.top().lastname()<<' '<<a.top().firstname()<<' '<<a.top().address()<<endl;;
        b.push(a.top());
        a.pop();
    }
    for(int i = b.size() - 1;i >= 0;--i){
        a.push(b.top());
        b.pop();
    }
    cout<<endl;
}
int Menu(){
   
    int answer=0;
    cout<<("\n1. Add... \n2. Print...\n3. Delete All...\n4. Exit...\n");
    cin>>answer;

    return answer;
}
void Create(stack<Student>& a)
{
    Student b;
    string str1,str2,str3;
    cout<<"Input information "<<endl;
    cout<<"lastname"<<endl;
    cin>>str1;
    cout<<"firstname"<<endl;
    cin>>str2;
    cout<<"address"<<endl;
    cin>>str3;
    b.lastname(str1);
    b.firstname(str2);
    b.address(str3);
    a.push(b);
}
void DeleteAll(stack<Student>&a)
{
   while(!a.empty())
    {
        a.pop();
   }
}
7.3K
23 октября 2007 года
vova_b
49 / / 24.09.2006
Слушай ты конечно в мих глазах конечно царь и бог :), но при компиляции выдает 7 ошибок:
Info :Compiling C:\Documents and Settings\admin\&#240;&#224;&#225;&#238;&#247;&#232;&#233; &#241;&#242;&#238;&#235;\12.cpp
Error: 12.cpp(37,26): Too few arguments in template class name 'stack'
Error: 12.cpp(37,27): ) expected
Error: 12.cpp(39,27): Too few arguments in template class name 'stack'
Error: 12.cpp(39,28): ) expected
Error: 12.cpp(40,30): Too few arguments in template class name 'stack'
Error: 12.cpp(40,31): ) expected
Error: 12.cpp(42,2): Declaration terminated incorrectly
Помоги горю с этим, я вообще из техникума пришол сразу на 3 курс а в технаре си небыло а тут сразу навалилось и я просто в шоке
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог