Calculator.h
#include <string.h>
#include <stdio.h>
#include <math.h>
#include <string>
#pragma once
using namespace std;
class Calculator
{
public:
Calculator(void);
~Calculator(void);
int Work();
char sTB1[20];
char sTB2[20];
char sL1[20];
};
#include "StdAfx.h"
#include "Calculator.h"
Calculator::Calculator(void)
{
}
Calculator::~Calculator(void)
{
}
int Calculator::Work()
{
int k;
float first;
int second;
float rez; // результат
char s[20];
k=sscanf(sTB1,"%f",&first); перевод строки в вещественное first
if(k<=0) // перевод не удался?
{
strcpy(sTB1,"");
strcpy(sL1,"неправильно");
return -1;
}
k=sscanf(sTB2,"%d",&second); // пкеревод строк в целое second
if(k<=0) // перевод не удался?
{
strcpy(sTB2,"");
strcpy(sL1,"неправильно");
return -1;
}
// числа правильные
rez=first+second;
sprintf(s,"%f",rez);
strcpy(sL1,"Ответ: ");
strcat(sL1,s);
return 1;
}
5) Обработка события на выход из textbox
в Java SE
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.lang.Math. *;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import javax.swing.*;
public class lab8
{
JFrame form;
JLabel lb;
JTextField tf1; // поле для вещественного
JTextField tf2; // поле для целого
|
|
JButton bt;
lab8 ()
{
// параметры form
form = new JFrame();
form.setBounds (10,20,500,300);
form.setTitle ("лабораторная 8");
form.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
form.setLayout(null); // размешщать компоненты вручную
// заданиепараметров Label
lb = new JLabel();
lb.setBounds(20,10,400,40); // left,top,width,height
lb.setText("Ответ:");
form.add(lb); // добавка в форму Label lb
// заданиепараметровпервоготекстовогополя
tf1 = new JTextField();
tf1.setBounds(20,80,100,20);
tf1.setText("0.0");
tf1.addFocusListener(new FocusListener() // обработка событий
{
public void focusGained(FocusEvent e)
{
// припопаданиинатекстовоеполе получение фокуса
}
public void focusLost(FocusEvent e)
{
// привыходеизтекстовогополя потеря фокуса
Calculate();
}
});
form.add(tf1); // добавка в формутекстовогополя tf1
// заданиепараметроввтороготекстовогополя
tf2= new JTextField();
tf2.setBounds(180,80,100,20);
tf2.setText("0");
tf2.addFocusListener(new FocusListener()
{
public void focusGained(FocusEvent e)
{
// припопаданиинатекстовоеполе
}
public void focusLost(FocusEvent e)
{
// привыходеизтекстовогополя
Calculate();
}
});
form.add(tf2); // добавка в формутекстовогополя tf2
// заданиепараметровкнопки
bt=new JButton();
bt.setBounds(20,130,140,20);
bt. setLabel ("Завершить");
form.add(bt);
// добавлениеоткликанасобытие click
bt.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
// принажатиикнопкиbtпереход в даннуюточку
System.exit(0);
}
});
form. show ();
}
public void Calculate()
{
String s1;
double first;
int second;
double Sum;
boolean p; 1- числа нормальные. 0-перевод из строки не удался
s1=tf1.getText();
p=true;
first=0;
second=0;
try
{
first = Double.parseDouble(s1); // попытка перевода в вещественное
}
catch(NumberFormatException e) // ошибка перевода
{
tf1.setText("");
tf1.requestFocus(); // установка фокуса
p=false;
}
s1=tf2.getText();
try
{
second = Integer.parseInt(s1); // попытка перевода в целое
}
catch(NumberFormatException e)
{
tf2.setText("");
tf2.requestFocus();
|
|
p=false;
}
if(p) // перевод выполнен?
{
Sum=first+second;
s1=Double.toString(Sum); // перевод в строку
lb.setText("Ответ:"+s1);
}
else
{
lb.setText("неправильно:");
}
}
public static void main (String args[])
{
lab8 f;
f= new lab8();
}
}
6) Обработка события на выход из textbox
в Java ME
import javax.microedition.midlet.*;
import com.sun.lwuit.*;
import com.sun.lwuit.events.*;
import com.sun.lwuit.geom.*;
import com.sun.lwuit.layouts.*;
import java.lang.Math.*;
public class lab8 extends MIDlet
{
Form form;
Label lb;
TextField tf1;
TextField tf2;
Button bt;
public void startApp()
{
int w,h;
Dimension d=new Dimension(200,200);
Display.init(this);
form = new Form();
form.setPreferredSize(d);
form.setTitle("Лабораторная 8");
w=form.getWidth();
h=form.getHeight();
CoordinateLayout e = new CoordinateLayout(w,h);
form.setLayout(e);
// параметры label
lb=new Label();
lb.setX(20);
lb.setY(30);
lb.setText("Ответ: ");
form.addComponent(lb);
// параметры поля tf1 для ввода вещественного числа
tf1 = new TextField();
tf1.setX(20);
tf1.setY(60);
tf1.setText("0.0");
tf1.addFocusListener(new FocusListener()
{
public void focusGained(Component e) // получение фокуса
{
// при попадании на текстовое поле
}
public void focusLost(Component e) // выход из поля
{
// при выходе из текстового поля
Calculate();
}
});
form.addComponent(tf1);
// параметры текстового поля для ввода целого числа
tf2= new TextField();
tf2.setX(20);
tf2.setY(90);
tf2.setText("0");
tf2.addFocusListener(new FocusListener()
{
public void focusGained(Component e)
{
// при попадании на текстовое поле
}
public void focusLost(Component e)
{
// при выходе из текстового поля
Calculate();
}
});
form.addComponent(tf2);
// параметры кнопки
bt=new Button();
bt.setX(20);
bt.setY(120);
bt.setText("Завершить");
bt.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e) // событие click
{
notifyDestroyed(); // завершение приложения
}
});
form.addComponent(bt);
form.show();
}
public void Calculate()
{
String s1;
double first;
int second;
double Sum;
boolean p;
s1=tf1.getText();
p=true;
first=0;
second=0;
try
{
first = Double.parseDouble(s1);
}
catch(NumberFormatException e)
{
tf1.setText("");
tf1.setFocus(true);
p=false;
}
s1=tf2.getText();
try
{
second = Integer.parseInt(s1);
}
catch(NumberFormatException e)
{
tf2.setText("");
tf2.setFocus(true);
p=false;
}
if(p)
{
Sum=first+second;
s1=Double.toString(Sum);
lb.setText("Ответ:"+s1+" ");
}
else
{
lb.setText("Неправильно ");
}
}
public void pauseApp()
{
}
public void destroyApp(boolean unconditional)
{
}
}
7) Использование переключателей флажков (checkbox) и переключателей (radiobutton)в Visual C++
Пример:
Покупатель может купить процессор за 2500 рублей и
видеокарту за 1300 рублей(checkbox). Рассчитаться
может наличными, по банковской карточке (+3%) и по
дисконтной карточке (-10%) (3 radiobutton).
Сумма покупки выводится в Label.
Начальная форма:
radioButton располагать внутри groupBox.
Заголовки – свойство Text
Выбран элемент – свойство Checked=true
Обработка события Load для Form1:
private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e)
{
radioButton1->Checked=true; // выбрана обычная оплата
checkBox1->Checked=false; // товары не выбраны
checkBox2->Checked=false;
}
Запуск:
проект -> добавить класс -> shop