PYTHON之Employee Manager System练习

# 显示系统的欢迎信息
EMS(Employee Manager System 员工管理系统)
print('-'*20 , '欢迎使用员工管理系统', '-'*20)
# 创建一个列表,用来保存员工的信息,员工的信息以字符串的形式统一保存到列表
emps = ['孙悟空\t18\t男\t花果山','猪八戒\t28\t男\t高老庄']

# 创建一个死循环
while True:
    # 显示用户的选项
    print('请选择要做的操作:')
    print('\t1.查询员工')
    print('\t2.添加员工')
    print('\t3.删除员工')
    print('\t4.退出系统')
    user_choose = input('请选择[1-4]:')
    print('-'*62)
    # 根据用户的选择做相关的操作
    if user_choose == '1' :
        # 查询员工
        # 打印表头
        print('\t序号\t姓名\t年龄\t性别\t住址')
        # 创建一个变量,来表示员工的序号
        n = 1
        # 显示员工信息
        for emp in emps :
            print(f'\t{n}\t{emp}')
            n += 1
    elif user_choose == '2':
        # 添加员工
        # 获取要添加员工的信息,姓名、年龄、性别、住址
        emp_name = input('请输入员工的姓名:')
        emp_age = input('请输入员工的年龄:')
        emp_gender = input('请输入员工的性别:')
        emp_address = input('请输入员工的住址:')

        # 创建员工信息
        # 将四个信息拼接为一个字符串,然后插入到列表中
        emp = f'{emp_name}\t{emp_age}\t{emp_gender}\t{emp_address}'
        # 显示一个提示信息
        print('以下员工将被添加到系统中')
        print('-'*62)
        print('姓名\t年龄\t性别\t住址')
        print(emp)
        print('-'*62)
        user_confirm = input('是否确认该操作[Y/N]:')

        # 判断
        if user_confirm == 'y' or user_confirm == 'yes' :
            # 确认
            emps.append(emp)
            # 显示提示信息
            print('添加成功!')
        else :
            # 取消操作
            print('添加已取消!')
        
    elif user_choose == '3':
        # 删除员工,根据员工的序号来删除员工
        # 获取要删除的员工的序号
        del_num = int(input('请输入要删除的员工的序号:'))

        # 判断序号是否有效
        if 0 < del_num <= len(emps) :
            # 输入合法,根据序号来获取索引
            del_i = del_num - 1
            # 显示一个提示信息
            print('以下员工将被删除')
            print('-'*62)
            print('\t序号\t姓名\t年龄\t性别\t住址')
            print(f'\t{del_num}\t{emps[del_i]}')
            print('-'*62)
            user_confirm = input('该操作不可恢复,是否确认[Y/N]:')
            # 判断
            if user_confirm == 'y' or user_confirm == 'yes' :
                # 删除元素
                emps.pop(del_i)
                # 显示提示
                print('员工已被删除!')
            else :
                # 操作取消
                print('操作已取消!')
        else :
            # 输入有误
            print('您的输入有误,请重新操作!')

    elif user_choose == '4':
        # 退出
        print('欢迎使用!再见!')
        input('点击回车键退出!')
        break
    else :
        print('您的输入有误,请重新选择!')

    # 打印分割线
    print('-'*62)

range()函数

# range()是一个函数,可以用来生成一个自然数的序列
r = range(5) # 生成一个这样的序列[0,1,2,3,4]
r = range(0,10,2)
r = range(10,0,-1)
# 该函数需要三个参数
#   1.起始位置(可以省略,默认是0)
#   2.结束位置
#   3.步长(可以省略,默认是1)

# print(list(r))

# 通过range()可以创建一个执行指定次数的for循环


# for()循环除了创建方式以外,其余的都和while一样,
#   包括else、包括break continue都可以在for循环中使用
#   并且for循环使用也更加简单
# 将之前使用while循环做的练习,再使用for循环完成一次!
for i in range(30):
    print(i)

# for s in 'hello':
#     print(s)

某公司雇员(Employee)包括经理(Manager),技术人员(Technician)和销售员(Salesman)。开发部经理(DeveloperManger),既是经理也是技术人员。销售部经理(SalesManager),既是经理也是销售员。 以Employee类为虚基类派生出Manager,Technician和Salesman类;再进一步派生出Developermanager和Salesmanager类。 Employee类的属性包括姓名、职工号、工资级别,月薪(实发基本工资加业绩工资)。操作包括月薪计算函数(pay()),该函数要求输入请假天数,扣去应扣工资后,得出实发基本工资。 Technician类派生的属性有每小时附加酬金和当月工作时数,及研究完成进度系数。业绩工资为三者之积。也包括同名的pay()函数,工资总额为基本工资加业绩工资。 Salesman类派生的属性有当月销售额和酬金提取百分比,业绩工资为两者之积。也包括同名的pay()函数,工资总额为基本工资加业绩工资。 Manager类派生属性有固定奖金额和业绩系数,业绩工资为两者之积。工资总额也为基本工资加业绩工资。 而DeveloperManager类,pay()函数是将作为经理和作为技术人员业绩工资之和的一半作为业绩工资。 SalesManager类,pay()函数则是经理的固定奖金额的一半,加上部门总销售额与提成比例之积,这是业绩工资。 编程实现工资管理。特别注意pay()的定义和调用方法:先用同名覆盖,再用运行时多态。
以下是一个简单的 Python 人事管理系统的代码示例,包括员工信息的增删改查功能: ```python class Employee: def __init__(self, name, age, position): self.name = name self.age = age self.position = position class HRSystem: def __init__(self): self.employees = [] def add_employee(self, name, age, position): employee = Employee(name, age, position) self.employees.append(employee) print(f"{name} has been added to the system.") def remove_employee(self, name): for employee in self.employees: if employee.name == name: self.employees.remove(employee) print(f"{name} has been removed from the system.") return print(f"{name} is not found in the system.") def update_employee(self, name, age, position): for employee in self.employees: if employee.name == name: employee.age = age employee.position = position print(f"{name}'s information has been updated.") return print(f"{name} is not found in the system.") def search_employee(self, name): for employee in self.employees: if employee.name == name: print(f"Name: {employee.name}, Age: {employee.age}, Position: {employee.position}") return print(f"{name} is not found in the system.") def print_employees(self): for employee in self.employees: print(f"Name: {employee.name}, Age: {employee.age}, Position: {employee.position}") hr_system = HRSystem() hr_system.add_employee("John Doe", 30, "Manager") hr_system.add_employee("Jane Smith", 25, "Developer") hr_system.print_employees() hr_system.update_employee("John Doe", 35, "Senior Manager") hr_system.search_employee("Jane Smith") hr_system.remove_employee("John Doe") hr_system.print_employees() ``` 这是一个简单的示例,你可以根据需求扩展和修改代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值