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

C++ Visual studio Project 1.0 Overview C++ Visual studio Project 1.0 Overview Pr

ID: 3853862 • Letter: C

Question

C++ Visual studio Project

1.0 Overview

C++ Visual studio Project

1.0 Overview

Professor Albus Dumbledore, headmaster of Hogwarts School of Witchcraft and Wizardry is interested in introducing his faculty and students to one of the newest discovered branches of the magical arts. That is Computational Magic. It was discovered when representatives from the Division of Magical Research of the Ministry of Magic found that many Muggle computer programmers were actually unknown witches and wizards who were creating new spells and working magic through their code.
As a first step Professor Dumbledore has requested that a Computational Magic device be created that will allow the school to transfer all their student records from the old parchment and quill system to a computerized system. In this assignment a C++ class will be created that will store all information on one Hogwarts student. 2.0 Requirements The student shall define, develop, document, prototype, test, and modify as required the software system. 2.1 This software system shall define a student record class called Student (file names shall be Student.h and Student.cpp) which contains all information on one student enrolled at Hogwarts. 2.1.1 The Student class shall contain private variables as described below: 2.1.1.1 An integer variable, called m_iStudentID which shall hold a student's ID number. 2.1.1.2 Two character arrays, called m_sMagicalName and m_sWizardFamilyName each capable of holding a string of up to 64 characters. 2.1.1.3 A character array, called m_sHouse capable of holding a string of up to 64 characters. This will hold the name of the house a student is assigned to: Gryffindor, Ravenclaw, Hufflepuff, or Slytherin 2.1.1.4 A 2D array of characters, called m_sClasses that contains 8 rows with 32 characters per row. This can be treated as a one-dimensional array of character arrays each holding the name of a class the student is taking. 2.1.1.5 An array of eight integers called m_iGrades which shall hold a student's numerical grades in each class. 2.1.2 The Student class shall contain public functions as described below: 2.1.2.1 Two constructor functions. The first shall be a default constructor which takes no arguments (Student()). The second constructor shall take four arguments (Student(int iID, char *mName, char *wName, char *hName)) an int giving the student's ID, and three character arrays giving the student's first name, family name, and the name of the student's house. 2.1.2.2 A destructor function which shall clear all externally allocated memory before terminating. 2.1.2.3 Get/Set functions There will be a getVariable() and a setVariable() designed to return the value stored in or set the value stored in a student's data. Specifically these functions shall be prototyped as: 2.1.2.3.1 int getStudentID(), void setStudentID(int iID) - Get and set the student's ID. 2.1.2.3.2 void getName(char *mName, char *wName), void setName(char *mName, char *wName) - Get and set the student's name and wizarding family name. 2.1.2.3.3 void getHouse(char *hName), void setHouse(char *hName) - Get and set the student's house name. 2.1.2.3.4 void getClass(int idx, char *className), void setClass(int idx, char *className) - Get and set a class name. The integer argument idx given the index in the class name array for the class. 2.1.2.3.5 void setGrade(int idx, int grade) - Set a grade. This function shall set a numeric grade in the array m_iGrades at the given index. 2.1.2.3.6 void getGrade(int idx, int &iGrade, char &cGrade) - Get a grade. This getGrade function shall be a reference function and shall return using the cGrade reference argument a letter grade based on the current Hogwarts grading system (95-100=Outstanding (O), 90-94=Exceeds Expectations (E), 80-89=Acceptable (A), 70-79=Poor (P), 60-69=Dreadful (D), <60=Troll (T)). It shall also return a numeric grade using the iGrade reference argument. 2.1.2.3.7 void getGrade(int idx, int *iGrade, char *cGrade) - Get a grade. This getGrade function shall be a pointer function and shall return using the cGrade pointer argument a letter grade based on the current Hogwarts grading system (95-100=Outstanding (O), 90-94=Exceeds Expectations (E), 80-89=Acceptable (A), 70-79=Poor (P), 60-69=Dreadful (D), <60=Troll (T)). It shall also return a numeric grade using the iGrade pointer argument. 2.1.2.3.8 void printStudentInfo() - Print all information on this student. This includes, student ID, first and last names, the list of classes, and the current grade. 2.2 The class file and its' associated header file must be capable of being compiled and linked in with the instructor's driver program (main(), found in a separate file) for testing. Do not turn in a file with a main function in it. 3.0 Deliverables These products shall be delivered to the instructor electronically via e-mail as specified below.
3.1 Sprint Report -- The student shall provide a filled out Sprint Report form for instructor approval NLT (Not Later Than) Wednesday, June 28.
3.2 Program source files -- The student shall provide fully tested electronic copies of the .cpp and .h files. These files must be submitted to the instructor via e-mail NLT (Not Later Than) Wednesday, June 28. 4.0 Period of Performance The period of performance of this assignment is 18 days from the date of assignment. Under no circumstances will any deliverables be accepted after the DDD for this assignment.

