Пятница, 19 Апреля 2024, 16:00

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Записи участника » zyxell [6]
Результаты поиска
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);
         }
     }
}
Форум игроделов » Записи участника » zyxell [6]
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг