python 工资管理系统作业

 作业要求:

工单管理系统

Alex 100000
Rain 80000
Egon 50000
Yuan 30000

以上是info.txt 文件

从info.txt文件中读取员工及其工资信息,最后将修改和增加的员工工资也写入原info.txt 文件

演示效果:
1、查询员工工资

2、修改员工工资

3、增加新员工记录

4、退出

>>:1

输入要查询的员工姓名(例如alex):Alex
Alex的工资是:100000
1、查询员工工资
2、修改员工工资
3、增加新员工记录
4、退出

>>:2

请输入要修改的员工姓名和工资,用空格分隔(例如:Alex 10) : Alex 10

修改成功

1、查询员工工资

2、修改员工工资

3、增加新员工记录

4、退出

>>:3

请输入要增加的员工姓名,工资,用空格分隔符(例如:Eric 100000) :Eric 100000
增加成功

1、查询员工工资

2、修改员工工资

3、增加新员工记录

4、退出

>>:4
再见!

 

 

流程图: 

#初始化到文件
salary_list = {
     'Alex':100000,
     'Rain':80000,
     'Egon':50000,
     'Yuan':30000
 }
 with open('user_info.txt','w',encoding="utf-8") as f_init:
     f_init.write(str(salary_list))

 

__author__ = 'sujunfeng'

import os
import sys

BASE_DIR = os.path.dirname(__file__)  # __file__python定义好的变量
DB_DIR = os.path.join(BASE_DIR,'user_info.txt')

#初始化 文件
# salary_list = {
#     'Alex':100000,
#     'Rain':80000,
#     'Egon':50000,
#     'Yuan':30000
# }
# with open('user_info.txt','w',encoding="utf-8") as f_init:
#     f_init.write(str(salary_list))

change_list = ['查询员工工资','修改员工工资','增加新员工记录','退出']

with open(DB_DIR,'r',encoding="utf-8") as f:
    info = eval(f.read())
# print(info['Alex'])

def request_list(): # 定义显示功能列表函数
    for i in enumerate((change_list),1):
        print(i[0],i[1])

def select_staff_info(username):  # 定义查询用户名信息函数
    salary = info[username]
    output = input("%s 的工资是: %s  " % (username,salary))
    return output

def alter_staff_info(username,salary): # 修改员工姓名函数
    info[username] = salary
    with open(DB_DIR,'w',encoding='utf-8') as f_alter:
        f_alter.write(str(info))
    print("修改成功")

def add_staff_info(username,salary):
    info.setdefault(username,salary) # 增加一个字典值
    with open(DB_DIR,'w',encoding="utf-8") as f_add:
        f_add.write(str(info))
    print("增加成功")

def exit_system():
    print("退出程序")
    sys.exit()


def login(): # 定义主体函数
    request_list()  # 调用显示功能列表函数
    while True:
        choice = input(">>:")
        if choice == '1':
            exit_flag = False
            while not exit_flag:
                username = input("输入要查询的员工姓名(例如Alex):")
                if username in info:
                    select_staff_info(username)
                    print("\r")
                    login()
                    continue
                else:
                    print("您的用户名输入错误,请重新输入:")
                    continue
        elif choice == '2':
            while True:
                count = input("请输入要修改的员工姓名和工资,用空格分隔(例如:Alex 10) : ").split()
                if len(count) == 2:
                    #username,salary = input("请输入要修改的员工姓名和工资,用空格分隔(例如:Alex 10) : ").split()
                    username = count[0]
                    salary = count[1]
                    if username in info:
                        alter_staff_info(username,salary)
                        print("\r")
                        login()
                    else:
                        print("您的用户不存在,重新输入!")
                        continue
                else:
                    print("您输入的参数不对,请重新输入!")
                    continue

        elif choice == '3':
            while True:
                input_args = input("请输入要增加的员工姓名,工资,用空格分隔符(例如:Eric 100000) :").split()
                if len(input_args) == 2:
                    username = input_args[0]
                    salary = input_args[1]
                    # print(username)
                    # print(salary)
                    if username not in info:
                        add_staff_info(username,salary)
                        login()
                    else:
                        print("您输入的用户存在,请使用其他用户名!")
                        continue
                else:
                    print("您输入参数个数有误,请重新输入!")
                    continue
        elif choice == '4':
            exit_system()

        else:
            print("您的选择有误,请重新选择")
            login()

if __name__ == '__main__':
    login()

 

posted @ 2017-12-04 19:16  boundshunter  阅读(241)  评论(0)    收藏  举报