python作业大教学:制作员工管理系统

news2025/1/12 20:59:33

前言

大家早好、午好、晚好吖 ❤ ~


环境使用:

  • Python 3.8

  • Pycharm


功能需求

“”"

创建员工类:属性有:员工号,员工姓名,员工工资;

创建用户类:属性有:用户名,密码;

1:初始化3个员工对象。(可以使用列表、元组、字典存储) 持久化存储数据

初始化3个用户对象。(可以使用列表、元组、字典存储)

2:功能菜单:

一级菜单:登录(需要验证身份); (验证用户名和密码)

二级菜单:登录成功进入二级菜单,

(1)、查询所有员工信息

(2)、根据工号查询员工信息

(3)、添加员工

(4)、修改员工工资

(5)、删除员工

(6)、退出

“”"


代码展示

“”"

初始化

:param staff_id: 员工工号

:param staff_name: 员工姓名

:param staff_salary: 员工工资

“”"

class Staff():
    def __init__(self, staff_id, staff_name, staff_salary):
        self.staff_id = staff_id
        self.staff_name = staff_name
        self.staff_salary = staff_salary

    def get_sta_id(self):
        return self.staff_id

    def get_sta_name(self):
        return self.staff_name

    def get_sta_salary(self):
        return self.staff_salary

“”"

:param username: 用户名

:param password: 密码

“”"

完整源码点击领取即可

class User():
    def __init__(self, username, password):
        self.username = username
        self.password = password

    def get_username(self):
        return self.username

    def get_password(self):
        return self.password

s1 =Staff('01', '酒笙', '20000')
s2 =Staff('02', '正心', '50000')
s3 =Staff('03', '山禾', '52000')
s4 =Staff('04', '自游', '26000')
s5 =Staff('05', '巳月', '20200')

staff_list = [s1, s2, s3, s4, s5]

u1 = User('admin', '123456')
u2 = User('adm', '123456')
u3 = User('ad', '123456')

user_list = [u1, u2, u3]

str_message = """
**************************************************
【员工管理系统】V1.0

1.查询所有员工信息
2.根据工号查询员工信息
3.添加员工
4.修改员工工资
5.删除员工

6.退出
**************************************************
"""
def login():
    username = input('请输入用户名:')
    password = input('请输入密码:')
    flag = False # 标志位
    for i in user_list:
        if username == i.get_username() and password == i.get_password():
            flag = True
            print('登陆成功')
            print(str_message)
            choose()
    if not flag:
        print('用户名或密码错误!')

源码、素材电子书点击这里

def choose():
    while True:
        temp = input('请输入想要的操作:')
        if temp == '1':
            query_all()
        elif temp == '2':
            query_id()
        elif temp == '3':
            add_staff()
        elif temp == '4':
            update_staff()
        elif temp == '5':
            del_staff()
        elif temp == '6':
            print('退出系统!')
            break
        else:
            print('输入不正确,请重新输入')

def query_all():
    print('员工号\t员工姓名\t\t员工工资')
    for i in range(0, len(staff_list)):
        print('{}\t\t{}\t\t\t{}'.format(staff_list[i].get_sta_id(), staff_list[i].get_sta_name(),
                                        staff_list[i].get_sta_salary()))

通过员工工号查询信息

def query_id():
    staff_id = input('请输入员工工号:')
    flag = False
    for i in range(0, len(staff_list)):
        if staff_id == staff_list[i].get_sta_id():
            flag = True
            print('员工号\t员工姓名\t\t员工工资')
            print('{}\t\t{}\t\t\t{}'.format(staff_list[i].get_sta_id(), staff_list[i].get_sta_name(),
                                        staff_list[i].get_sta_salary()))

    if not flag:
        print('没有此员工')

添加员工

def add_staff():
    staff_id = input('员工号:')
    staff_name = input('员工姓名:')
    staff_salary = input('员工工资:')
    s = Staff(staff_id,staff_name,staff_salary)
    staff_list.append(s)
    print('员工{}添加成功'.format(staff_name))

修改员工

