Лекция 12. Контрольная работа Красс Александр СПбГУ ИТМО, 2008
2 Задание Разработать класс Fraction, для которого правильно бы выполнялся нижеприведённый код.
3 Задание Fraction frac1(5, 10); cout << frac1.ToChars() << endl; // 5/10 frac1.Reduce(); cout << frac1.ToChars() << endl; // 1/2 Fraction frac2(1.575); cout << frac2.ToChars() << endl; // 1 575/1000 Fraction frac3(4, 4); Fraction frac4(frac3.Add(frac1)); cout << frac4.ToChars() << endl; // 6/4 cout << frac4.GetIntegerPart() << endl; // 1 cout << (frac1.MultiplyBy(frac4)).ToChars() << endl; // 6/8 frac4.ExtractIntegerPart(); cout << frac4.ToChars() << endl; // 1 2/4 cout << frac4.GetProperFraction().ToChars() << endl; // 1 1/2 frac4.ConvertToProperFraction(); cout << frac4.ToChars() << endl; // 1 1/2
4 Как будет оцениваться задание? Каждая правильно реализованная функция – это баллы. Каждая функция вне зависимости от сложности оценивается в 10 баллов. Найдено место в программе, где стоит вставить/убрать const – -5 баллов. Найден член класса, для которого можно использовать более строгий модификатор доступа – -15 баллов. Функция неадекватно ведёт себя при некоторых данных пользователя – -5 баллов. Неэффективная реализация функции – -5 баллов. Утечка памяти – -20 баллов. Другой криминал оценивается от -1 до -100.
5 Showtime!
6 Спасибо за внимание Вопросы?