python之路之模拟工资管理系统

1.程序说明:Readme.txt

1.程序文件:salary_management.py info.txt

2.程序文件说明:salary_management.py-主程序    info.txt-存放数据

3.python版本:python-3.5.3

4.程序使用:将salary_management.py和info.txt放到同一目录下, python salary_management.py

5.程序解析:

    (1)满足 1. 查询员工工资 2. 修改员工工资 3. 增加新员工记录 4. 退出 功能需求

6.实现知识点:
(1)对文件的增删改查操作
(2)对列表字典的读写操作
(3)对函数的使用操作
(4)对全局变量和局部变量的使用操作 7.程序执行结果:请亲自动手执行或者查看我的博客 8.程序博客地址:

2.程序代码:salary_management.py

#!/usr/bin/env python
# _*_ coding: utf-8 _*_
# author:chenjianwen
# email:1071179133@qq.com
import sys,os ##定义操作列表
ops = ['查询员工工资','修改员工工资','增加新员工记录','退出'] info = {}
def get_info():
##读取文件得到员工信息
global info
with open('info.txt',mode='r',encoding='utf-8') as f_r:
for line in f_r:
line = line.rstrip('\n')
if line:
name = line.split(' ')[0]
slary = line.split(' ')[1]
info[name] ={
'name':'%s'%name,
'slary':'%s'%slary,
'other':''
} ##定义写操作函数
def write(name,slary):
with open('info.txt', mode='a+', encoding='utf-8') as f_w:
f_w.write('\n%s %s'%(name,slary)) ##定义修改员工信息函数
def replace(old_name,new_name,old_slary,new_slary):
f_r = open('info.txt',mode='r',encoding='utf-8')
f_w = open('info1.txt', mode='w+', encoding='utf-8')
for line in f_r:
line = line.strip()
if old_name in line:
line = line.replace(old_name,new_name)
line = line.replace(old_slary,new_slary)
f_w.write(line + '\n')
f_r.close()
f_w.close() while True:
get_info()
##打印操作菜单
for key,ops_lists in enumerate(ops):
print(key,ops_lists,)
select = input("请选择操作序号:")
if select.isdigit():
pass
else:
print("请输入数字")
continue if select.startswith(''):
input1 = input("请输入员工名字:")
print("%s的工资是:%s" %(input1,info[input1]['slary']))
continue elif select.startswith(''):
input1 = input("请输入修改员工的名字:")
print("%s现在的信息是:名字:%s,工资:%s"%(input1,info[input1]['name'],info[input1]['slary']))
input2 = input("名字修改为:")
input3 = input("工资修改为:")
replace(input1, input2,info[input1]['slary'], input3)
os.remove('info.txt')
os.rename('info1.txt','info.txt')
print("员工信息修改成功")
get_info()
continue elif select.startswith(''):
input1 = input("请输入增加员工的名字:")
input2 = input("请输入增加员工的工资:")
write(input1,input2)
print("新增员工信息成功")
get_info()
continue elif select.startswith(''):
print("退出成功")
sys.exit(1)

3.程序保存数据文件:info.txt

chenjianwen04 88888
chenjianwen05 888888
chenjianwen22 222222222 chenjianwen002 444444444444444
chenjianwen06 6666666
chenjianwen08 88888888888888888 chenjianwen12 8888 chenjianwen33 33333333

4.程序执行效果:

5.The end

6.改用横向输出效果:

  Python 2 :

    print打印的时候,如果结尾有逗号,打出来时候不会换行。但是在python3里面就不行

  Python3:

    print最后加个参数end=""

