Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - помогите доделать последнее действие

Ответить
Настройки темы
C/C++ - помогите доделать последнее действие

Новый участник


Сообщения: 1
Благодарности: 0

Профиль | Отправить PM | Цитировать


Вложения
Тип файла: rar без debug.rar
(450.8 Kb, 2 просмотров)
Здравствуйте делаю для лабы калькулятор я его почти закончил, но препод попросил сделать ввод с клавы. Мысленно я знаю как это сделать, но физически у меня не выходит, может кто подскажет? Моя прога полностью здесь http://zalil.ru/30971503, но я думаю проще часть кода здесь разместить: у меня есть быдло код вводе цифр поэтому полностью не буду писать, итак мне нужно реализовать, вот что:
нужно реализовать +,-,*,/,= то есть ввёл с клавы число нажал +, ввёл второе число, нажал = и выводится ответ

я так понимаю можно использовать action, но как-то я не понимаю как их можно у меня в проге использовать

сам код, здесь я его максимально минимизировал, в проге он больше, и сделано больше кнопок

Код: Выделить весь код
float f=0; // если f==0 то удаляем нуль в строке 
// и пишем нужное число с кнопки 

int arifmetic, backspace; 
//--------------------------------------------------------------------------- 
__fastcall TForm1::TForm1(TComponent* Owner) 
: TForm(Owner) 
{ 


ClientHeight = 257; ClientWidth = 499; 
TStringList *List = new TStringList; 

f=0; //Ждем первую цифру 
arifmetic=0; 
StaticText1->Text = 0; 

} 
//--------------------------------------------------------------------------- 

// кнопка С 
void __fastcall TForm1::Button1Click(TObject *Sender) 
{ 
StaticText1->Text = "0"; 
arifmetic= 0; 
f = 0; 
} 


//Цифра 1--------------------------------------------------------------- 
void __fastcall TForm1::Button2Click(TObject *Sender) 
{ 
if( f == 0) 
{ 
StaticText1->Text = "1"; 
f = 1; 
} 
else 
StaticText1->Text = StaticText1->Text + "1"; 


//ОСТАЛЬНЫЕ ЦИФРЫ СДЕЛАНЫ ТАК ЖЕ, КРОМЕ 0 ЕСТЕСТВЕННО 


//Кнопка +------------------------------------------------------ 
void __fastcall TForm1::Button25Click(TObject *Sender) 
{ 
x=StrToFloat(StaticText1->Text); 
arifmetic = 1; 
f = 0; 
} 
//Кнопка - ----------------------------------------------------------- 
void __fastcall TForm1::Button24Click(TObject *Sender) 
{ 
x=StrToFloat(StaticText1->Text); 
arifmetic = 2; 
f = 0; 
} 
//Кнопка * ------------------------------------------------------------ 
void __fastcall TForm1::Button23Click(TObject *Sender) 
{ 
x=StrToFloat(StaticText1->Text); 
arifmetic = 3; 
f = 0; 
} 
//Кнопка / ---------------------------------------------------------------- 
void __fastcall TForm1::Button26Click(TObject *Sender) 
{ 
x=StrToFloat(StaticText1->Text); 
arifmetic = 4; 
f = 0; 
} 
//Кнопка =---------------------------------------------------------------- 

void __fastcall TForm1::Button22Click(TObject *Sender) 
{ switch (arifmetic) 
{ 
case 1: 
x += StrToFloat(StaticText1->Text); 
StaticText1->Text=FloatToStrF(x,ffGeneral,7,7); 
f=0; 
break; 
case 2: 
x -= StrToFloat(StaticText1->Text); 
StaticText1->Text=FloatToStrF(x,ffGeneral,7,7); 
f=0; 
break; 
case 3: 
x *= StrToFloat(StaticText1->Text); 
StaticText1->Text=FloatToStrF(x,ffGeneral,7,7); 
f=0; 
break; 
case 4: 
x /= StrToFloat(StaticText1->Text); 
StaticText1->Text=FloatToStrF(x,ffGeneral,7,7); 
f=0; 
break; 
} 
// ввод цифр с клавы 
void __fastcall TForm1::StaticText1KeyPress(TObject *Sender, char &Key) 
{ f=0; 
if (Key<'0' || Key>'9') Key=0; // фильтр ввода 
switch (Key) 
{case 1: 
Button2Click(Sender); 
break; 
case 2: 
Button3Click(Sender); 
break; 
case 3: 
Button4Click(Sender); 
break; 
case 4: 
Button5Click(Sender); 
break; 
case 5: 
Button6Click(Sender); 
break; 
case 6: 
Button7Click(Sender); 
break; 
case 7: 
Button8Click(Sender); 
break; 
case 8: 
Button9Click(Sender); 
break; 
case 9: 
Button10Click(Sender); 
break; 
case 10: 
Button11Click(Sender); 
break; 
} 
}
p.s. сегодня копался пытаясь сделать эти злощастные кнопки, но в итоге получилось сделать (.), помогите описать хотя бы (+) и 0, дальше сам разберусь

Отправлено: 22:09, 05-05-2011

 

Старожил


Сообщения: 435
Благодарности: 63

Профиль | Отправить PM | Цитировать


Вводите число с клавы в TEDit.
При нажатии кнопки с действием забирайте число с экрана в переменную.

-------
black-eric.livejournal.com


Отправлено: 23:13, 05-05-2011 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - помогите доделать последнее действие

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Установка - Windows XP PRO доделать до Tablet PC Dis74 Microsoft Windows 2000/XP 2 28-03-2010 13:56
Помогите доделать диск. Обьясните пошагово, если кому-нибудь не трудно Alex Fly Автоматическая установка Windows 2000/XP/2003 4 26-02-2009 01:19
Звук - Колонки - последнее решение Analog Прочее железо 6 03-01-2009 08:03
Помогите доделать сайт DaRiYs Вебмастеру 1 02-03-2008 18:33
последнее сообщение Dimas_83 О сайте и форуме 2 04-07-2006 10:57




 
Переход