
Результаты работы программы
Введите кол-во строк в таблице3
n=3
Введите имя города
qwe
Введите кол-во меров1
Введите имя мэра
qwe
Кол-во голосов:
1
Введите имя города
asd
Введите кол-во меров1
Введите имя мэра
asd
Кол-во голосов:
1
Введите имя города
cxz
Введите кол-во меров1
Введите имя мэра
cxz
Кол-во голосов:
1
Исходные данные:
Город Мэр Кол-во голосов
qwe qwe 1
asd asd 1
cxz cxz 1
Запись в файлD:\write.txt
sizeObject=14
sizeObject=14
sizeObject=14
Файл сформированD:\write.txt
В файле 3 записей
Введите номер записи которую надо прочесть
2
2 Запись
Город Мэр Кол-во голосов
asd asd 1
Задание №8 Условие
Составить программу, обеспечивающую создание графического пользовательского интерфейса.
Реализовать следующий алгоритм: в 1-е и 2-е поля для редактирования вводятся числа : в восьмеричной и двоичной системе исчисления . При нажатии кнопки “Применить” в 3-ем и 4-ом полях для редактирования заносится результат перевода в десятичную систему исчисления . При нажатии кнопки “Сумма”эти два числа складываются. При нажатия кнопки “Сброс” в поля очищаются.
Блок схема
Обработка событий
Событие =“Применить”
Перевод 1-ого и 2-ого числа в десятеричную систему исчисления
конец
Событие =“Сумма”
Событие =“Сброс”
Очистка полей

