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
List 3 specific things you can do with a screw gun (not just screw in screws)
alexandr402 [8]

Answer:

1: Attaching a fork and wip eggs/batter/ ect.

2: You can entertain a cat by putting yarn on the gun/drill

3: If you get yarn everywere, you can spin the yarn up on the drill/gun

Explanation:

I hope this helps you out somehow

8 0
3 years ago
Please help me with this question​
kap26 [50]

Answer:

The current through each lamp is 0.273 Amperes

Power dissipated in each lamp is 0.082W

Explanation:

Battery v = 1.5 V

Each lamp has resistance, r = 1.1 Ohms

The 5 lamps in series will therefore have total resistance, R = 5 * 1.1 = 5.5 Ohms

The current through each lamp, I = v/R = 1.5 / 5.5 = 0.273 Amperes

Power dissipated in each lamp = I² * r = 0.273² * 1.1 = 0.082W

3 0
3 years ago
A five legged intersection has safety issues. in 2018, the number of crashes reported was 48 and the average 24 hour volume ente
sashaice [31]

Answer:

The crash rate is 22 vehicles per 1 million vehicles

Explanation:

In this question, we are asked to determine the crash rate per million vehicles.

Crash rate is calculated using average crash frequency.

The crash rates are calculated based on the number of crashes per million vehicle miles travelled in a year.

Mathematically;

crash rate = (48 * 1,000,000)/ [(980 + 1560 + 1230 + 900 + 1435)* 365]

= 48,000,000/(6105*365)

= 21.54 approximately 22

4 0
4 years ago
What dimensions are used when measuring the area of a building
scoundrel [369]

Answer:According to NEC 220.12,

“the floor area shall be calculated from outside dimensions of the buildings, dwelling unit, or other area involved.

The area should not include open porches, garages or unused or unfinished spaces not adaptable for future use”.

pa brainliest plss..thankss

Explanati

4 0
2 years ago
Read 2 more answers
An important fluid property is the kinematic viscosity which determines the viscous, or frictional, forces acting in a flow. The
Aleksandr [31]

Answer:- 400 K - 26.665

               600 K - 53.67

Explanation: y−y1=(y2−y1)/(x2−x1)×(x−x1)

Basic usage of the interpolation formula to get the values of the required answers kinematic viscosities at 400 and 600 K

5 0
4 years ago
Other questions:
  • Which of the following is NOT a characteristic of hazardous waste
    5·1 answer
  • A fixed mass of saturated water vapor at 400 kpa is isothermally cooled until it is a saturated liquid. Calculate the amount of
    6·1 answer
  • MODIFIED-BOTTOM-UP-CUT-ROD(p, n, c) to return not only the value but the actual solution, too. Hint: It is similar to how array
    5·1 answer
  • You are tasked to specify the flash storage device in General Electric's Data Logger Unit used in the smart power grid. The DLU
    12·1 answer
  • a solid circular shaft 150 mm diameter transmits a torque of 29820.586 N.m. find the maximum shear stress
    15·1 answer
  • Derive and sketch the electrical field E of doping concentrations And(x) are given by,
    14·1 answer
  • Io[iiiiiioooiiijjsjsj
    5·2 answers
  • What regulates the car engines temperature
    10·2 answers
  • You should use the pass technique a fire extinguisher
    8·1 answer
  • State three means of operating a power tool
    5·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!