#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