Jump to content

Rand Help

- - - - -

  • Please log in to reply
2 replies to this topic

#1
artyj

artyj

    Newbie

  • Members
  • Pip
  • 1 posts
Hey i need a lil help how do i implement a Random UserID number instead of them typing there own in this code below
=============================================================
/*
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)


#2
brownhead

brownhead

    Programmer

  • Members
  • PipPipPipPip
  • 173 posts
This page should help you quite a bit.

#3
mnirahd

mnirahd

    Programming Professional

  • Members
  • PipPipPipPipPip
  • 330 posts
Hi,


first you need to initialize the random number generation, and then you can use rand() function to generate number. You need to look at two function in order to generate random numbers


void srand ( unsigned int seed );

int rand ( void );


reference: srand - C++ Reference

Please use them in your program, and let us know if yous till have any confusion!

Munir




1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users