#include #include class daf { public: GetFilename(); OpenFileForOutput(); CloseOutputFile(); OpenFileForInput(); CloseInputFile(); GetDataFromUser(); Print(); ReadRecord(); WriteRecord(); FileLength(); Clear(); private: struct part { int partNo; char item[30]; }; part theData; char filename[20]; ofstream out; ifstream in; }; daf::OpenFileForOutput() { out.open(filename, ios::out | ios::binary); if (!out) { cout << "File open failed\n"; return 1; } } daf::CloseOutputFile() { out.close(); } daf::OpenFileForInput() { in.open(filename, ios::in | ios::binary); if (!in) { cout << "File open failed\n"; return 1; } } daf::CloseInputFile() { in.close(); } daf::Clear() { theData.partNo = 0; strcpy(theData.item, " "); } daf::Print() { cout << "Part Number: " << theData.partNo << endl;; cout << "Item Name: " << theData.item << endl;; } daf::ReadRecord() { int rec; cout << "Part Number to access: "; cin >> rec; cout << "trying to find record number " << rec << endl; cout << "Seeking to position " << rec*sizeof(struct part) << endl; in.seekg(rec*sizeof(struct part), ios::beg); in.read((unsigned char *) &theData, sizeof(struct part)); } daf::WriteRecord() { cout << "Seeking to position " << theData.partNo * sizeof(struct part) << endl; out.seekp(theData.partNo * sizeof(struct part), ios::beg); out.write((unsigned char *) &theData, sizeof(struct part)); } daf::GetFilename() { cout << "Please enter name of file: "; cin >> filename; } daf::GetDataFromUser() { cout << "Please enter part no: "; cin >> theData.partNo; cout << "Please enter name of item: "; cin >> theData.item; }