Skip to main content

CPT 200: Functionality 3 - Loops and Functions

import sys
employeeList = {}
lstMenuOption = ('1', '2', '3', 'Q')
#i = 0 #loop count variable
validation = False #initialize validation check to "False"
menuSelection = None
numEmployees = None
num = 1

def main_menu():
    print('-----------------------------------------------------')
    print('(1) Add new employee(s)')
    print('(2) View all employees in the database')
    print("(3) Check employee's information")
    print('(Q) Exit\n')
    totalEmployees = len(employeeList) #Display number of employees in the databse
    print('There are (%d) in the database' % totalEmployees)
    print('-----------------------------------------------------')
    option = input('Please select an option from the menu: ')
    return option

def valid(option): #Function to validate menu selection
    if (option.isnumeric() == True):
        if option in lstMenuOption:
            return True
    elif (option.upper() == 'Q'):
        global menuSelection
        menuSelection = option.upper()
        return True
    elif (option.isnumeric() == False):
        print('You have not entered a correct option.')
        return False
   
def num_employees():
    numEmployees = (input('Please enter the number of employee(s) you are entering (Q to Quit): '))
    if (numEmployees.isnumeric() == True) and (int(numEmployees) < 0):
        print('You have entered an invalid quantity\n')
    elif (numEmployees.isnumeric() == False):
        if (numEmployees.upper() == 'Q'):
            exit()
        else:
            print('You have entered an invalid quantity')
            return None
    else:
        numEmployees = int(numEmployees)
        return numEmployees
   
#while (numEmployees > 0):
def add_employee(): #CPT 200: Functionality 1 part 1
        employeeFName = input("Please Emter the Employee #%d's First Name:" % num)
        employeeLName = input("Please Enter the Employee #%d's Last Name:" % num)
        employeeSSN = input("Please Enter %s %s's SSN (123456789):" % (employeeFName, employeeLName))
        employeePhone = input("Please Enter %s %s's Phone Number:" % (employeeFName, employeeLName))
        employeeEmail = input("Please Enter %s %s's Email Address:" % (employeeFName, employeeLName))
        employeeSalary = input("Please Enter %s %s's Salary:" % (employeeFName, employeeLName))
        employeeFull = employeeFName + ' ' + employeeLName
        print(" ")
        employeeInfo = [employeeFName.capitalize(), employeeLName.capitalize(), employeeSSN, employeePhone, employeeEmail, employeeSalary]
        #employeeList[employeeLName] = employeeInfo
        return employeeFull.upper(), employeeInfo

def view_all_employees(): #Function to display all the keys of employeeList, Functionality 1 part 2
    print('-----------------------------------------------------')
    print('The following employees are currently in the database')
    for key in employeeList.keys():
        print(key)
    print('-----------------------------------------------------')
   
def view_employee(): #Funtionality 1 part 2.5
    print('-----------------------------------------------------')
    empName = input('Please enter the name of the employee you want to view: ').upper()
    if empName in employeeList:
        record = employeeList[empName]
        print('The employee record for %s is below' % empName)
        print('First Name: %s' % record[0])
        print('Last Name: %s' % record[1])
        print('Employee SSN: %s' % record[2])
        print('Employee Phone: %s' % record[3])
        print('Employee Email: %s' % record[4])
        print('Employee Salary: %s' % record[5])
    else:
        print('-----------------------------------------------------')
        print('''That name is not in the database''')
        print('-----------------------------------------------------')
        main_menu()

while menuSelection == None:
    while validation == False: #Menu option validation
        menuSelection = main_menu()
        validation = valid(menuSelection)

    if menuSelection in lstMenuOption: #Menu option selection
        while (menuSelection.isnumeric() == True):
            if menuSelection == '1':
                while numEmployees == None or numEmployees == 0:
                    numEmployees = num_employees()
               
                for employee in range(0, numEmployees, 1):
                    employeeFull, employeeInfo = add_employee()
                    employeeList[employeeFull] = employeeInfo
                    numEmployees = numEmployees - 1
                    num = num + 1
                    if (numEmployees > 0):
                        print('Prepare to enter employee #%d' % num)
                menuSelection = None #Reset check values to default
                validation = False
                break
            if menuSelection == '2':
                view_all_employees()
                menuSelection = None #Reset check values to default
                validation = False
                break
            if menuSelection == '3':
                view_employee()
                menuSelection = None
                validation = False
            break
        else: #(menuSelection.isnumeric() == False):
            if menuSelection == 'Q':
                exit()
    else:
        print('You have not selected a valid option. Please try again.')
        menuSelection = None
        validation = False
       
    #view_all_employees()
    #menuSelection = main_menu()

#empSelection = input("Please enter the employee's last name to display their info or enter 'q' to quit: ")

#if empSelection.upper() == 'Q':
#    sys.exit
#else:
#    if (0 < int(empSelection) < num):
#        print(employeeList[empSelection])
       
   

Comments

Popular posts from this blog

CPT 200: Fundamentals of Programming Languages

    During my quest to obtain a Bachelor of Information Technology from Ashford University, my fourth class was CPT 200: Fundamentals of Programming Languages.  For that class, the programming language that is taught is Python 3.     On the first week of class, we were asked to create code that would ask a user to input several pieces of information about any specific employee.  We were to use the variables: employeeName, employeeSSN, employeePhone, employeeEmail, and employeeSalary.  After the data was inputted, it needed to be printed on the screen.  Below was what I turned in for Functionality 1:     During the second week of class, we were to read two chapters: Chapter 3: Types and Chapter 4: Branching.  These chapters introduced us to the different types of variables that can be used within Python as well as how to use branching in your scripts. For the second functionality, we were instructed to adjust ou...

CPT 307: Starting to understand algorithm selection

As it turns out, there is a specific science to selecting the best algorithm to apply to data within a program.  When I first started my Data Structures & Algorithms class, I was excited to learn about different algorithms, and how to efficiently store and sort data using advanced data structures.  What I learned was that there are a great many different algorithms to both search and sort information stored in arrays.  Some websites, such as geeksforgeeks.org, have entire lists of different algorithms each with differing complexities, and each tailored for a specific use.  The computer science community describes algorithm efficiency using two different measures of complexity.  Time complexity is a function relating the number of actions (n) that will be performed on an array (a[]).  There are many different kinds of actions that an algorithm can perform on an array of data.  Time can mean the number of memory accesses performed, the number of co...

CPT 307: Java Newbie to Newbie

     For our first assignment in CPT 307: Data Structures & Algorithms, we were tasked with installing the Java Development Kit (JDK) and the NetBeans IDE.  Installing the JDK was straightforward and painless.  It was as simple as downloading the installer and following the installation wizard.  NetBeans was a slightly different story.  There were several different packages to download; I chose the package with the most language support.  In hindsight, I probably should have downloaded only the package supporting Java, saving the other packages for when I actually use the other tools.  After completing the NetBeans install, I kept getting an error about “GlassFish” whenever I tried creating a new project.  I attempted to search the forums for a fix but found the NetBeans forums to be extremely confusing, and I could not find a solution to the issue.  So I decided to search the internet for a different IDE to work with.  Wh...