代写CSE1OOF/CSE4OOF Programming Assessment代写Java程序

CSE1OOF/CSE4OOF Programming Assessment

Create an object-oriented design from a problem description, and implement as a working Java program

Assigned to students 2 September 2024

Due Sunday 6 October @ 11:55pm (end of Week 9)

Worth 20% of your final marks

Late penalty 5% per day

You will, using object-oriented principles, design a set of interrelated classes and implement them as a Java program. Do you have the time?

Specifically, you will create and document a program for converting, storing, and modifying date and time values in a variety of different formats.

Part I: Date, Time, and DateWithTime (10 marks)

You will implement three classes Date, Time, and DateWithTime. A date consists of a day, a month, and a year; a time consists of hours, minutes, and seconds. Create these three classes with the appropriate variables. For now, just implement one constructor and accessor/mutator methods as needed.

Part II: Instantiate classes with keyboard input (30 marks)

You will implement a class, DateTimeTester, that can be run (that is, has a main function) and is able to instantiate Date, Time, and DateWithTime objects (that is, they are in the same package).

You will also implement the .toString() method in each of the original classes so that it prints out the date, time, or date+time in a reasonable format.

Implement the main function such that you can create a Date, a Time, and a DateWithTime with keyboard input. You should be able to choose which type of object you are creating.

Part III: Write functions to instantiate objects with random values (30 marks)

You will implement a single-parameter constructor for each of Date, Time, and DateWithTime that takes a single boolean value. If that value is false, the object will be initialized with reasonable default values. If that value is true, the object will be initialized with random values in the appropriate ranges.

You will then modify DateTimeTester to enable the user to create random Dates, Times, and DateWithTimes.

Part IV: Make your Dates and Times as flexible as possible (30 marks)

There are many possible date formats: DD/MM/YYYY (i.e. 02/09/2024), DD/MM/YY (02/09/24), MM/DD/YYYY (09/02/2024), MM/DD/YY (09/02/24), 02 September 2024, 02 SEP 2024, September 02 2024, Sep 2 2024, and more besides. Dates are complicated, as we all know.