def update_staff():
    staff_id = input('请输入员工工号:')
    flag = False
    for i in range(0, len(staff_list)):
        if staff_id == staff_list[i].get_sta_id():
            flag = True
            print("工号为{}的员工工资为{}".format(staff_id,staff_list[i].get_sta_salary()))
            new_salary = input('修改工资为:')
            s = Staff(staff_id, staff_list[i].get_sta_name(), new_salary)
            staff_list.append(s)
            staff_list.remove(staff_list[i])
            print('员工工资修改成功')
            break

    if not flag:
        print('没有此员工')

def del_staff():
    staff_id = input('请输入员工工号:')
    flag = False
    for i in range(0, len(staff_list)):
        if staff_id == staff_list[i].get_sta_id():
            flag = True
            staff_list.remove(staff_list[i])
    if not flag:
        print('没有此员工')
    print('删除员工成功!')

login()

尾语 💝

好了,今天的分享就差不多到这里了!

完整代码、视频讲解、疑惑解答直接点击下方名片自取即可。

宁外给大家推荐一个好的教程:

【48小时搞定全套教程!你和大佬只有一步之遥【python教程】

有更多建议或问题可以评论区或私信我哦!一起加油努力叭(ง •_•)ง

喜欢就关注一下博主,或点赞收藏评论一下我的文章叭!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/94424.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Excel插件E灵:按家庭建表,创建一户一表。将明细表转成一户一表

单击播放视频: 教你将Excel明细表转换成一户一表,即按家庭创建新表01需求概述 图1是档案明细表,图2是家庭收入采集表的模板样式。现要求将明细表转换成家庭收入采集表,有几个家庭就生成几份单独的采集表。 图1 档案明细表 图2 家…

玩游戏蓝牙耳机哪款好?适合打游戏的无线蓝牙耳机推荐

随着蓝牙耳机越来越受欢迎,喜欢戴蓝牙耳机玩游戏的人也越来越多,特别是近几年随着技术不断地升级,支持低延迟、能听声辨位的游戏蓝牙耳机逐渐火热起来。今天在这里给大家分享几款适合打游戏的无线蓝牙耳机,一起来看看吧。 一、南…

神舟战神z7使用U盘重装系统操作教程分享

神舟战神z7使用U盘重装系统操作教程分享。有用户使用神舟战神z7笔记本电脑的时候安装了一个程序导致了电脑中毒,系统出现了损坏,无法正常的使用。今天教你如何通过U盘重装系统的方法来进行系统的重置,恢复正常的电脑使用。 准备工作&#xff…

复杂度分析

算法 如何评估一个算法的好坏?(事后统计法的应用) 在同一个问题上 比较不同算法对于同一输入的执行时间 事后统计法的缺点 1.严重依赖硬件以及运行时各种不确定因素(比如cpu好一点的效率就高一点) 2.必须编写相应的测试代码 3.测试时输入的数据难以保证公平性…

【数据挖掘机器学习】招聘网站的职位招聘数据的分位数图、分位数-分位数图以及散点图、使用线性回归算法拟合散点图处理详解

文章目录一.本次需求背景二.职位招聘数据的分位数图、分位数-分位数图三.使用散点图、使用线性回归算法拟合散点图处理数据一.本次需求背景 本文主题:招聘网站的职位招聘数据的分位数图、分位数-分位数图以及散点图、使用线性回归算法拟合散点图处理详解 之前的文…

《Python多人游戏项目实战》第三节 在窗口上显示玩家ID以及对话内容

目录 3.1 显示不同的人物图片 3.2 显示玩家ID 3.3 显示玩家对话内容 3.4 完整代码下载地址 本节只是在上一节内容的基础上加一些小功能:显示不同的人物图片、在人物头顶上显示玩家ID以及人物头顶上显示一个聊天对话框。大家可以把这一节内容当做一个过渡&#x…

【OpenCV-Python】教程:6-2 Pose Estimation (姿态估计)

OpenCV Python Pose Estimation (姿态估计) 【目标】 利用calib3d模块在图像中创建一些3D效果。 【理论】 这是一小部分。在上一节中,已经找到了摄像机矩阵,失真系数等。给定一个图案图像,我们可以利用上面的信息来计算它的姿态&#xff…

【云原生进阶之容器】第一章Docker核心技术1.5.2节——cgroups原理剖析

2 cgroups原理解析 上面是说的cgroups 是内核提供的功能,但现在我们在用户空间想使用的是cgroup的功能。其原理是:linux 内核有一个很强大的模块叫做VFS(vritual File System),VFS 把具体的文件系统的细节隐藏起来,给用户态进程提供一个完备的文件系统API接口。linux 也是通…

