Code:
////////////////////
//Daniel Pritchett//
// COP 1220 //
// 11-2-02 //
////////////////////
/*
This program will first ask the user for the term, then it will present 3 choices
to pick from. Either imput the information to a file, output the information
from the first file to a report, or quit. This all is looped so that when the user is
finished with one choice, they will be able to re-chose again.
*/
#include <iostream>
#include <fstream>
#include <string>
#include <iomanip>
using namespace std;
void OutputInfo(ofstream & outFile1, string & SSN, string & LastName, string & FirstName, string & semester,
string & Email, int & choice, int & students, int & ReferenceNum, int RefNum[]);
void ReportOutput(ifstream & InFile, ofstream & outFile2, string SSN, string LastName, string FirstName,
string & semester, string & Email, int choice, int students, int ReferenceNum, int RefNum[]);
int main ()
{
string SSN, LastName, FirstName, semester, Email ;
int choice, students, ReferenceNum;
int RefNum[3];
RefNum[0] = 111111;
RefNum[1] = 222222;
RefNum[2] = 333333;
ofstream outFile1;
ofstream outFile2;
ifstream inFile;
outFile1.open("a:sdntnfo.dat", ios::out);
inFile.open("a:sdntnfo.dat", ios::in);
outFile2.open("a:Record.txt", ios::out);
cout << "Please enter the Class term: ";
cin >> semester;
//heading
outFile2 << setw(6) << "Introduction to C"
<< setw(5) <<"\nTerm:" << semester;
//loops so that the user can re-chose what operation they would like to do.
do
{
cout << "\nWould you like to\n1: Enter Student information\n"
<<"2: Read from file and create report"
<< "\n3: Quit\n";
cin >> choice;
switch(choice)
{
//outputs the first file, student database
case (1):
OutputInfo(outFile1, SSN, LastName, FirstName, semester,
Email, choice, students, ReferenceNum, RefNum);
break;
//generates reference number organized file
case (2):
ReportOutput(inFile, outFile2, SSN, LastName, FirstName,
semester, Email, choice, students, ReferenceNum, RefNum);
break;
//quits
case(3):
exit(0);
//default, exits switch and displays switch options
default:
cout << "\nYou did not enter a valid choise, please enter correct choice!";
break;
}
}
while(choice != 3); //end of do...while statemet
outFile1.close();
inFile.close();
outFile2.close();
return 0;
}
void OutputInfo(ofstream & outFile1, string & SSN, string & LastName, string & FirstName, string & semester,
string & Email, int & choice, int & students, int & ReferenceNum, int RefNum[])
{
cout << "\nHow many students are you entering?";
cin >> students;
while(students != 0)
{
cout << "\nEnter the student's nine digit ID number: ";
cin >> SSN;
outFile1 << SSN;
cout << "\nEnter the student's First and Last Name: ";
cin >> FirstName >> LastName;
outFile1 << " " << LastName << " " << FirstName;
cout << "\nEnter the student's [email protected]: ";
cin >> Email;
outFile1 << " " << Email;
cout << "\nEnter the student's Reference number: "
<<"(note, only 111111, 222222, and 333333 are valid.\n)";
cin >> ReferenceNum;
//tests to see if number is correct
while((ReferenceNum!=RefNum[0]) && (ReferenceNum!=RefNum[1]) && (ReferenceNum!=RefNum[2]))
{
cout << "\nYou have entered an invalid number, please enter a correct one: ";
cin >> ReferenceNum;
}
outFile1 << " " << ReferenceNum << endl;
students--;
}
}
void ReportOutput(ifstream & inFile, ofstream & outFile2, string SSN, string LastName, string FirstName,
string & semester, string & Email, int choice, int students, int ReferenceNum, int RefNum[])
{
if (!inFile)
{
cerr << "File could not be opened" << endl;
exit(1);
}
if (inFile==NULL)
{
cout<<"The file does not exist";
exit(0);
}
outFile2 << "\n\n\nReference Number " << RefNum[0] << endl;
outFile2 << "\n\n\nSSN" << right << setw(20) << right << setw(20) << "Last"
<< right << setw(20) << "First " << right << setw(20) << "[email protected]\n";
while (!inFile.eof())
{
inFile >> SSN >> LastName >> FirstName >> Email >> ReferenceNum;
if(ReferenceNum==RefNum[0])
{
outFile2 << right << SSN << right << setw(17) << LastName << right
<< setw(16) << FirstName << right << setw(20) << Email;
break;
}
}
inFile.seekg(0, ios::beg);
int n;
for(n = 0; n!=40; n++)
{outFile2 << "\n";}
outFile2 << "Reference Number" << RefNum[1] << endl;
outFile2 << "\n\n\nSSN" << right << setw(20) << right << setw(20) << "Last"
<< right << setw(20) << "First " << right << setw(20) << "[email protected]\n";
while (!inFile.eof())
{
inFile >> SSN >> LastName >> FirstName >> Email >> ReferenceNum;
if(ReferenceNum==RefNum[0])
{
outFile2 << right << SSN << right << setw(17) << LastName << right
<< setw(16) << FirstName << right << setw(20) << Email;
break;
}
}
inFile.seekg(0, ios::beg);
for(n = 0; n!=40; n++)
{outFile2 << "\n";}
outFile2 << "Reference Number" << RefNum[2] << endl;
outFile2 << "\n\n\nSSN" << right << setw(20) << right << setw(20) << "Last"
<< right << setw(20) << "First " << right << setw(20) << "[email protected]\n";
while (!inFile.eof())
{
inFile >> SSN >> LastName >> FirstName >> Email >> ReferenceNum;
if(ReferenceNum==RefNum[0])
{
outFile2 << right << SSN << right << setw(17) << LastName << right
<< setw(16) << FirstName << right << setw(20) << Email;
break;
}
}
}