教师工资管理系统(python,save保存文件)

我大学上课的时候老师还让写python程序代码,我选了个教师工资管理系统的课题,因为这个选的人少。虽然有一周的准备时间,我还是选择了在提交的前一天的下午开始做,做到了第二天的三点才写完。

这是条件

选题八:教师工资管理系统

  • 问题描述

编写一系统,实现教师基本信息的录入、修改、删除、计算工资等操作。

二、功能要求

  1. 本系统采用序列或字典存放教师的信息,数据应该包括下面的信息:教师号、姓名、性别、联系电话、基本工资、生活补贴、应发工资、电话费、水电费、所得税、卫生费、公积金、合计扣款、实发工资。注:应发工资=基本工资+生活补贴;合计扣款=电话费+水电费+房租+所得税+卫生费+公积金;实发工资=应发工资-合计扣款。

2.试设计一教师工资管理系统,要求具有下面的功能:

(1)按教师号录入教师基本工资、生活补贴、电话费、水电费、所得税、卫生费、公积金等基本数据。

(2)教师实发工资、应发工资、合计扣款计算。

(3)教师数据管理

输入教师号,读出并显示该教师信息,

输入新数据,将改后信息写入文件。

(4)教师数据查询:

输入教师号或其他信息,即读出所有数据信息,并显示出来。

(5)删除教师工资信息。

(6)将教师信息保存到文件中。

(7)进入系统之前要先输入密码

(8)退出系统

上源码

python 复制代码
pwd=123456
while True:
    a=int(input("接下来将进入教师管理系统,请输入密码:"))
    if (a==pwd):
        print('密码正确!')
        break
    else:
        print('密码错误!')






def menm09():
    print('===============================教师工资管理系统===============================')
    print('-----------------------------------功能菜单-----------------------------------')
    print('\t\t\t\t1.录入教师信息')
    print('\t\t\t\t2.查找教师信息')
    print('\t\t\t\t3.删除教师信息')
    print('\t\t\t\t4.修改教师信息')
    print('\t\t\t\t5.显示所有教师信息')
    print('\t\t\t\t6.退出程序')
    print('----------------------------------------------------------------------------')
import os

filename='teacher.txt'
def main09():
    while True:
        menm09()
        choice=int(input('请选择:'))
        if choice==6:
            answer=input('您确定退出吗?y/n')
            if answer=='y' or answer=='Y':
                print('谢谢您的使用!!!')
                break
            else:
                continue
        elif choice==1:
            insert09()
        elif choice==2:
            search09()
        elif choice==3:
            delete09()
        elif choice==4:
            modify09()
        
        elif choice==5:
            show09()

def insert09():
    teacher_list=[]
    while True:
        id=input('请输入教师号:')
        if not id:
            break
        name=input('请输入姓名:')
        if not name:
            break
        sex=input('请输入性别:')
        if not sex:
            break
        iphone=input('请输入电话:')
        if not iphone:
            break
        try:
            jiben=int(input('请输入基本工资:'))
            shenghuo=int(input('请输入生活补贴:'))
    
            dianhua=int(input('请输入电话费:'))
            shuidian=int(input('请输入水电费:'))
            suode=int(input('请输入所得税:'))
            weisheng=int(input('请输入卫生费:'))
            gongji=int(input('请输入公积金:'))
        except:
            print('输入无效,不是整数类型,请重新输入')
            continue
        teacher={'教师号':id,'姓名':name,'性别':sex,'电话':iphone,'基本工资':jiben,'生活补贴':shenghuo,'电话费':dianhua,'水电费':shuidian,'所得税':suode,'卫生费':weisheng,'公积金':gongji}
        teacher_list.append(teacher)
        answer=input('是否继续添加?y/n')
        if answer=='y':
            continue
        else:
            break
    save(teacher_list)
    print('教师信息录入完毕!!!')


def save(list):
    try:
        teacher_txt=open(filename,'a',encoding='utf-8')
    except:
        teacher_txt=open(filename,'w',encoding='utf-8')
    for item in list:
        teacher_txt.write(str(item)+'\n')
    teacher_txt.close()

def search09():
    teacher_query=[]
    while True:
        id=''
        name=''
        if os.path.exists(filename):
            mode=input('按照教师号查找请输入1,按照姓名查找请输入2:')
            if mode=='1':
                id=input('请输入教师号:')
            elif mode=='2':
                name=input('请输入教师姓名:')
            else:
                print('您的输入有误,请重新输入。')
                search09()
            with open(filename,'r',encoding='utf-8') as rfile:
                teacher=rfile.readlines()
                for item in teacher:
                    d=dict(eval(item))
                    if id!='':
                        if d['教师号']==id:
                            teacher_query.append(d)
                    elif name!='':
                        if d['姓名']==name:
                            teacher_query.append(d)
            show_teacher(teacher_query)
            teacher_query.clear()
            answer=input('是否要继续查询?y/n')
            if answer=='y':
                continue
            else:
                break
        else:
            print('暂未保存教师信息')
            return
