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

делаю курсач! нифига не понимаю! - C++

Восстановить пароль Регистрация
 
meloman92
 Аватар для meloman92
0 / 0 / 0
Регистрация: 21.11.2010
Сообщений: 14
12.12.2010, 19:57     делаю курсач! нифига не понимаю! #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
82
83
84
85
86
87
88
89
90
91
92
93
 #include "stdafx.h"
    #include <iostream>
    #define StackData MyStruct
     
     
    using namespace std;
     
    typedef struct
    {
            int ID;
            char* Name;
    } MyStruct;
     
     
    struct StackCell
    {
            StackData *Value;
            struct StackCell *Next;
    };
     
    struct Stack {
            StackCell *Top;
    };
     
    void Push(Stack *s, StackData *value){
            StackCell *newCell = new StackCell();
            newCell->Next = s->Top;
            newCell->Value = value;
            s->Top = newCell;
    }
    StackData* Pop(Stack *s){
     
            StackCell *cell = s->Top;
            StackData* rslt = cell->Value;
            s->Top = s->Top->Next;
            delete cell;
            return rslt;
    }
    int Count(Stack *s){
            StackCell *c = s->Top;
            int n;
            for(n=0; c->Next; c++,n++);
            return n;
    }
    void Clear(Stack *s){
            StackCell *c = s->Top;
            StackCell *t = c;
            if(!s) return;
            if(!c) return;
            do {
                    t = c->Next;
                    delete c;
                    c = t;
            } while (c);
            s->Top = 0;
    }
    Stack* CreateStack(){
            Stack *newStack = new Stack();
            newStack->Top = 0;
            return newStack;
    }
     
    istream& operator>> (istream &s, StackData &dst){
            dst.Name = new char[30];
            return s>>dst.ID>>dst.Name;
    }
    ostream& operator<< (ostream &s, StackData &src){
            return s<<"[ID="<<src.ID<<", Name="<<src.Name<<"]";
    }
     
     
     
    int _tmain(int argc, _TCHAR* argv[])
    {  
            cout<<"StackTest: Hi there. Input just how much entities do you wish to push:"<<endl<<"StackTest> ";
            int n;
            cin>>n;
            Stack *s = CreateStack();
           
            for(int i=0;i<n;++i){
                    StackData *data = new StackData();
                    cin>>*data;
                    Push(s, data);
            }
            cout<<"StackTest: Done pushing. Now extracting your stuff back:"<<endl;
           
            while(s->Top)
                    cout<<"StackTest: "<<*(Pop(s))<<endl;
     
            cout<<"StackTest: input anything to end the program ";
            cin>>n;
            return 0;
    }
Вложения
Тип файла: txt Хрень!!!.txt (2.4 Кб, 16 просмотров)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.12.2010, 19:57     делаю курсач! нифига не понимаю!
Посмотрите здесь:

Помогите, умоляю..... нужно сдать лабу..... срочно.... а нифига не получается.... я девушка, сразу поясняю..) C++
C++ На структуры прога,не идет нифига(
КУРСАЧ C++
C++ Курсач
C++ Нифига не понял, почему всё работает
C++ когда я вызываю функцию proverca, она всегда возвращает значение true и к тому же нифига не читает то, что я записал в password
C++ Курсач.(Вывод графика)
курсач C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Somebody
2770 / 1583 / 141
Регистрация: 03.12.2007
Сообщений: 4,139
Завершенные тесты: 1
12.12.2010, 20:58     делаю курсач! нифига не понимаю! #2
Цитата Сообщение от meloman92 Посмотреть сообщение
вот есть стек,который работает на си++ (он то мне и нужен),но не могу перевести на си!
new -> malloc
delete -> free
ввод-вывод через stdio
и будет на C.
meloman92
 Аватар для meloman92
0 / 0 / 0
Регистрация: 21.11.2010
Сообщений: 14
13.12.2010, 12:25  [ТС]     делаю курсач! нифига не понимаю! #3
спасибо) пробую!
Yandex
Объявления
13.12.2010, 12:25     делаю курсач! нифига не понимаю!
Ответ Создать тему
Опции темы

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