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. MySQL之联合索引

    以 index(a, b, c) 为例: 语句 发挥作用的索引 记忆方法(以三块板子过河记忆, 顺序很重要) WHERE a=3 只用到了a列 只走了a板子 WHERE a=3 AND b=5 使用了 ...

  2. 使用编译时注解简单实现类似 ButterKnife 的效果

    这篇文章是学习鸿洋前辈的 Android 如何编写基于编译时注解的项目 的笔记,用于记录我的学习收获. 读完本文你将了解: 什么是编译时注解 APT 编译时注解如何使用与编写 举个例子 思路 创建注解 ...

  3. 余弦相似度及基于python的三种代码实现、与欧氏距离的区别

    1.余弦相似度可用来计算两个向量的相似程度 对于如何计算两个向量的相似程度问题,可以把这它们想象成空间中的两条线段,都是从原点([0, 0, ...])出发,指向不同的方向.两条线段之间形成一个夹角, ...

  4. Android 4.0 Camera架构分析之Camera初始化

    Android Camera 采用C/S架构,client 与server两个独立的线程之间使用Binder通信,这已经是众所周知的了.这里将介绍Camera从设备开机,到进入相机应用是如何完成初始化 ...

  5. stark组件02

    1.怎么在显示页面添加新字段(a标签)?在admin.py下注册就好了 当我们需要在admin页面添加新的a标签时,需要引入一个类似safe功能的模块 from django.utils.safest ...

  6. typecho去index.php

    RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} ! ...

  7. Associations marked as mappedBy must not define database mappings like @JoinTable or @JoinColumn【报错】

    自己的项目没有测通  可能是自己项目原因——因为自己项目中级联关系的类涉及太多 自己的项目[这样的配置报错] @OneToMany(fetch=FetchType.LAZY,cascade = { C ...

  8. JS格式化数字(每三位加逗号)

    function toThousands(num) { var num = (num || 0).toString(), result = ''; //判断是否带小数点 if (num.split(' ...

  9. 每次都要重新编译?太慢!让跨平台的 MSBuild/dotnet build 的 Target 支持差量编译

    如果你干预到了项目的编译过程,可能就需要考虑到差量编译了.不然--当你的项目大起来的时候,就会感受到每次都重新编译时,每次重复调试的过程都要进行漫长等待时的绝望和无奈. 如果你正遭遇差量编译失效,每次 ...

  10. Web应用程序开发知识点回顾

    asp.net 1.<%@ Page Language="C#"AutoEventWireup="true" CodeFile="Home.as ...