• Sample C++ Student Database:

    #include<fstream>   // file handling header file

    #include<string>

    #include<iostream>

    #include<iomanip>

    using namespace std;

     //class declarations

    class course{

              public:

                       string CRN;

                       string title;

                       string department;

                       string room;

    }; //course

     

    class student{

              public:

                       string fname, lname, major;

                       double gpa;

    }; //student

     

    class university{


    private:

     

    student e[100];   //declaring array of student objects

    course c[100];    //declaring array of course objects

     

    int n;  //student counter

    int z;  //course counter

     

    public:

    void load(){

              n=0;

              z=0;

              ifstream studentFile("students.txt", ios::in);

              ifstream courseFile("courses.txt", ios::in);

              while(studentFile>>e[n].fname>>e[n].lname>>e[n].major>>e[n].gpa){

                       n++;}//WHILE

              while(courseFile>>c[z].CRN>>c[z].title>>c[z].department>>c[z].room){

            z++;}//WHILE

    }//LOAD function to load information from files to arrays

     

    void store(){

              ofstream studentFile("students.txt",ios::out);

              for(int i=0; i<n; i++){

               if(e[i].fname!=" ")

               studentFile<<e[i].fname<<" "<<e[i].lname<<" "<<e[i].major<<" "<<e[i].gpa<<endl;

              }//FOR

              ofstream courseFile("courses.txt", ios::out);

              for(int j=0; j<z; j++){

                       if(c[j].CRN!=" ")

                                 courseFile<< c[j].CRN << " "<<c[j].title << " "<<c[j].department << " "<<c[j].room<<endl;

              }//FOR

    }//STORE

     

    void addStudent(){

              cout<<"Enter student's first name: "; cin>>e[n].fname;

              cout<<"Enter student's last name: "; cin>>e[n].lname;

              cout<<"Enter student's major: "; cin>>e[n].major;

              if(cin.fail()){

                       cout<<"Error\n"; exit(1);}

                       cout<<"Enter student's gpa: ";

                       cin>>e[n].gpa;

                       n++;

    }//INSERTS A NEW STUDENT TO THE ARRAY

     

    void addCourse( ){

              cout<<"Enter course CRN: ";

              cin>>c[z].CRN;

              cout<<"Enter course title: ";

              cin>>c[z].title;

              cout<<"Enter course room: ";

              cin>>c[z].room;

              cout<<"Enter course department: ";

              cin>>c[z].department;

              z++;

    }//INSERT NEW COURSE INTO ARRAY

     

    int searchCourse(string crn){

              for(int i=0;i<z;i++) if(crn==c[i].CRN) return i;//FOR

                       return -1;

    }//SEARCH COURSE BY CRN

     

     

    void display(){

              cout<<setiosflags(ios::left)<<setw(15)<<"First Name"<<setw(15)<<"Last Name";

              cout<<setw(10)<<"Major"<<setw(10)<<"GPA";

              cout<<endl<<endl;

              cout<<setiosflags(ios::fixed|ios::showpoint|ios::left);

              for(int i=0;i<n;i++){

                       if(e[i].fname!=" "){

                                 cout<<setiosflags(ios::left)<<setw(15)<<e[i].fname<<setw(15)<<e[i].lname;

                                 cout<<setprecision(2)<<setiosflags(ios::left)<<setw(10)<<e[i].major;

                                 cout<<setw(10)<<e[i].gpa;

                                 cout<<resetiosflags(ios::left)<<endl;}//IF

              }//FOR

    }//THIS FUNCTION DISPLAYS ALL RECORDS IN ARRAY

     

    int search(string s){

              for(int i=0;i<n;i++) if(s==e[i].lname) return i;//FOR

                       return -1;

    }//SEARCH BY NAME,-1 NOT FOUND

     

    void update(){

              string searchn;

              cout<<"Enter the Last Name of the Student to be modified: "; cin>>searchn;

              int i=search(searchn);

              if(i==-1) cout<<"STUDENT NOT LISTED"<<endl;

              else{

                       cout<<endl<<"Please enter the updated information."<<endl;

                       cout<<"Enter student's first name: "; cin>>e[i].fname;

                       cout<<"Enter student's last name: "; cin>>e[i].lname;

                       cout<<"Enter major: "; cin>>e[i].major;

                       cout<<"Enter gpa: "; cin>>e[i].gpa;

              }//ELSE

    }//UPDATE

     

     

    void deletefile(){

              int pword;

              cout<<"Enter your administrative password: "; cin>>pword;

              if(pword==5438){

                       ofstream record("students.txt", ios::out);

                       record<<endl;

                       load();

                       record.close();}

              else cout<<"Wrong password entered."<<endl;

    }//DELETE FILE

     

    void backupfile(){

              system("copy students.txt backup.txt");

              cout<<endl<<"Back-up file has been made."<<endl;

    }//BACKUPFILE use cp command for UNIX

     

     

    void studentmenu(){

              char choice='z';  

              system("cls");

              cout<<"Student Menu"<<endl<<endl;

              cout<<"1. Insert Student Record"<<endl;

              cout<<"2. Display All Records"<<endl;

              cout<<"3. Search by Last Name"<<endl;

              cout<<"4. Search by Student ID"<<endl;

              cout<<"5. Update Record"<<endl;

              cout<<"8. Delete Database File"<<endl;

              cout<<"9. Back-up Database File"<<endl;

              cin>>choice;

     

              switch (choice){

                       case '1': addStudent(); break;

                       case '2': display(); break;

                       case '3':

                                 char s[100]; int index;

                                 cout<<"Enter the last name of the student you want: ";

                                 cin>>s;

                                 index=search(s);

                                 if(index!=-1) {

                                          cout<<"Name: "<<e[index].fname<<" "<<e[index].lname<<endl;

                                          cout<<"Major: "<<e[index].major<<endl;

                                          cout<<"GPA: "<<e[index].gpa<<endl;

                                 }//IF

     

                                 else cout<<"STUDENT NOT FOUND"<<endl;

     

                                 break;

     

                       case '4':

                                 int id;

                                 cout<<"Enter Student ID: " ;

                                 cin>>id;

                                 if(id < n){

                                          cout<<"Name: "<<e[id].fname<<" "<<e[id].lname<<endl;

                                          cout<<"Major: "<<e[id].major<<endl;

                                          cout<<"GPA: "<<e[id].gpa; }

                                 else cout<<"Student not found"<<endl;

                                 break;

     

                       case '5': update(); break;

     

                       case 'e': store(); break; //EXIT

     

                       default: cout<<"Invalid Choice"<<endl; break; }//SWITCH

             

    }//studentmenu

     

     

    void coursemenu(){

              char choice='z';

              system("cls");

              cout<<"Course Menu"<<endl;

              cout<<"Add Course (a)"<<endl;

              cout<<"Search for Course (s)"<<endl;

              cin>>choice;

              switch(choice){

                       case 'a': addCourse(); break;

                       case 's':

                                 char crn[100]; int index;

                                 cout<<"Enter the CRN of the course: ";

                                 cin>>crn;

                                 index=searchCourse(crn);

                                 if(index!=-1) {

                                          cout<<"CRN: "<<c[index].CRN<<endl;

                                          cout<<"Title: "<<c[index].title<<endl;

                                          cout<<"Room: "<<c[index].room<<endl;

                                          cout<<"Department: "<<c[index].department<<endl;

                                 }//IF

     

                                 else cout<<"COURSE NOT FOUND"<<endl;

     

                                 break;break;

                       default: cout<<"Invalid Choice"<<endl; break;

              }//SWITCH

     

    }//coursemenu

    };

    void main(){

     

    university OW;

     

    OW.load();

    char choice='z';

    while (choice!='e'&&choice!='E'){

              cout<<endl<<"SUNY OW Database"<<endl<<endl;

              cout<<"Student Menu (s)"<<endl;

              cout<<"Course Menu (c)"<<endl;

              cout<<endl<<" Type e to exit"<<endl<<endl;

              cin>>choice;

     

              switch(choice){

                       case 's':

                                          OW.studentmenu();

                                          break;

     

                       case 'c':

                                          OW.coursemenu();

                                          break;

     

                       case 'e': OW.store(); break; //EXIT

     

                       default: cout<<"Invalid Choice"<<endl; break; }//SWITCH

     

    }//WHILE

     

    }//MAIN