Не стал бы обращаться, но реально не могу устранить несколько косяков.
Совсем недавно начал изучать с++
В процессе создания конвертера (в ms visual c++ 2008 express) столкнулся с несколькими ошибками.
Ниже исходник, в комментариях "камни преткновения" - помогите разобраться, если нетрудно:
#include "stdafx.h"
#include <iostream>
#include <locale>
using namespace std;
double doll, euro, rub;// Переменные валют
char option_operate;// Переменная выбора операции
char exit;// Переменная для выхода/продолжения сеанса
int main()
{
setlocale(LC_ALL, "Russian");
void dol_rub();
void rub_dol();
void dol_euro();
void euro_dol();
void rub_euro();
void euro_rub();
do
{
do
{
cout << "Вас приветствует программа-конвертер валют!\n\n"
<< "Выберите нужную операцию: "
<< "\n\n"
<< "Если вы хотите перевести Доллары в Рубли - введите 1\n"
<< "Если вы хотите перевести Рубли в Доллары - введите 2\n"
<< "Если вы хотите перевести Доллары в Евро - введите 3\n"
<< "Если вы хотите перевести Евро в Доллары - введите 4\n"
<< "Если вы хотите перевести Рубли в Евро - введите 5\n"
<< "Если вы хотите перевести Евро в Рубли - введите 6\n\n"
<< "Ваш выбор: ";
cin >> option_operate;
cout << '\n\n';
}
while(option_operate<1 || option_operate >6);
switch(option_operate)
{
case 1:
dol_rub();
break;
case 2:
rub_dol();
break;
case 3:
dol_euro();
break;
case 4:
euro_dol();
break;
case 5:
rub_euro();
break;
case 6:
euro_rub();
break;
default:
cout << "Ошибка! Запрос некорректен!\n"
<< "Вы должны ввести число от 1 до 6!\n\n";
}
cout << "Хотите ли вы продолжить сеанс, или вы хотите выйти из программы?\n\n";
do
{
cout << "Если вы хотите продолжить сеанс - введите букву \'Y\'\n"
<< "Если вы хотите выйти из программы - введите букву \'N'\n\n";
cin >> exit;
if(exit=='N') // error C2446 (нет преобразования int в void; // error C2040;
{
cout << "Спасибо, что воспользовались нашей программой.\n"
<< "До новых встреч!\n\n";
break;
}
else if(exit='N') // C2659 (функция в кач-ве левого операнда)
cout << "Продолжим сеанс\n\n";
}
while(exit!='Y' || exit!='N'); // error C2446 (нет преобразования int в void; // error C2040;
}
while(exit!='N'); // // error C2040;
return 0;
}
// Описываем функции конвертации
void dol_rub()
{
cout << "Вы выбрали перевод Долларов в Рубли\n"
<< "Введите сумму (в Долларах), которую вы хотите конвертировать: ";
cin >> doll;
cout << '\n';
rub=doll*27.5;
cout << "Это будет " << rub << "Рублей\n\n";
}
void rub_dol()
{
cout << "Вы выбрали перевод Рублей в Доллары\n"
<< "Введите сумму (в Рублях), которую вы хотите конвертировать: ";
cin >> rub;
cout << '\n';
doll=rub/27.5;
cout << "Это будет " << doll << "Долларов\n\n";
}
void dol_euro()
{
cout << "Вы выбрали перевод Долларов в Евро\n"
<< "Введите сумму (в Долларах), которую вы хотите конвертировать: ";
cin >> doll;
cout << '\n';
euro=doll/1.45;
cout << "Это будет " << euro << "Евро\n\n";
}
void euro_dol()
{
cout << "Вы выбрали перевод Евро в Доллары\n"
<< "Введите сумму (в Евро), которую вы хотите конвертировать: ";
cin >> euro;
doll=euro*1.45;
cout << "Это будет " << doll << "Долларов\n\n";
}
void rub_euro()
{
cout << "Вы выбрали перевод Рублей в Евро\n"
<< "Введите сумму (в Рублях), которую вы хотите конвертировать: ";
cin >> rub;
euro=rub/40;
cout << "Это будет " << euro << "Рублей\n\n";
}
void euro_rub()
{
cout << "Вы выбрали перевод Евро в Доллары\n"
<< "Введите сумму (в Евро), которую вы хотите конвертировать: ";
cin >> euro;
rub=euro*40;
cout
Другие языки программирования и технологии
Беда с программой на с++ -не могу сам разобраться
Переименуйте переменную exit например в exitchar:
char exitchar; // Переменная для выхода/продолжения сеанса
Так как exit - это стандартная функция завершения программы.
И далее по тексту:
if(exitchar=='N')
while(exitchar!='N');
while(exitchar!='Y' || exitchar!='N');
и т. д. , где она ещё используется.
В конце концов имя этой переменной можно написать с большой буквы или всеми большими.
К тому же в строке
else if(exit='N') // C2659 (функция в кач-ве левого операнда)
вместо присваивания "=" нужно написать сравнение "=="
char exitchar; // Переменная для выхода/продолжения сеанса
Так как exit - это стандартная функция завершения программы.
И далее по тексту:
if(exitchar=='N')
while(exitchar!='N');
while(exitchar!='Y' || exitchar!='N');
и т. д. , где она ещё используется.
В конце концов имя этой переменной можно написать с большой буквы или всеми большими.
К тому же в строке
else if(exit='N') // C2659 (функция в кач-ве левого операнда)
вместо присваивания "=" нужно написать сравнение "=="
Иван Петров
Мда, друзья... Си - это тот еще дебилизм!
От себя добавлю - как только видите закономерность - пытайтесь упростить. Функциями, массивами, массивами с указателями на функции и т. д. .
Пытайтесь писать красиво. Даже если Вы новичок. Посмотрите сколько повторяющихся кусков кода. Программу можно сократить в несколько раз, добавив ещё и "расширяемость" на другие валюты.
Считайте это домашним заданием ;) Если что - пишите.
Удачи =)
Пытайтесь писать красиво. Даже если Вы новичок. Посмотрите сколько повторяющихся кусков кода. Программу можно сократить в несколько раз, добавив ещё и "расширяемость" на другие валюты.
Считайте это домашним заданием ;) Если что - пишите.
Удачи =)
Максим V
Я понимаю, что пока что нахожусь на уровне примата и пишу соответственно)
Но, как я уже сказал, опыт изучения весьма невелик - 4-5 дней, а если быть более точным, то 4 главы по "Базовому курсу" г. Шилдта (пока что совсем скудной представление о функциях имею, и уж тем более - массивы и указатели, совсем темный лес)
Но, тем не менее, очень благодарен вам за замечания - как только поднаберу достаточную базу, тогда уже буду работать над стилем)
Спасибо
Но, как я уже сказал, опыт изучения весьма невелик - 4-5 дней, а если быть более точным, то 4 главы по "Базовому курсу" г. Шилдта (пока что совсем скудной представление о функциях имею, и уж тем более - массивы и указатели, совсем темный лес)
Но, тем не менее, очень благодарен вам за замечания - как только поднаберу достаточную базу, тогда уже буду работать над стилем)
Спасибо
Ваша ошибка - переменная exit, которая уже давно объявленна.
На самом деле это функция void exit(int).
Короч она какбы делает return из любого места программы.
int main()
{
exit(10);
return 0;
}
вернётся 10.
На самом деле это функция void exit(int).
Короч она какбы делает return из любого места программы.
int main()
{
exit(10);
return 0;
}
вернётся 10.
Попробуй этот вариант он легче и помни что настоящий программист стремится минимизировать код от этого зависит работоспобность и скорость выполнения программы
Удачи :) !!!
#include "stdafx.h"
#include <conio.h>
#include <clocale>
#include <iostream>
#include <stdio.h>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
setlocale(LC_ALL, "Russian");
double USD = 7.98, EUR = 11.62, RUB = 0.287; // Цена валюты в отношении своей страны;
double cena, n;
int m;
cout<<"Введите количество валюты для обмена: ";
cin>>n;
cout<<"Введите курс обмена"<<endl<<endl;>eur"<<">USD"<<" 3. RUB->EUR"<<endl<<endl;>rub"<<">RUB"<<" 6. RUB->USD"<<endl<<endl;>>m;
cout<<endl;> "; break;
case 2: cena = (n * EUR) / USD; cout<<" USD -> "; break;
case 3: cena = (n * RUB) / EUR; cout<<" EUR -> "; break;
case 4: cena = (n * USD) / RUB; cout<<" RUB -> "; break;
case 5: cena = (n * EUR) / RUB; cout<<" RUB -> "; break;
case 6: cena = (n * RUB) / USD; cout<<" USD -> "; break;
default: cena = 0; break;
}
if(cena != 0)
{
cout<<" "
Удачи :) !!!
#include "stdafx.h"
#include <conio.h>
#include <clocale>
#include <iostream>
#include <stdio.h>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
setlocale(LC_ALL, "Russian");
double USD = 7.98, EUR = 11.62, RUB = 0.287; // Цена валюты в отношении своей страны;
double cena, n;
int m;
cout<<"Введите количество валюты для обмена: ";
cin>>n;
cout<<"Введите курс обмена"<<endl<<endl;>eur"<<">USD"<<" 3. RUB->EUR"<<endl<<endl;>rub"<<">RUB"<<" 6. RUB->USD"<<endl<<endl;>>m;
cout<<endl;> "; break;
case 2: cena = (n * EUR) / USD; cout<<" USD -> "; break;
case 3: cena = (n * RUB) / EUR; cout<<" EUR -> "; break;
case 4: cena = (n * USD) / RUB; cout<<" RUB -> "; break;
case 5: cena = (n * EUR) / RUB; cout<<" RUB -> "; break;
case 6: cena = (n * RUB) / USD; cout<<" USD -> "; break;
default: cena = 0; break;
}
if(cena != 0)
{
cout<<" "
Похожие вопросы
- Подскажите программу, при помощи которой можно обрезать видео файлы. Желательно программа попроще, чтоб я могла сама в
- Нужно написать программу в делфи....не могу сама никак
- у меня в Устонвке и удаление программ есть две программы которых я не могу удалить помогите удалить(в нутри подробно)
- Прошел курсы синтаксис знаю а вот программу написать уже не могу (( Что делать? На курсах обучался С/C++
- Помогите разобраться с написанием программы Паскале!
- можно ли в биосе отформатировать жесткий диск? программа на английском, разобраться не могу..
- Не то чтобы я сильно надеюсь на ответ, но вдруг.. . Подскажите программу для печати книг, чтобы она могла спускать полосы
- Помогите разобраться в программе.
- посмотрите мою программу на с++.Помогите разобраться
- В чем ошибка? Помогите разобраться! (программа на С++: добавление столбца в матрицу)