Add project files.
This commit is contained in:
parent
12976a36f6
commit
fc6f36a06c
11 changed files with 718 additions and 0 deletions
100
Project1/Menu.h
Normal file
100
Project1/Menu.h
Normal file
|
@ -0,0 +1,100 @@
|
|||
/*
|
||||
* Clock app for Project One
|
||||
* Menu.h header file
|
||||
*
|
||||
* Date: 2022/03/16
|
||||
* Author: Cody Cook
|
||||
*/
|
||||
|
||||
#pragma once // only read this file once
|
||||
#include "Main.h" // get clearScreen function
|
||||
#include "Clock.h" // use of clock functions
|
||||
#include <iostream> // use of cin, cout
|
||||
#include <string> // use of string
|
||||
#include <cstring> // use of string functions
|
||||
|
||||
string menuCommand = "Don't Exit";
|
||||
;
|
||||
|
||||
const char *menuItems[] = {"Add One Hour", "Add One Minute", "Add One Second", "Exit Program"};
|
||||
|
||||
void printMenu(const char *strings[], unsigned int numStrings, unsigned char width)
|
||||
{
|
||||
|
||||
// print width of *, followed by a new line; top of table
|
||||
cout << nCharString(width, '*') << endl;
|
||||
|
||||
// for each of the strings
|
||||
for (unsigned int i = 0; i < numStrings; i++)
|
||||
{
|
||||
|
||||
// set this string to s
|
||||
string s = strings[i];
|
||||
|
||||
// create a menu option
|
||||
cout << "* " << i + 1 << " - " << s << nCharString(width - s.length() - 7, ' ') << "*" << endl;
|
||||
|
||||
// after every line, except the last line, add a * one each side of a line of spaces
|
||||
if (i < numStrings - 1)
|
||||
{
|
||||
cout << endl;
|
||||
}
|
||||
}
|
||||
// print width of *, followed by a new line; bottom of table
|
||||
cout << nCharString(width, '*') << endl;
|
||||
}
|
||||
|
||||
unsigned int getMenuChoice(unsigned int maxChoice)
|
||||
{
|
||||
// variable for user's selection in menu
|
||||
unsigned int choice;
|
||||
|
||||
// prompt user for option
|
||||
cin >> choice;
|
||||
|
||||
// if the user puts a bad value, make them enter it again
|
||||
while (choice < 1 || choice > maxChoice)
|
||||
{
|
||||
cout << "Invalid choice, please try again: ";
|
||||
clearCin();
|
||||
cin >> choice;
|
||||
}
|
||||
|
||||
// return the valid choice option
|
||||
return choice;
|
||||
}
|
||||
|
||||
void mainMenu()
|
||||
{
|
||||
// variable for user's selection in menu
|
||||
unsigned int menuChoice = getMenuChoice(4);
|
||||
|
||||
// options 1-3 control the clock
|
||||
// option 4 exits the program
|
||||
switch (menuChoice)
|
||||
{
|
||||
case 1:
|
||||
// add one hour to the clock, then show the clock
|
||||
addOneHour();
|
||||
displayClocks(hour, minute, second);
|
||||
break;
|
||||
case 2:
|
||||
// add one minute to the clock, then show the clock
|
||||
addOneMinute();
|
||||
displayClocks(hour, minute, second);
|
||||
break;
|
||||
case 3:
|
||||
// add one second to the clock, then show the clock
|
||||
addOneSecond();
|
||||
displayClocks(hour, minute, second);
|
||||
break;
|
||||
case 4:
|
||||
// exit the program
|
||||
menuCommand = "exit";
|
||||
break;
|
||||
default:
|
||||
// if the user puts a bad value, make them enter it again
|
||||
cout << "Invalid choice, please try again." << endl;
|
||||
break;
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue