X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

2 страниц V   1 2 >
Открыть тему
Тема закрыта
> C++
dimjan4
dimjan4
Topic Starter сообщение 14.7.2009, 17:38; Ответить: dimjan4
Сообщение #1


Здравствуйте!
Нужна помощь по Си++
1. Перезагрузка программы (не системы)
2. В меню есть 3 пункта... как сделать цикл, чтобы пока не ввели правильный пункт выводило сообщение и место ввода...вот что пока у меня есть:
[PHP]#include <iostream>
#include <windows.h>
#include <winable.h>


using namespace std;

/*Приветствие*/void linija() {
cout << "___________________________________________________________________________
____\n\n";
}



void menu () {
/**/
char text1 []="Цена за 1 каталог: ";
CharToOem(text1,text1);


cout << text1;
string priseforone;
getline (cin, priseforone);
}




/* Рабочий код*/ main() {



linija();//Выводим линию
char helps []=" Новый заказ - 1\n Просмотр отчёта - 2\n Закрытие программы - 3\n\n";
char helps2 []="Выбрано из меню: ";
CharToOem(helps,helps);
CharToOem(helps2,helps2);
cout << helps;
cout << helps2;
string from_menu;
getline (cin, from_menu);

do {
char helps3 []="Допущена ошибка при выборе из меню: ";
CharToOem(helps3,helps3);
cout << helps3;
getline (cin, from_menu);
}
while (from_menu != "1" or from_menu!="2" or from_menu!="3");






system("PAUSE");
}



[/PHP]
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Galen
Galen
сообщение 14.7.2009, 17:57; Ответить: Galen
Сообщение #2


Меню консольное делается так:
void main() {

while(1) {
clrscr();
cout << "1. Пункт меню 1" << endl;
// ...
cout << "N. Выход" << endl;
cin >> q;
switch(q) {
case 1: {
// обработка первого пункта меню
break;
}
// ...
case N: return;
}
}

}

Как-то так.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
dimjan4
dimjan4
Topic Starter сообщение 14.7.2009, 18:22; Ответить: dimjan4
Сообщение #3


Это же не для консольной программы...
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Galen
Galen
сообщение 14.7.2009, 18:30; Ответить: Galen
Сообщение #4


А для какой? :)
Оконные приложения я руками не писал никогда, MFC и вперёд.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
dimjan4
dimjan4
Topic Starter сообщение 14.7.2009, 18:49; Ответить: dimjan4
Сообщение #5


Вот , нашёл! Всем спасибо!

http://www.youtube.com/watch?v=rvJyYuhAslQ
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
dimjan4
dimjan4
Topic Starter сообщение 15.7.2009, 13:49; Ответить: dimjan4
Сообщение #6


У меня ещё вопрос:
Хочу умножить 2 переменные (в одной целое число, во второй десятичное)
Выводит какую то ошибку...
[PHP]void summ()
{
float summa = cenaodnoj * zakazanno;
}[/PHP]


[PHP] cout << textzakaz2;
cin >> cenaodnoj;
cout << textzakaz3;
cin >> zakazanno;

summ();
cout << summa;


[/PHP]
Именно вот эта сторка выдаёт ошибку:
[PHP] float summa = cenaodnoj * zakazanno;[/PHP]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Galen
Galen
сообщение 15.7.2009, 14:57; Ответить: Galen
Сообщение #7


Если это весь код, то работать он не будет из-за видимости переменных.

float summ(float cenaodnoj, int zakazano) {
    return cenaodnoj * zakazanno;
}

void main() {
int zakazani;
float cenaodnoj;

cout << textzakaz2;
cin >> cenaodnoj;
cout << textzakaz3;
cin >> zakazanno;
cout << summ(cenaodnoy, zakazano);
}
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
dimjan4
dimjan4
Topic Starter сообщение 15.7.2009, 16:01; Ответить: dimjan4
Сообщение #8


Сделал как Вы сказали, но строка
[PHP] return cenaodnoj * zakazanno;[/PHP]
вызывает ошибку


Вот весь код:
[PHP]#include <iostream>
#include <string>
#include <windows.h>
#include <winable.h>

using namespace std;
float summ(float cenaodnoj, int zakazano) {
return cenaodnoj * zakazanno;
}

int main()
{
int zakazani;
float cenaodnoj;
string zakazpodtv;
/*russian*/
char textzakaz1[] = "Вы собираетесь оформить заказ\n";
char textzakaz2[] = "Цена одного каталога: ";
char textzakaz3[] = "Заказанно (каталогов): ";
char textzakaz4[] = "...Обработка...\n";
char textzakaz5[] = "Цена(1)-----------";
char textzakaz6[] = "Заказанно(X)------";
char textzakaz7[] = "Сумма:------------";
char textzakaz8[] = "1::Подтвердить 2::Вернуться\n";
char textzakaz9[] = "Заказ принят и отчёт готов!";
char textzakaz10[] = "Вы отменили операцию...\n Подождите 3 секунды...";
CharToOem(textzakaz1,textzakaz1);
CharToOem(textzakaz2,textzakaz2);
CharToOem(textzakaz3,textzakaz3);
CharToOem(textzakaz4,textzakaz4);
CharToOem(textzakaz5,textzakaz5);
CharToOem(textzakaz6,textzakaz6);
CharToOem(textzakaz7,textzakaz7);
CharToOem(textzakaz8,textzakaz8);
CharToOem(textzakaz9,textzakaz9);
CharToOem(textzakaz10,textzakaz10);
int loop=1;
int choice;
string getinput;

while(loop==1)
{
system("CLS");
cout << "________Menu__________\n\n"
<< "1::Order\n"
<< "2::Report\n"
<< "3::Exit\n\n\n";
cin >> choice;
switch(choice)
{
case 1:
system("CLS");
/*При заказе*/




cout << textzakaz1;
Sleep(2000);
system("CLS");
cout << textzakaz2;
cin >> cenaodnoj;
cout << textzakaz3;
cin >> zakazanno;
system("CLS");
cout << textzakaz4;
Sleep(2000);
system("CLS");
summ();
/*Podtverzdenie*/
cout << textzakaz5;
cout << cenaodnoj;
cout << "\n";
cout << textzakaz6;
cout << zakazanno;
cout << "\n";
cout << textzakaz7;
cout << summ(cenaodnoy, zakazano);
cout << "\n\n\n\n";
cout << textzakaz8;
cin >> zakazpodtv;

if (zakazpodtv == "1" or zakazpodtv == "")
{
system("CLS");
printf( textzakaz9 );
Sleep (3000);
}
else
{
system("CLS");
printf ( textzakaz10 );
Sleep (3000);
}




case 2:
if (choice==2)
{
system("CLS");
/*Отчёт*/
}
case 3:
if(choice==3)
{
/*Выход*/
system("CLS");
cout << "EXIT";
Sleep(5000);
exit(0);
}
}
}
}
[/PHP]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Galen
Galen
сообщение 15.7.2009, 16:08; Ответить: Galen
Сообщение #9


Текст ошибки в студию.

Можно так попробовать:
return (float) cenaodnoj * zakazanno;
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
dimjan4
dimjan4
Topic Starter сообщение 15.7.2009, 16:21; Ответить: dimjan4
Сообщение #10


C:\Documents and Settings\Admin.MICROSOF-FB3B6A\Рабочий стол\progtrane\Makefile.win [Build Error]  [programme.o] Error 1
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
2 страниц V   1 2 >
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


 



RSS Текстовая версия Сейчас: 29.3.2024, 9:22
Дизайн