4_python之路之模拟工资管理系统的更多相关文章

  1. 职工工资管理系统 --C语言

    #include<stdio.h> #include<string.h> #include<stdlib.h> #define NUM 1000 void ente ...

  2. Python作业工资管理系统(第三周)

    作业内容: 实现效果: 从info.txt文件中读取员工及其工资信息,最后将修改或增加的员工工资信息也写入原info.txt文件. 效果演示: 1. 查询员工工资 2. 修改员工工资 3. 增加新员工 ...

  3. 超实用 2 ArrayList链表之 员工工资管理系统

    package ArrayList的小程序; import java.io.*; import java.util.*; public class kkk { /** * 作者:Mr.fan * 功能 ...

  4. JAVA学习之路(多线程)---模拟售票(细解)

    首先看题目描述: 假设有火车票100张,创建4个线程模拟4个售票点,每100ms售出一张,打印出售票过程,格式如下: 窗口3:卖出第100张票 窗口4:卖出第99张票 ............ ... ...

  5. 老男孩Day3作业:工资管理系统

    作业需求: 1.从info.txt文件中读取员工及其工资信息,最后将修改或增加的员工工资信息也写入原info.txt文件. 2.能增查改员工工资 3.增.改员工工资用空格分隔 4.实现退出功能 1)编 ...

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

    一.需求: 1.导入文件读取员工的信息和工资信息,最后将增加.删除或修改的员工工资信息写入原来的文件中 2.能够实现员工工资信息的增删改查 3.当增加和修改员工信息时用户用空格分隔员工姓名和薪资 4. ...

  7. HDU 2073 无限的路 (模拟)

    题目链接 Problem Description 甜甜从小就喜欢画图画,最近他买了一支智能画笔,由于刚刚接触,所以甜甜只会用它来画直线,于是他就在平面直角坐标系中画出如下的图形: 甜甜的好朋友蜜蜜发现 ...

  8. LeetCode.874-走路机器人模拟(Walking Robot Simulation)

    这是悦乐书的第335次更新,第360篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第205题(顺位题号是874).网格上的机器人从点(0,0)开始并朝北.机器人可以接收三 ...

  9. HRMS(人力资源管理系统)-SaaS架构设计-概要设计实践

    一.开篇 前期我们针对架构准备阶段及需求分析这块我们写了2篇内容<HRMS(人力资源管理系统)-从单机应用到SaaS应用-架构分析(功能性.非功能性.关键约束)-上篇><HRMS(人 ...

随机推荐

  1. ISO 18000-6c 访问标签--应用程序访问操作ISO 18000-6C标签的方法

    标签访问操作包含三部分: 1.标签选择.某些场景,应用程序只对特定的标签进行操作,Indy Host Library可以指定标签选择条件. 2.执行盘存操作.上报单化后标签EPC区的数据. 3.标签单 ...

  2. 《gradle 用户指南中文版》第3章 安装 gradle

    macOS 下安装 gradle,只要可以安装sdk的系统,使用sdk来安装,那么安装方式基本是一样的. Gradle在所有主要操作系统上运行,只需要安装Java JDK或JRE版本7或更高版本.要检 ...

  3. [置顶] flume高并发优化——(15)中间件版本升级

    在系统平稳运行一年的基础上,为提供更好的服务,现针对java,kafka,flume,zk,统一进行版本升级,请各位小伙伴跟着走起来,不要掉队啊! 名称 老版本号 新版本号 jdk 1.7.0_25 ...

  4. oracle数据库导入导出09192255

    1.导入数据库(dmp) Linux系统中: 1. 用root账号登录服务器,然后切换到oracle账号(安装oracle数据库的时候用的用的账号) 2. 切换到oralce的安装目录下的bin下 3 ...

  5. HDU 1374

    http://acm.hdu.edu.cn/showproblem.php?pid=1374 已知三点坐标,求三点确定的圆的周长 #include <iostream> #include ...

  6. 可能是 BJOI2019 Day1 题解?

    T1 给一个有空白字符的串 $S$,和若干模板串 $X_i$,初始 $Ans = 1$,每当一个模板串在 $S$ 中作为子串出现时,$Ans$ 会乘以 $X_i$ 的权值 $Val_i$,然后如果 $ ...

  7. FreeMarker自定义TemplateDirectiveModel

    [参考:http://blog.csdn.net/fangzhangsc2006/article/details/8687371] 在采用FreeMarker做前台视图模板的情况下,我们可以通过< ...

  8. BZOJ2588 SPOJ10628 Count on a tree 【主席树】

    BZOJ2588 Count on a tree 题目描述 给定一棵N个节点的树,每个点有一个权值,对于M个询问(u,v,k),你需要回答u xor lastans和v这两个节点间第K小的点权.其中l ...

  9. LG4848 崂山白花蛇草水

    题意 神犇 Aleph 在 SDOI Round2 前立了一个 flag:如果进了省队,就现场直播喝崂山白花蛇草水.凭借着神犇 Aleph 的实力,他轻松地进了山东省省队,现在便是他履行诺言的时候了. ...

  10. saas 系统租户自助网站

    1. 原理       类似github 的自定义页面,使用jekyll 进行租户自助网站的生成,系统使用jenkins 进行租户的网站构建    同时结合租户的个性化域名系统,进行租户页面的发布管理 ...