=============================================================
/*
Tutorial 10
*/
#include <iostream>
#include <fstream>
using namespace std;
const int SIZE=100;
//structure declaration
struct User
{
char UserID[11];
char FirstName[11];
char LastName[11];
char Password[11];
int Priority;
};
//Declarations
void readFile (User user[], int &num){
ifstream inputStream;
inputStream.open("MasterUserFile.txt");
if(inputStream.fail()){
cout<<"Couldn't open file\n";
exit(1);
}
num=0;
while(!inputStream.eof()){
if(!(inputStream>>user[num].UserID)) break; //EOF
inputStream>>user[num].FirstName;
inputStream>>user[num].LastName;
inputStream>>user[num].Password;
inputStream>>user[num].Priority;
//Increment number of users
num++;
inputStream.ignore(1000,'\n');
}
cout<<"Data Loaded from File Successfully"<<endl;
}
void printAll(User user[], int num){
cout<<"Printing All Records"<<endl;
for(int index=0;index<num;index++){
cout<<user[index].UserID<<"\t";
cout<<user[index].FirstName<<"\t";
cout<<user[index].LastName<<"\t";
cout<<user[index].Password<<"\t";
cout<<user[index].Priority<<"\n";
}
}
void addUser (User user[], int& num){
cout<<"Enter User Id:";
cin>>user[num].UserID;
cout<<"Enter First Name:";
cin>>user[num].FirstName;
cout<<"Enter Last Name:";
cin>>user[num].LastName;
cout<<"Enter Password:";
cin>>user[num].Password;
cout<<"Enter User Priority:";
cin>>user[num].Priority;
num++; //Increment number users by 1
cout<<"User was added successfully\n";
}
void writeFile(User user[], int num){
ofstream outputStream;
outputStream.open("MasterUserFile.txt");
if(outputStream.fail()){
cout<<"Couldn't open file";
exit(1);
}
for(int i=0;i<num;i++){
outputStream<<user[i].UserID<<"\t";
outputStream<<user[i].FirstName <<"\t";
outputStream<<user[i].LastName<<"\t";
outputStream<<user[i].Password<<"\t";
outputStream<<user[i].Priority<<"\n";
}
}
void removeUser (User user[],int& num){
char userId[11];
int i;
cout<<"Enter id of user to be removed: ";
cin>>userId;
//Find user
for(i=0;i<num;i++){
cout<<userId<<"|\t"<<user[i].UserID<<"|"<<endl;
if(strcmp(userId,user[i].UserID)==0) break;
}
if(i<num){
//user is found, we should push elements back by one unit
for(int j=i;j<num-1;j++)
user[j]=user[j+1];
num--; //Decrement number of users by 1
cout<<"User was removed successfully"<<endl;
}else
cout<<"User was not found\n";
}
void changePriority(User user[], int num){
char userId[11];
int i;
cout<<"Enter id of user";
cin>>userId;
//Find user
for(i=0;i<num;i++){
if(strcmp(userId,user[i].UserID)!=0) continue;
//User found , change priority
cout<<"Enter new user priority";
cin>>user[i].Priority;
cout<<"User priority was changed successfully\n";
break;
}
if(i==num)
cout<<"User was not found";
}
void changePassword(User user[], int num){
char userId[11];
int i;
cout<<"Enter id of user";
cin>>userId;
//Find user
for(i=0;i<num;i++){
if(strcmp(userId,user[i].UserID)!=0) continue;
//User found , change password
cout<<"Enter new user password";
cin>>user[i].Password;
cout<<"User password was changed successfully\n";
break;
}
if(i==num)
cout<<"User was not found";
}
void printUser(User user[], int num){
char userId[11];
int i;
cout<<"Enter id of user";
cin>>userId;
//Find user
for(i=0;i<num;i++){
if(strcmp(userId,user[i].UserID)!=0) continue;
//User found , print user information
cout<<user[i].UserID<<"\t";
cout<<user[i].FirstName <<"\t";
cout<<user[i].LastName <<"\t";
cout<<user[i].Password<<"\t";
cout<<user[i].Priority <<"\n";
break;
}
if(i==num)
cout<<"User was not found";
}
void menu(){
cout <<"Welcome to the CompanyINFR1100's database!\nWhat would you like to do today?" <<endl;
cout <<"1 -Read from File" <<endl;
cout <<"2 -Add User" <<endl;
cout <<"3 -Remove User" <<endl;
cout <<"4 -Change User Priority" <<endl;
cout <<"5 -Change User Password" <<endl;
cout <<"6 -Display User" <<endl;
cout <<"7 -Display all Users" <<endl;
cout <<"8 -Write to File" <<endl;
cout <<"9 -EXIT" <<endl;
}
int main(){
//set initial variable values
char temp;
int numUsers = 0;
User user[SIZE];
int choice = 0;
//menu displaying options
while (choice !=9){
menu();
cout<<"Please enter your choice:";
cin >>choice;
//switch to call various functions
switch (choice)
{
case 1: {
readFile(user, numUsers);
break;
}case 2:{
addUser(user, numUsers);
break;
}case 3:{
removeUser(user, numUsers);
break;
}case 4:{
changePriority(user, numUsers);
break;
}case 5:{
changePassword(user, numUsers);
break;
}case 6:{
printUser(user, numUsers);
break;
}case 7:{
printAll(user, numUsers);
break;
}case 8:{
writeFile(user, numUsers);
break;
}case 9:{
//asks user if he/she wants to save before quitting
while(true){
cout << "Would you like to write to file before you leave? (y/n) ";
cin >> temp;
if (temp == 'y' || temp == 'Y'){
writeFile(user, numUsers);
exit(0);
}
else if (temp == 'n' || temp == 'N'){
exit(0);
}
cout << "incorrect input" << endl;
}
}default:{
cout << "invalid input" << endl;
}
}
system("PAUSE");
system("CLS");
}
return(0);
}
Edited by Alexander, 09 December 2010 - 01:04 PM.
(code tags)


Sign In
Create Account

Back to top









