Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

C++ Full code to copy please. Design a multifunction toaster over: The oven will

ID: 3866757 • Letter: C

Question

C++ Full code to copy please. Design a multifunction toaster over: The oven will have four dials/selectors as listed below: A Function selector: Toast, Broil, Warm, Bake (no need to set the time and the temperature when on Toast) A temperature selector: used to set temp from 0 – 450 degree Fahrenheit A time selector: used to set time from 0 to 60 minutes A toast selector: light (sets time to 1 min.), mild (Sets time to 2 min.), dark (sets time to 3 min). Time is automatically set by the toaster selection. The user opens the oven door, pulls the oven tray out, places the food in the tray, pushes the try back in, closes the oven door then sets the dials (not all of them necessarily). Oven has a light indicator that goes on when oven is in use. When oven is done a bell rings and the light goes off. Pick a specific scenario and completely describe it with all possible variations if any. Generate a UML diagram for your use case. Identify the classes and operations, use CRC cards. Present the class diagram for your design. Include all multiplicities. Draw a sequence diagram for the use case in part (a) (optional)Code your design

Explanation / Answer

#ifndef PIXELTOASTER_NO_CRT

#include <cassert>

#else

#define assert(condition)

#endif

#include "PixelToaster.h"

#include "PixelToasterCommon.h"

#include "PixelToasterConversion.h"

#if PIXELTOASTER_PLATFORM == PIXELTOASTER_UNIX

#include "PixelToasterUnix.h"

#define TimerClass UnixTimer

#define DisplayClass UnixDisplay

#endif

#if PIXELTOASTER_PLATFORM == PIXELTOASTER_APPLE

#include "PixelToasterApple.h"

#define TimerClass AppleTimer

#define DisplayClass AppleDisplay

#endif

#if PIXELTOASTER_PLATFORM == PIXELTOASTER_WINDOWS

#include "PixelToasterWindows.h"

#define TimerClass WindowsTimer

#define DisplayClass WindowsDisplay

#endif

#if PIXELTOASTER_PLATFORM == PIXELTOASTER_NULL

#define TimerClass PortableTimer

#define DisplayClass DisplayAdapter

#endif

#if !defined( DisplayClass ) || !defined( TimerClass )

#error unknown pixeltoaster platform!

#endif

PixelToaster::DisplayInterface * PixelToaster::createDisplay()

{

#ifdef DisplayClass

return new DisplayClass();

#else

return NULL;

#endif

}

PixelToaster::TimerInterface * PixelToaster::createTimer()

{

#ifdef TimerClass

return new TimerClass();

#else

return NULL;

#endif

}

PixelToaster::Converter_XBGRFFFF_to_XBGRFFFF converter_XBGRFFFF_to_XBGRFFFF;

PixelToaster::Converter_XBGRFFFF_to_XRGB8888 converter_XBGRFFFF_to_XRGB8888;

PixelToaster::Converter_XBGRFFFF_to_XBGR8888 converter_XBGRFFFF_to_XBGR8888;

PixelToaster::Converter_XBGRFFFF_to_RGB888 converter_XBGRFFFF_to_RGB888;

PixelToaster::Converter_XBGRFFFF_to_BGR888 converter_XBGRFFFF_to_BGR888;

PixelToaster::Converter_XBGRFFFF_to_RGB565 converter_XBGRFFFF_to_RGB565;

PixelToaster::Converter_XBGRFFFF_to_BGR565 converter_XBGRFFFF_to_BGR565;

PixelToaster::Converter_XBGRFFFF_to_XRGB1555 converter_XBGRFFFF_to_XRGB1555;

PixelToaster::Converter_XBGRFFFF_to_XBGR1555 converter_XBGRFFFF_to_XBGR1555;

PixelToaster::Converter_XRGB8888_to_XBGRFFFF converter_XRGB8888_to_XBGRFFFF;

PixelToaster::Converter_XRGB8888_to_XRGB8888 converter_XRGB8888_to_XRGB8888;

PixelToaster::Converter_XRGB8888_to_XBGR8888 converter_XRGB8888_to_XBGR8888;

PixelToaster::Converter_XRGB8888_to_RGB888 converter_XRGB8888_to_RGB888;

PixelToaster::Converter_XRGB8888_to_BGR888 converter_XRGB8888_to_BGR888;

PixelToaster::Converter_XRGB8888_to_RGB565 converter_XRGB8888_to_RGB565;

PixelToaster::Converter_XRGB8888_to_BGR565 converter_XRGB8888_to_BGR565;

PixelToaster::Converter_XRGB8888_to_XRGB1555 converter_XRGB8888_to_XRGB1555;

PixelToaster::Converter_XRGB8888_to_XBGR1555 converter_XRGB8888_to_XBGR1555;

PixelToaster::Converter * PixelToaster::requestConverter( PixelToaster::Format source, PixelToaster::Format destination )

{

if ( source == Format::XBGRFFFF )

{

switch ( destination )

{

case Format::XBGRFFFF: return &converter_XBGRFFFF_to_XBGRFFFF;

case Format::XRGB8888: return &converter_XBGRFFFF_to_XRGB8888;

case Format::XBGR8888: return &converter_XBGRFFFF_to_XBGR8888;

case Format::RGB888: return &converter_XBGRFFFF_to_RGB888;

case Format::BGR888: return &converter_XBGRFFFF_to_BGR888;

case Format::RGB565: return &converter_XBGRFFFF_to_RGB565;

case Format::BGR565: return &converter_XBGRFFFF_to_BGR565;

case Format::XRGB1555: return &converter_XBGRFFFF_to_XRGB1555;

case Format::XBGR1555: return &converter_XBGRFFFF_to_XBGR1555;

default:

return NULL;

}

}

else if ( source==Format::XRGB8888 )

{

switch ( destination )

{

case Format::XBGRFFFF: return &converter_XRGB8888_to_XBGRFFFF;

case Format::XRGB8888: return &converter_XRGB8888_to_XRGB8888;

case Format::XBGR8888: return &converter_XRGB8888_to_XBGR8888;

case Format::RGB888: return &converter_XRGB8888_to_RGB888;

case Format::BGR888: return &converter_XRGB8888_to_BGR888;

case Format::RGB565: return &converter_XRGB8888_to_RGB565;

case Format::BGR565: return &converter_XRGB8888_to_BGR565;

case Format::XRGB1555: return &converter_XRGB8888_to_XRGB1555;

case Format::XBGR1555: return &converter_XRGB8888_to_XBGR1555;

default:

return NULL;

}

}

return NULL;

}