нет
да
нет
да
Сложение 1-ого и 2-ого числа
нет
да
Код программы
package test;
import java.util.*;
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
public class Solution {
public static void main(String []args){
ButtonFrame frame= new ButtonFrame();//создаем фрейм
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//операция отвечающая за окончание программы после закрытия фрейма
frame.setVisible(true);//делаем фрейм видимым
}
}
class ButtonFrame extends JFrame{
public ButtonFrame(){
setSize(DEFAULT_WIDTH,DEFAULT_HEIGHE);//размеры фрейма
setTitle("Перевод чисел и их сложение");//название фрейма
ButtonPanel panel=new ButtonPanel();//создаем панель
add(panel);//добавляем панель на фрейм
}
public static final int DEFAULT_WIDTH=700;
public static final int DEFAULT_HEIGHE=300;
}
class ButtonPanel extends JPanel{
public ButtonPanel(){
setLayout(null);
setFont(new Font("Srift",Font.PLAIN,14));
JLabel pol1=new JLabel("Введите число в восьмеричной системе исчисления:",Label.RIGHT);
pol1.setBounds(20, 30, 350, 25);
add(pol1);
JLabel pol2=new JLabel("Введите число в двоичной системе исчисления:",Label.RIGHT);
pol2.setBounds(20,60,350,25);
add(pol2);
JTextField textpol1=new JTextField();
textpol1.setBounds(350, 30, 100, 25);
add(textpol1);
JTextField textpol2=new JTextField();
textpol2.setBounds(350, 60, 100, 25);
add(textpol2);
JButton but1=new JButton("Применить");
but1.setBounds(500, 40, 100, 30);
add(but1);
JButton but2=new JButton("Сумма");
but2.setBounds(500, 80, 100, 30);
add(but2);
JButton but3=new JButton("Сброс");
but3.setBounds(500, 120, 100, 30);
add(but3);
JLabel response=new JLabel("Oтвет",JLabel.LEFT);
response.setBounds(30, 90, 50, 25);
add(response);
JLabel eightlabel=new JLabel("Перевод из 8-ой в 10-ую систему исчисления",JLabel.LEFT);
eightlabel.setBounds(30, 120, 300, 25);
add(eightlabel);
JTextField poleight=new JTextField();
poleight.setBounds(360, 120, 100, 25);
add(poleight);
JLabel twolabel=new JLabel("Перевод из 2-ой в 10-ую систему исчисления",JLabel.LEFT);
twolabel.setBounds(30, 150, 300, 25);
add(twolabel);
JTextField poltwo=new JTextField();
poltwo.setBounds(360, 150, 100, 25);
add(poltwo);
JLabel error=new JLabel("",JLabel.LEFT);
error.setBounds(30,210, 500, 25);
add(error);
JLabel sumlabel=new JLabel("Cумма двух чисел из поля 1 и 2",JLabel.LEFT);
sumlabel.setBounds(30, 180, 330, 25);
add(sumlabel);
JTextField sumpol=new JTextField();
sumpol.setBounds(360, 180, 100, 25);
add(sumpol);
bAction1 but1Action=new bAction1(textpol1,textpol2,poleight,poltwo,error);//создаем событие для каждого цвета(параметр-цвет)
bAction2 but2Action=new bAction2(textpol1,textpol2,poleight,poltwo,sumpol,error);
bAction3 but3Action=new bAction3(textpol1,textpol2,poleight,poltwo,sumpol);
but1.addActionListener(but1Action);
but2.addActionListener(but2Action);
but3.addActionListener(but3Action);
}
private class bAction1 implements ActionListener{
JTextField textpol1;
JTextField textpol2;
JTextField poleight;
JTextField poltwo;
JLabel error;
bAction1(JTextField textpol1,JTextField textpol2,JTextField poleigth,JTextField poltwo,JLabel error){
this.textpol1=textpol1;
this.textpol2=textpol2;
this.poleight=poleigth;
this.poltwo=poltwo;
this.error=error;
}
public int degree(int degree,int variable){
int i,value=1;
for(i=0;i<degree;i++){
value=value*variable;
}
return value;
}
public void actionPerformed(ActionEvent event){//реакция на нажатие кнопки-смена цвета панели
String pol1=textpol1.getText();
String pol2=textpol2.getText();
error.setText("");
int i,numb,twonumb=0,eightnumb=0,a,key=0;
numb=Integer.parseInt(pol1);
try{
for(i=0;i<pol1.length();i++){
a=numb%10;
if((a==8)||(a==9)){
throw new numbException(textpol1.getText(),"1");}
eightnumb=eightnumb+a*degree(i,8);
numb=numb/10;
}
}
catch(numbException e){
error.setText(e.toString());
key=1;
}
if(key!=1){
Integer eight=new Integer(eightnumb);
numb=Integer.parseInt(pol2);
try{
for(i=0;i<pol2.length();i++){
a=numb%10;
if((a!=0)&&(a!=1)){
throw new numbException(textpol2.getText(),"2");}
twonumb=twonumb+a*degree(i,2);
numb=numb/10;
}
}
catch(numbException e){
error.setText(e.toString());
key=1;
}
if(key!=1){
Integer two=new Integer(twonumb);
poleight.setText(eight.toString());
poltwo.setText(two.toString());
}
else{
poleight.setText("");
poltwo.setText("");
}
}
}
}
private class bAction2 implements ActionListener{
JTextField textpol1;
JTextField textpol2;
JTextField poleight;
JTextField poltwo;
JTextField sumpol;
JLabel error;
bAction2(JTextField textpol1,JTextField textpol2,JTextField poleigth,JTextField poltwo,JTextField sumpol,JLabel error){
this.textpol1=textpol1;
this.textpol2=textpol2;
this.poleight=poleigth;
this.poltwo=poltwo;
this.sumpol=sumpol;
this.error=error;
}
public int degree(int degree,int variable){
int i,value=1;
for(i=0;i<degree;i++){
value=value*variable;
}
return value;
}
public void actionPerformed(ActionEvent event){//реакция на нажатие кнопки-смена цвета панели
String pol1=textpol1.getText();
String pol2=textpol2.getText();
String eighttxt=poleight.getText();
String twotxt=poltwo.getText();
Integer sum;
if(!eighttxt.isEmpty()&&!twotxt.isEmpty()){
sum=new Integer(Integer.parseInt(eighttxt.toString())+Integer.parseInt(twotxt.toString()));
sumpol.setText(sum.toString());
}
else{
error.setText("");
int i,numb,twonumb=0,eightnumb=0,a,key=0;
numb=Integer.parseInt(pol1);
try{
for(i=0;i<pol1.length();i++){
a=numb%10;
if((a==8)||(a==9)){
throw new numbException(textpol1.getText(),"1");}
eightnumb=eightnumb+a*degree(i,8);
numb=numb/10;
}
}
catch(numbException e){
error.setText(e.toString());
key=1;
}
if(key!=1){
Integer eight=new Integer(eightnumb);
numb=Integer.parseInt(pol2);
try{
for(i=0;i<pol2.length();i++){
a=numb%10;
if((a!=0)&&(a!=1)){
throw new numbException(textpol2.getText(),"2");}
twonumb=twonumb+a*degree(i,2);
numb=numb/10;
}
}
catch(numbException e){
error.setText(e.toString());
key=1;
}
if(key!=1){
Integer two=new Integer(twonumb);
sum=new Integer(two+eight);
sumpol.setText(sum.toString());
}
}
}
}
}
private class bAction3 implements ActionListener{
JTextField textpol1;
JTextField textpol2;
JTextField poleight;
JTextField poltwo;
JTextField sumpol;
bAction3(JTextField textpol1,JTextField textpol2,JTextField poleigth,JTextField poltwo,JTextField sumpol){
this.textpol1=textpol1;
this.textpol2=textpol2;
this.poleight=poleigth;
this.poltwo=poltwo;
this.sumpol=sumpol;
}
public void actionPerformed(ActionEvent event){//реакция на нажатие кнопки-смена цвета панели
textpol1.setText("");
textpol2.setText("");
poleight.setText("");
poltwo.setText("");
sumpol.setText("");
}
}
}
package test;
public class numbException extends Exception{
private String msg;
private String pol;
public numbException(){
msg=null;
pol=null;
}
public numbException(String numb,String pol){
msg=numb;
this.pol=pol;
}
public String toString(){
return "Неправильный формат числа "+msg+" в поле "+pol+" введите еще раз";
}
}