Calendar
Контрольная работа
в среде программирования C++
Среда программирования: C++
Название работы: Calendar
Вид работы: Контрольная работа
Описание: Project 1: Calendar
Project Description
Extend the Gregorian class developed in class to handle time of day as well and verify that the class developed will pass the Boost Unit Tests provided.
Time will be represented internally as the fractional part of a Julian Day Number (see: http://en.wikipedia.org/wiki/Julian_day_number). You should handle time input and output in hours (0-23), minutes (0-59), and seconds (0-59). Remember that a Julian Day Number with a fractional part of .0 refers to noon of that day.
Your class should have a minimum of:
1. Jd class.
a. Default constructor that initializes to new (accurate to a second).
b. A literal constructor that takes a real number.
c. All six relational operators.
i. ==
ii. !=
iii. <
iv. <=
v. >
vi. >=
d. Methods/operators for adding/subtracting: seconds, minutes, hours, days, weeks, years (orbital).
e. Difference operator.
2. Gregorian class.
a. Default constructor that initializes to now (accurate to a second).
b. Gregorian date constructor (no time part).
c. Gregorian date constructor (with time initialization as well).
d. Methods/operators for adding/subtracting:
i. seconds, minutes, hours, days, weeks (these might be shared with Jd class).
ii. +(years). Whole numbers only. The result should be the same day in the new year. The exception is a starting date on February 29 on a leap year and the ending date is a non-leap year. In this case, you would use the largest day in that month (February 28).
iii. +(month) Whole numbers only. If you add a month the day should be exactly the same as the original day. The exception is if the day in the starting month is greater than the day in the ending month. In this case, you would use the largest day in that month. (January 31, 2012 plus one month is February 29, 2012)
e. A ‘to_string’ method that returns a string containing the Gregorian date and 12 hour time of day (e.g. ‘Friday, September 27 2013 CE, 11:05:03 am’).
f. Several supporting functions will help with the above functionality. They may include the following functions: is_gregorian_leap_year(), days_in_month(), jd_to_hms(), hms_to_days(), month_name().
3. Your code should pass all the boost unit tests provided to cover the new operations. Your functions/classes should be written to pass the boost unit tests provided. If the boost unit tests fail, those operations will not be awarded full marks. You shall not modify the boost unit tests provided as a starting point. Passing the boost unit tests does not guarantee that you will earn all marks for that function if the function is not done properly
4. Create a Julian class equivalent to the Gregorian class you have just created.
5. Create the Islamic conversion algorithms to convert from the Jd class to Islamic and from Islamic to Jd. To test your algorithm, you must pass the ut_Khronos_13_islamic_concepts.cpp and ut_Khronos_14_islamic_conv.cpp file.
6. Create the rest of the Islamic class equivalent to the Gregorian class that you have created. You should pass the ut_Khronos_15_ islamic _class.cpp file
7. Create the Hebrew conversion algorithms to convert from the Jd class to Hebrew and from Islamic to Jd. To test your algorithm, you must pass the ut_Khronos_16_hebrew_concepts.cpp and ut_Khronos_17_hebrew_conv.cpp file.
8. Create the rest of the Hebrew class equivalent to the Gregorian class that you have created. You should pass the ut_Khronos_18_ hebrew _class.cpp file
9. BONUS 5%: Create the Vulcan conversion algorithms along with the rest of the Vulcan class equivalent to the Gregorian class that you have created. You should pass all three ut_Khronos_19 to 21 files.
10. You must set the test phases that you would like us to mark in the file ut_Khronos.hpp. Test phases set to true will be graded.
Tips:
1. Start off by setting all the test phases in ut_Khronos.hpp to false except for the first one. Then as you implement the code determine which phases test your functionality and set them to true.
2. Implement the project in the general order of the test phases.
3. You must not edit any of the ut_Khronos_dd.hpp files except for the ut_Khronos.hpp file.
Grading Criteria
Functional Requirements
Class Diagram (submit a jpeg, tiff) 10%
ut_Khronos_01_concepts (1-3) 10%
ut_Khronos_02_gregorian_concepts (4-6) 10%
ut_Khronos_03_gregorian_to_jd (7-8) 5%
ut_Khronos_04_jd_to_gregorian (9) 5%
ut_Khronos_06_jd_class (10-19) 10%
ut_Khronos_07_gregorian_class (20-37) 5%
ut_Khronos_08_day_of_the_week (38) 5%
ut_Khronos_09_julian_concepts (39-41) 5%
ut_Khronos_10_julian_conv (42-43) 5%
ut_Khronos_11_julian_class (44-61) 5%
ut_Khronos_12_mixed_classes (62-67) 5%
ut_Khronos_13_islamic_concepts (68-70) 1%
ut_Khronos_14_islamic_conv (71-72) 2%
ut_Khronos_15_islamic_class (73-85) 2%
ut_Khronos_16_hebrew_concepts (86) 1%
ut_Khronos_17_hebrew_conv (87-88) 2%
ut_Khronos_18_hebrew_class (89-97) 2%
ut_Khronos_19_vulcan_concepts (98-100) Bonus:1%
ut_Khronos_20_vulcan_conv (101-102) Bonus:2%
ut_Khronos_21_vulcan_class (103-114) Bonus:2%
Gregorian conversion full test (115) 5%
Additional FULL tests (116-119) 5%
Non-functional requirements
Memory leaks detected Up to -20%
The class diagram is NOT submitted as a jpeg or tiff file Up to -10%
Failure to respect submission requirements Up to -10%
Test phase not set properly in ut_Khronos.hpp Up to -20%
Penalties from C & C++ Grading Guide v2.2.0
A guide to code/comment style can be found at C++ Style
Various
Late submission
• One to five days late
• More than five days late
-10%/day
-100%
Total 100%
Submission Requirements
1. Submit entire Visual Studio project directory to Fanshawe Online
a. Delete all debug and release directories.
b. Submit in a .ZIP, .7z archive file.
Год: 2019
Данный заказ (контрольная работа) выполнялся нашим сайтом в 2019-м году, в рамках этого заказа была разработана программа в среде программирования C++. Если у Вас похожее задание на программу, которую нужно написать на C++, либо на другом языке программирования, пожалуйста заполните форму, приведённую ниже, после чего Ваше задание в первую очередь рассмотрит наш программист, выполнявший в 2019-м году этот заказ, если он откажется, то Ваше задание оценят другие наши программисты в течение 48-и часов, если оценка нужна срочно, просим Вас оставить пометку об этом - напишите в тексте задания фразу "СРОЧНЫЙ ЗАКАЗ".
Viber:
+79374242235
Telegram: kursovikcom ВКонтакте: kursovikcom WhatsApp +79374242235 E-mail: info@kursovik.com Skype: kursovik.com |