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

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

Войти
Регистрация
Восстановить пароль
 
Anastassija
Сообщений: n/a
#1

Калькулятор с двусвязным списком и классами - C++

21.06.2010, 23:27. Просмотров 415. Ответов 0
Метки нет (Все метки)

Всем привет!

Мне нужно сделать на С++ калькультор для консоли, выполняющий 4 действия (сложение, вычитание, умножение, деление).
Программа должна быть основана на принципах объектно-ориентированного программирования. Для промежуточного хранения чисел и знаков, надо использовать двусвязанный список.



1. Калькулятор должен работать как с целыми числами, так и с дробными числами и только в десятичной системе (Должен использоваться тип double).
2. Он должен работать "цепочкой" , т.е. производить действия не только над двумя числами, а например считать 3+8*9/15.
3. Должно учитываться приоритетное выполнение умножения и деления.
4. При делении на ноль должно выдаваться сообщение об ошибке
5. Программа должна быть бесконечным циклом, с возможностью прерывания пользователем (введение какого-либо специального знака).



Я что-то пробывала написать, но получается как-то кусками и мозги в кучку не собираются...... может быть кто-то сможет помочь...

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
#include <iostream>
#include <list>
 
using namespace std;
 
class Liste {
public:
double zahl;
char op;
 
Liste* next;
Liste* last;
Liste(double, char);
~Liste();
 
}
 
 
#include "Zulassungsaufgabe.h"
 
double zahl;
char op;
 
Liste* createList();
Liste* start=new Liste(zahl, op);
Liste* temp=start;
Liste* aftertemp=temp+1;
int main(){
while(op!='s', op!='=')
{
cout<<"Enter number: "<<zahl<<endl;
cin>>zahl;
cout<<"Enter operand: "<<op<<endl;
cin>>op;
Liste* neu= new Liste(zahl, op);
neu->last=temp;
temp=neu;
start->next=neu;
}
 
while (op=='*') {
temp->zahl=(temp->zahl)*(aftertemp->zahl);
temp->op=aftertemp->op;
temp->next=aftertemp->next;
temp->last=temp;}
 
while (op=='/') {
if(aftertemp->zahl==0){
cout<<"Fehler";}
else{
temp->zahl=(temp->zahl)/(aftertemp->zahl);
temp->op=aftertemp->op;
temp->next=aftertemp->next;
temp->last=temp;}}
while (op=='+') {
temp->zahl=(temp->zahl)+(aftertemp->zahl);
temp->op=aftertemp->op;
temp->next=aftertemp->next;
temp=temp->last;}
while (op=='-') {
temp->zahl=(temp->zahl)*(aftertemp->zahl);
temp->op=aftertemp->op;
temp->next=aftertemp->next;
temp->last=temp;}
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.06.2010, 23:27     Калькулятор с двусвязным списком и классами
Посмотрите здесь:

C++ Разработать программу работы с двусвязным списком
C++ Как реализовать работу со списком строк и списком цифр в классе List?
В чем разница между простым линейным списком, и динамическим линейным списком? C++
C++ Работа с классами
C++ Элементарные операции с динамических двусвязным списком
C++ Работа с двусвязным нециклическим списком: инверсия списка
Программа с двусвязным списком крашится C++
C++ Работа с классами
Работа с двусвязным списком. Проблема с функцией удаления с конца C++
C++ Работа с двусвязным списком, поиск и перемена местами двух элементов в списке
C++ Разработать программу для создания и работы с двусвязным списком
C++ Нужны задачки для упражнения в работе со списком, стеком, очередью и двусвязным списком

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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