Answer:
Step-by-step explanation:
// Include the required
// header files.
#include <iostream>
#include <cstdlib>
#include <iomanip>
#include <ctime>
#include <string>
// Use the
// standard namespace.
using namespace std;
// Define the function NoDuplicates(),
// to check whether a value is already
// present in an array or not.
int NoDuplicates(int arr[], int size, int val)
{
 // Run the loop to
 // traverse the array.
 for(int i=0; i<size; i++)
 {
 // If the value is already present
 // in the array, return 0.
 if(arr[i] == val)
 {
 return 0;
 }
 }
 // Otherwise, return 1.
 return 1;
}
// Define the function getLottoPicks().
void getLottoPicks(int UserTicket[])
{
 int currNum;
//
 // Run the oop to get 7
 // numbers from the user.
 for(int i=0; i<7; i++)
 {
 // Prompt the user
 // to enter the number.
 cout << "Please enter number "<<i+1<<":";
 
 // Read and store
 // the number.
 cin >> currNum;
 
 // Run the loop till the
 // entered number is valid.
 while(true)
 {
 // If the number is out of range,
 // display an error message.
 if(currNum>40 || currNum<1)
 {
 cout << "The number must between 1 and 40. ";
 }
 // Otherwise, if the number is
 // already present in the array,
 // display an error message.
 else if(NoDuplicates(UserTicket, i, currNum) == 0)
 {
 cout << "No duplicate numbers are accepted. ";
 }
 //Otherwise if the number is valid,
 // break out of the loop.
 else
 {
 break;
 }
 // If the number was invalid,
 // prompt the user to enter the number again.
 cout << "Please enter another number:"<<endl;
 cin >> currNum;
 }
 // Store the number in the array.
 UserTicket[i] = currNum;
 }
}
// Define the function GenWinNums().
void GenWinNums(int WinningNums[7])
{
 int currNum;
 // Run the loop to
 // generate 7 numbers.
 for(int i=0; i<7; i++)
 {
 // Generate a random number
 // in the range 1-40.
 currNum = (rand()%40) + 1;
 
 //Run the loop till the
 // generated number is valid.
 while(NoDuplicates(WinningNums, i, currNum) == 0)
 {
 // If the generated number was
 // a duplicate, generate another number.
 currNum = (rand()%40) + 1;
 }
 // Store the number in the array.
 WinningNums[i] = currNum;
 }
}
// Define the function getWinnings().
string getWinnings(int numMatches)
{
 // Return the winnings as
 // per the number of matches.
 switch(numMatches)
 {
 case 0:
 case 1:
 case 2:
 return "SORRY NOTHING";
 case 3:
 return "FREE TICKET";
 case 4:
 return "NOT BAD - $100";
 case 5:
 return "LUCKY YOU! - $5,000";
 case 6:
 return "GREAT! - $100,000";
 case 7:
 return "JACKPOT - 1 MILLION";
 }
 return "Invalid Matches";
}
// Define the function displayResults().
void displayResults(string name, int UserTicket[], int WinningNums[])
{
 int numMatches = 0;
 string winnings;
 
 // Run the loop to convert
 // the name to uppercase.
 for(int i=0; i<name.size(); i++)
 {
 name[i] = toupper(name[i]);
 }
 
 // Run the loop to find
 // the number of matches.
 for(int i=0; i<7; i++)
 {
 for(int j=0; j<7; j++)
 {
 if(UserTicket[i] == WinningNums[j])
 {
 numMatches++;
 break;
 }
 }
 }
 // Get the winnings as per
 // the number of matches.
 winnings = getWinnings(numMatches);
 
 // Display the results.
 cout << endl
 << name << "'s LOTTO RESULTS" << endl;
 cout << "------------------------"<<endl;
 cout << "WINNING TICKET NUMBERS:";
 
 // Run the loop to display
 // the winning numbers.
 for(int i=0; i<7; i++)
 {
 cout << setw(3) << WinningNums[i];
 }
 cout << endl;
 cout << setw(13) << name << "'s TICKET:";
 
 // Run the loop to display
 // the user ticket.
 for(int i=0; i<7; i++)
 {
 cout << setw(3) << UserTicket[i];
 }
 cout << endl;
 cout << "RESULTS:"<<endl;
 cout << "--------"<<endl;
 cout << "Number Matches: " << numMatches << endl;
 cout << "Winnings : " << winnings << endl
 << endl;
 
}
// Define the
// function menu().
void menu()
{
 cout << "LITTLETON CITY LOTTO MODEL:"<<endl
 <<"---------------------------"<<endl
 <<"1) Play Lotto"<<endl
 <<"q) Quit Program"<<endl
 <<"Please make a selection:"<<endl;
}
// Define the
// main() function.
int main() { 
 // Set the random seed.
 srand(time(NULL));
 // Define an array to store
 // the user ticket.
 int UserTicket[7];
 
 // Define an array to
 // store the winning numbers.
 int WinningNums[7];
 char userChoice = '0';
 
 string name;
 
 // Run the loop till
 // the user wants to quit.
 while(userChoice != 'q')
 {
 // Display the menu.
 menu();
 
 // Read and store
 // the user choice.
 cin >> userChoice;
 // Perform the required action
 // as per the user choice.
 switch(userChoice)
 {
 case '1':
 cout << "Please enter your name:"
 << endl;
 cin >> name;
 getLottoPicks(UserTicket);
 GenWinNums(WinningNums);
 displayResults(name, UserTicket, WinningNums);
 break;
 // If the user chooses to quit,
 // display a message.
 case 'q':
 cout << "Thank you for"
 <<" using the program."<<endl;
 break;
 
 // Display an error message
 // for invalid selection.
 default:
 cout << "Invalid selection."
 << endl;
 }
 }
 // Return from
 // the main() function.
 return 0;
}