def show_teacher(list):
    if len(list)==0:
        print('没有查询到教师信息,无数据显示!')
        return
    format_title='{:^6}\t{:^12}\t{:^8}\t{:^10}\t{:^10}\t{:^8}'
    print(format_title.format('教师号','姓名','电话','应发工资','实际扣款','实发工资'))                   
    format_data='{:^6}\t{:^12}\t{:^8}\t{:^10}\t{:^10}\t{:^8}\t'
    for item in list:
        print(format_data.format(item.get('教师号'),
                                 item.get('姓名'),
                                 item.get('电话'),
                                 int(item.get('基本工资'))+int(item.get('生活补贴')),
                                 int(item.get('电话费'))+int(item.get('水电费'))+int(item.get('所得税'))+int(item.get('卫生费'))+int(item.get('公积金')),
                                 int(item.get('基本工资'))+int(item.get('生活补贴'))-int(item.get('电话费'))-int(item.get('水电费'))-int(item.get('所得税'))-int(item.get('卫生费'))-int(item.get('公积金'))
                                ))

                                     

def delete09():
    while True:
        teacher_id=input('请输入要删除的教师的教师号:')
        if teacher_id!='':
            if os.path.exists(filename):
                with open(filename,'r',encoding='utf-8') as file:
                    teacher_old=file.readlines()
            else:
                teacher_old=[]
            flag=False
            if teacher_old:
                with open(filename,'w',encoding='utf-8') as wfile:
                    d={}
                    for item in teacher_old:
                        d=dict(eval(item))
                        if d['教师号']!=teacher_id:
                            wfile.write(str(d)+'\n')
                        else:
                            flag=True
                    if flag:
                        print(f'教师号为{teacher_id}的教师信息已被删除QAQ'.format(teacher_id))
                    else:
                        print(f'没有找到教师号为{teacher_id}的教师信息QAQ'.format(teacher_id))
            else:
                print('无教师信息QAQ')
                break
            show09()
            answer=input('是否继续删除?y/n')
            if answer=='y':
                continue
            else:
                break


def modify09():
    show09()
    if os.path.exists(filename):
        with open(filename,'r',encoding='utf-8') as rfile:
            teacher_old=rfile.readlines()
    else:
        return
    teacher_id=input('请输入要修改的教师的教师号:')
    with open(filename,'w',encoding='utf-8') as wfile:
        for item in teacher_old:
            d=dict(eval(item))
            if d['教师号']==teacher_id:
                print('找到教师信息,可以修改他的相关信息了AOA')
                while True:
                    try:
                        d['name']=input('请输入姓名:')
                        d['sex']=input('请输入性别:')
                        d['iphone']=input('请输入电话:')
                        d['jiben']=input('请输入基本工资:')
                        d['shenhuo']=input('请输入生活补贴:')
                        d['dianhua']=input('请输入电话费:')
                        d['shuidian']=input('请输入水电费:')
                        d['suode']=input('请输入所得税:')
                        d['weisheng']=input('请输入卫生费:')
                        d['gongji']=input('请输入公积金:')
                    except:
                        print('您的输入有误,请重新输入。')
                        
                    else:
                        break
                wfile.write(str(d)+'\n')
                print('修改成功')
            else:
                wfile.write(str(d)+'\n')
        answer=input('是否继续修改其他教师的信息?y/n')
        if answer=='y':
            modify09()
            







    
def calculate09():
    pass
def show09():
    teacher_list=[]
    if os.path.exists(filename):
        with open(filename,'r',encoding='utf-8') as rfile:
            teachers=rfile.readlines()
        for item in teachers:
            teacher_list.append(eval(item))
        if teacher_list:
            show_teacher(teacher_list)
    else:
        print('暂未保存数据信息!')

if __name__ == '__main__':
    main09()
    
            
            
                

我之前查的时候还要付费,不用谢我

相关推荐
只是有点小怂34 分钟前
Pytorch中方法对象和属性,例如size()和shape
人工智能·pytorch·python
孑渡2 小时前
【LeetCode】每日一题:跳跃游戏 II
python·算法·leetcode·游戏·职场和发展
dandanforgetlove2 小时前
python pdfplumber优化表格提取
开发语言·windows·python
ka2x2 小时前
订单折扣金额分摊算法|代金券分摊|收银系统|积分分摊|分摊|精度问题|按比例分配|钱分摊|钱分配
java·c语言·c++·python·算法·spring·spring cloud
爱上电路设计6 小时前
有趣的算法
开发语言·c++·算法
studyForMokey6 小时前
kotlin 函数类型接口lambda写法
android·开发语言·kotlin
2401_858120266 小时前
探索sklearn文本向量化:从词袋到深度学习的转变
开发语言·python·机器学习
与墨学长7 小时前
Rust破界:前端革新与Vite重构的深度透视(中)
开发语言·前端·rust·前端框架·wasm
虫小宝7 小时前
Java中的软件架构重构与升级策略
java·开发语言·重构
bigbearxyz8 小时前
Java实现图片的垂直方向拼接
java·windows·python