You will implement a single-parameter constructor for Date that takes a string and, assuming it is in a “reasonable” format, successfully creates the appropriate date. (Note that you might not always be correct; DD/MM/YYYY and MM/DD/YYYY are sometimes interchangeable – as with 02 September (2/9 or 9/2 are both valid values) – and sometimes not – as with 20 September (20/9 can only mean 20 September, it cannot mean the 9th of the 20th. Make reasonable assumptions and document them in the comments.)

Rubric

Part I: Date, Time, and DateWithTime (10 marks)

- Classes are named appropriately 1 marks

- Classes have at least one constructor 1 marks each

- Classes have the necessary variables 1 marks each

- Classes have the appropriate getters and setters 1 marks each

Part II: Instantiate classes with keyboard input (30 marks)

- DateTimeTester exists 1 mark

o DateTimeTester contains a valid main method 2 marks

- Time.toString() exists 1 mark

o Time.toString prints out a time in the 24-hour format hh:mm:ss 2 marks

- Date.toString() exists 1 mark

o Date.toString prints out a date in the format dd Month yyyy 2 marks

- DateWithTime.toString() exists 1 mark

o DateWithTime prints out a date + time in the format dd Month yyyy hh:mm:ss 2 marks

- Date, Time, DateWithTime, and DateTimeTester are in the same package 2 marks

- DateTimeTester displays a “menu” that enables the user to choose which type of object they want to create 4 marks

- This top menu works appropriately 4 marks

- DateTimeTester then asks the user for keyboard input to create the appropriate class 4 marks

- DateTimeTester then prints out the created class object, or an error as appropriate 4 marks

Part III: Write functions to instantiate objects with random values (30 marks)

- Date(boolean) exists 2 marks

- Time(boolean) exists 2 marks

- DateWithTime(boolean) exists 2 marks

- Default Date construction yields a Date with a reasonable value 4 marks

- Default Time construction yields a Time with a reasonable value 4 marks

- Default DateWithTime yields a DateWithTime with a reasonable value 4 marks

- Random Date construction yields a Date with a reasonable value 4 marks

- Random Time construction yields a Time with a reasonable value 4 marks

- Random DateWithTime yields a DateWithTime with a reasonable value 4 marks

Part IV: Make your classes as flexible as possible (30 marks)

- Time(String) exists 1 mark

- Date(String) exists 1 mark

- DateWithTime(String) exists 1 mark

- Handle Times in the 12 hour + am/pm format (i.e., 4:29 am) 3 marks

o Handle such times with and without a space before am/pm 1 mark

o Handle such times with capitalized or lowercase am/pm 1 mark

- Handle Times in the 24 hour format (i.e., 0429) 3 marks

- Handle Dates in the dd/mm/yyyy format (i.e. 03/09/2024) 3 marks

- Handle Dates in the dd MMM yyyy format (i.e. 3 SEP 2024) 3 marks

- Handle Dates in the dd Month yyyy format (i.e. 3 September 2024) 3 marks

- Handle DateWithTimes in any combination of the preceding formats (i.e. 3 September 2024 4:29AM, 03/09/2024 0429, and so on…) 10 marks


热门主题

课程名

mktg2509 csci 2600 38170 lng302 csse3010 phas3226 77938 arch1162 engn4536/engn6536 acx5903 comp151101 phl245 cse12 comp9312 stat3016/6016 phas0038 comp2140 6qqmb312 xjco3011 rest0005 ematm0051 5qqmn219 lubs5062m eee8155 cege0100 eap033 artd1109 mat246 etc3430 ecmm462 mis102 inft6800 ddes9903 comp6521 comp9517 comp3331/9331 comp4337 comp6008 comp9414 bu.231.790.81 man00150m csb352h math1041 eengm4100 isys1002 08 6057cem mktg3504 mthm036 mtrx1701 mth3241 eeee3086 cmp-7038b cmp-7000a ints4010 econ2151 infs5710 fins5516 fin3309 fins5510 gsoe9340 math2007 math2036 soee5010 mark3088 infs3605 elec9714 comp2271 ma214 comp2211 infs3604 600426 sit254 acct3091 bbt405 msin0116 com107/com113 mark5826 sit120 comp9021 eco2101 eeen40700 cs253 ece3114 ecmm447 chns3000 math377 itd102 comp9444 comp(2041|9044) econ0060 econ7230 mgt001371 ecs-323 cs6250 mgdi60012 mdia2012 comm221001 comm5000 ma1008 engl642 econ241 com333 math367 mis201 nbs-7041x meek16104 econ2003 comm1190 mbas902 comp-1027 dpst1091 comp7315 eppd1033 m06 ee3025 msci231 bb113/bbs1063 fc709 comp3425 comp9417 econ42915 cb9101 math1102e chme0017 fc307 mkt60104 5522usst litr1-uc6201.200 ee1102 cosc2803 math39512 omp9727 int2067/int5051 bsb151 mgt253 fc021 babs2202 mis2002s phya21 18-213 cege0012 mdia1002 math38032 mech5125 07 cisc102 mgx3110 cs240 11175 fin3020s eco3420 ictten622 comp9727 cpt111 de114102d mgm320h5s bafi1019 math21112 efim20036 mn-3503 fins5568 110.807 bcpm000028 info6030 bma0092 bcpm0054 math20212 ce335 cs365 cenv6141 ftec5580 math2010 ec3450 comm1170 ecmt1010 csci-ua.0480-003 econ12-200 ib3960 ectb60h3f cs247—assignment tk3163 ics3u ib3j80 comp20008 comp9334 eppd1063 acct2343 cct109 isys1055/3412 math350-real math2014 eec180 stat141b econ2101 msinm014/msing014/msing014b fit2004 comp643 bu1002 cm2030
联系我们
EMail: 99515681@qq.com
QQ: 99515681
留学生作业帮-留学生的知心伴侣!
工作时间:08:00-21:00
python代写
微信客服:codinghelp
站长地图