1answer.
Ask question
Login Signup
Ask question
All categories
  • English
  • Mathematics
  • Social Studies
  • Business
  • History
  • Health
  • Geography
  • Biology
  • Physics
  • Chemistry
  • Computers and Technology
  • Arts
  • World Languages
  • Spanish
  • French
  • German
  • Advanced Placement (AP)
  • SAT
  • Medicine
  • Law
  • Engineering
Katen [24]
3 years ago
6

1. The system must be able to manage multiple students (max of 15) and their grades for assignments from three different assignm

ent groups: homework (total of 5), quizzes (total of 5), and exams (total of 3).
2. For each student record, the user should be able to change the grade for any assignment. These grades should be accessible to the gradebook for calculations, but not visible or directly mutable outside of the student record.

3. The gradebook should know the name of the course. It should also know the weights of each assignment group and be able to print a report to the screen. This report should contain the course name and a well-formatted table containing columns for the student names, and for each assignment group. The group weights should be displayed (as a percentage) next to the name of each assignment group in the table’s header. It should be possible to add and remove students from the gradebook, and the maximum number of students supported is 15. Removals from the gradebook should shift each successive student "up" in the list. For example, if student 5 is removed from the gradebook, the remaining students starting
with student 6 should be moved up a slot (i.e. student 6 to student 5’s old slot, student 7 to student 6’s old slot, etc.)

4. A user interface should be created with a menu system used to navigate the functionality necessary to complete the stated requirements. It is recommended to use a simple numbering scheme when prompting the user for their desired action. See the end of this project sheet for a reference you may use for the menus.

5. All names (student names, gradebook name) should be set to "" prior to being set by the user. This could also be used in logic to determine whether or not a student entry in the gradebook is "valid". Empty student slots should not be displayed in menus that require the user to identify a student record to modify.

6. The gradebook should be able to calculate class averages from the student records. The averages are the sum of the valid grades divided by the total number of valid grades for that group (i.e. ungraded assignments are not part of the total number of valid grades). Since each student record could contain a different number of grades for each category, the class average should be computed as the average of each student’s average for each assignment group as well as their final grade. When computing the average final grade, don’t forget to use the group weights

-=| MAIN MENU |=-
1. Add a student
2. Remove a student
3. Change a student’s grade
4. Change group weights
5. Change the gradebook name
6. Display class averages
7. Display full report
0. QUIT

Enter an action: 1


-=| ADDING STUDENT |=-
Please enter the student’s name: Name Here

Name Here was successfully added to the gradebook!

-=| ADDING STUDENT |=- Students cannot be added because the gradebook is full!
-=| REMOVING STUDENT |=-
1. John Doe
2. Jane Doe
3. Third Person

Enter student to remove: 1

"John Doe" has been successfully removed! (New class size: 2)

-=| REMOVING STUDENT |=- Cannot remove students because the gradebook is empty!


-=| CHANGING GRADE |=-
1. Change a homework grade
2. Change a quiz grade
3. Change an exam grade

What type of grade would you like to change: 2

1. John Doe
2. Jane Doe
3. Third Person
Which student’s grade would you like to change? 3

-=| CHANGING Third Person’s QUIZ GRADE |=-
1. 68
2.
3. 97
4.
5.

Which quiz grade would you like to change: 2
What would you like to change it to (-1 for ungraded): 89

Third Person’s quiz grade 2 was changed from to 89!




-=| CHANGING WEIGHTS |=-
Enter the weights, separated by spaces, in the order of homework, quizzes, and exams (total must add up to 1.0):
0.15 0.25 0.7
Weights do not add up to 1.0, try again...

Enter the weights, separated by spaces, in the order of homework, quizzes, and exams (total must add up to 1.0):
0.15 0.2 5 0.6
Weights updated successfully!

-=| CHANGING NAME |=-
Please enter the new name for the gradebook: COP3014


Gradebook name changed from "" to "COP3014"

-=| CLASS AVERAGES |=-
Homework average of class: 85.13%
Quiz average of class: 81.57%
Exam average of class: 77.40%
Final average of class: 79.60%


-=| GRADEBOOK REPORT |=-
Course: COP3014
Quiz average of class: 81.57%
Exam average of class: 77.40%
Final average of class: 79.60%

Student | Homework (15%) | Quizzes (25%) | Exams (60%) | HW AVG | Quiz Avg | Exam Avg | Final Grade |
-----------------|------------------|-----------------|-----------------|--------|----------|----------|-------------|
John Doe | 82 71 87 94 UG | . . . | . . . | 83.50 | . . . | . . . | . . . |
Jane Doe | 87 78 92 UG UG | . . . | . . . | 85.67 | . . . | . . . | . . . |
Third Person | 83 UG 85 UG UG | . . . | . . . | 84.00 | . . . | . . . | . . .

