Помогите с задачей С++

Помогите с задачей С++

Homework
Программа по этой ссылке
https://drive.google.com/file/d/0B2OafRtRNMUCa3NNQnFCWGxHeFk/view?usp=sharing
Предпосылки, цели и результаты
Необходимые условия: Студенты должны владеть следующими предварительными знаниями.
Управление структурами — For-loops и if-else statements
Массивы — Доступ и модификация элементов массива
Консоль I / O — Определение оператора вывода << для классов
Спецификация класса — Определение функций-членов класса, полное объявление класса
Цели: Задание предназначено для понимания C++. Оно показывает, использование C++ header файлов, синтаксис С++, а также потоковый ввод / вывод
Результаты: Студенты должны показать следующие результаты.
Понимание основного синтаксиса С++
Использовать базовые C++ структуры
Использование массивов для последовательного доступа
Создание классов, которые включают определения и заявления в главных и исполнительских файлах.
Использование препроцессора для подключения файлов
Background
Домашнее задание являются частью обычного задания для колледжей и университетского курса. Необходимо построить простое программное решение для ведения списка домашних заданий.
Описание
Программа, представляет собой список домашних заданий. Используя эту программу, пользователь может дополнить программный лист домашней работы. Затем пользователь может просмотреть все задание или часть, до или после определенной даты. Программа взаимодействует с пользователем через меню, которое отображает эти параметры. Следующий скриншот изображает программы во время исполнения.

Типовое использование приложения заключается в следующем. Пользователь входит в пункт меню задачи, которую он хочет выполнить. В зависимости от задачи пользователю, вероятно, придется выбирать дополнительные входы. Например, чтобы добавить назначение домашней работы, пользователь сначала входит в пункт меню «добавить». И вводит номер 1. Как только пользователь нажимает клавишу ENTER, программа запрашивает у пользователя ввести назначение (assessment). Как только этот вход выполнен, программа запрашивает пользователя дату начала выполнения назначения и затем ожидаемую дату завершения. Это заканчивает добавление домашней работы. Каждый раз, когда операция заканчивает, программа вызывает следующий случай меню. Этот цикл продолжается, пока пользователь не захочет выйти.
Эта программа включает отдельные классы для того, чтобы смоделировать дату, отдельное назначение, и список назначений.

Класс date
Класс date моделирует календарь дат. Дата, в этом контексте, включает в себя день, месяц и год. Класс date содержит следующие члены.
date ();
Конструктор по умолчанию , который инициализирует день, месяц и год, все к нулю
date (int day, int month, int year);
Три параметра конструктора, который инициализирует день, месяц, год присваивая им соответствующие значения даты
int compareTo (date another_date);
Функция, которая сравнивает две даты
Класс date также определяет, как его экземпляры объектов появляются, когда они направляются на выходной поток. Вставьте операторы мероприятия даты в «mm/dd/yyyy» формате. Этот метод декларации приводится ниже.
friend ostream& operator<< (ostream &stream, date d);

Класс homework
Класс homework моделирует домашнее задание. Для каждого домашнего задания, эта программа поддерживает назначение имя, дата назначена, и дата завершения. Класс homework содержит следующие члены .
homework ();
Конструктор по умолчанию, который инициализирует имя пустой строкой и установленных и сроки их значения по умолчанию
homework (string name, date assigned_date, date due_date);
Три параметра конструктора, который инициализирует уступки имя, установленных даты и сроки
int compareTo (homework another_homework);

Функция, которая сравнивает два объекта домашнего задания
Как и в классе date, класс homework также определяет, как его экземпляры объектов отображаются, когда они направляются на выходной поток. вставки оператора мероприятия домашние объекта, используя следующий формат.
name: assigned date — due date
Этот метод декларации приводится ниже.
friend ostream & operator << (ostream сstream, homework h);

Класс homeworklist
Класс homeworklist модели список домашних заданий. Класс homeworklist поддерживает этот список заданий внутренне используя массив. Этот класс ограничивает количество заданий , что он может хранить до 50.
Класс homeworklist содержит следующие члены.
homeworklist ();
Конструктор по умолчанию , который инициализирует размер списка до нуля
bool add (homework h);
Этот метод добавляет задание. Он возвращается true, если добавить операцию удается успешно, и false если максимальное количество заданий уже сохранены.
homeworklist dueafter (date d);
Возвращает новый homeworklist содержащий только домашние задания после даты завершения, но без даты указанную дату
homeworklist duebefore (date d);
Возвращает новый homeworklist содержащий только те домашние задания которые должны быть представлены до, а не на указанную дату
homeworklist dueon (date d);
Возвращает новый homeworklist содержащий только те домашние задания выполненные точно в установленный срок, но не до или после
Класс homeworklist также определяет, как экземпляры этого класса должны быть представлены, когда их вызывают в выходной поток.

