1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

C++ search, delete/undelete, update functions

Discussion in 'C++' started by stevensonnz, Sep 24, 2012.

  1. stevensonnz

    stevensonnz New Member

    Joined:
    Sep 24, 2012
    Messages:
    2
    Likes Received:
    0
    Trophy Points:
    0
    Code:
    #include <cstdlib>
    #include <iostream>
    #include <iomanip>
    #include <conio.h>
    #include <fstream>
    
    using namespace std;
    
    const char FILE_PATH[] = "E:\\iofile";
    //------------------------------------------------------------------------------
    
    struct Student
    {
    *** char names [ 16 ];
    *** int other;
    };
    
    fstream MyFile ( FILE_PATH , ios :: binary | ios :: in | ios :: out );
    
    void createFile();
    void mainMenu();
    void funcSwitch();
    void addRecord();
    int displayRecord();
    void updateRecord();
    void deleteRecord();
    void printRecords();
    int searchRecord();
    //------------------------------------------------------------------------------
    int main ( int argc, char* argv [] )
    {
    *** createFile();
    
    *** mainMenu();
    }
    //------------------------------------------------------------------------------
    void mainMenu()
    {
    *** cout << "Welcome to School Enrolment System" << endl << endl
    *** *** * << "Please enter your selection: " << endl
    *** *** * << "1.** Register - New Student (Add record)" << endl
    *** *** * << "2.** Look Up - Existing Student (Display record)" << endl
    *** *** * << "3.** Change Details (Update record)" << endl
    *** *** * << "4.** Remove Student (Delete record)" << endl
    *** *** * << "5.** Show all Students (Print all)" << endl
    *** *** * << "6.** Exit " << endl << endl
    *** *** * << "Selection: ";
    
    *** funcSwitch();
    }
    //------------------------------------------------------------------------------
    void funcSwitch()
    {
    ** char choice;
    
    *** choice = getch();
    *** clrscr();
    *** while ( choice != 54 )
    ** {
    ***** switch ( choice )
    *** *** {
    ******** case '1' :
    *********** addRecord();
    *********** getch();
    *** *** *** *** clrscr();
    ************** break;
    
    ******** case '2' :
    *********** displayRecord();
    *********** getch();
    ************** break;
    
    ******** case '3' :
    *********** updateRecord();
    *********** getch();
    ************** break;
    
    ******** case '4' :
    *********** deleteRecord();
    *********** getch();
    ************** break;
    
    ******** case '5' :
    *********** printRecords();
    *********** getch();
    ************** break;
    
    ******** case '6' :
    *********** break;
    
    ******** default :
    *** *** *** *** cout << choice << " is not a vaild choice" << endl << endl
    *** *** *** *** *** * << "Press any key to choose again... ";
    *********** getch();
    *** *** *** *** clrscr();
    
    ***** }
    ***** mainMenu();
    *** *** choice = getch();
    *** *** clrscr();
    ** }
    }
    //------------------------------------------------------------------------------
    void addRecord()
    {
    *** Student temp;
    
    *** cout << "Welcome new Student!" << endl
    *** *** * << "We're going to set you up with a new Enrolment..." << endl
    *** *** * << "All we need is a few details, let's begin: " << endl;
    
    *** cout << endl << "Please enter first name : ";
    *** cin >> temp.names;
    
    
    
    *** cout << endl << "Please enter your age : ";
    *** cin >> temp.other;
    
    
    *** MyFile.open ( FILE_PATH , ios :: binary | ios :: app | ios :: out );
    *** MyFile.clear();
    *** MyFile.write ( ( const char* ) &temp, sizeof ( Student ) );
    *** MyFile.clear();
    *** MyFile.close();
    }
    //------------------------------------------------------------------------------
    int searchRecord()
    {
    
    *** return 0;
    }
    //------------------------------------------------------------------------------
    int displayRecord()
    {
    *** Student temp;
    *** int age;
    *** int position;
    
    *** cout << "Enter age of person you are seeking: ";
    *** cin >> age;
    *** clrscr();
    
    
    
    *** MyFile.open ( FILE_PATH , ios :: binary | ios :: in );
    *** MyFile.clear();
    *** MyFile.seekp ( position * sizeof ( Student ), ios :: beg );
    *** MyFile.read ( ( char* ) &temp, sizeof ( Student ) );
    
    *** if ( age != temp.other )
    *** {
    *** *** cout << endl << "No record found. Press any key to continue...";
    *** }
    *** else
    *** {
    *** *** cout << "We found your record: " << endl << endl
    *** *** *** * << "Name: " << temp.names << endl
    *** *** *** * << "Age:* " << temp.other << endl;
    *** }
    
    *** *** *cout << endl << "Press any key to continue..." << endl;
    *** *** *getch();
    *** *** *clrscr();
    *** *** *mainMenu();
    *** *** *MyFile.close();
    *** *** *return 0;
    
    }
    //------------------------------------------------------------------------------
    void updateRecord()
    {
    *** Student temp;
    *** time_t t;
    *** char choice;
    *** int position;
    
    *** position = displayRecord ();
    
    *** MyFile.open( FILE_PATH, ios :: binary | ios :: out );
    *** MyFile.clear();
    
    *** if( position != -1 )
    *** {
    *** *** cout << endl << "Do you want to Update this Record( y or n )";
    *** *** choice = getch();
    *** }
    
    *** if( choice == 'y' )
    *** {
    *** *** cout << endl << "Enter name : ";
    *** *** cin >> temp.names;
    
    *** *** cout << endl << "And your age : ";
    *** *** cin >> temp.other;
    
    
    
    
    *** *** MyFile.open( FILE_PATH, ios :: binary | ios :: out );
    *** *** MyFile.clear();
    *** *** MyFile.seekp( position * sizeof( Student ), ios :: beg );
    ***** MyFile.clear();
    *** *** MyFile.write( ( const char* ) &temp, sizeof( Student ) );
    ***** MyFile.close();
    *** }
    }
    
    
    //------------------------------------------------------------------------------
    void deleteRecord()
    {
    
    *** Student temp;
    *** char choice;
    *** int position;
    
    *** -MyFile.open( FILE_PATH, ios :: binary | ios :: in | ios :: out );
    *** MyFile.clear();
    *** MyFile.seekp( position * sizeof( Student ), ios :: beg );
    *** MyFile.read( ( char* )&temp, sizeof( Student ) );
    
    *** cout << endl << endl;
    *** cout << "Would you like to delete this record? Yes (y) or No (n): ";
    *** cin >> choice;
    
    *** choice = getch();
    
    *** MyFile.seekp( position * sizeof( Student ), ios :: beg );
    *** MyFile.write( ( const char* )&temp, sizeof( Student ) );
    
    *** getch();
    *** clrscr();
    *** mainMenu();
    
    *** MyFile.close();
    }
    
    //-----------------------------------------------------------------------------
    
    void printRecords()
    {
    *** Student temp;
    
    *** MyFile.open ( FILE_PATH , ios :: binary | ios :: in );
    *** MyFile.clear();
    *** MyFile.read ( ( char* ) &temp, sizeof ( Student ) );
    
    *** while ( ! MyFile.eof() )
    *** {
    *** *** cout << "Name: " << temp.names << endl
    *** *** *** * << "Age:* " << temp.other << endl << endl;
    
    
    *** *** MyFile.read ( ( char* ) &temp, sizeof ( Student ) );
    *** }
    
    *** cout << endl << "Press any key to continue back to main menu" << endl;
    *** getch();
    *** clrscr();
    *** mainMenu();
    
    *** MyFile.close();
    }
    //------------------------------------------------------------------------------
    void createFile()
    {
    *** if( ! MyFile )
    *** {
    *** *** MyFile.close();
    *** *** MyFile.open(FILE_PATH, ios::binary | ios::in | ios::out);
    *** }
    
    *** if ( ! MyFile )
    *** {
    *** *** cout << "File Error: File does not exist. Creating new file..."
    *** *** *** * << endl << "Click to continue to main menu...";
    *** *** getch();
    *** *** clrscr();
    *** }
    }
    
    Basically the program is a database of student enrollments.

    I cannot get the the search delete/undelete and update functions to work and need help asap. Need to implement a bool field to the delete / undelete

    Please help
     
  2. stevensonnz

    stevensonnz New Member

    Joined:
    Sep 24, 2012
    Messages:
    2
    Likes Received:
    0
    Trophy Points:
    0
    Code:
    //------------------------------------------------------------------------------
    
    #include <cstdlib>
    #include <iostream>
    #include <iomanip>
    #include <conio.h>
    #include <fstream>
    
    using namespace std;
    
    const char FILE_PATH[] = "E:\\iofile";
    //------------------------------------------------------------------------------
    
    struct Student
    {
        char names [ 16 ];
        int other;
    };
    
    fstream MyFile ( FILE_PATH , ios :: binary | ios :: in | ios :: out );
    
    void createFile();
    void mainMenu();
    void funcSwitch();
    void addRecord();
    int displayRecord();
    void updateRecord();
    void deleteRecord();
    void printRecords();
    int searchRecord();
    //------------------------------------------------------------------------------
    int main ( int argc, char* argv [] )
    {
        createFile();
    
        mainMenu();
    }
    //------------------------------------------------------------------------------
    void mainMenu()
    {
        cout << "Welcome to School Enrolment System" << endl << endl
              << "Please enter your selection: " << endl
              << "1.   Register - New Student (Add record)" << endl
              << "2.   Look Up - Existing Student (Display record)" << endl
              << "3.   Change Details (Update record)" << endl
              << "4.   Remove Student (Delete record)" << endl
              << "5.   Show all Students (Print all)" << endl
              << "6.   Exit " << endl << endl
              << "Selection: ";
    
        funcSwitch();
    }
    //------------------------------------------------------------------------------
    void funcSwitch()
    {
       char choice;
    
        choice = getch();
        clrscr();
        while ( choice != 54 )
       {
          switch ( choice )
            {
             case '1' :
                addRecord();
                getch();
                    clrscr();
                   break;
    
             case '2' :
                displayRecord();
                getch();
                   break;
    
             case '3' :
                updateRecord();
                getch();
                   break;
    
             case '4' :
                deleteRecord();
                getch();
                   break;
    
             case '5' :
                printRecords();
                getch();
                   break;
    
             case '6' :
                break;
    
             default :
                    cout << choice << " is not a vaild choice" << endl << endl
                          << "Press any key to choose again... ";
                getch();
                    clrscr();
    
          }
          mainMenu();
            choice = getch();
            clrscr();
       }
    }
    //------------------------------------------------------------------------------
    void addRecord()
    {
        Student temp;
    
        cout << "Welcome new Student!" << endl
              << "We're going to set you up with a new Enrolment..." << endl
              << "All we need is a few details, let's begin: " << endl;
    
        cout << endl << "Please enter first name : ";
        cin >> temp.names;
    
    
    
        cout << endl << "Please enter your age : ";
        cin >> temp.other;
    
    
        MyFile.open ( FILE_PATH , ios :: binary | ios :: app | ios :: out );
        MyFile.clear();
        MyFile.write ( ( const char* ) &temp, sizeof ( Student ) );
        MyFile.clear();
        MyFile.close();
    }
    //------------------------------------------------------------------------------
    int searchRecord()
    {
    
        return 0;
    }
    //------------------------------------------------------------------------------
    int displayRecord()
    {
        Student temp;
        int age;
        int position;
    
        cout << "Enter age of person you are seeking: ";
        cin >> age;
        clrscr();
    
    
    
        MyFile.open ( FILE_PATH , ios :: binary | ios :: in );
        MyFile.clear();
        MyFile.seekp ( position * sizeof ( Student ), ios :: beg );
        MyFile.read ( ( char* ) &temp, sizeof ( Student ) );
    
        if ( age != temp.other )
        {
            cout << endl << "No record found. Press any key to continue...";
        }
        else
        {
            cout << "We found your record: " << endl << endl
                  << "Name: " << temp.names << endl
                  << "Age:  " << temp.other << endl;
        }
    
             cout << endl << "Press any key to continue..." << endl;
             getch();
             clrscr();
             mainMenu();
             MyFile.close();
             return 0;
    
    }
    //------------------------------------------------------------------------------
    void updateRecord()
    {
        Student temp;
        time_t t;
        char choice;
        int position;
    
        position = displayRecord ();
    
        MyFile.open( FILE_PATH, ios :: binary | ios :: out );
        MyFile.clear();
    
        if( position != -1 )
        {
            cout << endl << "Do you want to Update this Record( y or n )";
            choice = getch();
        }
    
        if( choice == 'y' )
        {
            cout << endl << "Enter name : ";
            cin >> temp.names;
    
            cout << endl << "And your age : ";
            cin >> temp.other;
    
    
    
    
            MyFile.open( FILE_PATH, ios :: binary | ios :: out );
            MyFile.clear();
            MyFile.seekp( position * sizeof( Student ), ios :: beg );
          MyFile.clear();
            MyFile.write( ( const char* ) &temp, sizeof( Student ) );
          MyFile.close();
        }
    }
    
    
    //------------------------------------------------------------------------------
    void deleteRecord()
    {
    
        Student temp;
        char choice;
        int position;
    
        -MyFile.open( FILE_PATH, ios :: binary | ios :: in | ios :: out );
        MyFile.clear();
        MyFile.seekp( position * sizeof( Student ), ios :: beg );
        MyFile.read( ( char* )&temp, sizeof( Student ) );
    
        cout << endl << endl;
        cout << "Would you like to delete this record? Yes (y) or No (n): ";
        cin >> choice;
    
        choice = getch();
    
        MyFile.seekp( position * sizeof( Student ), ios :: beg );
        MyFile.write( ( const char* )&temp, sizeof( Student ) );
    
        getch();
        clrscr();
        mainMenu();
    
        MyFile.close();
    }
    
    //-----------------------------------------------------------------------------
    
    void printRecords()
    {
        Student temp;
    
        MyFile.open ( FILE_PATH , ios :: binary | ios :: in );
        MyFile.clear();
        MyFile.read ( ( char* ) &temp, sizeof ( Student ) );
    
        while ( ! MyFile.eof() )
        {
            cout << "Name: " << temp.names << endl
                  << "Age:  " << temp.other << endl << endl;
    
    
            MyFile.read ( ( char* ) &temp, sizeof ( Student ) );
        }
    
        cout << endl << "Press any key to continue back to main menu" << endl;
        getch();
        clrscr();
        mainMenu();
    
        MyFile.close();
    }
    //------------------------------------------------------------------------------
    void createFile()
    {
        if( ! MyFile )
        {
            MyFile.close();
            MyFile.open(FILE_PATH, ios::binary | ios::in | ios::out);
        }
    
        if ( ! MyFile )
        {
            cout << "File Error: File does not exist. Creating new file..."
                  << endl << "Click to continue to main menu...";
            getch();
            clrscr();
        }
    }
    //------------------------------------------------------------------------------
    
     

Share This Page