Приложение 1. Спецификация класса Calc.
Стр 1 из 5Следующая ⇒ Лабораторная работа № 1 По предмету «Объектно-ориентированное программирование» Цель работы
Задание для домашней подготовки Ознакомиться с материалом, предоставленным в приложениях к данной лабораторной работе. Ознакомиться с текстом задания к лабораторной работе и написать программу. Задание к лабораторной работе Написать программу – калькулятор, реализующую графический интерфейс. Программа должна содержать: o 2 поля ввода (TextField) значений разных типов (например, double и int), o выпадающий список (Choice) с набором математических операций (+,-,...) – не менее 5 пунктов (на выбор студента), o кнопку (Button), активирующую вычисление результата, o метки (Label), указывающие на тип, назначение и т.п. полей ввода o метку, выводящую информацию об ошибках, o текстовое поле или метку (на выбор студента), куда выводится результат, o флажок (Checkbox) или набор переключателей (CheckboxGroup), которые умножают результат на какой-нибудь коэффициент или коэффициенты (значения – на выбор студента), o обработчик события нажатия на кнопку получения результата.
Окно программы должно выглядеть приблизительно так:
Содержание отчета Отчет должен содержать: 1. Постановку задачи, решаемой отлаженной программой. 2. Руководство пользователя отлаженной программы, содержащее описание интерфейсов всех функций программы. 3. Листинг программы с необходимыми комментариями. Пример готовой программы: import java.awt.*; // подключениепакета с классамиграфическихкомпонентов
import java.awt.event.*; // подключениепакета с интерфейсами – “ слушателями ”
class Calc extends Frame implements ActionListener // наследуемкласс Frame (окно) и интерфейс “ слушателя ” событиянажатиякнопки { TextField t1= new TextField(8); // размерполя – 8 символов TextField t2= new TextField(8); TextField t3= new TextField(8);
Label l1= new Label("(Первое число)"); Label l2= new Label("Второе число"); Label l3= new Label("Результат"); // меткапоумолчаниюсодержиттекст «(...)»
Button b = new Button("Получить результат"); // кнопка public Calc(){ // конструкторкласса super (); setSize(400,200); // размерокна
setLayout(new FlowLayout()); // назначаемменеджерразмещениякомпонентов (компоновщик)
add(l1); // выводимсозданныекомпонентынаэкран add(t1); add(l2); add(t2); add(l3); add(t3); add(b);
addWindowListener(new WindowAdapter(){ // добавляемобработчиккнопкизакрытияокна public void windowClosing(WindowEvent e){ dispose(); System. exit (0); } } ); b.addActionListener(this); // добавляемобработчикнажатиянакнопку show(); // делаетокновидимым } // конецконструктора
public void getRez(){ // метод, вычисляющийрезультат double x, // значениеизпервоготекстовогополя Rez1 =0; // результат double y, Rez2 =0; double z, Rez3 =0;
x= new Double(t1.getText()).doubleValue(); // извлечениечислаизпервоготекстовогополя y= new Double(t2.getText()).doubleValue(); z=x*y;
t3.setText(String. valueOf (z)); // записываемтекст в поле (метку) результата с помощьюметода setText(String.valueOf(Rez)); } // окончаниеметода getRez()
public void actionPerformed(ActionEvent e){getRez();} // реализацияметода actionPerformed //(методвызываетсянажатиемна кнопку b), см. выше
public static void main(String []a){Calc clc = new Calc();} //создаем только экземпляр класса Calc и все.
} //окончание класса Calc Приложение 1. Спецификация класса Calc.
import java.awt.*; //подключение пакета с классами графических компонентов import java.awt.event.*; // подключение пакета с интерфейсами – “слушателями”
class Calc extends Frame implements ActionListener //наследуем класс Frame (окно) и интерфейс “слушателя” события нажатия кнопки { TextField t1=new TextField(8); //размер поля – 8 символов
//… другие текстовые поля
Label l1=new Label("(double)"); //метка по умолчанию содержит текст «(double)»
//… другие метки
Button b = new Button("Получить результат"); //кнопка Checkbox cb=new Checkbox("+20%"); //флажок с названием Choice ch; //выпадающий список public Calc(){ //конструктор класса super(); setSize(400,200); //размер окна ch = new Choice(); //конструктор выпадающего списка ch.addItem("+"); //добавляем пункты списка
//… другие пункты списка
setLayout(new FlowLayout()); //назначаем менеджер размещения компонентов (компоновщик)
add(l1); //выводим созданные компоненты на экран add(t1); add(ch);
//… и другие
addWindowListener(new WindowAdapter(){ //добавляем обработчик кнопки закрытия окна public void windowClosing(WindowEvent e){ dispose(); System.exit(0); } } ); b.addActionListener(this); //добавляем обработчик нажатия на кнопку show(); //делает окно видимым } //конец конструктора
public void getRez(){ //метод, вычисляющий результат double x, //значение из первого текстового поля Rez=0; //результат
//… вторая переменная – значение второго текстового поля
try{ x=new Double(t1.getText()).doubleValue(); //извлечение числа из первого текстового поля //… switch(ch.getSelectedIndex()){ //какой пункт выпадающего списка выбран? (номер) case 0: Rez = x + /*вторая переменная*/; break; case 1: //…
//… остальные операторы
}; if (cb.getState()) Rez*=1.2; //если флажок нажат, умножаем результат на 1.2
//записываем текст в поле (метку) результата с помощью метода setText(String.valueOf(Rez));
} //окончание блока try
catch(Exception ex){ String s=new String(ex.getMessage()); //записываем текст в поле (метку) сообщения об ощибке с помощью метода setText("Ошибка "+s); } // окончание блока catch } // окончание метода getRez()
public void actionPerformed(ActionEvent e){getRez();} //реализация метода actionPerformed //(метод вызывается нажатием на кнопку b), см. выше
public static void main(String []a){Calc clc=new Calc();} //создаем только экземпляр класса Calc и все.
} //окончание класса Calc
Читайте также: II Структура класса Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|