Explanation / Answer

Student.cpp


#include"Student.h"
#include<string.h>
#include<iostream>
using namespace std;


//Default Constructor
Student::Student()
{
   //set all Class variables to NULL;
   m_iStudentID = 0;
   for (int i=0; i < int(strlen(m_sMagicalName));i++)
       {
           m_sMagicalName[i]=NULL;
       }
  
   for (int i=0; i < int(strlen(m_sWizardFamilyName));i++)
       {
           m_sWizardFamilyName[i]=NULL;
       }
  
   for (int i=0; i < int(strlen(m_sHouse));i++)
       {
           m_sHouse[i]=NULL;
       }
  
   for (int i=0;i<8;i++)
       {          
           m_sClasses[i]=NULL;  
       }
  
   for (int i=0;i<8;i++)
       {
           m_iGrades[i]=0;
       }
}

//Parametrized Conststructor sets Class variables to StudentID, Name, and House, other variables set to Nul
Student::Student(int iID, char *mName, char *wName, char *hName)
{
   m_iStudentID = iID;
   strcpy(m_sMagicalName, mName);
   strcpy(m_sWizardFamilyName, wName);
   strcpy(m_sHouse, hName);
  
   for (int i=0;i<8;i++)
   {  
       m_sClasses[i]=NULL;  
   }
  
   for (int i=0;i<8;i++)
   {
       m_iGrades[i]=0;
   }
}

//Class Destructor
Student::~Student()
{
  
   //Clear dynamically allocated memory for array of pointers to Class Name character arrays
   for(int i = 0;i<8;i++)
   {
       if(m_sClasses[i]!=NULL)
       {

       delete[] m_sClasses[i];
       }
   }

}

Student *Student::Clone()
{
  
   Student *tempStu = new Student;
   tempStu->setStudentID(m_iStudentID);
   tempStu->setName(m_sMagicalName, m_sWizardFamilyName);
   tempStu->setHouse(m_sHouse);
  
   for(int i=0;i<8;i++)
   {
       if(m_sClasses[i] != NULL)
       {
       tempStu->setClass(i, m_sClasses[i]);
       tempStu->setGrade(i, m_iGrades[i]);
       }
   }
   return tempStu;
  
}

//get StudentID returns student ID no. variable
int Student::getStudentID()
{
   return m_iStudentID;
}

//set Student ID sets student ID class variable to passed argument
void Student::setStudentID(int iID)
{
   m_iStudentID = iID;
}

//get Name retrieves class variable in form of char arrays, for student's first and last name, copies to character array arguments
void Student::getName(char *mName, char*wName)
{
   strcpy(mName, m_sMagicalName);
   strcpy(wName, m_sWizardFamilyName);
}

//set Name function copies char array argument to the appropriate variable in the Student Class
void Student::setName(char *mName, char*wName)
{
   strcpy(m_sMagicalName, mName);
   strcpy(m_sWizardFamilyName, wName);
}

//get house function copies class variable for student's house name to argument pointing to character array
void Student::getHouse(char *hName)
{
   strcpy(hName, m_sHouse);
}


//set house function copies argument pointing to character array to Student class variable for House Name
void Student::setHouse(char *hName)
{
   strcpy(m_sHouse, hName);
  
}

//get Class copies char array for student's class at argument: idx out of pointer array: m_sClasses[] to argument: character array className
void Student::getClass(int idx, char *className)
{
   if((idx>=0)&&(idx<8))
   {
       if(m_sClasses[idx]!=NULL)
           {
           strcpy(className, m_sClasses[idx]);
           }
   }
}