friend ostream &operator<< (ostream &stream, homeworklist hl);
Файлы
Ниже приведен список файлов , необходимых для завершения этой оценки.
раздаточный материал — files.zip содержит все необходимые следующие файлы:
solution.exe — Это пример решения .
date.h — Этот файл содержит класс date декларации. Не следует изменять этот файл.
homework.h — Этот файл содержит класс homework декларации. Не следует изменять этот файл.
homeworklist.h — Этот файл содержит класс homeworklist декларации. Не следует изменять этот файл.
main.cpp — Этот файл содержит интерактивные реализации меню. Функция main существует в этом файле. Не следует изменять этот файл.
Задачи
Завершите эту оценку, надлежит закончить определения 3 классов date, homework, и homeworklist. Ваша реализация методов для каждого класса должна быть записана в файлах с именами date.cpp, homework.cpp, и homeworklist.cpp, соответственно.
Для начала, проверить файлы, необходимые для этой оценки.
Извлечь архив для загрузки файлов, необходимых для завершения этой оценки.
Запустить образец исполняемого (файла) путем запуска следующую команду в командной строке.
$ . / solution.exe
Взаимодействовать с образцом, исполняемый для ознакомления с ожидаемым поведением программ.
Ниже приводится упорядоченный список шагов, который служит в качестве руководства для завершения этой оценки. Работать последовательно, сохранять часто.
Первое, напишите конструкторы для класса date. Конструктор по умолчанию следует инициализировать все закрытых данных-членов к нулю. Другой конструктор следует инициализировать в private данных-членов, чтобы передавать параметр конструктора. Не забывайте использовать инициализатор списков.
Далее, напишите в класс date функцию-члена compareTo. Эта функция сравнивает две даты объектов. Она возвращает ноль, если объекты равны, отрицательное значение, если применение объекта меньше даты, указанной в параметре, а также положительное значение, если объект ссылки больше даты, указанной в параметре.
Затем, скомплектуйте определение вставки оператора. Эта функция должна выходной день объект в виде «mm/dd/yyyy». Это завершает реализацию класса date.
Для класса homework, начинать путем реализации конструкторов. Эти реализации напоминают, что вы сделали в классе date.
Далее, скомплектовать функции-члена СотрагеТо. Для сравнения 2 homework объектов, вам нужно лишь сравнить их сроки.
Затем, скомплектуйте определение оператор вывода для объектов типа homework. Эта функция должна выводить домашнее задание объекта в форме «<name>: <assigned date> — <due date>». Это завершает реализацию класса homework.
Начинать реализацию класса homeworklist заполнив конструктор по умолчанию. Этот метод требуется только для инициализации членов частных данных current_size к нулю.
Далее, завершить выполнение функции-члена add. Не позволяйте способ хранения более чем максимальное количество домашних заданий .
Затем, полный методы duebefore, dueon, А также dueafter. Каждый из этих методов возвращает homeworklist объект, содержащий подмножество домашние задания . Эти подмножества содержат все домашние задания должны быть представлены до , на, или после указанной даты. одного параметра для каждой из этих функций определяет дату.
В конце, завершить реализацию вставки оператора, определенного для класса homeworklist. Этот метод должен повторять через массив домашней работы объектов , выводя каждый на отдельной строке.

Представление.
К оценке представить только следующее:
date.cpp
homework.cpp
homeworklist.cpp

помогите пожалуйста не разбираюсь в классах а препадователь просит быстро сдать задачу который не понемаю

Google Translate без постобработки? Уже приятно.

raizel, задание расписано настолько подробно, что подробнее только код на C++, который тебе требуется написать. Ты не разбираешься в классах? В действительности, в этом задании и не нужно в них разбираться. Нужны только самые поверхностные понятия. Остальное уже придумано написано до тебя. Тебе осталось только написать тела методов для трёх классов — по сути, функции.

Единственный неприятный момент — оператор вывода в поток. Для дат реализуется так:

#include <iomanip>

ostream &operator<< (ostream &stream, date d) {
    return stream << setfill('0') << setw(2) << d.month << '/' << 
        setw(2) << d.day << '/' << 
        setw(4) << d.year;
}

Для перегруженных операторов вывода в поток для остальных классов — идея та же самая.

PS1. А с классами таки тебе надо разобраться.

PS2. Если не секрет, ты откуда? Русский — явно не родной язык. Преподавание, видимо, на английском. Интересный ник. Израиль?

Хм... ответил на самый незначительный... даже не вопрос, а моё наблюдение.

Впрочем неважно. С заданием удалось разобраться?

не подскажите как реализовать задачу. Надо написать программу где пользователь будет вводить последовательность чисел,а программа будет преобразовывать строку путем добавления ко все элементам первого и выводить результат на экран . Возможно еще подскажете будет ли меняться код если этот процесс реализовать в локальной сети (имеется ввиду ввод символов на одном компьютере ,а вывод на другом.)

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.

Ответить

Вы можете использовать разметку markdown для оформления комментариев и постов. Используйте функцию предпросмотра для проверки корректности разметки.

Пожалуйста, оформляйте исходный код в соответствии с правилами разметки. Для того, чтобы вставить код в комментарий, скопируйте его в текстовое поле ниже, после чего выделите то, что скопировали и нажмите кнопку «код» в панели инструментов. Иначе ваш код может принять нечитаемый вид.

Либо производите оформление кода вручную, следующим образом:

``` #include <iostream> using namespace std; int main() { // ... } ```

Предпросмотр сообщения

Ваше сообщение пусто.