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

C++ Coding Help. I have a program but I need it to ask the user for their studen

ID: 3885708 • Letter: C

Question

C++ Coding Help. I have a program but I need it to ask the user for their student ID number, once that is colleted it will look through the sessions.txt file and make sure that that number isnt already in use. if it is the program will make the user pick another number if not the program will contine as planned. Please see code below.

main.cpp


#include
#include
#include
#include
#include "students.h"
#include "courses.h"
#include "sessions.h"
using namespace std;


void fillStudents(student arg[], int size)
{
     for (int i = 0; i < size; i++)
     {
         cout <<"Student #"<          cout <<"=========="<          cout <<"Enter a student ID (i.e 97626): ";
         cin >>arg[i].stuID;
         cout <<"Enter the first name (i.e Ryan): ";
         cin >>arg[i].fname;
         cout <<"Enter the last name (i.e Brown): ";
         cin >>arg[i].lname;
         system("CLS");
     }
}

void fillCourses(course c[], int size)
{
     for (int i = 0; i < size; i++)
     {
         cout <<"Course #"<          cout <<"=========="<          cout <<"Enter course name (i.e Data-Structures (put - instead of spaces)): ";
         cin >>c[i].CourseName;
         cout <<"Enter course ID (i.e CS-230 (put - instead of spaces)): ";
         cin >>c[i].CourseID;
         cout <<"Enter number of credits (i.e 3): ";
         cin >>c[i].numberOfCredits;
         system("CLS");
     }
}

string CourseN(int choice, course ch[])
{
    switch(choice)
    {
        case 1:
            return ch[0].CourseID+" "+ch[0].CourseName;
            break;
        case 2:
            return ch[1].CourseID+" "+ch[1].CourseName;
            break;
        case 3:
            return ch[2].CourseID+" "+ch[2].CourseName;
            break;
        case 4:
            return ch[3].CourseID+" "+ch[3].CourseName;
            break;
        case 5:
            return ch[4].CourseID+" "+ch[4].CourseName;
            break;
        case 6:
            return ch[5].CourseID+" "+ch[5].CourseName;
            break;
        case 7:
            return ch[6].CourseID+" "+ch[6].CourseName;
            break;
        case 8:
            return ch[7].CourseID+" "+ch[7].CourseName;
            break;
        case 9:
            return ch[8].CourseID+" "+ch[8].CourseName;
            break;
        case 10:
            return ch[9].CourseID+" "+ch[9].CourseName;
            break;
        default:
            cout<<"Invalid decison!! Good Bye!"<             exit(0);
    }
}

int creditTotal(int sel, course ch[])
{
    switch(sel)
    {
        case 1:
            return ch[0].numberOfCredits;
            break;
        case 2:
            return ch[1].numberOfCredits;
            break;
        case 3:
            return ch[2].numberOfCredits;
            break;
        case 4:
            return ch[3].numberOfCredits;
            break;
        case 5:
            return ch[4].numberOfCredits;
            break;
        case 6:
            return ch[5].numberOfCredits;
            break;
        case 7:
            return ch[6].numberOfCredits;
            break;
        case 8:
            return ch[7].numberOfCredits;
            break;
        case 9:
            return ch[8].numberOfCredits;
            break;
        case 10:
            return ch[9].numberOfCredits;
            break;
        default:
            cout<<"Invalid Decision!! Good Bye!"<             exit(0);
        }
}

