Write a class named Fraction that represents a fraction of two integers. Overload the following operators for this class:
- The + operator to add two fractions and return their sum as another fraction in reduced form.
- The - operator to subtract two fractions and return their difference as another fraction in reduced form.
- The * operator to multiply two fractions and return their product as another fraction in reduced form.
- The / operator to divide two fractions and return their quotient as another fraction in reduced form.
- The == operator to compare two fractions for equality and return true or false.
- All comparison operations (>,<,>=,<=)
- The ++ and -- operator that adds (or substracts) 1 to the fraction. implement both pre and post fix.
- The << operator to print a fraction to an output stream in the format “numerator/denominator”.
- The >> operator to read a fraction from an input stream by taking two integers as input.
- All operators should work on both sides on fractions and floats type variables. on a float var you need use up to 3 digits beyond the desimal point for acuracy.
דוגמאות לפעולת המחלקה ניתן למצוא ב-Demo.cpp.
בשלב א עליכם לכתוב כותרות ובדיקות-יחידה מקיפות.
כיתבו את כל הקבצים הדרושים כך שהפקודות הבאות יעבדו ללא שגיאות:
make demo && ./demo
make test && ./test
מומלץ גם להריץ:
make tidy
make valgrind
שימו לב: אין לשנות קבצים קיימים, אלא רק להוסיף קבצים חדשים. מערכת הבדיקה האוטומטית מעתיקה מחדש את כל הקבצים הקיימים על-גבי הפתרון שאתם מגישים, ולכן כל שינוי שתעשו בקבצים הקיימים יימחק.
בהצלחה