Write a program to simulate the design process of the course. First, create a struct for the course which consists of following members: course number (int type, e.g. 1200), course start date (int type, e.g. 20200107), course hours (int type, how many hours per week) and lecturer ID (int type). Second, create a struct for lecturer, which has following members: lecturer ID (int type), lecturer office hours (int type, how many office hours per week) and course teaching(array[int] type). Third, create a struct for student, which as following members: student ID (int type), course taken (array[int type). Then answer following questions 1, 2 and 3 based on these structures: 1. The department decide to offer three courses in a semester: 1000, 1100 and 1200. Please create these courses with structs you defined above. Their information is given below: Course number Course start date Course hours Lecturer ID 1000 20200107 2 100 1100 20200113 4 200 1200 20200203 4 100 2. Department also assigned two lecturers to teach these courses. Please create documents for lecturers and print out the information for both lectures on the screen. Note: Each lecturer will be assigned 2 hours office hours for each course he/she teaches. 3. A student, whose ID is 2000, are considering taking 2 courses among above courses. Please print out how many course hours he/she needs to take each week. Note, simply add up the course hours from table in question 1 will not be considered as correct answer. Your program should first ask this student to input the course number he/she registered, then print the total course hours. 4. Conduct an experiment with Arduino using an Angle Rotary Sensor and a Servo (connect sensors to Arduino appropriately). The Angle Rotary Sensor must control the movement of the Servo. In other words, when you change the angle of the Rotary Angle Sensor (0 to 300 degrees), the Servo will rotate the short white blade accordingly after mapping the Angle Rotary Sensor value (0 to 300 to a Servo position (0 to 180). Also, display the angle degree of the Angle Rotary Sensor and the position of the Servo on the Serial Monitor window. Use Serial.print function to print on the Serial Monitor window, which can be open by clicking on the icon- on the upper right area of the Arduino window. Also, you need to use the following statement in the setup function: Serial.begin(9600);

Respuesta :

Answer:

#include <iostream>

using namespace std;

struct Course

{

int courseNumber;

int courseStartDate;

int courseHours;

int lecturerId;

};

struct Lecturer

{

int lecturerId;

int officeHours;

Course courseTeaching[2];

};

struct Student

{

int studentId;

Course coursesTaken[2];

};

int main()

{

Course courseObj1, courseObj2, courseObj3;

courseObj1.courseNumber = 1000;

courseObj1.courseStartDate = 20200107;

courseObj1.courseHours = 2;

courseObj1.lecturerId = 100;

courseObj2.courseNumber = 1100;  

courseObj2.courseStartDate = 20200113;

courseObj2.courseHours = 4;

courseObj2.lecturerId = 200;

courseObj3.courseNumber = 1200;

courseObj3.courseStartDate = 20200203;

courseObj3.courseHours = 4;

courseObj3.lecturerId = 100;

Lecturer lecturerObj1, lecturerObj2;

lecturerObj1.lecturerId = 100;

lecturerObj1.officeHours = 2;

lecturerObj1.courseTeaching[0] = courseObj1;

lecturerObj1.courseTeaching[1] = courseObj3;

lecturerObj2.lecturerId = 200;

lecturerObj2.officeHours = 2;

lecturerObj2.courseTeaching[0] = courseObj2;

Student student;

student.studentId = 2000;

student.coursesTaken[0] = courseObj1;

student.coursesTaken[1] = courseObj3;

cout << "1. Lecturer ID: " << lecturerObj1.lecturerId << "\tOffice Hours: " << lecturerObj1.officeHours << endl;

for(int i = 0; i < 2; i++)

cout << "COURSE " << (i + 1) << ":\n---------\n" << "Course Number: " << lecturerObj1.courseTeaching[i].courseNumber << endl << "Course start date: " << lecturerObj1.courseTeaching[i].courseStartDate << endl << "Course hours: " << lecturerObj1.courseTeaching[i].courseHours << endl << "Lecturer ID: " << lecturerObj1.courseTeaching[i].lecturerId << endl;

cout << "\n2. Lecturer ID: " << lecturerObj2.lecturerId << "\tOffice Hours: " << lecturerObj2.officeHours << endl;

for(int i = 0; i < 1; i++)

cout << "COURSE " << (i + 1) << ":\n---------\n" << "Course Number: " << lecturerObj2.courseTeaching[i].courseNumber << endl << "Course start date: " << lecturerObj2.courseTeaching[i].courseStartDate << endl << "Course hours: " << lecturerObj2.courseTeaching[i].courseHours << endl << "Lecturer ID: " << lecturerObj2.courseTeaching[i].lecturerId << endl;

int courseNumber;

cout << "\n Enter the course number: ";

cin >> courseNumber;

int index = -1;

int len = sizeof(student.coursesTaken) / sizeof(student.coursesTaken[0]);

int totalHours = 0;

for(int i = 0; i < len; i++)

{

if(student.coursesTaken[i].courseNumber == courseNumber)

{

totalHours += student.coursesTaken[i].courseHours;

}

}

if(totalHours == 0)

cout << "\n Student is not registered to this course!\n";

else

cout << "\nStudent " << student.studentId << " needs " << totalHours << " hours per week of this course.\n";

return 0;

}

Explanation:

  • Create the 3 objects of Course class and set their properties respectively.
  • Create the 2 objects of Lecturer class and set their properties respectively.
  • Create an object of Student class and set their properties respectively.
  • Run a for loop and check whether the current courseNumber is already added and then increment the total number of hours for that course.
  • Finally check if totalHours is equal to 0 or not and then display the suitable message accordingly.