2014-02-10 2 views
-1

У меня есть следующий проект, но человек, который его установил, не имеет большого смысла. Я сделал около 60% программы, и это просто не так, и я хотел бы проверить, что думают другие люди, о которых они думают.Вопрос о выпуске Java Project

Для этой части проекта вам предлагается реализовать класс IntegerSet. Набор должен быть представлен массивом булевых. I-й элемент будет истинным тогда и только тогда, когда i находится в множестве. Таким образом, наибольшее целое число, которое может быть элементом множества, определяется размером массива.

Вы должны указать следующие методы: Конструктор, имеющий единственный целочисленный аргумент domainMax и создающий экземпляр IntegerSet, элементами которого могут быть любые неотрицательные целые числа, не превышающие domainMax. Первоначально набор должен быть пустым. Вы можете предположить, что аргумент всегда будет больше нуля.

Метод addElement, который принимает неотрицательное целое число в качестве аргумента и вставляет его в набор. Если элемент превышает максимальный размер домена для набора, максимальный размер домена должен быть увеличен для его размещения. Если элемент уже присутствует, набор не изменяется. Вы можете предположить, что метод никогда не будет вызван с отрицательным аргументом.

Статический союз методов, который принимает два множества в качестве своих аргументов и возвращает новый набор, являющийся объединением двух множеств. Обратите внимание, что два набора, заданные в качестве аргументов, могут иметь разные максимальные значения домена; результирующий союз должен иметь, какой бы ни был максимальный из этих двух доменных максимумов.

Статическое пересечение методов, которое принимает два набора в качестве своих аргументов и возвращает новый набор, являющийся пересечением двух множеств. Обратите внимание, что два набора, заданные в качестве аргументов, могут иметь разные максимальные значения домена; результирующее пересечение должно иметь значение, меньшее из двух доменных максимумов меньше.

  1. Что подразумевается под словом "set" Я не могу найти что-либо относящееся к этому проекту.
  2. Как бы я взял два объекта с возражением в объединении и пересечении, если методы внутри объекта instanced. Это не имеет никакого смысла для меня.
  3. Что мне делать, чтобы хранить целые множества, поскольку их нужно адаптировать к размеру.
+2

Извините, но что именно вы спрашиваете? Просьба представить вашу попытку так далеко, чтобы мы могли видеть, что вы имеете в виду лучше. – initramfs

+1

* «Я думаю, что это слово« набор », которое меня заводит, поскольку на Java не установлено.» [[Нет?] (Http://docs.oracle.com/javase/7/docs/ api/java/util/Set.html) –

+2

Здравствуйте, добро пожаловать на сайт! Основываясь на вашей истории подачи, у вас, похоже, есть некоторые проблемы, которые задают хорошие вопросы для StackOverflow. Я рекомендую вам взглянуть на это - http://stackoverflow.com/help/how-to-ask - и вернуться назад, когда у вас есть конкретный вопрос, связанный с программированием. – admdrew

ответ

2

Спецификации выглядят довольно хорошо для меня. Они означают Set как в «Set Theory». Одним из способов представления набора целых чисел, хотя и неэффективным с точки зрения хранения, является использование массива булевых. Это вполне разумное упражнение.

Очевидно, что для этого проекта было бы лучше использовать Set<Integer>, но это было бы ошибкой. Это упражнение по программированию, которое забавно.

Как всегда, сломайте это на управляемые части. Я:

  1. Создать класс
  2. Написать конструктор. Это приведет вас к правильным переменным-членам.
  3. Написать метод addElement

Эти вещи должны быть довольно легко и, возможно, вы получите больше понимания. Когда у вас есть эта работа над методами объединения и пересечения. Если у вас все еще есть проблемы, вернитесь сюда!

Имейте в виду, что если вы добавите значение 3, дважды установите его, он будет установлен только один раз. (Определение множеств). Так что ваш метод будет выглядеть следующим образом (имейте в виду, что это не 100% правильное определение):

public void addElement(int element) { 
    myArray[element] = true; 
} 

Так что, когда вы звоните addElement(3); второй или третий раз, она не изменяет состояние множества как является правильным.

+0

Я создал класс и конструктор, как сказано в спецификации. Проблема, о которой я думаю, «Set», я так смущен ею. Я смотрел на это и играл с кодом всего около 7 часов, и я не могу двигаться дальше, поскольку я не понимаю, что кормит и как его изменить. – Softey

+0

Отметьте мое редактирование @Softey –

+0

Ah k. Вот как я сделал это в своем оригинале, но у меня проблема с массивами, которые являются фиксированным размером, поскольку я должен изменить свой массив, чтобы он соответствовал наибольшему числу. Поскольку массивы всегда имеют фиксированный размер, это создает мое замешательство, поскольку оно не должно быть массивом, который используется. Я могу использовать метод Arrays.copyOF, но это не преподавалось, поэтому его не следует использовать. – Softey

Смежные вопросы