教师工资管理系统(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()
    
            
            
                

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

相关推荐
JavaPub-rodert7 小时前
LangChain 从入门到 Agent 实战:用 Python 搭建一个真正能调用工具和知识库的 AI 助手
人工智能·python·langchain
统计学小王子7 小时前
数学建模国赛倒计时4天——《统计模型精讲(混合效应模型R语言实现)》
开发语言·数学建模·r语言
知无不研7 小时前
c语言中循环的介绍与简单应用
c语言·开发语言·算法·循环·for·while
郝学胜-神的一滴7 小时前
Qt 高级编程 045:坐标体系深度实战
开发语言·c++·windows·python·qt·程序人生
dsyyyyy11017 小时前
JS复习,难点,易错点总结
开发语言·javascript·ecmascript
m0_380743878 小时前
给 OpenAI API 调用加上模型切换:GPT-5.1 和 Codex 的配置实践
人工智能·python·gpt
2601_962297488 小时前
在python3中、下列输出变量a的正确写法是_2020超星大数据Python免费答案
数据结构·python·算法·编程·字符串操作
“AI国潮设计-小江”8 小时前
Python实战 | SDXL精准控制“普宁英歌舞×星空蛋糕”IP落地,附核心Prompt与商用授权思路
开发语言·人工智能·python·prompt·aigc
公爵爱学习9 小时前
无人机视觉识别前序-Linux-YOLO安装
python·yolo·计算机视觉·conda·无人机
2601_962295339 小时前
使用python实现一个浏览器自动化的脚本
python·脚本·rpa·浏览器自动化·操作