C++ Data Persistance Help
Redo the code below to make the data persistent. You will have to save information in a file or files so that the application will pick up previously stored data and still operate as intended in Lab1 to
Write a program that allows the user to initially enter information on 4 students and 10 courses. Have the program associate each student to at least four courses for a semester session. The program will display a report showing the assigned courses for each students with the total number of credits.
The student information should include:
1. student ID
2. first name
3. last name
The course information should include:
1. Course ID
2. Course name
3. Number of credits
Design requirement:
A student will be assigned a course through a session. The session should include the following attributes:
1. session ID
2. student ID
3. course ID
4. start date
5. end date
.
See Code Below:
course.h
#include<iostream>
using namespace std;
struct course
{
string CourseName;
string CourseID;
int numberOfCredits;
};
student.h
#include<iostream>
using namespace std;
struct student
{
string fname;
string lname;
string stuID;
};
session.h
#include<iostream>
using namespace std;
struct session
{
int sessionID;
string stuID;
string courseID;
string startDate;
string endDate;
int totalCredits;
};
main.cpp
#include<iostream>
using namespace std;
#include “student.h”
#include “course.h”
#include “session.h”
void fillStudents(student arg[], int size)
{
for (int i = 0; i < size; i++)
{
cout <<“Student #”<<i+1<<endl;
cout <<“==========”<<endl;
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 #”<<i+1<<endl;
cout <<“==========”<<endl;
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!”<<endl;
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!”<<endl;
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 #”<<j+1<<” tt”<<c[j].CourseID<<” tt”<<c[j].CourseName<<” ttt”<<“Credits: “<<c[j].numberOfCredits<<“nn”;
}
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+”n”+ch2+”n”+ch3+”n”+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: “<<s[i].stuID<<“n”<<endl;
cout<<“Student Name: “<<s[i].lname<<“, “<<s[i].fname<<“n”<<endl;
cout<<“Course IDs: n”<<se[i].courseID<<“n”<<endl;
cout<<“Start Date: n”<<se[i].startDate<<“n”<<endl;
cout<<“End Date: n”<<se[i].endDate<<“n”<<endl;
cout<<“Total Credits: “<<se[i].totalCredits<<“n”<<endl;
cout<<“n”<<endl;
}
}
int main()
{
cout<<“Welcome to the CS 230 Data Structures class add program!”<<endl;
cout<<“Please follow the prompt to gain a report of your courses for the year: “<<endl<<endl;
//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: “<<endl;
cout<<“Each student goes by how their information was added”<<endl<<endl;
session sessions[4];
fillSession(stu, courses, sessions);
//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: nn”<<endl;
cout <<“==========”<<endl;
display_report(stu, courses, sessions);
cout <<“==========”<<endl;
system(“PAUSE”);
return 0;
}