From ec083c625485356340a4ae29651cd5ac4bd55964 Mon Sep 17 00:00:00 2001 From: k0rrluna Date: Tue, 11 Mar 2025 17:24:33 +0300 Subject: [PATCH] datalab2 --- DataLabs/lab2/ArrayBag.class | Bin 0 -> 1911 bytes DataLabs/lab2/ArrayBag.java | 102 +++++++++++++ DataLabs/lab2/ArrayBagDemo.java | 241 +++++++++++++++++++++++++++++++ DataLabs/lab2/BagInterface.class | Bin 0 -> 524 bytes DataLabs/lab2/BagInterface.java | 48 ++++++ DataLabs/lab2/Lab3.docx | Bin 0 -> 42446 bytes 6 files changed, 391 insertions(+) create mode 100644 DataLabs/lab2/ArrayBag.class create mode 100644 DataLabs/lab2/ArrayBag.java create mode 100644 DataLabs/lab2/ArrayBagDemo.java create mode 100644 DataLabs/lab2/BagInterface.class create mode 100644 DataLabs/lab2/BagInterface.java create mode 100644 DataLabs/lab2/Lab3.docx diff --git a/DataLabs/lab2/ArrayBag.class b/DataLabs/lab2/ArrayBag.class new file mode 100644 index 0000000000000000000000000000000000000000..6160f43c908dfa17905da238317362a3549caf86 GIT binary patch literal 1911 zcmZ`)+in|G6kW$-dunHLzqCo5q$WUpX&Xq=0=bwtZi6gLQ^{^n8w#D+lgPyxr_Q({ zJohIk5<)zXmpl}Sv=S100KdTtNPI!n64pL;VwX@wIp^q{z1P}%?Y+mp|MSal02YxB z!w18J-$DREg`WHNLwl-XyIWJM8~2@}rx08yyJat>V8r5UA)G)#j>|2m%SGH&`%SB_OIvu%QPRR&7j0FM6_5oz9tvv zEDU3WQIvOA>XnL);*LB-ER4y6S>C|ZYw<|);+>nrJ7 zxxyEj^v!f8Tez*znW?(Fp6z;TcBSqZRCt)?nQDn%-MO;s+^BDFIJJVkQQ?iyX6m(? z<9d0m9R*PbaJph{bi-fnvq6 zYsZe{J5#K>o?Ui#sijxd1r@sZ|5V77@&);%k>(c)bElb7r>}DDS}xExMft+{YQ0u; zR>~qp=W!ohmaagQ#qmMmE%>>!X?VUsHGPQjpPi@A>@e;lh;vs+=({93d1ec7y~vvn zY478HHt`H9VI0Ctj2@yhG5RZfhv@l3i;woUlCfFpQ6s^oe z&+s!0w47y#fF2t5(%>?tnhs;!#UYUR8Rh{G4KBe02Dq|=xk{k#aF^RoF?|fvzYo75 zE!hz4KBl32fsX+DehO&B_aiNsT!{RRQ!fG|A*mCPq@bMxP0>i!m9Bi#s0 zh7iI86+X{XRO1^^p{Cq3WSPa4Cd)>X45PPex(MUQ@_Ueyid*#PP#_wDvfK2u5WyYz$F!fmZF$Fv#^c$dLTi6$j-&Q{J?6n&UPUs4Mdna(qZ{iDCz8lusJ zc`_6@S*Gg implements BagInterface { + + private T[] t; + private int size; + private int capacity; + private static final int DEFAULT_CAPACITY = 25; + + + public ArrayBag(int capacity) { + this.size = 0; + this.capacity = capacity; + this.t = (T[]) new Object[capacity]; + + } + public ArrayBag() { + this(DEFAULT_CAPACITY); + } + + public int getCurrentSize() { + return size; + } + + public boolean isEmpty() { + return size == 0; + } + + public boolean add(T newEntry) { + if (isFull()) { + return false; + } + t[size] = newEntry; + size++; + return true; + } + + public T remove() { + if (isEmpty()) { + return null; + } + T temp = t[size - 1]; + t[size - 1] = null; + size--; + return temp; + } + + public boolean remove(T anEntry) { + int index = getIndexOf(anEntry); + if (index >= 0) { + t[index] = t[size - 1]; + t[size - 1] = null; + size--; + return true; + } + return false; + } + + public void clear() { + while(!isEmpty()) { + t[size - 1] = null; + size--; + } + } + + public int getFrequencyOf(T anEntry) { + int temp = 0; + for(int i = 0; i < size; i++) { + if(t[i] == anEntry) { + temp++; + } + } + return temp; + } + + public boolean contains(T anEntry) { + if(getFrequencyOf(anEntry) > 0) { + return true; + } else { + return false; + } + } + + public T[] toArray() { + T[] newArray = (T[]) new Object[size]; + for(int i = 0; i < size; i++) { + newArray[i] = t[i]; + } + return newArray; + } + + private int getIndexOf(T anEntry) { + for(int i = 0; i < size; i++) { + if(t[i] == anEntry) { + return i; + } + } + return -1; + } + + public boolean isFull() { + return capacity == size; + } +} diff --git a/DataLabs/lab2/ArrayBagDemo.java b/DataLabs/lab2/ArrayBagDemo.java new file mode 100644 index 0000000..46252bf --- /dev/null +++ b/DataLabs/lab2/ArrayBagDemo.java @@ -0,0 +1,241 @@ +/** A demonstration of the class ArrayBag + @author Frank M. Carrano + @version 4.0 +*/ +public class ArrayBagDemo +{ + public static void main(String[] args) + { + String[] contentsOfBag = {"A", "A", "B", "A", "C", "A"}; + // Tests on an empty bag + BagInterface aBag = new ArrayBag<>(contentsOfBag.length); + System.out.println("Testing an initially empty bag:"); + testIsEmpty(aBag, true); + String[] testStrings1 = {"", "B"}; + testFrequency(aBag, testStrings1); + testContains(aBag, testStrings1); + testRemove(aBag, testStrings1); + // Adding strings + System.out.println("Adding " + contentsOfBag.length + + " strings to an initially empty bag with" + + " the capacity to hold more than " + + contentsOfBag.length + " strings:"); + testAdd(aBag, contentsOfBag); + + // Tests on a bag that is not empty + testIsEmpty(aBag, false); + String[] testStrings2 = {"A", "B", "C", "D", "Z"}; + testFrequency(aBag, testStrings2); + testContains(aBag, testStrings2); + + // Removing strings + String[] testStrings3 = {"", "B", "A", "C", "Z"}; + testRemove(aBag, testStrings3); + System.out.println("\nClearing the bag:"); + aBag.clear(); + testIsEmpty(aBag, true); + displayBag(aBag); + + // Filling an initially empty bag to capacity + System.out.println("\nTesting an initially empty bag that " + + " will be filled to capacity:"); + aBag = new ArrayBag(7); + String[] contentsOfBag2 = {"A", "B", "A", "C", "B", "C", "D"}; + testAdd(aBag, contentsOfBag2); + + System.out.println("Try to add another string to the full bag:"); + if (aBag.add("another string")) + System.out.println("Added a string beyond the bag's capacity: ERROR!"); + else + System.out.println("The method add cannot add another string: OK"); + } // end main + + // Tests the method add. + private static void testAdd(BagInterface aBag, String[] content) + { + System.out.print("Adding "); + for (int index = 0; index < content.length; index++) + { + aBag.add(content[index]); + System.out.print(content[index] + " "); + } // end for + System.out.println(); + + displayBag(aBag); + } // end testAdd + // Tests the two remove methods. + private static void testRemove(BagInterface aBag, String[] tests) + { + for (int index = 0; index < tests.length; index++) + { + String aString = tests[index]; + if (aString.equals("") || (aString == null)) + { + // test remove() + System.out.println("\nRemoving a string from the bag:"); + String removedString = aBag.remove(); + System.out.println("remove() returns " + removedString); + } + else + { + // test remove(aString) + System.out.println("\nRemoving \"" + aString + "\" from the bag:"); + boolean result = aBag.remove(aString); + System.out.println("remove(\"" + aString + "\") returns " + result); + } // end if + + displayBag(aBag); + } // end for + } // end testRemove + // Tests the method isEmpty. + // correctResult indicates what isEmpty should return. + private static void testIsEmpty(BagInterface aBag, boolean correctResult) + { + System.out.print("Testing isEmpty with "); + if (correctResult) + System.out.println("an empty bag:"); + else + System.out.println("a bag that is not empty:"); + + System.out.print("isEmpty finds the bag "); + if (correctResult && aBag.isEmpty()) + System.out.println("empty: OK."); + else if (correctResult) + System.out.println("not empty, but it is empty: ERROR."); + else if (!correctResult && aBag.isEmpty()) + System.out.println("empty, but it is not empty: ERROR."); + else + System.out.println("not empty: OK."); + System.out.println(); + } // end testIsEmpty + // Tests the method getFrequencyOf. + private static void testFrequency(BagInterface aBag, String[] tests) + { + System.out.println("\nTesting the method getFrequencyOf:"); + for (int index = 0; index < tests.length; index++) + { + String aString = tests[index]; + if (!aString.equals("") && (aString != null)) + { + System.out.println("In this bag, the count of " + tests[index] + + " is " + aBag.getFrequencyOf(tests[index])); + } // end if + } // end for + } // end testFrequency + + // Tests the method contains. + private static void testContains(BagInterface aBag, String[] tests) + { + System.out.println("\nTesting the method contains:"); + for (int index = 0; index < tests.length; index++) + { + String aString = tests[index]; + if (!aString.equals("") && (aString != null)) + { + System.out.println("Does this bag contain " + tests[index] + + "? " + aBag.contains(tests[index])); + } // end if + } // end for + } // end testContains + // Tests the method toArray while displaying the bag. + private static void displayBag(BagInterface aBag) + { + System.out.println("The bag contains " + aBag.getCurrentSize() + + " string(s), as follows:"); + Object[] bagArray = aBag.toArray(); + for (int index = 0; index < bagArray.length; index++) + { + System.out.print(bagArray[index] + " "); + } // end for + + System.out.println(); + } // end displayBag +} // end ArrayBagDemo +/* + Testing an initially empty bag: + Testing isEmpty with an empty bag: + isEmpty finds the bag empty: OK. + + + Testing the method getFrequencyOf: + In this bag, the count of B is 0 + + Testing the method contains: + Does this bag contain B? false + + Removing a string from the bag: + remove() returns null + The bag contains 0 string(s), as follows: + + + Removing "B" from the bag: + remove("B") returns false + The bag contains 0 string(s), as follows: + + Adding 6 strings to an initially empty bag with the capacity to hold more than 6 strings: + Adding A A B A C A + The bag contains 6 string(s), as follows: + A A B A C A + Testing isEmpty with a bag that is not empty: + isEmpty finds the bag not empty: OK. + + + Testing the method getFrequencyOf: + In this bag, the count of A is 4 + In this bag, the count of B is 1 + In this bag, the count of C is 1 + In this bag, the count of D is 0 + In this bag, the count of Z is 0 + + Testing the method contains: + Does this bag contain A? true + Does this bag contain B? true + Does this bag contain C? true + Does this bag contain D? false + Does this bag contain Z? false + + Removing a string from the bag: + remove() returns A + The bag contains 5 string(s), as follows: + A A B A C + + Removing "B" from the bag: + remove("B") returns true + The bag contains 4 string(s), as follows: + A A C A + + Removing "A" from the bag: + remove("A") returns true + The bag contains 3 string(s), as follows: + A A C + + Removing "C" from the bag: + remove("C") returns true + The bag contains 2 string(s), as follows: + A A + + Removing "Z" from the bag: + remove("Z") returns false + The bag contains 2 string(s), as follows: + A A + + Clearing the bag: + Testing isEmpty with an empty bag: + isEmpty finds the bag empty: OK. + + The bag contains 0 string(s), as follows: + + + Testing an initially empty bag that will be filled to capacity: + Adding A B A C B C D + The bag contains 7 string(s), as follows: + A B A C B C D + Try to add another string to the full bag: + The method add cannot add another string: OK + */ + /* + Exception in thread "main" java.lang.SecurityException: Attempt to create a bag whose capacity exceeds 3 + at ArrayBag.(ArrayBag.java:38) + at ArrayBagDemo.main(ArrayBagDemo.java:12) + +*/ diff --git a/DataLabs/lab2/BagInterface.class b/DataLabs/lab2/BagInterface.class new file mode 100644 index 0000000000000000000000000000000000000000..6e4b165ae50881b3291e8b51279b146e48add26a GIT binary patch literal 524 zcmZ`#%TB^T6g`8|0wRJ^-ybmD$lh0?MiLSe77!P@8q3g>lqn8V68tn5et;ikyiAiu zscvTGo^$U#XU^x>`v-t4oVqA6)Ne)DQ%35s2&9WmhUP>pL?;$1?DStIGB6B{P@20` zYpKj2dXo$r-0v~C(focoGfP`P(J4kF29H0iZ@BP@tq!7436pA?cldBo^_Dpj!TkN?pmhnWsNDnX)*h}4{1o8(4oL9RXSKmR4_ z5N=iZH)-EdcuA)Z#7O^GN o3ExH|uXk+yn{T3J=XSA|_qD0dTidgbgPcF4-I>A>j;+$kH=iPG8vp +{ + /** Gets the current number of entries in this bag. + @return The integer number of entries currently in the bag. */ + public int getCurrentSize(); + + /** Sees whether this bag is empty. + @return True if the bag is empty, or false if not. */ + public boolean isEmpty(); + + /** Adds a new entry to this bag. + @param newEntry The object to be added as a new entry. + @return True if the addition is successful, or false if not. */ + public boolean add(T newEntry); + + /** Removes one unspecified entry from this bag, if possible. + @return Either the removed entry, if the removal. + was successful, or null. */ + public T remove(); + + /** Removes one occurrence of a given entry from this bag. + @param anEntry The entry to be removed. + @return True if the removal was successful, or false if not. */ + public boolean remove(T anEntry); + + /** Removes all entries from this bag. */ + public void clear(); + + /** Counts the number of times a given entry appears in this bag. + @param anEntry The entry to be counted. + @return The number of times anEntry appears in the bag. */ + public int getFrequencyOf(T anEntry); + + /** Tests whether this bag contains a given entry. + @param anEntry The entry to locate. + @return True if the bag contains anEntry, or false if not. */ + public boolean contains(T anEntry); + + /** Retrieves all entries that are in this bag. + @return A newly allocated array of all the entries in the bag. + Note: If the bag is empty, the returned array is empty. */ + public T[] toArray(); +} // end BagInterface diff --git a/DataLabs/lab2/Lab3.docx b/DataLabs/lab2/Lab3.docx new file mode 100644 index 0000000000000000000000000000000000000000..a29266cc5bd98086a23f509e6789edfeccc1bb3c GIT binary patch literal 42446 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 ! z11^I4jrhq=P1onD$zbX~;q?@(xBIkISF`_E`OJ9AY7FWW-RXaLIUnfdpLRfD}k)3*lMV|7gQhyDk_jK!~tA zE=<0_t{S~0Wq*G6U;OifXF^heaFAAOr+&}QIl^sh8)HIy$`##q-c$oc=>`~R_Hhp zBqNe!ZDHVj=w8+V|F_7{x#-kFmdPKt(JG(92u`1_ZkPmsi%$}9T{8Ecg)OxiegAJq z;Q}@fkQ4Gdz`x9h_rMVdn~nk91@d1Z!n2K`3{dAS99)f|UXB(n4}SI>)Rq1wppT`g z-Ubk=z|RE;Mg8$908AP?TiChq@&453fv@JcYG?q<;y}h7?H@2KtgcJH0#^T`ft&+3 zd%%gG*8e9{m^7^JDv+