From 760af16e58b2a4716538b913280668683a9a6ee5 Mon Sep 17 00:00:00 2001 From: Siwat Sirichai Date: Tue, 17 Nov 2020 13:13:23 +0700 Subject: [PATCH] Add Assignment 12 --- Assignement12/.classpath | 10 +++ Assignement12/.project | 17 +++++ .../.settings/org.eclipse.jdt.core.prefs | 14 ++++ Assignement12/Lab12-Part-A.drawio | 1 + Assignement12/Lab12-Part-A.png | Bin 0 -> 15523 bytes Assignement12/Lab12-Part-B.drawio | 1 + Assignement12/Lab12-Part-B.png | Bin 0 -> 40357 bytes Assignement12/bin/A.class | Bin 0 -> 737 bytes Assignement12/bin/B.class | Bin 0 -> 753 bytes Assignement12/bin/BorderDataDisplay.class | Bin 0 -> 695 bytes Assignement12/bin/C.class | Bin 0 -> 781 bytes Assignement12/bin/Data.class | Bin 0 -> 2057 bytes Assignement12/bin/DataDisplay.class | Bin 0 -> 1073 bytes Assignement12/bin/HistogramDataDisplay.class | Bin 0 -> 1607 bytes Assignement12/bin/MaxDataDisplay.class | Bin 0 -> 1145 bytes Assignement12/bin/PartA.class | Bin 0 -> 3234 bytes Assignement12/bin/PartB.class | Bin 0 -> 1470 bytes Assignement12/src/A.java | 21 ++++++ Assignement12/src/B.java | 23 +++++++ Assignement12/src/BorderDataDisplay.java | 15 +++++ Assignement12/src/C.java | 22 ++++++ Assignement12/src/Data.java | 40 +++++++++++ Assignement12/src/DataDisplay.java | 19 ++++++ Assignement12/src/HistogramDataDisplay.java | 25 +++++++ Assignement12/src/MaxDataDisplay.java | 15 +++++ Assignement12/src/PartA.java | 63 ++++++++++++++++++ Assignement12/src/PartB.java | 26 ++++++++ 27 files changed, 312 insertions(+) create mode 100644 Assignement12/.classpath create mode 100644 Assignement12/.project create mode 100644 Assignement12/.settings/org.eclipse.jdt.core.prefs create mode 100644 Assignement12/Lab12-Part-A.drawio create mode 100644 Assignement12/Lab12-Part-A.png create mode 100644 Assignement12/Lab12-Part-B.drawio create mode 100644 Assignement12/Lab12-Part-B.png create mode 100644 Assignement12/bin/A.class create mode 100644 Assignement12/bin/B.class create mode 100644 Assignement12/bin/BorderDataDisplay.class create mode 100644 Assignement12/bin/C.class create mode 100644 Assignement12/bin/Data.class create mode 100644 Assignement12/bin/DataDisplay.class create mode 100644 Assignement12/bin/HistogramDataDisplay.class create mode 100644 Assignement12/bin/MaxDataDisplay.class create mode 100644 Assignement12/bin/PartA.class create mode 100644 Assignement12/bin/PartB.class create mode 100644 Assignement12/src/A.java create mode 100644 Assignement12/src/B.java create mode 100644 Assignement12/src/BorderDataDisplay.java create mode 100644 Assignement12/src/C.java create mode 100644 Assignement12/src/Data.java create mode 100644 Assignement12/src/DataDisplay.java create mode 100644 Assignement12/src/HistogramDataDisplay.java create mode 100644 Assignement12/src/MaxDataDisplay.java create mode 100644 Assignement12/src/PartA.java create mode 100644 Assignement12/src/PartB.java diff --git a/Assignement12/.classpath b/Assignement12/.classpath new file mode 100644 index 0000000..1cd9d95 --- /dev/null +++ b/Assignement12/.classpath @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/Assignement12/.project b/Assignement12/.project new file mode 100644 index 0000000..e0eb974 --- /dev/null +++ b/Assignement12/.project @@ -0,0 +1,17 @@ + + + Assignement12 + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/Assignement12/.settings/org.eclipse.jdt.core.prefs b/Assignement12/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..910a770 --- /dev/null +++ b/Assignement12/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,14 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=14 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=14 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning +org.eclipse.jdt.core.compiler.release=enabled +org.eclipse.jdt.core.compiler.source=14 diff --git a/Assignement12/Lab12-Part-A.drawio b/Assignement12/Lab12-Part-A.drawio new file mode 100644 index 0000000..dc85f14 --- /dev/null +++ b/Assignement12/Lab12-Part-A.drawio @@ -0,0 +1 @@ +7Vnfb9owEP5rkLYHJpJASh8htNsDraoxdc8mcROvTg455lf/+p2xnRACLWPNqDQkhOLP54t933c+K255Qbr6KsgsuYOI8pbbiVYtb9Ry3euuj/8KWGvAd7oaiAWLNOSUwIS9UAN2DDpnEc0rhhKASzargiFkGQ1lBSNCwLJq9gS8+tYZiWkNmISE19GfLJKJRvu9Tol/oyxO7JudjulJiTU2QJ6QCJZbkHfT8gIBIPVTugooV7GzcdHjbg/0FhMTNJPHDPh1z10nX4drcv/IbtvtRzIZt22YF4TPzYqHZrpybWOQL1nKSYat4RNkcmJ6HGwTzuIMn0OcBBUILKiQDMM3MB0SZoiGCePRmKxhrqaaSxI+29YwAcFe0C3hxid2C2mU4PoVi4kaiXAHUUFztHmw63d2oDuyqhiOSS4NEALnZJazabGMlIiYZUOQElJjZOKCy6GrgxF3Ch5R/xRSKsUaTewA30TXaN/tmGRYlkoqbJJtFVkREaPeuPBdEowPhuM/4dup8d1W2UkkGba8gRqOa9sVAIZAbogR8EwD4IBMjzLQimCc70BWFJw+yYOSyGckZFk83tiMuiXy3cRBQYBjn/gmaxIWRTRTdILE2WruFFEzwClv4tQb4g8jF3S+9Fo9nHiAbads40+ZCxlAhmshbEMjRWEsqRLHcZy/kkd1JVjmjyTe2r0/726N9xrLnG3Y0yzbzc45ieIUyeK05PSHonzUdmq8e3XevT0cczKl/AFyJhko/0Lb7nB/Nnp77nH09pti19vD7lCVu0+fdVYvAB0odXmO3txUb2x7LznfgCisAN4SRbepvd6viSK4lPaGSrvnX527tF8drOzBJctPz3L/Yxf2/qWuN0buucv69aWqf7R8P3tRr5/jB5ei3lBR7x5JttNpageon+ttTR9s5bjPFS9TgU+xFr9G5iWgNoaITuexHjYF4JRk1hDntmX7n24Z26miXCcytQo/fTdx3+X04HUb0lf3cnpojNxjS0VTe0fvcnr496eHNyTRP/Ppwakn/M1K0izKa1wjOFD3J9iaclBVfIiQKfOOr5u3TL1//3ZJo9rNyk4hxvfBXIT0tQmbSOARI6YnBH5fpAXlRLJFdXL7Qm3cPcAmF+wpoV89JBRurQe9JjNo+z5mx0/B8iFHes01RxviiyX+hRbqG8TH1oJ/pBQOfZdrQAtur8qhu/t152gx7DhyPP+dxIDN8o5Rm5cXtd7Nbw== \ No newline at end of file diff --git a/Assignement12/Lab12-Part-A.png b/Assignement12/Lab12-Part-A.png new file mode 100644 index 0000000000000000000000000000000000000000..66de72f230dd6e43782a9d91879da06efd4eb5f1 GIT binary patch literal 15523 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 literal 0 HcmV?d00001 diff --git a/Assignement12/Lab12-Part-B.drawio b/Assignement12/Lab12-Part-B.drawio new file mode 100644 index 0000000..c515d4a --- /dev/null +++ b/Assignement12/Lab12-Part-B.drawio @@ -0,0 +1 @@ +7Vrbbts4EP0aA90HB7rbfvQlSQukW2+drXf7xkiMRIQWDYpO5H79Dk3K1s2XpLKTBQQYhmY0HJE8Z4YzkDr2eJHecrSMvrIA045lBGnHnnQsa+B48C8Va6XwzJ5ShJwESmXuFDPyC2ulobUrEuCkYCgYo4Isi0qfxTH2RUGHOGcvRbNHRotPXaIQVxQzH9Gqdk4CESlt3zV2+s+YhFH2ZNPQdxYoM9aKJEIBe8mp7OuOPeaMCXW1SMeYyr3L9kWNu9lzdzsxjmNxygC/697NBg/231/+QvNb9jQ1Zl7XVV6eEV3pBV+nAsdBoucs1tlGgHIo9xOkB8r8p449ApUGzPSUeEPgkfbEACkSC3lpyhspEf9I9ZWrpX+1kbyepHlhrQX1fBxU0NktV6sStuK+thr86UeWd/PjpzCD6T1Z9v1v825GG8RDrIcGN7E7RN/TcObfTuar+YymPWWn9+4WswUWfA3jXnawm57GkmOKBHkuzg1pqoXbsVt3U0Zg1paho6Kv3WQx4TlFD2pJelAe0pIfyzniSK254gguckvcqTaMeQV7vEuwp0EmuB+OCaZVRNDpvZEKtll0ZPcvS4XeZROJYw5yqaRrXBmmdTCfSGGKOYF1Yt58jhl8PGbZJWaVCXFyknHtK6PnDSxb/ZtFt8Zledav8OwUgiUwK1HDOk0zMzPJyb+dgfbjfwJP3IvxxCllINt6I0/c/hFHzTHj0DGfY8ZXlE6QQBOSLClaV3iSvJAFRTFIo0cWi5m+IxFHlIQxXPsAsEwXo2fMBYGqcKhvCLYErR8RGtyhNVtJLIFB/lMmjSLGyS9wiwoE02nO8goWMzlSJyWOE7CZZtwySypYU8HwDiVCK3xGKVom5GG7jAXsOIlHTAi2KOS8GurKFeI0p6qyLztqSoklKzrqyBnlauO+t5+bBTK8Fnmrgnx3U4CnP5RmKB1o0uUJAOsVG2A4e8JjRpk8GGKmGAGZoKTKSEHxo9hLiWSJfBKHdxubibPTfNcbIVUMxj7STTKKSBDgWMLJBHBVYSeBWso42eyUO4If7OdY1s8uTHwMsrmT4SfNuRizGNaCyAZZDMR4wZIcNZgfDKDjRNDIW95pwFvnAt4+fhhQssFOYZx1cOabAF4AVBTvEL2XgE+6ZgV1u4q6XYMwRQ+YTllCBGHSP1e2JeTfC1zXOjGqz4StU4MtLNZYLQMk8Kc/VFg/M3DSxnWz0Gcwv1tcDyrYjxgPMG9P8+ZPc+etx3mmaxx9s1rJtWn9SKQ0fmafK62b1WKtzesXwt4+MbKbyOuHut8c9m1Gbz6jlxs0qzc4Dfftu4vGga/v0CDg0T0bYU0AHKjYl5xoY3+L/8FI+pC9Wu2M217tfOBesFernfC+Xi3EcisErDY71+WWqJ2SRJMvLeSutOf/RWhyal/nnKuyr75t/kwSwUKOFm0hcP5C4P1bu+pbwvYQOBIr/5vOru7NXJvYLwL9uzd21cReW8S3ifxtidwtfdxhOdWObvvFXKGjayKT1yJe/fRHdnS+qvZUqA85R+s7OOCh1qMSoC9wMwRwLS9U0bAtAeVY9pBgDnuS7BldqBAyD20iOVQhNnGG1PLKcc5Eq7ZAOB+4vWr5XwvuubrEfQXCa7pEFAT3LLMGs0JVUbIVbCY4IJZ5VVLVpYCzIPqUSy+HnMZMkMf1kNJvWbpqK5tzcrZ/ImetV5MWxN3H1+ojpN0X7Pb1fw== \ No newline at end of file diff --git a/Assignement12/Lab12-Part-B.png b/Assignement12/Lab12-Part-B.png new file mode 100644 index 0000000000000000000000000000000000000000..f07cddb7e73cbf281328443413eeba9b272c8a33 GIT binary patch literal 40357 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 literal 0 HcmV?d00001 diff --git a/Assignement12/bin/BorderDataDisplay.class b/Assignement12/bin/BorderDataDisplay.class new file mode 100644 index 0000000000000000000000000000000000000000..28fee5bd84aaedbba479cd90dcd3793b2aea385a GIT binary patch literal 695 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 literal 0 HcmV?d00001 diff --git a/Assignement12/bin/MaxDataDisplay.class b/Assignement12/bin/MaxDataDisplay.class new file mode 100644 index 0000000000000000000000000000000000000000..a30bb41f0706a90521181785677fd70d52511c28 GIT binary patch literal 1145 zcmZ`&+fEZv6kVq+3>}7x6sX8W@Yb zCK@e96F$IC@gu}_rZu)2ALh)QefC~w?X}l@|M~R{KmuDDd;;BRdAurJxoTHRd3mBC zAkf(q5a=k#&-WU|PVJ7*|kn1$FB$gvQAJ zkDz9D+dv;e3gfPUdzd40w^*+f=x<@(z|%30goX!f%+sk=K?5chIHi&jHSbX8=B9pA z$|&P38F+|C0=kl_=(v`{u>>N~y`+w1tZG=Hd;g3gE!{%{Pq4-b(y;<cCvgDafLz-IcF-6}lR?Asy%~rMywK{J`U4{v&;^z+}_|VQ= zef*}yxdyp=!Bcf^#3rXsp~w86VSMniy190HXR3~W2G<_O#_Rd$#RcwIsU-LC4fJEc z!yiPrf&ZS_ZOnT45f{Hb2VEZ7LDJ#n4YG42 dyUsQQo--PP?;Nve)3_HxLrR4NHhAR2<}X|x_u2pe literal 0 HcmV?d00001 diff --git a/Assignement12/bin/PartA.class b/Assignement12/bin/PartA.class new file mode 100644 index 0000000000000000000000000000000000000000..41edfb8e871acfea8fcc74eac1783199af463103 GIT binary patch literal 3234 zcma)8YjYD-7=BJJ&BaBQ7HYW^mO|U4O?u&?&_E@Pf`t~U#bQ9vZL=-GG%4wZi+8*s z_3j7#qT}d{KR}&HJ9hM|GtT(M-{5ahzrgsM-6XpyOk=0nJ$ugczVGwA?|b&_@ArQG z6~GWa55ObfpU{hDG60`|dPTpc_viHdT>qKrE5?i|&~zl5&zi#m-bi#xz?Ujyj4-?i zDe$97VB=UeZ=5d8PaDOv`gG0^XdWxf=(#Dqn3d0!NuPN+yC@JCvw|h)XkO3e1zIB) z#+;y&W-*(eOGKx_5ZI)k*@|Eqi)N~jUo?xQ8M9CfV6%WohS7pnN#YSYi;PC60@%v= zkuch@UC!^Iw8*Hnu#*d^FxsKXh22!e1+K_2dlc+NC$TcjaRDVVmQ2|HHlSNUqy{)4 zO?njcN@kV`i3r3M^wnlaL0~|^U~MKvih6O5321qMT$0n7U&iEUn!lM44kHo3P+dhP zZ!Vg~yn-V*N_3&b;%u>Vmo4;9FmWc+XXx{ZARZUk9*@Vhvy`OGMxt6_R!hdTk(id! zI3Gq5sQ^Yu$I5-Zy@Dt3Bulj*UFKM$Es+P8s0Ak!JS9bn*&t2|?4<8?{(=~@F*dKc z`*_hdfYSnxtnG-AQZ|<{ieZc+B%AMP1VL`lIlTxZH>3&nYzZFcq@`TcxS5XS+obMMjW zQI0&kx8gC5ytL*iR-t^GD>4u9A91L8xQt^xWgM5|QI30E3P=63AgKolR zp2KZ?xo8~i#TLXERMOMzAQmY;lAa_ba~iiu$t?5atdRPPXh~{G5;;X8ysu(By^J%Y zH&Mpf=I6>d&+)}F^fEFw#NzBg$-V~Vcs(e^)u0^T4_&Lcjf%JOWZ%YgZ|BQ-2QKlG z;TCq{4tBW|FVz$;)f6vP6o=$DOGWWFEVERc^!?O5Mbfb%;y7_Go!7=tzwLBX*D|-e+byUb6prz~?4}I}7rb6~N ztLVU&GH}lS3%qG>l{1sKg8XFK*CcOcnCB$uh6D0&Pt-tOH|S*tr2g$jssFfPuR1WV z8|ABloD{S&t6&dyvdd2LtLrMa&KDT4Bzw3Ll3!vKQGZzJ0=|}fU$4e!OM4k)TN!Uk z?`faE8bqRQIVkmBlN(m!B4KYkFu!`&4Xex1yACX%)_GIaYSgvT_FJ_aXN62w>?_tv zR@0WoPs)n4KdpBO@SS9HyBemQ(x`1$8Fy@L>c7=661U{w`~lK&;X-cQhYrr8-VM5e pb;;ZpIS;k`wsvssxJTl literal 0 HcmV?d00001 diff --git a/Assignement12/bin/PartB.class b/Assignement12/bin/PartB.class new file mode 100644 index 0000000000000000000000000000000000000000..f36092edb581f4ce35d76b5b9e0b4c7ad603ece4 GIT binary patch literal 1470 zcmaJ>ZF3S=6n-vm3+t*0gh;fFXtjkPqJ2qQqNye^h88fDluGT}1$M|9*v)JfjUPJG zerx|jzx!D~keM>$5AZMapL9Ca=PszBb;`iK=iYPfbIx;Kc=pd9PXQFs)({W~Z%Wr& z(GU`tx+m|;LRZ?I!mZ{#v*igyu2{C^EeixQ*}6bz)oGhLf`}OiBO-9TY}sbD-)oxg zmTY!Sfq2l&tMvL-#L zV+t`1GXh7{an0J>?aGHy%+mEu(>7h%O^+{iB#=^J%?X^!{1>*Y0DSOM0>>(He**Ar zdZ=8#lYa$v5-AO7ftd|!&vQDi>`mC86^Omk=s2yc&kIbiIBwf?CrsZHNQ`0g4=isx z-}G&CoI^_STQHEr1?F0Mo@{Ni4jDhz@f$zni-h(Q)%UD!q1KW%xyNt`?`ya`QMuZ~ zJt80>y7KU;!Cqm>f=-_e z@fvKC#d--A#Z`g%{QrJ*e1_{9t}z=v6FNHtVPFNT?2uiB+Er1%p@i9b6gLD;+^{{< zO-nmXTeCxP`D*%7F|9n@G_aw7!ak59`MH5FP$sl(?t3Mh9N5bxmH4WGTi6sZWV^lP ztU3f!>QJVn9NlJ@kWhNPR4vsu(iEwZZijuGcth6;h&F3D>N0w3k6KmW=tMCE^d4L9 zr83637JX-FUV&n-viC-CDS?y~Btj|RTC@pG9?RP{T!N?`G0Vm*brnLC)qkBDQNmJVj%A&Cc=#ZT;ypOM0^ znDY~HdqfsBY!N$(U+@*`Ohp3s@ikEb^s<8nr67I%fNv;;=&^>ol*0U7#<%#65jjla k_q5RH7dVgLb1F3rQp1#n#G!8<_#5-$FS-+G(l~(D3tbmIivR!s literal 0 HcmV?d00001 diff --git a/Assignement12/src/A.java b/Assignement12/src/A.java new file mode 100644 index 0000000..562e42e --- /dev/null +++ b/Assignement12/src/A.java @@ -0,0 +1,21 @@ + +public class A { + private int dataA; + public static boolean debug; + + public A(int a) { + if (A.debug) { + System.out.println("constructor A is being called!"); + } + this.dataA = a; + } + + public void f() { + + System.out.println("method f() from class A is being called"); + } + + public int g() { + return this.dataA + 1; + } +} diff --git a/Assignement12/src/B.java b/Assignement12/src/B.java new file mode 100644 index 0000000..0544b39 --- /dev/null +++ b/Assignement12/src/B.java @@ -0,0 +1,23 @@ + +public class B extends A { + private int dataB; + + public B(int a, int b) { + super(a); + if (A.debug) { + System.out.println("constructor B is being called!"); + } + this.dataB = b; + } + + @Override + public void f() { + + System.out.println("method f() from class B is being called"); + } + + @Override + public int g() { + return 2 * super.g() + dataB; + } +} diff --git a/Assignement12/src/BorderDataDisplay.java b/Assignement12/src/BorderDataDisplay.java new file mode 100644 index 0000000..29de8e9 --- /dev/null +++ b/Assignement12/src/BorderDataDisplay.java @@ -0,0 +1,15 @@ + +public class BorderDataDisplay extends DataDisplay { + + public BorderDataDisplay(String name, Data subject) { + super(name, subject); + } + + @Override + public void update() { + System.out.println("*".repeat(25)); + super.update(); + System.out.println("*".repeat(25)); + } + +} diff --git a/Assignement12/src/C.java b/Assignement12/src/C.java new file mode 100644 index 0000000..a3d4ce6 --- /dev/null +++ b/Assignement12/src/C.java @@ -0,0 +1,22 @@ + +public class C extends B { + private int dataC; + + public C(int a, int b, int c) { + super(a, b); + if (A.debug) { + System.out.println("constructor C is being called!"); + } + this.dataC = c; + } + + @Override + public void f() { + System.out.println("method f() from class B is being called"); + } + + @Override + public int g() { + return super.g() - 10 + dataC * 3; + } +} diff --git a/Assignement12/src/Data.java b/Assignement12/src/Data.java new file mode 100644 index 0000000..2c770df --- /dev/null +++ b/Assignement12/src/Data.java @@ -0,0 +1,40 @@ +import java.util.ArrayList; +import java.util.Arrays; + +public class Data { + + private ArrayList observers = new ArrayList(); + private ArrayList content; + + public Data() { + content = new ArrayList(); + } + + public int[] getContent() { + int[] result = new int[content.size()]; + for (int i = 0; i < result.length; i++) { + result[i] = content.get(i); + } + return result; + } + + public void addToContent(int x) { + content.add(x); + System.out.println("\nData: " + x + " is added."); + notifyAllObservers(); + } + + public String toString() { + return Arrays.toString(content.toArray()); + } + + public void attach(DataDisplay observer) { + observers.add(observer); + } + + public void notifyAllObservers() { + for (DataDisplay observer : observers) { + observer.update(); + } + } +} diff --git a/Assignement12/src/DataDisplay.java b/Assignement12/src/DataDisplay.java new file mode 100644 index 0000000..adfbc67 --- /dev/null +++ b/Assignement12/src/DataDisplay.java @@ -0,0 +1,19 @@ + +public class DataDisplay { + String name; + private Data dataToBeDisplayed; + + public DataDisplay(String name, Data subject) { + dataToBeDisplayed = subject; + this.name = name; + } + + public int[] getContent() { + return dataToBeDisplayed.getContent(); + } + + public void update() { + System.out.println(getClass() + ": " + name); + System.out.println("\t" + dataToBeDisplayed); + } +} diff --git a/Assignement12/src/HistogramDataDisplay.java b/Assignement12/src/HistogramDataDisplay.java new file mode 100644 index 0000000..7bfabff --- /dev/null +++ b/Assignement12/src/HistogramDataDisplay.java @@ -0,0 +1,25 @@ +import java.util.Arrays; + +public class HistogramDataDisplay extends DataDisplay { + + public HistogramDataDisplay(String name, Data subject) { + super(name, subject); + } + + @Override + public void update() { + System.out.println(getClass() + ": " + name); + int[] sortedArray = super.getContent(); + Arrays.sort(sortedArray); + int lastVal = -1; + for (int i : sortedArray) { + if (i == lastVal) + System.out.print("*"); + else { + System.out.format("%s%d\t*",(lastVal==-1)?"":"\n", i); + lastVal=i; + } + } + System.out.println(); + } +} diff --git a/Assignement12/src/MaxDataDisplay.java b/Assignement12/src/MaxDataDisplay.java new file mode 100644 index 0000000..2fffae2 --- /dev/null +++ b/Assignement12/src/MaxDataDisplay.java @@ -0,0 +1,15 @@ + +public class MaxDataDisplay extends DataDisplay { + int maxValue=0; + public MaxDataDisplay(String name, Data subject) { + super(name, subject); + } + @Override + public void update() { + System.out.println(getClass() + ": " + name); + for(int i : super.getContent()) this.maxValue = Math.max(this.maxValue, i); + System.out.println(this.maxValue); + + } + +} diff --git a/Assignement12/src/PartA.java b/Assignement12/src/PartA.java new file mode 100644 index 0000000..c535284 --- /dev/null +++ b/Assignement12/src/PartA.java @@ -0,0 +1,63 @@ + +public class PartA { + public static void main(String[] args) { + testConstructor(); + A a = new A(2); + A b = new B(3, 4); + A c = new C(5, 6, 7); + testF(a, b, c); + testG(a, b, c); + testA(); + testB(); + testC(); + } + private static void testF(A a, A b, A c) { + System.out.println("--- Test f() of A, B, C ---"); + a.f(); + System.out.println("------------------------------"); + b.f(); + System.out.println("------------------------------"); + c.f(); + System.out.println("------------------------------"); + } + private static void testG(A a, A b, A c) { + System.out.println("--- Test g() of A, B, C ------"); + System.out.println(a.getClass() + ": " + a.g()); + System.out.println("------------------------------"); + System.out.println(b.getClass() + ": " + b.g()); + System.out.println("------------------------------"); + System.out.println(c.getClass() + ": " + c.g()); + System.out.println("------------------------------"); + } + public static void testConstructor() { + A.debug = true; + A a = new A(2); + System.out.println("------------------------------"); + A b = new B(3, 4); + System.out.println("------------------------------"); + A c = new C(5, 6, 7); + System.out.println("------------------------------"); + A.debug = false; + } + + public static void testA() { + System.out.format("new A(2).g() -> %d, [expected] -> %d\n", new A(2).g(), 3); + System.out.format("new A(-1).g() -> %d, [expected] -> %d\n", new A(-1).g(), 0); + System.out.format("new A(-10).g() -> %d, [expected] -> %d\n", new A(-10).g(), -9); + System.out.format("new A(0).g() -> %d, [expected] -> %d\n", new A(0).g(), 1); + } + + public static void testB() { + System.out.format("new B(0, 0).g() -> %d, [expected] -> %d\n", new B(0, 0).g(), 2); + System.out.format("new B(-2, 3).g() -> %d, [expected] -> %d\n", new B(-2, 3).g(), 1); + System.out.format("new B(2, -3).g() -> %d, [expected] -> %d\n", new B(2, -3).g(), 3); + System.out.format("new B(4, 5).g() -> %d, [expected] -> %d\n", new B(4, 6).g(), 16); + } + + public static void testC() { + System.out.format("new C(0, 0, 0).g() -> %d, [expected] -> %d\n", new C(0, 0, 0).g(), -8); + System.out.format("new C(2, 4, 3).g() -> %d, [expected] -> %d\n", new C(2, 4, 3).g(), 9); + System.out.format("new C(-1, -3, -5).g() -> %d, [expected] -> %d\n", new C(-1, -3, 5).g(), 2); + System.out.format("new C(5, 2, 10).g() -> %d, [expected] -> %d\n", new C(5, 2, 10).g(), 34); + } +} diff --git a/Assignement12/src/PartB.java b/Assignement12/src/PartB.java new file mode 100644 index 0000000..64421e2 --- /dev/null +++ b/Assignement12/src/PartB.java @@ -0,0 +1,26 @@ +import java.util.Scanner; + +public class PartB { + public static void main(String[] args) { + Data d = new Data(); + DataDisplay display = new DataDisplay("General Display", d); + DataDisplay maxDisplay = new MaxDataDisplay("MAX-Display", d); + DataDisplay histogram = new HistogramDataDisplay("Histogram", d); + DataDisplay border = new BorderDataDisplay("Display-with-border", d); + d.attach(display); + d.attach(maxDisplay); + d.attach(histogram); + d.attach(border); + + Scanner kbd = new Scanner(System.in); + while (true) { + System.out.println("------------------------------"); + System.out.print("Enter an integer >= 0: "); + int x = kbd.nextInt(); + if (x < 0) + break; + d.addToContent(x); + } + System.out.println("--- FINISH ---"); + } +}