|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
22.06.2010, 21:58 | #1 |
Новичок
Джуниор
Регистрация: 22.06.2010
Сообщений: 3
|
Калькулятор на С++ с двусвязным списком
Всем привет!
Мне нужно сделать на С++ калькультор для консоли, выполняющий 4 действия (сложение, вычитание, умножение, деление). Программа должна быть основана на принципах объектно-ориентированного программирования (в идеале надо сделать класс списка). Для промежуточного хранения чисел и знаков, надо использовать двусвязанный список. 1. Калькулятор должен работать как с целыми числами, так и с дробными числами и только в десятичной системе (Должен использоваться тип double). 2. Он должен работать "цепочкой" , т.е. производить действия не только над двумя числами, а например считать 3+8*9/15. 3. Должно учитываться приоритетное выполнение умножения и деления. 4. При делении на ноль должно выдаваться сообщение об ошибке 5. Программа должна быть бесконечным циклом, с возможностью прерывания пользователем (введение какого-либо специального знака). Я что-то пробывала написать, но получается как-то кусками и мозги в кучку не собираются...... может быть кто-то сможет помочь... Код:
|
23.06.2010, 17:40 | #2 |
Пользователь
Регистрация: 21.06.2010
Сообщений: 49
|
Я как раз пишу такой калькулятор на delphi. Объясню вкратце:
Сначала сделай функцию для примеров с действиями умножения и деления(то есть n*s/r и т.п.). Т.к. приоритет вычисления у них одинаковый, их можно считать в строку. Организовать это легко. Затем сделай функцию для примеров с действиями сложения и вычитания(то есть n+s-r и т.п.). Опять же можно считать в строку. Ну и наконец объедини. Поставь цикл на оборачивание всех действий умножения и деления, идущих подряд, в скобки, затем цикл вычисления примеров в скобках при помощи первой функции. Ну и наконец обработай полученную строку второй функцией. ...Твой код я не разбирал и в консольных приложениях не силён. Но, надеюсь, мой совет тебе поможет. Что касается деления на ноль, поставь перед обработкой примера что-то вроде "если позиция /0 в примере <> 0 и позиция /0. = 0 то выдать сообщение об ошибке и прервать процедуру. |
23.06.2010, 22:15 | #3 | |
Новичок
Джуниор
Регистрация: 22.06.2010
Сообщений: 3
|
Цитата:
Да у меня в том и проблема...алгоритм я себе очень хорошо представляю, а вот воплотить его на практике совсем не получается... |
|
23.06.2010, 23:31 | #4 | |
Форумчанин
Регистрация: 26.04.2010
Сообщений: 328
|
Цитата:
Код:
|
|
24.06.2010, 11:20 | #5 | |
Новичок
Джуниор
Регистрация: 22.06.2010
Сообщений: 3
|
Цитата:
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Поле со списком | Diamand | Microsoft Office Access | 4 | 14.05.2010 21:28 |
поля со списком | linkin241 | Microsoft Office Access | 1 | 25.03.2010 22:51 |
Поле со списком | Underfinder | Microsoft Office Access | 7 | 21.03.2010 17:17 |
работы со списком | felmor | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 06.06.2009 22:18 |
програма со списком | maner0k | Помощь студентам | 0 | 13.04.2009 20:10 |