Автор: Пользователь скрыл имя, 22 Ноября 2012 в 18:38, лабораторная работа
работа 3-го варианта
Вариант 3 3
Постановка задачи. 3
Описание структуры классов. 3
Описание методов классов и спецификация локальных переменных. 3
Класс Lab2 3
Класс WorkWithArr 3
Класс WorkWithString 3
Таблица тестов. 3
Результаты тестирования. 4
Исходный код. 4
Класс Lab2 4
Класс WorkWithArr 5
Класс WorkWithString 7
Литература 9
Министерство образования и науки Российской Федерации
ИРКУТСКИЙ ГОСУДАРСТВЕНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
факультет кибернетики
кафедра Вычислительной техники
ОТЧЕТ
к лабораторным работам по дисциплине
объектно-ориентированное |
Разработка классов и их использование |
(наименование темы)
Выполнил студент группы |
ЭВМб-11-1 |
||||
шифр группы |
подпись |
Фамилия И. О. | |||
Проверил |
|||||
должность |
подпись |
Фамилия И. О. |
Иркутск 2012 г.
Оглавление
Вариант 3 3
Постановка задачи. 3
Описание структуры классов. 3
Описание методов классов и спецификация локальных переменных. 3
Класс Lab2 3
Класс WorkWithArr 3
Класс WorkWithString 3
Таблица тестов. 3
Результаты тестирования. 4
Исходный код. 4
Класс Lab2 4
Класс WorkWithArr 5
Класс WorkWithString 7
Литература 9
Задание
Вариант 3
Описание структуры классов
Описание методов классов и спецификация локальных переменных
Класс Lab2
main() – метод для запуска и работы с командной строкой
Класс WorkWithArr
createObj() – статический метод для создания объекта класса с проверкой ввода длины массива, возвращающий ссылку на созданный объект
entered – строка для запоминания ввода с объекта класса scanner
genArray() – метод генерирующий массив
i – счётчик
arrSort() – метод сортирующий массив
i,j – счётчик
n – запоминает элемент массива
Класс WorkWithString
partOfSentence() – метод проверяющий принадлежность строки к предложению
delThirdWord() – метод удаляющий каждое третье слово в предложении
i,j – счётчик
n – счётчик слов
Таблица тестов
№ |
Входные данные |
Выходные данные | |||
arrLength |
partOfText |
Сообщение 1 |
Сообщение 2 |
Сообщение 3 | |
1 |
0 |
Эйн |
[] |
Эйн - является частью предложения |
Я не , каким оружием вестись Третья война, но Четвёртой будут палки и . Эйнштейн |
2 |
5 |
палки и камни |
[5, 8, 10, 16, 18] |
палки и камни - является частью предложения |
Я не , каким оружием вестись Третья война, но Четвёртой будут палки и . Эйнштейн |
3 |
-1 |
третья |
Была введена отрицательная
длина массива. |
третья – не является частью предложения |
Я не , каким оружием вестись Третья война, но Четвёртой будут палки и . Эйнштейн |
Результаты тестирования
Тест №1
Тест №2
Тест №3
Исходный код
Класс Lab2
package lab2;
import java.util.Scanner;
/**
*
* @author Администратор
*/
public class Lab2 {
//public static WorkWithArr refer;
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
WorkWithArr refer;
WorkWithArr CopiedObj=new WorkWithArr(10); //создаём обект класса WorkWithArr, для проверки конструктора копирования
refer=WorkWithArr.createObj(
WorkWithString Task2=new WorkWithString(); //создаём обект класса WorkWithArr
refer.genArray(); //вызов метода для генерации массива типа int
refer.arrSort(); //сортировка массива типа int
Task2.partOfSentence(); //определяет
является ли частью часть
Task2.delThirdWord(); //удаляет
каждое третье слово из
}
}
Класс WorkWithArr
package lab2;
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;
/**
*
* @author Администратор
*/
public class WorkWithArr {
private int[] intArray;
private int arrLength;
/**
* Конструктор WorkWithArr создаёт объект для работы с массивами
* @param arrLength - длина массива
*/
public WorkWithArr(int arrLength){
this.arrLength=arrLength;
}
/**
* конструктор WorkWithArr присваивает 5 по умолчанию полю arrLength
*/
public WorkWithArr(){
this(5);
}
/**
* конструктор копирования. В качестве параметра копируемый экземпляр
*/
public WorkWithArr(WorkWithArr copyable){
this.arrLength=copyable.
}
/**
* статический метод для
* на созданный объект
*/
public static WorkWithArr createObj(WorkWithArr CopiedObj){
String entered=null;
System.out.println("Введите длину массива. Или default - по умолчанию(5). copy - для копирования с другого экземпляра");
try{
Scanner sc=new Scanner(System.in);//создание объекта класса Scanner для ввода в консоли
entered=sc.nextLine();
WorkWithArr Task1=new WorkWithArr(Integer.parseInt(
return Task1;
}catch(Exception e){
if("default".equals(entered)){
WorkWithArr Task1=new WorkWithArr();
return Task1;
}else{
if("copy".equals(entered)){
WorkWithArr Task1=new WorkWithArr(CopiedObj);
return Task1;
}else{
WorkWithArr Task1=new WorkWithArr();
System.out.println("длина массива была автоматически выбрана по умолчанию(5)");
return Task1;
}
}
}
}
/*
* Генерация массива
*/
public void genArray(){
try{
intArray=new int[arrLength]; //так назначается длина массива
Random rand=new Random();
for (int i = 0; i < intArray.length; i++) {
intArray[i]=rand.nextInt(20);
}
}catch(java.lang.
System.out.println("Была введена отрицательная длина массива");
}
}
/**
* сортировка
*/
public void arrSort(){
try {
int n,i,j;
for (i = 0; i < intArray.length; i++) {
for (j = i+1; j < intArray.length; j++) {
if (intArray[i]>intArray[j]) {
n=intArray[i];
intArray[i]=intArray[j];
intArray[j]=n;
}
}
}
System.out.println(Arrays.
} catch (Exception e) {
System.out.println(e+" - Массив не был создан!");
}
}
}
Класс WorkWithString
package lab2;
import java.util.Scanner;
/**
* Класс для работы со строками
* @author Администратор
*/
public class WorkWithString {
private boolean itIsWord;
private String text="Я не знаю, каким оружием будет вестись Третья мировая война, но в Четвёртой будут использоваться палки и камни. Эйнштейн";
private String partOfText="Третья мировая война";
/**
* Конструктор создаёт объект, проверяющий
принадлежит ли введённая
* @param partOfText - подстрока
*/
WorkWithString(String partOfText){
this.partOfText=partOfText;
}
/*
* Конструктор по умолчанию
*/
WorkWithString(){
this("Третья мировая война");
}
/*
* Метод проверяющий
*/
public void partOfSentence(){
System.out.println(text);
Scanner sc=new Scanner(System.in,"CP1251");//
partOfText=sc.nextLine();
if (text.indexOf(partOfText)!=-1) {//indexOf возвращает -1 если символ или строка не входит в исходную строку
System.out.println(partOfText+
}else{
System.out.println(partOfText+
}
}
/*
* Метод удаляющий каждое третье слово в тексте
*/
public void delThirdWord(){
int n=0,i=0,j=0;
while (i!=text.length()){
if ((text.charAt(i)!=' ')&&(text.charAt(i)!=',')&&(
if (itIsWord==false){
n++;
j=i; //запоминаем индекс первого символа в слове
}
itIsWord=true;
if ((i==text.length()-1)&&(n==3))
text=text.substring(0,j);
System.out.println(i);
i=text.length()-1;
}
}else{
itIsWord=false;
if (n==3) {
n=0;
text=text.substring(0,j)+text.
i=j;
}
}
i++;
}
System.out.println(text); //выводит преобразованную строку
}
}
Литература