programming language is C++
Engineering
1 answer:
mr_godi [17]3 years ago
6 0

Answer:

#include<iostream>

#include<string.h>

using namespace std;

class gradebook;

class student

{

friend class gradebook;

char name[20]; // std name

int homework_grades[6], quiz_grades[6], exam_grades[4]; //grades array

float homework_avg, quiz_avg, exam_avg, final_avg;

};

class gradebook

{

student list[16];

public:

char gb_name[20]; // gradebook name

int max, total;

// Constructor

gradebook()

{

strcpy(gb_name,"noname");

max = 5;

total = 0;

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

{

strcpy(list[i].name,"noname");

for(int j=1;j<=5;j++)

{

list[i].homework_grades[j] = -1;

list[i].quiz_grades[j] = -1;

}

list[i].exam_grades[1] = list[i].exam_grades[2] = list[i].exam_grades[3] = -1;

}

}

// Member functions

void display_std_name();

void display_grades(int, int);

int add_std(char *new_name);

int remove(int);

//int ch_grade(int, int);

};

// Define all functions

// Remove a student from list and adjust remaining

int gradebook::remove(int std_id)

{

if(total==0 || std_id>total || std_id<=0)

return 0;

if(std_id==total)

{

cout<<"\n“"<<list[std_id].name<<"” has been successfully removed! (New class size: 2)";

strcpy(list[total--].name,"noname");

return 1;

}

cout<<"\n“"<<list[std_id].name<<"” has been successfully removed! (New class size: 2)";

for(int i=std_id; i<total; i++)

{

list[i]=list[i+1];

}

total--;

return 1;

}

// Add student to gradebook

int gradebook::add_std(char *new_name)

{

if(total<15)

{

strcpy(list[++total].name, new_name);

return 1;

}

return 0;

}

// Display student name list

void gradebook::display_std_name()

{

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

{

cout<<"\n"<<i<<" "<<list[i].name;

}

}

/* Display grades of students

// (grade_id, student_number_in_list)

homework(1), quiz(2), exam(3)

*/

void gradebook::display_grades(int g_id, int std_id)

{

int i;

if(std_id<=total)

{

if(g_id==1)

{

for(i=1;i<6;i++)

{

cout<<"\n"<<i<<". ";

if(list[std_id].homework_grades[i]==-1) cout<<"<ungraded>";

}

}

else if(g_id==2)

{

for(i=1;i<6;i++)

{

cout<<"\n"<<i<<". ";

if(list[std_id].quiz_grades[i]==-1) cout<<"<ungraded>";

}

}

else if(g_id==3)

{

for(i=1;i<4;i++)

{

cout<<"\n"<<i<<". ";

if(list[std_id].exam_grades[i]==-1) cout<<"<ungraded>";

}

}

}

else

cout<<"\nNo such std exists";

}

/****************************** MAIN ****************************/

int main()

{

int main_choice, grade_choice, std_id, new_grade;

char g_name[20], s_name[20];

float a,b,c;

gradebook g;

do

{

cout<<"\n\n-=| MAIN MENU |=-";

cout<<"\n1. Add a student\n2. Remove a student\n3. Change a student’s grade\n4. Change group weights\n5. Change the gradebook name\n6. Display class averages\n7. Display full report\n0. QUIT\n";

cout<<"\nEnter an action: ";

cin>>main_choice;

switch(main_choice)

{

case 0:

break;

case 1:

cout<<"\n-=| ADDING STUDENT |=-";

cout<<"\nPlease enter the student’s name: ";

cin>>s_name;

if(g.add_std(s_name))

cout<<"\n"<<s_name<<" was successfully added to the gradebook!";

else

cout<<"\nStudents cannot be added because the gradebook is full!";

break;

case 2:

cout<<"\n-=| REMOVING STUDENT |=-";

if(g.total!=0)

{

g.display_std_name();

cout<<"\n Enter student to remove: ";

cin>>std_id;

if(!g.remove(std_id))

cout<<"\nCannot remove students";

}

else

cout<<"\nStudents cannot be added because the gradebook is full!";

break;

case 3:

cout<<"\n-=| CHANGING GRADE |=-\n1. Change a homework grade\n2. Change a quiz grade\n3. Change an exam grade";

cout<<"\nWhat type of grade would you like to change: ";

cin>>grade_choice;

g.display_std_name();

cout<<"\nWhich student’s grade would you like to change? ";

cin>>std_id;

//ch_grade(grade_choice, std_id);

g.display_grades(grade_choice, std_id);

break;

/*

case 4:

cout<<"\n-=| CHANGING WEIGHTS |=-";

while(1)

{

cout<<"\nEnter the weights, separated by spaces, in the order of homework, quizzes, and exams (total must add up to 1.0):";

cin>>a>>b>>c;

if(a+b+c==1.00)

break;

else

cout<<"\n Weights do not add up to 1.0, try again...";

}

break;

case 5:

cout<<"\n-=| CHANGING NAME |=-\nPlease enter the new name for the gradebook: ";

cin>>g_name;

cout<<"\n Gradebook name changed from “ ” to "<<g_name;

break;

case 6:

cout<<"\n-=| CLASS AVERAGES |=-";

cout<<"\nHomework average of class: ";

cout<<"\nQuiz average of class: ";

cout<<"\nExam average of class: ";

cout<<"\nFinal average of class: ";

break;

case 7:

break;

*/

default:

cout<<"\n\nInvalid input\n\n";

}

}while(main_choice!=0);

return 0;

}

