Результаты поиска
| |
zyxell | Дата: Суббота, 19 Января 2013, 11:59 | Сообщение # 1 | Тема: Написать меню, позволяющее осуществить проверку всех методов |
был не раз
Сейчас нет на сайте
| ок) вставил из вики получилосьКод import java.util.ArrayList; import java.util.Collections; import java.util.List;
public class ChooseSortContainer extends AbstractContainer<Float>{
public ChooseSortContainer(List<Float> list) { super(list); }
@Override public void sort(int[] numbers) { int min, temp; for (int index = 0; index < numbers.length; index++){ min = index; for (int scan = index+1; scan < numbers.length-1; scan++) if (numbers[scan] < numbers[min]) min = scan; // Swap the values temp = numbers[min]; numbers[min] = numbers[index]; numbers[index] = temp; Collections.sort(list); } } @Override public void forEach() { List<Float> newList = new ArrayList<Float>(); for(Float var : list){ newList.add((float) Math.log(var)); } list = newList; } } и Код import java.util.ArrayList; import java.util.Collections; import java.util.List;
public class BubbleContainer extends AbstractContainer<Float> {
public BubbleContainer(List<Float> list) { super(list); }
@Override public void sort(int[] arr, int i, int j) { int t = arr[i]; arr[i] = arr[j]; arr[j] = t; } void bubblesort(int[] arr){ for(int i = arr.length-1 ; i >= 0 ; i--){ for(int j = 0 ; j < i ; j++){ if( arr[j] > arr[j+1] ) sort(arr, j, j+1); } } Collections.sort(list); } @Override public void forEach() { List<Float> newList = new ArrayList<Float>(); for(Float var : list){ newList.add((float) Math.sqrt(var)); } list = newList; } } но теперь ошибку выдает что public class BubbleContainer и public class ChooseSortContainer не абстрактные( я так понял вот сдесь надо что то подправить Код import java.util.List;
public abstract class AbstractContainer<T extends Comparable<T>>{ protected List<T> list; public abstract void sort(); public abstract void forEach();
public AbstractContainer(List<T> list) { this.list = list; }
@Override public String toString(){ return list.toString(); } } только что?
|
|
| |
zyxell | Дата: Суббота, 19 Января 2013, 04:14 | Сообщение # 2 | Тема: Написать меню, позволяющее осуществить проверку всех методов |
был не раз
Сейчас нет на сайте
| Ок) а если взять твой код, и подставить туда только сортировку пузырьком, сортировку выбором,без моего так сказать патча, как избавиться от ошибки getItems() говорит что "Cannot find symbol", это используется в сортировках
|
|
| |
zyxell | Дата: Пятница, 18 Января 2013, 19:22 | Сообщение # 3 | Тема: Написать меню, позволяющее осуществить проверку всех методов |
был не раз
Сейчас нет на сайте
| Exception in thread "main" java.lang.NullPointerException at java.util.ArrayList.<init>(ArrayList.java:151) at entrypoint.ChooseSortContainer.sort(ChooseSortContainer.java:17) at entrypoint.EntryPoint.main(EntryPoint.java:37) Java Result: 1 эт я так понял ненормально?
|
|
| |
zyxell | Дата: Пятница, 18 Января 2013, 17:40 | Сообщение # 4 | Тема: Написать меню, позволяющее осуществить проверку всех методов |
был не раз
Сейчас нет на сайте
| Код import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.Iterator; import java.util.List;
public class ChooseSortContainer extends AbstractContainer<Float>{
public ChooseSortContainer(List<Float> list) { super(list); }
@Override public void sort() { List<Float> items = new ArrayList<Float>(getItems()); for (int i = 0; i < items.size() - 1; ++i) { int min = i; for (int j = i + 1; j < items.size(); ++j) if (items.get(min).compareTo(items.get(j)) > 0) min = j; if (min != i) { Float temporaryVariable = items.get(i); items.set(i, items.get(min)); items.set(min, temporaryVariable); Collections.sort(list); } } } @Override public void forEach() { List<Float> newList = new ArrayList<Float>(); for(Float var : list){ newList.add((float) Math.log(var)); } list = newList; } } Ругается getItems() говорит что "Cannot find symbol"
Добавлено (18.01.2013, 17:40) --------------------------------------------- Вроде получилось избавиться от ошибки у меня получилось вот так Код package entrypoint; import java.util.ArrayList; import java.util.List; import java.util.Scanner;
public class EntryPoint {
/** * @param args */ public static void main(String[] args) { List<Float> testList1 = new ArrayList<Float>(); List<Float> testList2 = new ArrayList<Float>(); for (int i = 0; i < 10; i++) { testList1.add((float) i); testList2.add((float) i); }
ChooseSortContainer ctn1 = new ChooseSortContainer(testList1); BubbleContainer ctn2 = new BubbleContainer(testList2);
Scanner sc = new Scanner(System.in); String cmd; System.out.println("Enter command\n" + "Avail:\n" + "sort ctn1 - sort ChooseSortContainer\n"+ "sort ctn2 - sort BubbleSortContainer\n"+ "each ctn1 - each BubbleSortContainer\n"+ "each ctn2 - each BubbleSortContainer\n");
while (true) { cmd = sc.nextLine(); AbstractContainer last;
if (cmd.equals("sort ctn1")) { ctn1.sort(); last = ctn1; } else if (cmd.equals("sort ctn2")) { ctn2.sort(); last = ctn2; } else if (cmd.equals("each ctn1")) { ctn1.forEach(); last = ctn1; } else if (cmd.equals("each ctn2")) { ctn2.forEach(); last = ctn2; } else if (cmd.equals("exit")) break; else { System.out.println("Unknown command"); continue; }
System.out.println("After perform: " + last.toString());
}
}
} Код package entrypoint; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; import java.util.List;
interface Operation<T> { public T operate(T value); } interface Sortable { public void sort(); } interface Container<T extends Comparable<T>> extends Sortable { public Collection<T> getItems(); public void setItems(Collection<T> items); public void foreach(); }
public abstract class AbstractContainer<T extends Comparable<T>> implements Container<T>, Iterable<T>{ protected List<T> list; private Operation<T> operation; private Collection<T> items;
public abstract void sort(); public abstract void forEach();
public AbstractContainer(List<T> list) { this.items = items; this.operation = operation; this.list = list; }
@Override public String toString(){ return list.toString(); } @Override public void foreach() { if (operation == null) return; Collection<T> result = new ArrayList<T>(items.size()); for (T item : getItems()) { result.add(operation.operate(item)); } setItems(result); } @Override public void setItems(Collection<T> items) { this.items = items; } @Override public Collection<T> getItems() { return items; } @Override public Iterator<T> iterator() { return items.iterator(); } } Код package entrypoint; import java.util.ArrayList; import java.util.Collections; import java.util.List;
public class BubbleContainer extends AbstractContainer<Float> {
public BubbleContainer(List<Float> list) { super(list); }
@Override public void sort() { List<Float> items = new ArrayList<Float>(getItems()); for (int i = 0; i < items.size() - 1; ++i) for (int j = i + 1; j < items.size(); ++j) if (items.get(i).compareTo(items.get(j)) > 0) { Float temporaryVariable = items.get(i); items.set(i, items.get(j)); items.set(j, temporaryVariable); Collections.sort(list); } }
@Override public void forEach() { List<Float> newList = new ArrayList<Float>(); for(Float var : list){ newList.add((float) Math.sqrt(var)); } list = newList; }
} Код package entrypoint; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.Iterator; import java.util.List;
public class ChooseSortContainer extends AbstractContainer<Float>{
public ChooseSortContainer(List<Float> list) { super(list); }
@Override public void sort() { List<Float> items = new ArrayList<Float>(getItems()); for (int i = 0; i < items.size() - 1; ++i) { int min = i; for (int j = i + 1; j < items.size(); ++j) if (items.get(min).compareTo(items.get(j)) > 0) min = j; if (min != i) { Float temporaryVariable = items.get(i); items.set(i, items.get(min)); items.set(min, temporaryVariable); Collections.sort(list); } } } @Override public void forEach() { List<Float> newList = new ArrayList<Float>(); for(Float var : list){ newList.add((float) Math.log(var)); } list = newList; } } только при запуске выводит run: Enter command Avail: sort ctn1 - sort ChooseSortContainer sort ctn2 - sort BubbleSortContainer each ctn1 - each BubbleSortContainer each ctn2 - each BubbleSortContainer а сам процесс запуска run... думает долго, короче ничего и не запускает
Сообщение отредактировал zyxell - Пятница, 18 Января 2013, 17:47 |
|
| |
zyxell | Дата: Пятница, 18 Января 2013, 13:23 | Сообщение # 5 | Тема: Написать меню, позволяющее осуществить проверку всех методов |
был не раз
Сейчас нет на сайте
| Спасибо, что откликнулись) Честно признаюсь с языком Java только вчера познакомился, поэтому я 0 в этой среде, и поэтому набираюсь наглости попросить вас дописать полностью как это будет выглядеть, а преподавателю я пожалуй передам ваши комментарии)незлитесь пожалуйста Nancy, ну по крайней мере на меня, я от меню, хочу только чтобы оно запускалось и хоть что-нибудь выдавало
|
|
| |
zyxell | Дата: Пятница, 18 Января 2013, 10:23 | Сообщение # 6 | Тема: Написать меню, позволяющее осуществить проверку всех методов |
был не раз
Сейчас нет на сайте
| Прошу помочь написать меню, позволяющее осуществить проверку всех методов класса. Условие самой задачи:Создать абстрактный базовый класс Container c виртуальными методами sort() и поэлементной обработки контейнер foreach(). Разработать производные класс Bubble (пузарек) и Choice (выбор). В первом классе сортировка реализуется методом пузырька, а поэлементная обработка состоит в извлечении квадратного корня. Во втором классе сортировка реализуется методом выбора, а поэлементная обработка – вычисление логарифма.Программа должна содержать меню, позволяющее осуществить проверку всех методов класса. Реализовать задание разделив каждый класс на интерфейс и реализацию. программа:Код import java.util.*; interface Operation<T> { public T operate(T value); } interface Sortable { public void sort(); } interface Container<T extends Comparable<T>> extends Sortable { public Collection<T> getItems(); public void setItems(Collection<T> items); public void foreach(); } abstract class AbstractContainer<T extends Comparable<T>> implements Container<T>, Iterable<T> { private Collection<T> items; private Operation<T> operation; public AbstractContainer(Collection<T> items, Operation<T> operation) { this.items = items; this.operation = operation; } @Override public void foreach() { if (operation == null) return; Collection<T> result = new ArrayList<T>(items.size()); for (T item : getItems()) { result.add(operation.operate(item)); } setItems(result); } @Override public void setItems(Collection<T> items) { this.items = items; } @Override public Collection<T> getItems() { return items; } @Override public Iterator<T> iterator() { return items.iterator(); } @Override public String toString() { return this.getClass().getCanonicalName() + "{" + "items=" + items + '}'; } } class BubbleSortContainer<T extends Comparable<T>> extends AbstractContainer<T> { public BubbleSortContainer(Collection<T> items, Operation<T> operation) { super(items, operation); } @Override public void sort() { List<T> items = new ArrayList<T>(getItems()); for (int i = 0; i < items.size() - 1; ++i) for (int j = i + 1; j < items.size(); ++j) if (items.get(i).compareTo(items.get(j)) > 0) { T temporaryVariable = items.get(i); items.set(i, items.get(j)); items.set(j, temporaryVariable); } setItems(items); } } class SelectionSortContainer<T extends Comparable<T>> extends AbstractContainer<T> { public SelectionSortContainer(Collection<T> items, Operation<T> operation) { super(items, operation); } @Override public void sort() { List<T> items = new ArrayList<T>(getItems()); for (int i = 0; i < items.size() - 1; ++i) { int min = i; for (int j = i + 1; j < items.size(); ++j) if (items.get(min).compareTo(items.get(j)) > 0) min = j; if (min != i) { T temporaryVariable = items.get(i); items.set(i, items.get(min)); items.set(min, temporaryVariable); } } setItems(items); } } class DefaultSortContainer<T extends Comparable<T>> extends AbstractContainer<T> { public DefaultSortContainer(Collection<T> items, Operation<T> operation) { super(items, operation); } @Override public void sort() { List<T> items = new ArrayList<T>(getItems()); Collections.sort(items); setItems(items); } } class SquareRootOperation implements Operation<Double> { @Override public Double operate(Double value) { return Math.sqrt(value); } } class LogarithmOperation implements Operation<Double> { @Override public Double operate(Double value) { return Math.log(value); } } public class Tutorial0006 { private static Random random = new Random(); private static Collection<Double> getRandomList() { final int numberOfItems = 5 + random.nextInt(4); Collection<Double> items = new ArrayList<Double>(numberOfItems); for (int i = 0; i < numberOfItems; ++i) items.add(random.nextInt(10000) / 100.); return items; } private static <T extends Comparable<T>> Container<T> getRandomContainerImplementation(Collection<T> items, Operation<T> ... operations) { switch (random.nextInt(3)) { case 0: return new BubbleSortContainer<T>(items, operations[0]); case 1: return new SelectionSortContainer<T>(items, operations[1]); } return new DefaultSortContainer<T>(items, null); } public static void main(String[] args) { SquareRootOperation squareRootOperation = new SquareRootOperation(); LogarithmOperation logarithmOperation = new LogarithmOperation(); for (int i = 0; i < 10; ++i) { Container<Double> container = getRandomContainerImplementation(getRandomList(), squareRootOperation, logarithmOperation); System.out.println("Source: " + container); container.sort(); System.out.println("Sorted: " + container); container.foreach(); System.out.println("Foreached: " + container); } } }
|
|
| |
|