Skip to main content

CPT 200: Functionality 4 - Strings, Lists, and Dictionaries - Search by SSN and Edit Employee Information

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

def cls():
    print('\n'*50)
   
def main_menu():
    print('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~') #53 Characters
    print('(1) Add new employee(s)')
    print('(2) View all employees in the database')
    print("(3) Search for employee by SSN")
    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 edit_menu():
    print('------------------Choose which field to edit------------------')
    print('(1) Name')
    print('(2) SSN')
    print('(3) Phone Number')
    print("(4) Email")
    print("(5) Salary")
    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 search_by_ssn():
    search = input('Please enter the SSN you want to find: ')
    for empName in employeeList.keys():
        record = employeeList[empName]
        if record[2] == search:
            view_employee(empName)
            global empEdit
            empEdit = empName
            return record
        else:
            print('Invalid option, try again')
        continue
   
def edit_info(editSelect):
    if editSelect.upper() in edtMenuOption:
        while editSelect.isnumeric() == True:
            if editSelect == '1':
                newName = edit_name()
                return newName
            elif editSelect == '2':
                pass
            elif editSelect == '3':
                pass
            elif editSelect == '4':
                pass
            elif editSelect == '5':
                pass
            elif editSelect.upper() == 'Q':
                break
            elif editSelect.upper() != 'Q':
                print('Invalid option, please try again')
                editSelect = edit_menu()
            break
    else:
        print('Invalid option, please try again')
        editSelect = edit_menu()

def edit_question():
    yesno = input('Would you like to edit the employee record (y/n): ')
    if yesno.lower() == 'y':
        editSelect = edit_menu()
        edit_info(editSelect)
        view_all_employees()
    elif yesno.lower() == 'n':
        menuSelection = None #Reset check values to default
        validation = False
    elif (yesno.lower() != ('y' or 'n')) or (yesno.isnumeric() == True):
        print('You have entered an invalid option, please try again')
        edit_question()
   
def edit_name():
    revFName = input("Please enter the employee's first name: ")
    revLName = input("Please enter the employee's last name: ")
    revFullName = revFName + ' ' + revLName
    record[0] = revFName
    record[1] = revLName
    employeeList[revFullName.upper()] = employeeList.pop(empEdit)
    return revFullName.upper()
       
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'):
            main_menu()
        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():
        record = employeeList[key]
        print('---------------------------- %s -----------------------------' % key)
        print('SSN: %s' % record[2])
        print('Phone: %s' % record[3])
        print('Email: %s' % record[4])
        print('Salary: $%s' % record[5])
        print('-----------------------------------------------------')
    print('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~')


def view_employee(empName): #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('---------------------------- %s -----------------------------' % empName)
    print('SSN: %s' % record[2])
    print('Phone: %s' % record[3])
    print('Email: %s' % record[4])
    print('Salary: $%s' % record[5])
    print('--------------------------------------------------------------------')
   

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
                cls()
                break
            if menuSelection == '2':
                view_all_employees()
                menuSelection = None #Reset check values to default
                validation = False
                break
            if menuSelection == '3':
                record = search_by_ssn()
                edit_question()
                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
       
  

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 our code to allow for 5 different employees to be input into the system

CPT 200: Employee Management System Final Project

import sys import csv employeeList = {} employeeImport = {} lstMenuOption = ('1', '2', '3', '4', 'Q') edtMenuOption = ('1', '2', '3', '4', '5', 'Q') validation = False #initialize validation check to "False" menuSelection = None numEmployees = None num = 1 def cls():     print('\n'*50)     def main_menu():     totalEmployees = len(employeeList) #Display number of employees in the databse     print('{:~^79}'.format('~'))     print('{:~^79}'.format('                              '))     print('{:~^79}'.format('  Employee Management System  '))     print('{:~^79}'.format('          James Hardy         '))     print('{:~^79}'.format('                              '))     print('{:~^79}'.format('~'))     print(' ')     print('{:^79}'.format('There are (%d) employees in the

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