void fillSession(student arg[], course c[], session s[])
{
    int c1, c2, c3, c4;
    string ch1, ch2, ch3, ch4;
    string startDate, endDate;
    int cr1, cr2, cr3, cr4;

    for (int i = 0; i < 4; i++)
    {
        for(int j = 0; j < 10; j++)
        {
            cout<<"class #"<

        cout<<"Enter your 1st class choice: ";
        cin>>c1;
        ch1=CourseN(c1,c);
        cout<<"Enter your 2nd class choice: ";
        cin>>c2;
        ch2=CourseN(c2,c);
        cout<<"Enter your 3rd class choice: ";
        cin>>c3;
        ch3=CourseN(c3,c);
        cout<<"Enter your 4th class choice: ";
        cin>>c4;
        ch4=CourseN(c4,c);

        s[i].courseID=ch1+" "+ch2+" "+ch3+" "+ch4;
        cout<<"Enter a start date for your classes (i.e mm/dd/yyyy): ";
        cin>>startDate;
        s[i].startDate=startDate;
        cout<<"Enter a end date for your classes (i.e mm/dd/yyyy): ";
        cin>>endDate;
        s[i].endDate=endDate;

        cr1=creditTotal(c1, c);
        cr2=creditTotal(c2, c);
        cr3=creditTotal(c3, c);
        cr4=creditTotal(c4, c);

        s[i].totalCredits=cr1+cr2+cr3+cr4;

        c1=0;
        c2=0;
        c3=0;
        c4=0;

        system("CLS");
    }
}

void display_report(student s[], course c[], session se[])
{
    for (int i = 0; i < 4; i++)
    {
        cout<<"Student ID: "<         cout<<"Student Name: "<

/**
* Writes session data to file.
* @param   {session}   sess   sessions array.
*/
void writeSessionsToFile(session* sess, student* stude)
{
   ofstream file_out("sessions.txt", ios::app);
   // for now let us just assume there'll always be just 4 sessions.
   for (size_t i = 0; i < 4; ++i)
   {
       file_out << stude[i].lname << ", "<        file_out << stude[i].stuID << " ";
       file_out << sess[i].courseID << " ";
       file_out << sess[i].startDate << " ";
       file_out << sess[i].endDate << " ";
       file_out << sess[i].totalCredits << " ";
       // empty line in the end of each entry.
       file_out << endl;
   }
}


int main()
{
    cout<<"Welcome to the CS 230 Data Structures class add program!"<     cout<<"Please follow the prompt to gain a report of your courses for the year: "<     //declare and initialize 4 students
    student stu[4];
    fillStudents(stu, 4);

    //declare and initialize 10 courses
    course courses[10];
    fillCourses(courses, 10);

    //assign 4 courses for each student
    cout<<"Enter a class selection based on the chart above (1-10), please do not choose the same class twice: "<     cout<<"Each student goes by how their information was added"<

    session sessions[4];
    fillSession(stu, courses, sessions);

    writeSessionsToFile(sessions, stu);

    //display a report showing each student with his/her courses
    //show the total number of credits for each student
    cout<<"Please find your name and other important information below to see your classes and credit totals: "<     cout <<"=========="<     display_report(stu, courses, sessions);
    cout <<"=========="<


    // instead of system(pause), pause doesn't work on linux.
    cin.get();
    return 0;
}

courses.h

#include
using namespace std;

struct course
   {
       string CourseName;
       string CourseID;
       int numberOfCredits;
   };

sessions.h


#include
using namespace std;

struct session
   {
       int sessionID;
       string stuID;
       string courseID;
       string startDate;
       string endDate;
       int totalCredits;
   };

students.h

#include
using namespace std;

struct student
   {
       string fname;
       string lname;
       string stuID;
   

Explanation / Answer

Below is the method to check if the student ID exists in the session file or not. It returns true if the student ID exists in the file, otherwise it returns false.It takes studentID as parameter.

bool verifyStudentID(string stuID)

{

//open input file..import ifsteam and sstream

//End Method

Call this method in fillStudents() function. Modify your code as below:

void fillStudents(student arg[], int size)
{
     for (int i = 0; i < size; i++)
     {
         cout <<"Student #"<          cout <<"=========="<          cout <<"Enter a student ID (i.e 97626): ";
         cin >>arg[i].stuID;

bool invalidID=true;

while(invalidID==true)

{

invalidID=verifyStudentID(arg[i].stuID);

if(invalidID==true)

{

cout <<"ID already exists..... Please choose another ID: ";

  cin >>arg[i].stuID;

}

else

{

break;

}

}

//Continue

}

// End method