【MTRX3760】Mechatronic Systems Design

Assignments will be assessed based on the following components. Incomplete submissions will have severely reduced marks:
Report : Submit a .pdf report using the class Canvas site. The report can be very simple, and
needs only directly address the questions laid out in the assignment.
The cover page for your report should include your SID and tutorial section, but do not include
your name to comply with the University’s anonymous marking policy.
Code appendix : The appendix of your report must contain a printout (in text format) of all
source code written for the assignment. File header comments and proper formatting will be
critical to making this section readable. Unintelligible code attachments will result in loss of
marks.
Code : Submit your code (code only, no binaries) in a .zip file via the canvas site.
Please see Lab 1 for hints on preparing your report, including how to format code for inclusion in the appendix.
Logic Simulator Redesign
This lab has the following goals:
1. To allow you to revisit a familiar design problem with new learnings covered over the first four
weeks of the unit,
2. To simulate and build your understanding of a system of moderate complexity, and
3. To exercise design thinking and decision-making when faced with the many open design choices typical of a real-world engineering problem.
In the circuit simulator from Lab 2 we used hard-coded circuit designs. For this lab you will redesign the circuit simulator to load the description of the circuit from a circuit description file. This means your program should build the circuit dynamically at runtime rather than in a hard-coded manner.
You may design the circuit description language yourself, though an example of a suitable format and a means of reading it is provided in the code accompanying this lab handout.
As part of the refactor, we will lift a few simplifications applied in previous labs. We have previously allowed global constants and single-file submissions. These are not applicable to this lab:
1. Employ the “encapsulate everything” strategy of object-oriented design taught in lecture, such
that there are no global constants or floating functions or data,
2. Build your solution as a multi-file project, following the guiding principle that each class should
generally have its own header and implementation files, and
3. In general there should be very few constants or hard-coded circuitry, as the goal is to move those aspects of the program into the input files.
To make this lab more tractable the following new simplifications may be applied:
1. Support for subcircuits is not required,
2. You may limit the logic gates supported to AND, OR, XOR and NOT gates.
You may choose to start from your own Lab 2 solution or the one provided, or you may choose to start from scratch. Regardless, your submission should demonstrate the principles of object-oriented design and C++ coding best practices taught in lecture.

你可能感兴趣的:(c++)