Вот задание:
1. Найти объект (студента) в, которого лучшие оценки и вывести информацию о данном объекте на консоль;
2. Найти объект (студента) в, которого плохие оценки и вывести информацию о данном объекте на консоль;
3. Для каждого объекта вывести месяц, в котором студент имел лучшую оценку
3. Для каждого объекта вывести месяц, в котором студент имел худшую оценку.
4. Создать объект, в который записать сумму всех других объектов;
5. Создать объект, в который записать разницу объекта, у которого самые высокие оценки и объекта у которого самые низкие оценки.
И вот мой код, там все работает кроме первых 3 заданий:
http://pastebin.com/2JVp7DSz
Другие языки программирования и технологии
Здравствуйте всем! Помогите пожалуйста найти ошибку в моем коде
Вы не сильно обидитесь, если я скажу, что этот код практически весь - одна сплошная ошибка и желательно его переписать с нуля? В коде столько мусора, что даже не понятно, что конкретно не работает. Ниже я дам ссылку на шаблон начального кода.
В вашем коде слишком много перегруженных операторов, при том, что вы НЕ УМЕЕТЕ их перегружать:
1. Оператор istream >> загружает данные в диалоговом режиме (такое я встречаю первый раз). Я НЕ ПОНИМАЮ, почему вместо него не написать обычную member-функцию.
2. Всяческие +, -и остальные арифметические не несут вообще никакой смысловой нагрузки. Кстати оператор + вообще перегружен неправильно, но это мелочи, если он не нужен вообще.
3. Из операторов сравнения нужно перегружать ТОЛЬКО ОДИН >, все остальные очевидным образом выражаются через него, например A < B = !(B > A), a A != B = (A > B) || (B > A). Но перегружать такие операторы имеет смысл только если вы собираетесь сортировать свои классы, что вам в этой задаче не нужно.
4. Наличие метода print наряду с ostream << способно только рассмешить.
Мне искренне не понятно, зачем поддерживать поле "средний балл", когда параллельно хранится полный набор оценок. Сеттеры и геттеры для приватных полей объекта по сути своей тоже не нужны. Почему вместо типа string используется char * - тайна за 7ю печатями. Функции mostLess и mostMore как не static-методы объекта Student - это просто нонсенс, и то, что они возвращают не индекс найденного объекта, а копию этого объекта - это вообще бред.
Смотрите на заготовку внимательнее: http://ideone.com/zNhgF8
Я не знаю, как вам удобнее получать исходные данные, поэтому сделал как удобно мне. Обратите особое внимание на применение friend и const. Не использовать const в местах, где не предполагается изменение объекта - это на грани ошибки. От вас требуется написать несколько функций, аналогичных avg и ваша задача будет решена.
В вашем коде слишком много перегруженных операторов, при том, что вы НЕ УМЕЕТЕ их перегружать:
1. Оператор istream >> загружает данные в диалоговом режиме (такое я встречаю первый раз). Я НЕ ПОНИМАЮ, почему вместо него не написать обычную member-функцию.
2. Всяческие +, -и остальные арифметические не несут вообще никакой смысловой нагрузки. Кстати оператор + вообще перегружен неправильно, но это мелочи, если он не нужен вообще.
3. Из операторов сравнения нужно перегружать ТОЛЬКО ОДИН >, все остальные очевидным образом выражаются через него, например A < B = !(B > A), a A != B = (A > B) || (B > A). Но перегружать такие операторы имеет смысл только если вы собираетесь сортировать свои классы, что вам в этой задаче не нужно.
4. Наличие метода print наряду с ostream << способно только рассмешить.
Мне искренне не понятно, зачем поддерживать поле "средний балл", когда параллельно хранится полный набор оценок. Сеттеры и геттеры для приватных полей объекта по сути своей тоже не нужны. Почему вместо типа string используется char * - тайна за 7ю печатями. Функции mostLess и mostMore как не static-методы объекта Student - это просто нонсенс, и то, что они возвращают не индекс найденного объекта, а копию этого объекта - это вообще бред.
Смотрите на заготовку внимательнее: http://ideone.com/zNhgF8
Я не знаю, как вам удобнее получать исходные данные, поэтому сделал как удобно мне. Обратите особое внимание на применение friend и const. Не использовать const в местах, где не предполагается изменение объекта - это на грани ошибки. От вас требуется написать несколько функций, аналогичных avg и ваша задача будет решена.
Сергей Сумцов
Я не обижусь) мне наоборот приятно что вы увидели мои ошибки., перегрузка операторов стоит в виде демонстрации, в задании не надо применять их, только некоторые
Сергей Сумцов
Скажите а как написать ф-цию которая находит объект (студента) в, которого лучшие оценки и вывести информацию о данном объекте на консоль??
А теперь вместо "все работает кроме" напиши конкретно, что происходит, когда ты запускаешь соответствующие функции и чем это тебя не устраивает. Мы не телепаты, а подробно копать твои проблемы при том, что ты это уже делала и просто можешь сказать, но тебе лень... нам тоже лень.
Да, и еще было бы неплохо объяснить, что такое
Student &Student::operator+=(const Student& sPD)
и остальные операторы. Что будет, если сложить студента Иванова со студентом Петровым и отнять от них студента Сидорова? В чем логика такой операции?
Да, и еще было бы неплохо объяснить, что такое
Student &Student::operator+=(const Student& sPD)
и остальные операторы. Что будет, если сложить студента Иванова со студентом Петровым и отнять от них студента Сидорова? В чем логика такой операции?
Сергей Сумцов
перегрузка операторов стоит в виде демонстрации, в задании не надо применять их, только некоторые
Похожие вопросы
- Помогите пожалуйста найти ошибку, с++
- Помогите, пожалуйста, найти ошибки в коде. Нужно выбрать из массива минимальное значение и вывести индексы его позиции.
- Помогите пожалуйста найти ошибку в задаче (Язык программирования Си)
- Срочно нужна помощь. помогите пожалуйста найти ошибку
- Помогите пожалуйста найти ошибку. Паскаль. Оператор Case of
- Помогите пожалуйста найти ошибку в решении задачи по информатике(паскаль) !!!Прошу очень нужно!!!задача простая!!!
- Pascal помогите пожалуйста найти ошибку в задаче.
- Помогите, пожалуйста, найти ошибку в программе сортировки стека (по убыванию ) на Си.
- Помогите, пожалуйста, исправить ошибку в коде С++!!
- люди, помогите пожалуйста найти код от вируса