昆仑万维重磅发布AIGC全系列算法与模型,领跑未来

2022年12月15日,昆仑万维在北京举行AIGC技术发布会,会上昆仑万维CEO方汉正式发布了「昆仑天工」AIGC全系列算法与模型,并宣布模型开源。「昆仑天工」旗下模型包括天工巧绘SkyPaint、天工乐府SkyMusic、天工妙笔SkyText、天工智码SkyCode&…

[附源码]Python计算机毕业设计高校学科竞赛报名系统Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等…

四、移动手机自动化测试

移动手机自动化测试4.1 Appium 介绍4.1.1 Appium 中的常用术语1. Session2. Desired Capabilities3. Appium Server4.1.2 Appium 服务关键字Appium 服务相关参数的说明4.1 Appium 介绍 Appium 是一个开源、跨平台的自动化测试工具,可以用来测试 Native 及混合的移动…

Web3中文|Reddit用户在Polygon上铸造了超500万个NFT

Reddit用户通过Collectible Avatars 计划,已经铸造了超过 500 万个NFT。 Reddit的NFT头像是在以太坊扩展网络Polygon上铸造的,大多数都是免费赠送给Reddit用户。 在NFT销量下滑和加密货币市场动荡的情况下,Reddit对NFT头像的推动是一个罕见…

Spring 之类元数据封装—MetadataReader

在 Spring 中最喜欢干的事情就是将多个参数封装到一个对象,这里就挑选一个例子讲讲——MetadataReader,这个对象是将一个类封装成了三部分:File 文件本身,类元数据,注解元数据。 MetadataReader 元数据对象 先看下这…

架构设计(四):CDN

架构设计(四):CDN 作者:Grey 原文地址: 博客园:架构设计(四):CDN CSDN:架构设计(四):CDN CDN 全称 Content delivery…

Redis面试准备

1. redis网站 Redis Redis文档中心 -- Redis中国用户组(CRUG) 数据库排名网站:DB-Engines - Knowledge Base of Relational and NoSQL Database Management Systems 2. 基础知识 磁盘中的寻址速度是毫秒级,内存中寻址速度是纳…

[ vulhub漏洞复现篇 ] struts2远程代码执行漏洞s2-048(CVE-2017-9791)

一、漏洞编号 s2-048 CVE-2017-9791二、影响范围 Apache Struts 2.3.x系列中启用了struts2-struts1-plugin插件的版本三、漏洞描述 Apache Struts2 2.3.x 系列启用了struts2-struts1-plugin 插件并且存在 struts2-showcase 目录,其漏洞成因是当ActionMessage接收客户可控的参…

【论文精读】Focal Inverse Distance Transform Maps for Crowd Localization

文章目录摘要主要贡献主要内容一、FIDT二、LMDS三。I-SSIM loss摘要 在本文中,我们关注人群定位任务,这是人群分析的一个重要课题。基于回归的方法大多使用卷积神经网络( CNN )对密度图进行回归,在极度稠密的场景中无法准确定位实例&#xf…

跨境卖家如何以最少量的预算建立品牌知名度?

关键词:跨境卖家、品牌知名度 什么是品牌知名度? 品牌知名度反映了您的目标受众对您的品牌的了解、认可和记忆程度。 为什么品牌知名度至关重要? 当您的目标受众需要您提供的产品或服务时,您希望他们考虑您的品牌。为此&#xf…

windows下nginx隐藏HTTP 请求头文件中的Server信息

简介 本文主要是隐藏HTTP 请求头文件中的Server信息 解决问题主要分下面几步 一、准备编译所需要的环境 二、修改nginx源码改变配置 三、编译nginx源码生成新的nginx.exe 四、替换nginx.exe,重新启动nginx 1. 准备所需环境 环境都需要准备好,因为编译是…

精品spring boot+MySQL线上点餐系统vue

《spring bootMySQL线上点餐系统》该项目含有源码、论文等资料、配套开发软件、软件安装教程、项目发布教程等 使用技术: 操作系统:Windows 10、Windows 7、Windows 8 开发语言:Java 使用框架:spring boot 前端技术&#xff…