Explanation:

You might be interested in
A well insulated turbine operates at steady state. Steam enters the turbine at 4 MPa with a specific enthalpy of 3015.4 kJ/kg an
Anarel [89]

Answer:

power developed by the turbine = 6927.415 kW

Explanation:

given data

pressure = 4 MPa

specific enthalpy h1 = 3015.4 kJ/kg

velocity v1 = 10 m/s

pressure = 0.07 MPa

specific enthalpy h2 = 2431.7 kJ/kg

velocity v2 = 90 m/s

mass flow rate = 11.95 kg/s

solution

we apply here  thermodynamic equation that

energy equation that is

h1 + \frac{v1}{2}  + q = h2 + \frac{v2}{2}  + w

put here value with

turbine is insulated so q = 0

so here

3015.4 *1000 + \frac{10^2}{2}  =  2431.7 * 1000 + \frac{90^2}{2}  + w

solve we get

w = 579700 J/kg = 579.7 kJ/kg

and

W = mass flow rate × w

W = 11.95 × 579.7

W = 6927.415 kW

power developed by the turbine = 6927.415 kW

7 0
3 years ago
Which of the following answer options are your employer's responsibility?
tino4ka555 [31]

Answer:

Develop a written hazard communication program

Implement a hazard communication program

Maintain a written hazard communication program

Explanation:

To find - Which of the following answer options are your employer's responsibility?  Select all that apply.

Develop a written hazard communication program

Implement a hazard communication program

Maintain a written hazard communication program

Solution -

The correct options are -

Develop a written hazard communication program

Implement a hazard communication program

Maintain a written hazard communication program

All are the Responsibilities of an employer

Reason -

The most important duty of the employer is to stay alert and implement a correctly and efficiently written communication program related to hazards of the substances in the workplace.

He also has to maintain the program so that employees do not get affected.

3 0
3 years ago
In a TDM communication example, 15 voice signals are badlimited to 5kHz and transmitted simultaneously using PAM. What is a prel
MA_775_DIABLO [31]

Answer:

Option D

160 kHz

Explanation:

Since we must use at least one synchronization bit, total message signal is 15+1=16

The minimum sampling frequency, fs=2fm=2(5)=10 kHz

Bandwith, BW required is given by

BW=Nfs=16(10)=160 kHz

5 0
3 years ago
An angle grinder is best suited for use with which material?.
Kaylis [27]

Answer:

Angle grinders are used mostly for copper, iron, steel, lead, and other metals.

Explanation:

I hope it helps! Have a great day!

Lilac~

4 0
2 years ago
Comparación de hipotecas Los Chos
aleksklad [387]

Answer:

I don't understand the language French sorry can't answer

3 0
3 years ago
Other questions:
  • Given the following data, plot the stress-strain curves for the two unknown materials on the same set of stress-strain axes. Den
    9·1 answer
  • When removing the balance shaft assembly: Technician A inspects the bearings for unusual wear or damage. Technician B smoothens
    15·1 answer
  • You just purchased a 400-L rigid tank for a client who works in the gas industry. The tank is delivered pre-filled with 3 kg of
    8·1 answer
  • Pennfoster Trades Safety test. Would appreciate the help. Thank you in advance. Check the screenshots below for the questions I'
    8·1 answer
  • Shear plane angle and shear strain: In an orthogonal cutting operation, the tool has a rake angle = 16°. The chip thickness befo
    7·1 answer
  • Resistors of 150 Ω and 100 Ω are connected in parallel. What is their equivalent resistance?
    13·1 answer
  • Define Ancestor, Descendant, Siblings, Height, Depth, Root and Leaf for the
    9·1 answer
  • In your opinion...
    5·1 answer
  • In a long trip what is considered a life line to take with you.
    12·1 answer
  • What do you mean by decentralization??​
    15·2 answers
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!