//set Class copies char array argument className for student's class to argument: idx out of pointer array: m_sClasses[]
void Student::setClass(int idx, char *className)
{
   if((idx>=0)&&(idx<8))
   {
       if(m_sClasses[idx]!=NULL)
           {
               delete m_sClasses[idx];
           }
       m_sClasses[idx] = new char[strlen(className)+1];
       strcpy(m_sClasses[idx], className);
   }
}

//get Grade function gets student's integer grade at appropriate index of array, copies to argument iGrade, if statements check ranges to determine letter grade and set to char cGrade
void Student::getGrade(int idx, int &iGrade, char &cGrade)
{
   if((idx>=0)&&(idx<8))
   {
       iGrade = m_iGrades[idx];
       if (iGrade>=95)
       {
           cGrade='O';
       }
       else if ((iGrade>=90)&&(iGrade<95))
       {
           cGrade='E';
       }
       else if ((iGrade>=80)&&(iGrade<90))
       {
           cGrade='A';
       }
       else if ((iGrade>=70)&&(iGrade<80))
       {
           cGrade='P';
       }
       else if ((iGrade>=60)&&(iGrade<70))
       {
           cGrade='D';
       }
       else if(iGrade<60)
       {
           cGrade='T';
       }
   }
}

//set Grade function sets student's grade at appropriate index of m_iGrades array
void Student::setGrade(int idx, int grade)
{
   if((idx>=0)&&(idx<8))
   {
       m_iGrades[idx] = grade;
   }
}

//prints all student info in appropriate format
void Student::printStudentInfo()
{
   //Print Student ID no.
   cout<<"Student ID#:   "<<m_iStudentID<<endl;
  
   //Print Student Name: Last, First
   cout<<"Student Name:   ";
   for (int i=0; i < int(strlen(m_sWizardFamilyName));i++)
       {
           cout<<m_sWizardFamilyName[i];
       }
  
   cout<<", ";
  
   for (int i=0; i < int(strlen(m_sMagicalName));i++)
       {
           cout<<m_sMagicalName[i];
       }
  
   cout<<endl;
  
   //Print Student House name
   cout<<"Student House:   ";
   for (int i=0; i < int(strlen(m_sHouse));i++)
   {
       cout<<m_sHouse[i];
   }
  
   //Print Student Classes and Grades
   char tempS[65];//character array for printing each class
   char charGrade;//variable to hold each letter grade
   int intGrade;//variable to hold each class's integer grade
   cout<<endl<<endl<<"CLASSES       GRADES"<<endl;
  
   for (int i=0; i<8; i++)
       {
           //output student's classes
           if(m_sClasses[i]!=NULL)
           {
               strcpy(tempS, m_sClasses[i]);
               for (int j=0;j<strlen(tempS);j++)
               {
                   cout<<tempS[j];
               }
               //output students integer and letter grade
               getGrade(i, intGrade, charGrade);
               cout<<"       "<<intGrade<<"   "<<charGrade<<endl;
           }
       }

}

Student.h


#pragma once

class Student
{
private:
   int m_iStudentID;//Student ID number
   char m_sMagicalName[65];//char array for student's first name
   char m_sWizardFamilyName[65];//char array for student's last name
   char m_sHouse[65];//char array for student's house name
   char *m_sClasses[8];//array of pointers to char arrays for student's classes
   int m_iGrades[8];//array of integers for student's classes

public:
   Student *m_pNext;
  
  
   Student();//default constructor
   Student(int iID, char *mName, char *wName, char *hName);//paremetrized constructor
   ~Student();//destructor
  
   Student *Clone();
   //get and set student id variable
   int getStudentID();
   void setStudentID(int iID);
  
   //get and set first and last name variables
   void getName(char *mName, char*wName);
   void setName(char *mName, char*wName);
  
   //get and set house name array
   void getHouse(char *hName);
   void setHouse(char *hName);
  
   //get and set classes from an array of eight pointers
   void getClass(int idx, char *className);
   void setClass(int idx, char *className);
  
   //get and set integer and letter grades for each class
   void getGrade(int idx, int &iGrade, char &cGrade);
   void setGrade(int idx, int grade);
  
   //print all student info
   void printStudentInfo();
};

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote