Читайте также: |
|
Результаты работы программы №3 аналогичны результатам программы №2
Задание №4
Проанализировать структуру класса Double составить программу тестирования всех констант, включенных в класс и методов, принадлежащих этому классу.
Блок схема
Кодпрограммы
import java.lang.Double;
public class q4 {
public static void main(String args[]){
/*Конструкторы создают объекты типа Double.Можно создавать в явном виде и неявном виде*/
Double d1= new Double(3.15345);
Double d2= new Double(315345E-5);
System. out. println(d1+"="+d2+"->"+d1.equals(d2));
/*В классе Double имеются константы: бесконечность, неопределенность.
А также методы их проверки.*/
Double d3=Double. POSITIVE_INFINITY;
Double d4=Double. NaN;
System. out. println(d3+":"+d3.isInfinite()+","+d3.isNaN());
System. out. println(d4+":"+d4.isInfinite()+","+d4.isNaN());
System. out. println("d3 Infinite?"+Double. isInfinite (d3));
System. out. println("d4 NaN?"+Double. isNaN (d4));
d3=Double. NEGATIVE_INFINITY;
System. out. println(d3);
System. out. println("d3 == Infinity? "+(d3 == Double. POSITIVE_INFINITY));
Double d5= new Double(-3);
//Метод представляющий объект в виде строки в 16-ной системе исчисления
System. out. println("d5="+Double. toHexString (d5));
try {
//Метод перевода из строки в Double
String g= new String("1234");
Double d6=Double. parseDouble (g);
System. out. println("d6="+d6);
}
catch (Exception e){}
//Методы сравнения
System. out. println("d5>d1? "+d5.compareTo(d1));
System. out. println("d1=d1?"+d1.compareTo(d1));
System. out. println("d1>d5 "+d1.compareTo(d5));
System. out. println("d5>d1 "+Double. compare (d5, d1));
//Константы максимума и минимума
d1=Double. MAX_VALUE;
System. out. println("Max_d1="+d1);
d1=Double. MIN_VALUE;
System. out. println("Min_d1="+d1);
//Методы перевода в другие типы данных
long d7=Double. doubleToLongBits (d2);
System. out. println("d7="+d7);
System. out. println("d2 в шестнадцатеричном представлении:"+Double. toHexString (d2));
String s=Double. toString (d2);
System. out. println("d2 в представлении ASCII cod:"+s);
}
}
Результаты работы программы
3.15345=3.15345->true
Infinity:true,false
NaN:false,true
d3 Infinite?true
d4 NaN?true
-Infinity
d3 == Infinity? false
d5=-0x1.8p1
d6=1234.0
d5>d1? -1
d1=d1?0
d1>d5 1
d5>d1 -1
Max_d1=1.7976931348623157E308
Min_d1=4.9E-324
d7=4614283356922483153
d2 в шестнадцатеричном представлении:0x1.93a43fe5c91d1p1
d2 в представлении ASCII cod:3.15345
Задание №5
Условие
На основании задания №2 исследовать работу исключительных ситуаций. Создать программу обработки следующих ситуаций:
1) Исключительную ситуацию если введено имя мэра, которого нет в списке допустимых мэров
2) Исключительную ситуацию если количество голосов превышает допустимое кол-во
Блок схема
Кодпрограммы
package package1;
import java.io.IOException;
public class q5 {
static private char ch;
static private int i, j, c, r, key =0, kol_j [], kol_i;
private int kol[][],kol_m[],kol_max=10,l;
private String s;
private String name_city[];
private String name_mayor[][];
static public int n;
static private String list [];
private int amount=5;
q5(){
list = new String[amount];
list [0]="qqq";
list [1]="www";
list [2]="eee";
list [3]="rrr";
list [4]="ttt";
}
//Метод обработки исключительной ситуации, если мэра нет в списке
private void listexception() throws MyException{
StringBuffer str;
System. out. println("(1)Хотите поменять имя и продолжить ввод или (2)закончить ввод");
try {
str= new StringBuffer();
while ((ch = (char) System. in. read())!= '\n')
str.append(ch);
l=Integer. parseInt (str.toString());}
catch (IOException e){}
switch (l){
case '1':{ try { key =0;str= new StringBuffer();
System. out. println("Введите имя мэра");
while ((ch = (char) System. in. read())!= '\n')
str.append(ch);
name_mayor[ i ][ j ] = new String(str.toString());
int l=0;
for (c =0; c <amount; c ++){
if (name_mayor[ i ][ j ].equals(list [ c ]))
{
l++;
break;
}
}
if (l==0){
throw new ListException(name_mayor[ i ][ j ]);
}
break;}
catch (IOException e){}
catch (MyException List){
System. out. println("caught "+List);
listexception();
}
}
case '2': key =1; kol_j [ i ]= j +1; break;
}
}
//Метод обработки исключительной ситуации, если кол-во голосов превышает допустимое количество
private void kolexception() throws MyException{
StringBuffer str;
System. out. println("(1)Хотите поменять кол-во голосов и продолжить ввод или (2)закончить ввод");
try {
str= new StringBuffer();
while ((ch = (char) System. in. read())!= '\n')
str.append(ch);
l=Integer. parseInt (str.toString());}
catch (IOException e){}
switch (l){
case '1':{
try {
key =0;str = new StringBuffer();
System. out. println("Кол-во голосов:");
while ((ch = (char) System. in. read())!= '\n')
if (ch!=13)str.append(ch);
kol[ i ][ j ] = Integer. parseInt (str.toString());
if (kol[ i ][ j ]>kol_max){
throw new KolException(name_mayor[ i ][ j ]);
}
break;}
catch (IOException e){}
catch (MyException List){
System. out. println("caught "+List);
kolexception();
}
}
case '2': key =1; kol_j [ i ]= j +1; break;
}
}
//Метод ввода таблицы
public void Enter() throws MyException,ListException,KolException{
Try
{
name_city = new String[ n ];
name_mayor= new String[ n ][];
kol= new int [ n ][];
kol_m= new int [ n ];
StringBuffer str = new StringBuffer();
System. out. println("Введите имя города");
while ((ch = (char) System. in. read())!= '\n')
str.append(ch);
name_city[ i ] = new String(str.toString());
System. out. print("Введите кол-во мэров");
str = new StringBuffer();
while ((ch = (char) System. in. read())!= '\n')
if (ch!=13)str.append(ch);
kol_m[ i ]=Integer. parseInt (str.toString());
name_mayor[ i ]= new String[kol_m[ i ]];
kol[ i ]= new int [kol_m[ i ]];
for (j =0; j <kol_m[ i ]; j ++)
{
str= new StringBuffer();
System. out. println("Введите имя мэра");
while ((ch = (char) System. in. read())!= '\n')
str.append(ch);
name_mayor[ i ][ j ] = new String(str.toString());
Try
{
int l=0;
for (c =0; c <amount; c ++)
{
if (name_mayor[ i ][ j ].equals(list [ c ]))
{
l++;
break;
}
}
if (l==0)
{
throw new ListException(name_mayor[ i ][ j ]);
}
}
catch (MyException List){
System. out. println("caught "+List);
listexception();}
if (key ==1)
break;
str = new StringBuffer();
System. out. println("Кол-во голосов:");
while ((ch = (char) System. in. read())!= '\n')
if (ch!=13)str.append(ch);
kol[ i ][ j ] = Integer. parseInt (str.toString());
Try
{
if (kol[ i ][ j ]>kol_max)
{
throw new KolException(name_mayor[ i ][ j ]); }
}
catch (MyException List){
System. out. println("caught "+List);
kolexception();}
}
}
catch (IOException e){}
}
//Метод распечатки таблицы
public void Print(int a){
for (j =0; j <kol_m[ i ]- kol_j [ i ]; j ++){
System. out. print(name_city[ i ]+" "+name_mayor[ i ][ j ]+" "+kol[ i ][ j ]+"\n");
}
}
public void Print(){
System. out. print(name_city[ i ]+" "+name_mayor[ i ][0]+" "+kol[ i ][0]+"\n");
}
//Метод обработки
public void Processing(){
for (c =0; c <kol_m[ i ]-1- kol_j [ i ]; c ++){
for (j =0; j <kol_m[ i ]-1- kol_j [ i ]; j ++){
if (kol[ i ][ j ]<kol[ i ][ j +1])
{
r =kol[ i ][ j +1];
kol[ i ][ j +1]=kol[ i ][ j ];
kol[ i ][ j ]= r;
s=name_mayor[ i ][ j +1];
name_mayor[ i ][ j +1]=name_mayor[ i ][ j ];
name_mayor[ i ][ j ]=s;
}
}
}
}
public static void main(String[] args){
try {
StringBuffer str = new StringBuffer();
System. out. print("Введите кол-во строк в таблице");
while ((ch = (char) System. in. read())!= '\n')
if (ch!=13)str.append(ch);
n = Integer. parseInt (str.toString());
System. out. println("n=" + n);
} catch (IOException e){}
kol_j = new int [ n ];
q5 A[]= new q5[ n ];
for (i =0; i < n; i ++){
try {
A[ i ]= new q5();
A[ i ].Enter();
} catch (MyException List){
if (key!=0){
kol_i = i +1;
break;}
}
}
System. out. println("Исходные данные:");
System. out. print("Город Мэр Кол-во голосов\n");
for (i =0; i < n - kol_i; i ++)
A[ i ].Print(1);
for (i =0; i < n - kol_i; i ++)
A[ i ].Processing();
System. out. print("Ответ\n");
System. out. print("Город Мэр Кол-во голосов\n");
for (i =0; i < n - kol_i; i ++)
A[ i ].Print();
}
}
Результаты работы программы
Введите кол-во строк в таблице1
n=1
Введите имя города
qwe
Введите кол-во мэров1
Введите имя мэра
qwe
caught ListException(qwe
) нет такого мэра
(1)Хотите поменять имя и продолжить ввод или (2)закончить ввод
Введите имя мэра
qqq
Кол-во голосов:
caught KolException(qqq
) возможно фальсификация голосов
(1)Хотите поменять кол-во голосов и продолжить ввод или (2)закончить ввод
Кол-во голосов:
Исходные данные:
Город Мэр Кол-во голосов
qwe qqq 1
Ответ
Город Мэр Кол-во голосов
qwe qqq 1
Задание №6
Проанализировать структуру класса HashTable составить программу тестирования всех констант, включенных в класс и методов, принадлежащих этому классу. При исследовании класса в качестве объектов использовать объекты из задания №3.
Блок схема
Кодпрограммы
import java.io.IOException;
import java.util.*;
public class vektor {
static private char ch;
private int j;
private int kol[],kol_m;
private String name_city;
private String name_mayor[];
static private int key, i, l;
public void Enter(){
Try
{
key =0;
name_city = new String();
StringBuffer str = new StringBuffer();
System. out. println("Введите имя города");
while ((ch = (char) System. in. read())!= '\n')
str.append(ch);
name_city = new String(str.toString());
System. out. print("Введите кол-во мэров");
str = new StringBuffer();
while ((ch = (char) System. in. read())!= '\n')
if (ch!=13)str.append(ch);
kol_m=Integer. parseInt (str.toString());
name_mayor= new String[kol_m];
kol= new int [kol_m];
for (j=0;j<kol_m;j++)
{
str= new StringBuffer();
System. out. println("Введите имя мэра");
while ((ch = (char) System. in. read())!= '\n')
str.append(ch);
name_mayor[j] = new String(str.toString());
str = new StringBuffer();
System. out. println("Кол-во голосов:");
while ((ch = (char) System. in. read())!= '\n')
if (ch!=13)str.append(ch);
kol[j] = Integer. parseInt (str.toString());
}
}
catch (IOException e){}
}
public void Print(int a){
for (j=0;j<kol_m;j++){
System. out. print(name_city+" "+name_mayor[j]+" "+kol[j]);
}
}
public static void main(String[] args){
StringBuffer str= new StringBuffer();
key =0;
Collection<vektor> coll= new ArrayList<vektor>();
Vector<vektor> date= new Vector<vektor>(10,5);
for (;;){
vektor A= new vektor();
try {
A.Enter();
boolean k=coll.add(A);
System. out. println("Добавился элемент в коллекцию?"+k);
boolean n =date.add(A);
System. out. println("Добавился элемент?"+k);
System. out. println("Ввести город?Да(1)/Нет(2)");
str= new StringBuffer();
try {
while ((ch = (char) System. in. read())!= '\n')
if (ch!=13)str.append(ch);
l = Integer. parseInt (str.toString());
}
catch (IOException e){};
switch (l){
case 2: key =1; break;
case 1: key =0; break;
}
} catch (Exception e){}
if (key!=0)
break;
}
System. out. println("Первый элемент вектора");
System. out. print("Город Мэр Кол-во голосов\n");
vektor D=(vektor)date.firstElement();
D.Print(1);
System. out. println("Последний элемент вектора");
System. out. print("Город Мэр Кол-во голосов\n");
vektor C=(vektor)date.lastElement();
C.Print(1);
Vector date2= new Vector(coll);
System. out. println("Исходные данные:");
System. out. print("Город Мэр Кол-во голосов\n");
for (i =0; i <date.size(); i ++){
vektor B=(vektor)date.get(i);
B.Print(1);}
System. out. println("Исходные данные:");
System. out. print("Город Мэр Кол-во голосов\n");
for (i =0; i <date2.size(); i ++){
vektor B=(vektor)date2.get(i);
B.Print(1);}
boolean k=date.addAll(coll);
System. out. println("Добавилась коллекция в вектор?"+k);
System. out. print("Город Мэр Кол-во голосов\n");
for (i =0; i <date.size(); i ++){
vektor B=(vektor)date.get(i);
B.Print(1);
}
vektor A= new vektor();
A.Enter();
date.add(2, A);
k=date.contains(A);
System. out. println("Содержит вектор date объект A"+k);
System. out. print("Город Мэр Кол-во голосов\n");
for (i =0; i <date.size(); i ++){
vektor B=(vektor)date.get(i);
B.Print(1);}
boolean m=date.addAll(2, coll);
System. out. println("Добавилась коллекция в вектор?"+m);
System. out. print("Город Мэр Кол-во голосов\n");
for (i =0; i <date.size(); i ++){
vektor B=(vektor)date.get(i);
B.Print(1);}
int g=date.capacity();
System. out. println("Объем"+g);
date.addElement(A);
k=date.contains(A);
System. out. println("Cодержится элемент в векторе?"+k);
k=date.containsAll(coll);
System. out. println("Cодержится коллекция в векторе?"+k);
g=date.capacity();
System. out. println("Объем"+g);
date.ensureCapacity(50);
g=date.capacity();
System. out. println("Объем"+g);
Vector<vektor> date3= new Vector<vektor>();
date3= (Vector)date.clone();
System. out. print("Город Мэр Кол-во голосов\n");
for (i =0; i <date3.size(); i ++){
vektor B=(vektor)date3.get(i);
B.Print(1);}
vektor[] obj= new vektor[date.size()];
date.copyInto(obj);
System. out. print("Город Мэр Кол-во голосов\n");
for (i =0; i <date.size(); i ++){
obj[ i ].Print(1);}
k=date.equals(A);
System. out. println("Cодержится элемент в векторе?"+k);
g=date.hashCode();
System. out. println("Хэш код вектора"+g);
k=date.isEmpty();
System. out. println("Пустой вектор?"+k);
date3.clear();
k=date3.isEmpty();
System. out. println("Очистелся вектор?"+k);
vektor F=(vektor)date.remove(1);
System. out. print("Город Мэр Кол-во голосов\n");
F.Print(1);
k=date.remove(A);
System. out. println("Удалился объект"+A.toString()+"?"+k);
k= date2.removeAll(coll);
System. out. println("Удалилась колекция?"+k);
date.add(A);
k=date.retainAll(coll);
System. out. println("Удалились все элементы кроме коллекции?"+k);
System. out. println("Элементы в коллекции");
System. out. print("Город Мэр Кол-во голосов\n");
Iterator it=coll.iterator();
while (it.hasNext()){
vektor E=(vektor)it.next();
E.Print(1);
}
System. out. println("Элементы в векторе");
System. out. print("Город Мэр Кол-во голосов\n");
for (i =0; i <date.size(); i ++){
vektor B=(vektor)date.get(i);
B.Print(1);
}
}
}
Дата добавления: 2015-10-29; просмотров: 63 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Результаты работы программы | | | Результаты работы программы |