python实现简易工资管理系统(Salary Manage)源码

一、需求:

1.导入文件读取员工的信息和工资信息,最后将增加、删除或修改的员工工资信息写入原来的文件中

2.能够实现员工工资信息的增删改查

3.当增加和修改员工信息时用户用空格分隔员工姓名和薪资

4.实现退出功能

二、思路

1.首先需要将包含有员工薪资信息的文件读出来存储到一个容器里,因为员工姓名和薪资一一对应,因此想到字典的key--->value机制,将员工薪资信息存储到字典中。

2.写一个函数让用户选择该如何操作----->add、delete、modify、search(增删改查)以及退出操作

3.定义四个函数----- >user_add()、user_delete()、user_modify()、user_seach()

三、实现(源码)

  1 #!/user/bin/env python
  2 #-*-coding:utf-8 -*-
  3 #Author: qinjiaxi
  4 import sys,os,re
  5 operation_list = """
  6 1.增加新员工薪资信息
  7 2.删除已有员工薪资信息
  8 3.修改已有员工薪资信息
  9 4.查询已有员工薪资信息
 10 5.退出操作
 11 """
 12 user_dict = {}#空字典用来存储员工薪资信息
 13 def user_info():
 14     ‘‘‘定义员工薪资信息函数‘‘‘
 15     with open(‘info.txt‘,‘r‘) as f:
 16         for i in f:
 17             i = i.strip()#去掉每行字符串前后空格和换行以及缩进
 18             user_dict[i.split()[0]] = i.split()[1]#将员工信息以键值对key(员工姓名)--->value(员工薪资)的方式存储在字典中
 19             print(‘当前员工的姓名:‘, i.split()[0])
 20
 21 def user_choice():
 22     ‘‘‘用户输入选择‘‘‘
 23     while True:
 24         print(operation_list)
 25         user_choice = input(‘请选择操作编号:‘)
 26         if user_choice.isdigit():
 27             user_choice = int(user_choice)
 28             if user_choice > 5:
 29                 print(‘\033[31;1m请输入正确的操作编号\033[0m‘)
 30             if user_choice == 1:
 31                 user_info_add()
 32             if user_choice == 2:
 33                 user_info_del()
 34             if user_choice == 3:
 35                 user_info_modify()
 36             if user_choice == 4:
 37                 user_info_search()
 38             if user_choice == 5:
 39                 sys.exit(‘退出程序‘)
 40         else:
 41             print(‘\033[31;1m请输入正确的操作编号\033[0m‘)
 42
 43 def user_info_add():
 44     ‘‘‘定义增加新员工薪资信息函数‘‘‘
 45     while True:
 46         user_info()
 47         add_user = input(‘请输入要增加员工的姓名和薪资,并以空格隔开(例如: Qinjiaxi 10000)‘)
 48         add_user_info = add_user.strip()#去掉用户输入前后的空格换行以及缩进
 49         if len(add_user_info) < 2:
 50             print(‘\033[32;1m请输入正确的格式\033[0m‘)
 51         elif not add_user_info[1].isdigit():
 52             print(‘\033[32;1m请输入正确的数字\033[0m‘)
 53         else:
 54             name = add_user_info[0].capitalize()#把用户名的第一个字母变成大写
 55             salary = add_user_info[1]
 56             if name in user_dict:#判断姓名是否在字典中
 57                 print("\033[32;1m您输入的名字已存在\033[0m")
 58             elif not name.isalpha():#判断姓名是否是全英文
 59                 print(‘\033[32;1m请输入正确的姓名‘)
 60             else:
 61                 with open(‘info.txt‘,‘a‘) as f:
 62                     f.write(name + ‘ ‘)
 63                     f.write(salary + ‘\n‘)
 64                 print(‘已将\033[32;1m[%s\033\[0m用户信息添加成功‘ % name)
 65                 break
 66
 67 def user_info_del():
 68     ‘‘‘定义删除员工薪资信息函数‘‘‘
 69     while True:
 70         user_info()
 71         del_user = input(‘请输入要删除员工的姓名,例如(Qinjiaxi)‘)
 72         del_user_info = del_user.capitalize()#把首个字母改成大写,方便用户输入
 73         if del_user_info in user_dict:
 74             confirm = input(‘请确认是否删除\033[32;1m %s\033[0m用户信息--->按\033[32;1mN\033[0m退出,按任意键确认‘% del_user_info)
 75             if confirm.capitalize() != ‘N‘:
 76                 list = []#定义一个空列表用于存储不需要删除的员工信息
 77                 with open(‘info.txt‘, ‘r‘) as f:
 78                     lines = f.readlines()
 79                     for line in lines:
 80                         if not re.search(del_user_info, line):#判断哪些员工不需要删除
 81                             list.append(line)
 82                 with open(‘info.txt‘, ‘w‘) as f:
 83                     f.writelines(list)
 84                 print(‘\033[32;1m%s\033[0m已经删除‘ % del_user_info)
 85                 break
 86             else:
 87                 print(‘\033[32;1m%已取消删除\033[0m‘)
 88         else:
 89             print(‘\033[32;1m该用户不存在\033[0m‘)
 90
 91 def user_info_modify():
 92     ‘‘‘定义修改员工薪资信息函数‘‘‘
 93     while True:
 94         user_info()
 95         modify_user = input(‘请输入要修改员工的姓名和薪资,并以空格隔开(例如:Qinjiaxi 10000)‘)
 96         modify_user_info = modify_user.strip()
 97         if len(modify_user_info) < 2:
 98             print(‘\033[32;1m请输入正确的格式\033[0m‘)
 99         elif not modify_user_info[1].isdigit():
100             print(‘\033[32;1m请输入正确的数字\033[0m‘)
101         else:
102             name = modify_user_info[0].capitalize()#姓名
103             salary = modify_user_info[1]#薪资
104             if name in user_dict:
105                 with open(‘info.txt‘, ‘r‘) as f:
106                     lines = f.readlines()
107                 with open(‘info.txt‘, ‘w‘) as f_w:
108                     for line in lines:
109                         if name in line:
110                             line = line.replace(user_dict[name], salary)#替换薪资
111                         f_w.write(line)
112                 print(‘已将\033[32;1m%s\033[0m的工资修改为\033[32;1m%s\033[0m元‘%(name, salary))
113                 break
114             else:
115                 print(‘\033[32m;1m您输入的用户不存在\033[0m‘)
116
117 def user_info_search():
118     ‘‘‘定义查询员工薪资信息函数‘‘‘
119     while True:
120         user_dict()
121         search_user = input(‘请输入要查询的员工姓名(例如:Qinjiaxi)‘)
122         search_user_info = search_user.capitalize()
123         if search_user_info in user_dict:
124             print(‘\033[32;1m%s\033[0m工资为\033[32;1m%s\033[0m元‘ % (search_user_info, user_dict[search_user_info]))
125             break
126         else:
127             print(‘\033[32;1m请输入有效的用户名\033[0m‘)
128
129 user_choice()

原文地址:https://www.cnblogs.com/qinlangsky/p/9487406.html

时间: 2024-11-08 20:23:48

python实现简易工资管理系统(Salary Manage)源码的相关文章

简易文本编辑器(Delphi源码)

计划一个简略单纯的文本编纂器,具有建立.编纂.生存平凡文本文件的功能. unit U nit1; interface uses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, StdCtrls, ExtCtrls; type  TForm1 = class(TForm)    Panel1: TPanel;    Memo1: TMemo;    OpenDialog1:

html5 canvas简易版捕鱼达人游戏源码

插件描述:html5利用canvas写的一个js版本的捕鱼,有积分统计,鱼可以全方位移动,炮会跟着鼠标移动,第一次打开需要鼠标移出背景图,再移入的时候就可以控制炮的转动,因为是用的mouseover触发的. 找htm5,html5教程,html开发的朋友来涂志海个人博客网,这里有你想要的一切(万一没有的,请联系涂志海,再解决,嘿嘿) 下 载 演示地址 下载说明: 1.解压密码:tuzhihai.com 2.只有部分模板会提供多页面下载,未加说明都是只有一个首页index.html模板. 3.如果

Python:渗透测试开源项目【源码值得精读】

sql注入工具:sqlmap DNS安全监测:DNSRecon 暴力破解测试工具:patator XSS漏洞利用工具:XSSer Web服务器压力测试工具:HULK SSL安全扫描器:SSLyze 网络 Scapy: send, sniff and dissect and forge network packets. Usable interactively or as a library pypcap, Pcapy and pylibpcap: several different Python

python附录-builtins.py模块str类源码(含str官方文档链接)

python附录-builtins.py模块str类源码 str官方文档链接:https://docs.python.org/3/library/stdtypes.html#text-sequence-type-str builtins.py class str(object): """ str(object='') -> str str(bytes_or_buffer[, encoding[, errors]]) -> str Create a new stri

手把手实现Java图书管理系统(附源码)

基于SSM的图书管理系统的设计与实现 一.系统简介 本课程演示的是一套基于Java的SSM框架实现的图书管理系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的java人群. 详细介绍了图书管理系统的实现,包括:1.环境搭建2.系统功能3.技术实现4.项目运行5.功能演示6.系统扩展 以通俗易懂的方式,手把手的带你从零开始运行本套图书管理系统,该项目附带全部源码可作为毕设使用. 二.技术实现 1.后台框架:Spring.SpringMVC.MyBatis2.UI界面:BootStr

手把手搭建Java学生信息管理系统【附源码】

基于JavaWeb的学生信息管理系统的设计与实现 一.系统简介 本课程演示的是一套基于JavaWeb实现的学生信息管理系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的java人群. 详细介绍了学生信息管理系统的实现,包括:1.项目介绍2.环境搭建3.系统功能4.技术实现5.项目运行6.功能演示 以通俗易懂的方式,手把手的带你从零开始运行本套学生信息管理系统,该项目附带全部源码可作为毕设使用. 二.技术实现 ?1. 后台框架:Servlet.JSP.JDBC.DbUtils ?2

手把手搭建Java健身房管理系统【附源码】(毕设)

一.项目简介 本课程演示的是一套基于JavaWeb实现的健身房管理系统 或 健身俱乐部管理系统 或 健身会所管理系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的java人群. 详细介绍了健身房管理系统的实现,包括:1.项目介绍2.环境搭建3.系统功能4.技术实现5.项目运行6.功能演示 以通俗易懂的方式,手把手的带你从零开始运行本套健身房管理系统,该项目附带全部源码可作为毕设使用. 二.技术实现 1.后台框架:Spring.SpringMVC.Hibernate 2.?UI界面

手把手搭建Java酒店管理系统【附源码】(毕设)

一.项目简介 本课程演示的是一套基于Java的SSM框架实现的酒店管理系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的java人群. 详细介绍了酒店管理系统的实现,包括:1.项目介绍2.环境搭建3.系统功能4.技术实现5.项目运行6.功能演示 以通俗易懂的方式,手把手的带你从零开始运行本套酒店管理系统,该项目附带全部源码可作为毕设使用. 二.技术实现 1.后台框架:Spring.SpringMVC.MyBatis ? 2.UI界面:BootStrap.JSP.jQuery 3.

基于SSM的车辆故障管理系统程序设计,源码下载

大家好,我是全微毕设团队的创始人,本团队擅长JAVA(SSM,SSH,SPRINGBOOT).PYTHON.PHP.C#.安卓等多项技术. 今天将为大家分析一个车辆故障管理系统(本文针对汽车故障诊断专家系统 中知识库的特点,设计了一种基于Windows平台的知识库管理系统(KnowledgebaseManagementSystem以下简称KBMS), 该系统充分利用了数据库技术,实现了对知识库中知识的存储.增加.删除.修改和查询,以及对知识进行一致性和完整性校验,为汽车故障诊断专家系统的开发和