• 简单的工资管理系统(尚未完成)


    2017-09-16 14:44:37

    本博客内多为原创,如需转载,请注明出处,谢谢。


    本程序实现的功能:

      1. 查询员工工资
      2. 修改员工工资
      3. 增加新员工记录

    首先画好流程图(这里我用思维导图构建思路)

    环境依赖:

    python 3.*

    sys

    所需文件:info.txt(与程序放在同一目录)

    文件的格式为:

    Alex 100000
    Rain 80000
    Egon 50000
    Yuan 30000

    程序尽量遵循pythonic的写法,后续还会修改得更好

    Begin

    # _*_ coding:utf-8 _*_
    # Author:Mr.chan
    
    import sys
    
    # 本程序可以对文件进行查询、修改和新增操作
    
    def query():
        """查询员工的姓名和工资"""
        while True:
            name = input("[b=back]请输入要查询的员工姓名:")
            if name == 'b':
                main()  # 如果输入b,则退出到首页
            with open("info.txt",'r',encoding='utf-8')as f:
                for line in f:
                    if name.strip() == line.strip().split(' ')[0]:  # 如果输入的用户名与文件中的用户名相同时
                        print("%s的工资是:%s
    "%(name.strip(),line.strip().split(' ')[1]))
                        break   # 在这里添加break,因为else是在for后面执行的,但只有for循环正常退出时才会执行else语句
                                 # (不是由break结束循环),而当循环是由break语句中断时,else就不被执行。
                else:
                    print("该用户不存在,请重新输入
    ")
    
    def modify():
        pass
        """修改员工工资
        while True:
            name = input("[h=home]请输入要修改的员工的姓名和工资,用空格分割(例如:Alex 10):")
            with open("info.txt",'r+',encoding='utf-8') as f:
                for line in f:
                    if name.strip().split(' ')[0] == line.strip().split(' ')[0]:
                        line = line.replace(line.strip().split(' ')[1],name.strip().split(' ')[1])
                    f.write(line)
    """
    def add():
        """增加员工的姓名和工资"""
        while True:
            name = input("[b=back]请输入要增加的员工姓名和工资,用空格分割(例如:Eric 100000):")
            if name == 'b':
                main()  # 回到首页
            with open("info.txt", 'a+', encoding='utf-8') as f:
                f.write(name)
                f.write('
    ')
                print("增加成功
    ")
    
    def main():
        """主函数,进行各种操作"""
        while True:
            print("工资管理系统相关操作".center(30,'-'))
            print("1.查询员工工资
    2.修改员工工资
    3.增加新员工记录
    4.退出")
            choice = input("请输入:")
            if choice.isdigit():
                choice = int(choice)
                if choice == 1:
                    query()  # 如果选择1,则调用该函数进行查询
                elif choice == 2:
                    modify()  # 修改这一项不会做,只用了pass占位
                elif choice == 3:
                    add()
                elif choice == 4:
                    sys.exit("再见")
                else:
                    print("输入有误,请重新输入
    ")
            else:
                print("输入有误,请重新输入
    ")
    
    if __name__ == '__main__':
        main()
  • 相关阅读:
    Java IO: InputStreamReader和OutputStreamWriter
    Java IO: 序列化与ObjectInputStream、ObjectOutputStream
    Java IO: Buffered和Data
    [Codeforces Round #613 (Div. 2)]
    [算进] 巴士
    [算进] 小木棍
    [算进] 数据备份
    [算进] 双端队列 题解
    [算进] 蚯蚓 题解
    [算进] 赶牛入圈 题解
  • 原文地址:https://www.cnblogs.com/relax1949/p/7531329.html
Copyright © 2020-2023  润新知