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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
meloman92
0 / 0 / 0
Регистрация: 21.11.2010
Сообщений: 14
#1

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

12.12.2010, 19:57. Просмотров 428. Ответов 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
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;
    }
0
Вложения
Тип файла: txt Хрень!!!.txt (2.4 Кб, 16 просмотров)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.12.2010, 19:57
Здравствуйте! Я подобрал для вас темы с ответами на вопрос делаю курсач! нифига не понимаю! (C++):

Пацаны, пожалуйста. Завтра сдавать в вузе. Если не сдам, будет плохо, а сам я не понимаю нифига - C++
1. Вводится действительное число b. Найти такое наименьшее N, что 1 + 1/2 + 1/3 + 1/4 + 1/N больше b. 2. Задана последовательность...

На структуры прога,не идет нифига( - C++
Вывести анкетные данные студентов,получивших по предмету физика оценку &quot;отлично&quot;.

Нифига не понял, почему всё работает - C++
z=x&lt;&lt;y;. Все три переменные - объекты моего класса, оператор &lt;&lt; в этом классе не перегружен, но всё не только скомпилировалось, но, судя по...

Помогите, умоляю..... нужно сдать лабу..... срочно.... а нифига не получается.... я девушка, сразу поясняю..) - C++
Дано: 1 переменная int, 1 переменная float, массив типа char из М элементов (М от 6 до 9), указатель типа double Выполнить: ...

.NET 4.x WCF: Всё ли я правильно понимаю и делаю? - C# WCF
Всем привет. Вот уже который день разбираюсь с wcf... Возникло несколько вопросов, в которых вроде как разобрался, но хотелось бы быть...

ER диаграмма. Первый раз это делаю и не понимаю в том направлении двигаюсь или нет - MySQL
Требуется разработать ER диаграмму, а потом создать БД для ВУЗа. В себе БД должна содержать: Список специальностей: должен содержать...

2
Somebody
2789 / 1600 / 145
Регистрация: 03.12.2007
Сообщений: 4,193
Завершенные тесты: 1
12.12.2010, 20:58 #2
Цитата Сообщение от meloman92 Посмотреть сообщение
вот есть стек,который работает на си++ (он то мне и нужен),но не могу перевести на си!
new -> malloc
delete -> free
ввод-вывод через stdio
и будет на C.
0
meloman92
0 / 0 / 0
Регистрация: 21.11.2010
Сообщений: 14
13.12.2010, 12:25  [ТС] #3
спасибо) пробую!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.12.2010, 12:25
Привет! Вот еще темы с ответами:

C# и SQL - нифига не понял - C#
не смейтесь, но может кто-нибудь объяснить: 1) У меня в программах значится Microsoft SQL Server 2008 (не помню чтобы устанавливал!)...

Нужна дороботка с программой нифига не работает - Python
Нада чтоб ввел букву и вывело что это буква а если цифры ввел то вывело цифра if a==0 or a==1 or a==2 or a==3 or a==4 or a==5: ...

Накатала код css, вроде бы всё правильно, но нифига не грузится. - HTML, CSS
Код html-файла. &lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot; &quot;http://www.w3.org/TR/html4/loose.dtd&quot;&gt; &lt;html&gt; ...

ATI Radeon HD 3650 AGP (512 Мб) нифига не работает как должна - Видеокарты
Всем доброго дня. Помогите, кто в курсе, пожалуйста. Конфигурация: Мать-Asus P4V8X-X (5 PCI, 1 AGP, 3 DDR DIMM, Audio, LAN);...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru