高校人员信息管理系统(Python版)

目录

                                  高校人员信息管理系统                                 

一、问题描述

二、功能要求

三、问题的解决方案

四、运行环境说明

五、代码段

1、多文件

(1)员工类(文件1)

(2)教师类(文件2) 

(3)实验员类(文件3) 

(4)行政人员类(文件4) 

(5)教师兼行政人员类(文件5) 

(6)一级菜单函数和主函数(文件6) 

2、单文件


                                  高校人员信息管理系统                                 

备注:大二(上)Python语言课程设计                                     

一、问题描述

某高校有四类员工:教师、实验员、行政人员,教师兼行政人员

共有的信息包括:编号、姓名、性别、年龄等

其中,教师还包含的信息有:所在系部、专业、职称;

实验员还包含的信息有:所在实验室、职务;

行政人员还包含的信息有:政治面貌、职称等

二、功能要求

1添加功能:程序能够任意添加上述四类人员的记录,可提供选择界面供用户选择所要添加的人员类别,要求员工的编号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。

(2)查询功能:可根据编号姓名等信息对已添加的记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。

(3)显示功能:可显示当前系统中所有记录,每条记录占据一行。

(4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。

(5)删除功能:主要实现对已添加的人员记录进行删除。如果当前系统中没有相应的人员记录则提示“记录为空!”并返回操作;否则,输入要删除的人员的编号或姓名,根据所输入的信息删除该人员记录,如果没有找到该人员信息,则提示相应的记录不存在。

(6)统计功能能根据多种参数进行人员的统计。能统计四类人员数量以及总数,统计男、女员工的数量。

(7)保存功能:可将当前系统中各类人员记录存入文件中,存入方式任意。

(8)读取功能:可将保存在文件中的人员信息读入到当前系统中,供用户进行使用。

三、问题的解决方案

根据系统功能要求,可以将问题解决分为以下步骤: 

1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;

2)分析系统中的各个实体及它们之间的关系; 

3)根据问题描述,设计系统的类层次; 

4)完成类层次中各个类的描述; 

(5)完成类中各个成员方法的定义;

6)完成系统的应用模块; 

7)功能调试; 

8)完成系统总结报告。

四、运行环境说明

五、代码段

1、多文件

(1)员工类(文件1)

# 文件1  Staff.py

class Staff:                                                                                                      # 员工类

    def __init__(self,number='-1',name='',gender='',age=-1):
        self.number = number     # 编号
        self.name = name         # 姓名
        self.gender = gender     # 性别
        self.age = age           # 年龄

(2)教师类(文件2) 

# 文件2  Teacher.py

from Staff import *

class Teacher(Staff):                                                                                             # 教师类

    def __init__(self,number='-1',name='',gender='',age=-1,department='',major='',title=''):
        Staff.__init__(self,number,name,gender,age)  # 编号、姓名、性别、年龄
        self.department = department                 # 系部
        self.major = major                           # 专业
        self.title = title                           # 职称

    def set_number(self): # 设置教师编号
        temp_nu = input('请输入编号(4位数):')
        if len(temp_nu) != 4:
            print('编号必须是4位数,请重新录入!')
            return None
        else:
            return temp_nu

    def set_gender(self): # 设置教师性别
        temp_ge = input('请输入性别(男或女):')
        if temp_ge != '男' and temp_ge != '女':
            print('性别必须是男或女,请重新录入!')
            return None
        else:
            return temp_ge

    def input(self): # 录入教师信息
        print('请输入教师的各项信息:')
        temp_nu = self.set_number()
        if temp_nu == None:
            return None
        temp_na = input('请输入姓名:')
        temp_ge = self.set_gender()
        if temp_ge == None:
            return None
        temp_ag = int(input('请输入年龄(整数):'))
        temp_de = input('请输入系部:')
        temp_ma = input('请输入专业:')
        temp_ti = input('请输入职称:')
        self.number = temp_nu
        self.name = temp_na
        self.gender = temp_ge
        self.age = temp_ag
        self.department = temp_de
        self.major = temp_ma
        self.title = temp_ti
        return self

    def output(self): # 输出教师信息
        print("{0:^12}{1:^12}{2:^12}{3:^12}{4:^12}{5:^12}{6:^12}".format(self.number,self.name,self.gender,self.age,self.department,self.major,self.title))

class TeaManager:                                                                                              # 教师管理类

    def __init__(self):
        self.listx = []

    def check_number(self,nu): # 检查教师编号是否存在重复
        for i in range(len(self.listx)):
            if nu == self.listx[i].number:
                return True
        else:
            return False

    def add(self): # 添加教师信息
        print('-' * 40,'添加教师信息','-' * 40,sep='')
        T = Teacher()
        T = T.input()
        if T != None:
            if self.check_number(T.number):
                print('编号重复,添加失败!')
            else:
                self.listx.append(T)
                print('添加教师信息成功!')
        else:
            print('添加教师信息失败!')

    def show(self): # 显示教师信息
        print('-' * 40,'显示教师信息','-' * 40,sep='')
        print("{0:^12}{1:^12}{2:^12}{3:^12}{4:^12}{5:^12}{6:^12}".format('编号','姓名','性别','年龄','系部','专业','职称'))
        for t in self.listx:
            t.output()

    def min_search(self): # 查询教师信息
        print('-' * 20, '查询教师信息', '-' * 20, sep='')
        print('请选择查询方式:')
        print('1、根据编号查询')
        print('2、根据姓名查询')
        choice = input()
        if choice == '1':
            temp_nu = input('请输入编号(4位数):')
            for i in range(len(self.listx)):
                if temp_nu == self.listx[i].number:
                    return i
            else:
                return None
        elif choice == '2':
            temp_na = input('请输入姓名:')
            for i in range(len(self.listx)):
                if temp_na == self.listx[i].name:
                    return i
            else:
                return None

    def main_search(self): # 查询教师信息
        inde = self.min_search()
        if inde != None:
            print('查询成功,信息如下:')
            print("{0:^12}{1:^12}{2:^12}{3:^12}{4:^12}{5:^12}{6:^12}".format('编号','姓名','性别','年龄','系部','专业','职称'))
            self.listx[inde].output()
            return inde
        else:
            print('查询失败!')
            return None

    def edit(self): # 编辑教师信息
        print('-' * 40, '编辑教师信息', '-' * 40, sep='')
        print('请先查询需要编辑的教师信息!')
        inde = self.main_search()
        if inde != None:
            print('请选择需要编辑的信息:')
            choice = input('1、编号  2、姓名  3、性别  4、年龄  5、系部  6、专业  7、职称')
            if choice == '1':
                temp_nu = self.listx[inde].set_number()
                if temp_nu != None and not self.check_number(temp_nu):
                    self.listx[inde].number = temp_nu
                    print('编号编辑成功!')
                else:
                    print('编号编辑失败!')
            elif choice == '2':
                temp_na = input('请输入姓名:')
                self.listx[inde].name = temp_na
                print('姓名编辑成功!')
            elif choice == '3':
                temp_ge = self.listx[inde].set_gender()
                if temp_ge != None:
                    self.listx[inde].gender = temp_ge
                    print('性别编辑成功!')
                else:
                    print('性别编辑失败!')
            elif choice == '4':
                temp_ag = int(input('请输入年龄(整数):'))
                self.listx[inde].age = temp_ag
                print('年龄编辑成功!')
            elif choice == '5':
                temp_de = input('请输入系部:')
                self.listx[inde].department = temp_de
                print('系部编辑成功!')
            elif choice == '6':
                temp_ma = input('请输入专业:')
                self.listx[inde].major = temp_ma
                print('专业编辑成功!')
            elif choice == '7':
                temp_ti = input('请输入职称:')
                self.listx[inde].title = temp_ti
                print('职称编辑成功!')
            else:
                print('选择有误,编辑失败!')

    def dele(self): # 删除教师信息
        print('-' * 40, '删除教师信息', '-' * 40, sep='')
        print('请先查询需要删除的教师信息!')
        inde = self.main_search()
        if inde != None:
            del self.listx[inde]
            print('删除教师信息成功!')
        else:
            print('删除教师信息失败!')

    def statis(self): # 统计教师信息
        print('-' * 40, '统计教师信息', '-' * 40, sep='')
        print('请选择统计方式:')
        print('1、按年龄统计')
        print('2、统计总人数以及男性和女性人数')
        choice = input()
        if choice == '1':
            l = int(input('请输入年龄的下限(包含下限):'))
            u = int(input('请输入年龄的上限(包含上限):'))
            count = 0
            print('统计结果如下:')
            print("{0:^12}{1:^12}{2:^12}{3:^12}{4:^12}{5:^12}{6:^12}".format('编号','姓名','性别','年龄','系部','专业','职称'))
            for i in range(len(self.listx)):
                if l <= self.listx[i].age <= u:
                    count += 1
                    self.listx[i].output()
            print('该年龄段的人数共计有{0}人'.format(count))
        elif choice == '2':
            total = len(self.listx)
            count_female = 0
            for i in range(len(self.listx)):
                if self.listx[i].gender == '女':
                    count_female += 1
            print('统计结果如下:')
            print('教师的总人数为{0}人'.format(total))
            print('其中,女性{0}人,男性{1}人'.format(count_female,total-count_female))
        else:
            print('选择错误,请重新选择!')

    def save(self): # 保存教师信息
        print('-' * 40, '保存教师信息', '-' * 40, sep='')
        with open('Teacherinfo.txt', 'w', encoding='utf-8') as fp:
            for s in self.listx:
                s = [s.number,s.name,s.gender,str(s.age),s.department,s.major,s.title]
                s = ','.join(s) + '\n'
                fp.write(s)
        print('保存教师信息成功!')

    def init(self): # 读取教师信息
        print('-' * 40, '读取教师信息', '-' * 40, sep='')
        try:
            with open('Teacherinfo.txt', 'r', encoding='utf-8') as fp:
                self.listx = []
                for line in fp.readlines():
                    s = line.strip().split(',')
                    self.listx.append(Teacher(s[0],s[1],s[2],int(s[3]),s[4],s[5],s[6]))
                print('读取教师信息成功!')
        except FileNotFoundError:
            print('文件不存在!')

def tea_mune(tm):                                                                                           # 教师类二级菜单
    tm.init()
    print('教师信息管理子系统自动初始化完成!')
    choice = '99'
    while choice != '0':
        print('*' * 40, '教师信息管理子系统', '*' * 40, sep='')
        print('*温馨提示:当您使用添加或编辑或删除功能后,记得使用保存功能,以确保相关操作被子系统记录!')
        print('*请输入您的选择:')
        print('*1:添加')
        print('*2:查询')
        print('*3:显示')
        print('*4:编辑')
        print('*5:删除')
        print('*6:统计')
        print('*7:保存')
        print('*0:退出子系统')
        print('*' * 100)
        choice = input()
        if choice == '1':
            tm.add()
        elif choice == '2':
            tm.main_search()
        elif choice == '3':
            tm.show()
        elif choice == '4':
            tm.edit()
        elif choice == '5':
            tm.dele()
        elif choice == '6':
            tm.statis()
        elif choice == '7':
            tm.save()
        elif choice == '0':
            break
        else:
            print('选择错误,请重新选择!')

(3)实验员类(文件3) 

# 文件3  LabTechnician.py

from Staff import *

class LabTechnician(Staff):                                                                                     # 实验员类

    def __init__(self,number='-1',name='',gender='',age=-1,lab='',job=''):
        Staff.__init__(self,number,name,gender,age)  # 编号、姓名、性别、年龄
        self.lab = lab                               # 实验室
        self.job = job                               # 职务

    def set_number(self): # 设置实验员编号
        temp_nu = input('请输入编号(4位数):')
        if len(temp_nu) != 4:
            print('编号必须是4位数,请重新录入!')
            return None
        else:
            return temp_nu

    def set_gender(self): # 设置实验员性别
        temp_ge = input('请输入性别(男或女):')
        if temp_ge != '男' and temp_ge != '女':
            print('性别必须是男或女,请重新录入!')
            return None
        else:
            return temp_ge

    def input(self): # 录入实验员信息
        print('请输入实验员的各项信息:')
        temp_nu = self.set_number()
        if temp_nu == None:
            return None
        temp_na = input('请输入姓名:')
        temp_ge = self.set_gender()
        if temp_ge == None:
            return None
        temp_ag = int(input('请输入年龄(整数):'))
        temp_la = input('请输入实验室:')
        temp_jo = input('请输入职务:')
        self.number = temp_nu
        self.name = temp_na
        self.gender = temp_ge
        self.age = temp_ag
        self.lab = temp_la
        self.job = temp_jo
        return self

    def output(self): # 输出实验员信息
        print("{0:^12}{1:^12}{2:^12}{3:^12}{4:^12}{5:^12}".format(self.number,self.name,self.gender,self.age,self.lab,self.job))

class LabTechManager:                                                                                        # 实验员管理类

    def __init__(self):
        self.listx = []

    def check_number(self,nu): # 检查实验员编号是否存在重复
        for i in range(len(self.listx)):
            if nu == self.listx[i].number:
                return True
        else:
            return False

    def add(self): # 添加实验员信息
        print('-' * 40,'添加实验员信息','-' * 40,sep='')
        LT = LabTechnician()
        LT = LT.input()
        if LT != None:
            if self.check_number(LT.number):
                print('编号重复,添加失败!')
            else:
                self.listx.append(LT)
                print('添加实验员信息成功!')
        else:
            print('添加实验员信息失败!')

    def show(self): # 显示实验员信息
        print('-' * 40,'显示实验员信息','-' * 40,sep='')
        print("{0:^12}{1:^12}{2:^12}{3:^12}{4:^12}{5:^12}".format('编号','姓名','性别','年龄','实验室','职务'))
        for lt in self.listx:
            lt.output()

    def min_search(self): # 查询实验员信息
        print('-' * 20, '查询实验员信息', '-' * 20, sep='')
        print('请选择查询方式:')
        print('1、根据编号查询')
        print('2、根据姓名查询')
        choice = input()
        if choice == '1':
            temp_nu = input('请输入编号(4位数):')
            for i in range(len(self.listx)):
                if temp_nu == self.listx[i].number:
                    return i
            else:
                return None
        elif choice == '2':
            temp_na = input('请输入姓名:')
            for i in range(len(self.listx)):
                if temp_na == self.listx[i].name:
                    return i
            else:
                return None

    def main_search(self): # 查询实验员信息
        inde = self.min_search()
        if inde != None:
            print('查询成功,信息如下:')
            print("{0:^12}{1:^12}{2:^12}{3:^12}{4:^12}{5:^12}".format('编号','姓名','性别','年龄','实验室','职务'))
            self.listx[inde].output()
            return inde
        else:
            print('查询失败!')
            return None

    def edit(self): # 编辑实验员信息
        print('-' * 40, '编辑实验员信息', '-' * 40, sep='')
        print('请先查询需要编辑的实验员信息!')
        inde = self.main_search()
        if inde != None:
            print('请选择需要编辑的信息:')
            choice = input('1、编号  2、姓名  3、性别  4、年龄  5、实验室  6、职务')
            if choice == '1':
                temp_nu = self.listx[inde].set_number()
                if temp_nu != None and not self.check_number(temp_nu):
                    self.listx[inde].number = temp_nu
                    print('编号编辑成功!')
                else:
                    print('编号编辑失败!')
            elif choice == '2':
                temp_na = input('请输入姓名:')
                self.listx[inde].name = temp_na
                print('姓名编辑成功!')
            elif choice == '3':
                temp_ge = self.listx[inde].set_gender()
                if temp_ge != None:
                    self.listx[inde].gender = temp_ge
                    print('性别编辑成功!')
                else:
                    print('性别编辑失败!')
            elif choice == '4':
                temp_ag = int(input('请输入年龄(整数):'))
                self.listx[inde].age = temp_ag
                print('年龄编辑成功!')
            elif choice == '5':
                temp_la = input('请输入实验室:')
                self.listx[inde].lab = temp_la
                print('实验室编辑成功!')
            elif choice == '6':
                temp_jo = input('请输入职务:')
                self.listx[inde].job = temp_jo
                print('职务编辑成功!')
            else:
                print('选择有误,编辑失败!')

    def dele(self): # 删除实验员信息
        print('-' * 40, '删除实验员信息', '-' * 40, sep='')
        print('请先查询需要删除的实验员信息!')
        inde = self.main_search()
        if inde != None:
            del self.listx[inde]
            print('删除实验员信息成功!')
        else:
            print('删除实验员信息失败!')

    def statis(self): # 统计实验员信息
        print('-' * 40, '统计实验员信息', '-' * 40, sep='')
        print('请选择统计方式:')
        print('1、按年龄统计')
        print('2、统计总人数以及男性和女性人数')
        choice = input()
        if choice == '1':
            l = int(input('请输入年龄的下限(包含下限):'))
            u = int(input('请输入年龄的上限(包含上限):'))
            count = 0
            print('统计结果如下:')
            print("{0:^12}{1:^12}{2:^12}{3:^12}{4:^12}{5:^12}".format('编号','姓名','性别','年龄','实验室','职务'))
            for i in range(len(self.listx)):
                if l <= self.listx[i].age <= u:
                    count += 1
                    self.listx[i].output()
            print('该年龄段的人数共计有{0}人'.format(count))
        elif choice == '2':
            total = len(self.listx)
            count_female = 0
            for i in range(len(self.listx)):
                if self.listx[i].gender == '女':
                    count_female += 1
            print('统计结果如下:')
            print('实验员的总人数为{0}人'.format(total))
            print('其中,女性{0}人,男性{1}人'.format(count_female,total-count_female))
        else:
            print('选择错误,请重新选择!')

    def save(self): # 保存实验员信息
        print('-' * 40, '保存实验员信息', '-' * 40, sep='')
        with open('LabTechnicianinfo.txt', 'w', encoding='utf-8') as fp:
            for s in self.listx:
                s = [s.number,s.name,s.gender,str(s.age),s.lab,s.job]
                s = ','.join(s) + '\n'
                fp.write(s)
        print('保存实验员信息成功!')

    def init(self): # 读取实验员信息
        print('-' * 40, '读取实验员信息', '-' * 40, sep='')
        try:
            with open('LabTechnicianinfo.txt', 'r', encoding='utf-8') as fp:
                self.listx = []
                for line in fp.readlines():
                    s = line.strip().split(',')
                    self.listx.append(LabTechnician(s[0],s[1],s[2],int(s[3]),s[4],s[5]))
                print('读取实验员信息成功!')
        except FileNotFoundError:
            print('文件不存在!')

def lab_tech_mune(ltm):                                                                                   # 实验员类二级菜单
    ltm.init()
    print('实验员信息管理子系统自动初始化完成!')
    choice = '99'
    while choice != '0':
        print('*' * 40, '实验员信息管理子系统', '*' * 40, sep='')
        print('*温馨提示:当您使用添加或编辑或删除功能后,记得使用保存功能,以确保相关操作被子系统记录!')
        print('*请输入您的选择:')
        print('*1:添加')
        print('*2:查询')
        print('*3:显示')
        print('*4:编辑')
        print('*5:删除')
        print('*6:统计')
        print('*7:保存')
        print('*0:退出子系统')
        print('*' * 100)
        choice = input()
        if choice == '1':
            ltm.add()
        elif choice == '2':
            ltm.main_search()
        elif choice == '3':
            ltm.show()
        elif choice == '4':
            ltm.edit()
        elif choice == '5':
            ltm.dele()
        elif choice == '6':
            ltm.statis()
        elif choice == '7':
            ltm.save()
        elif choice == '0':
            break
        else:
            print('选择错误,请重新选择!')

(4)行政人员类(文件4) 

# 文件4  AdminiStaff.py

from Staff import *

class AdminiStaff(Staff):                                                                                      # 行政人员类

    def __init__(self,number='-1',name='',gender='',age=-1,poli_status='',Title=''):
        Staff.__init__(self,number,name,gender,age)  # 编号、姓名、性别、年龄
        self.poli_status = poli_status               # 政治面貌
        self.Title = Title                           # 职称

    def set_number(self): # 设置行政人员编号
        temp_nu = input('请输入编号(4位数):')
        if len(temp_nu) != 4:
            print('编号必须是4位数,请重新录入!')
            return None
        else:
            return temp_nu

    def set_gender(self): # 设置行政人员性别
        temp_ge = input('请输入性别(男或女):')
        if temp_ge != '男' and temp_ge != '女':
            print('性别必须是男或女,请重新录入!')
            return None
        else:
            return temp_ge

    def input(self): # 录入行政人员信息
        print('请输入行政人员的各项信息:')
        temp_nu = self.set_number()
        if temp_nu == None:
            return None
        temp_na = input('请输入姓名:')
        temp_ge = self.set_gender()
        if temp_ge == None:
            return None
        temp_ag = int(input('请输入年龄(整数):'))
        temp_po = input('请输入政治面貌:')
        temp_Ti = input('请输入职称:')
        self.number = temp_nu
        self.name = temp_na
        self.gender = temp_ge
        self.age = temp_ag
        self.poli_status = temp_po
        self.Title = temp_Ti
        return self

    def output(self): # 输出行政人员信息
        print("{0:^12}{1:^12}{2:^12}{3:^12}{4:^12}{5:^12}".format(self.number,self.name,self.gender,self.age,self.poli_status,self.Title))

class AdmiManager:                                                                                          # 行政人员管理类

    def __init__(self):
        self.listx = []

    def check_number(self,nu): # 检查行政人员编号是否存在重复
        for i in range(len(self.listx)):
            if nu == self.listx[i].number:
                return True
        else:
            return False

    def add(self): # 添加行政人员信息
        print('-' * 40,'添加行政人员信息','-' * 40,sep='')
        AS = AdminiStaff()
        AS = AS.input()
        if AS != None:
            if self.check_number(AS.number):
                print('编号重复,添加失败!')
            else:
                self.listx.append(AS)
                print('添加行政人员信息成功!')
        else:
            print('添加行政人员信息失败!')

    def show(self): # 显示行政人员信息
        print('-' * 40,'显示行政人员信息','-' * 40,sep='')
        print("{0:^12}{1:^12}{2:^12}{3:^12}{4:^12}{5:^12}".format('编号','姓名','性别','年龄','政治面貌','职称'))
        for a in self.listx:
            a.output()

    def min_search(self): # 查询行政人员信息
        print('-' * 20, '查询行政人员信息', '-' * 20, sep='')
        print('请选择查询方式:')
        print('1、根据编号查询')
        print('2、根据姓名查询')
        choice = input()
        if choice == '1':
            temp_nu = input('请输入编号(4位数):')
            for i in range(len(self.listx)):
                if temp_nu == self.listx[i].number:
                    return i
            else:
                return None
        elif choice == '2':
            temp_na = input('请输入姓名:')
            for i in range(len(self.listx)):
                if temp_na == self.listx[i].name:
                    return i
            else:
                return None

    def main_search(self): # 查询行政人员信息
        inde = self.min_search()
        if inde != None:
            print('查询成功,信息如下:')
            print("{0:^12}{1:^12}{2:^12}{3:^12}{4:^12}{5:^12}".format('编号','姓名','性别','年龄','政治面貌','职称'))
            self.listx[inde].output()
            return inde
        else:
            print('查询失败!')
            return None

    def edit(self): # 编辑行政人员信息
        print('-' * 40, '编辑行政人员信息', '-' * 40, sep='')
        print('请先查询需要编辑的行政人员信息!')
        inde = self.main_search()
        if inde != None:
            print('请选择需要编辑的信息:')
            choice = input('1、编号  2、姓名  3、性别  4、年龄  5、政治面貌  6、职称')
            if choice == '1':
                temp_nu = self.listx[inde].set_number()
                if temp_nu != None and not self.check_number(temp_nu):
                    self.listx[inde].number = temp_nu
                    print('编号编辑成功!')
                else:
                    print('编号编辑失败!')
            elif choice == '2':
                temp_na = input('请输入姓名:')
                self.listx[inde].name = temp_na
                print('姓名编辑成功!')
            elif choice == '3':
                temp_ge = self.listx[inde].set_gender()
                if temp_ge != None:
                    self.listx[inde].gender = temp_ge
                    print('性别编辑成功!')
                else:
                    print('性别编辑失败!')
            elif choice == '4':
                temp_ag = int(input('请输入年龄(整数):'))
                self.listx[inde].age = temp_ag
                print('年龄编辑成功!')
            elif choice == '5':
                temp_po = input('请输入政治面貌:')
                self.listx[inde].poli_status = temp_po
                print('政治面貌编辑成功!')
            elif choice == '6':
                temp_Ti = input('请输入职称:')
                self.listx[inde].Title = temp_Ti
                print('职称编辑成功!')
            else:
                print('选择有误,编辑失败!')

    def dele(self): # 删除行政人员信息
        print('-' * 40, '删除行政人员信息', '-' * 40, sep='')
        print('请先查询需要删除的行政人员信息!')
        inde = self.main_search()
        if inde != None:
            del self.listx[inde]
            print('删除行政人员信息成功!')
        else:
            print('删除行政人员信息失败!')

    def statis(self): # 统计行政人员信息
        print('-' * 40, '统计行政人员信息', '-' * 40, sep='')
        print('请选择统计方式:')
        print('1、按年龄统计')
        print('2、统计总人数以及男性和女性人数')
        choice = input()
        if choice == '1':
            l = int(input('请输入年龄的下限(包含下限):'))
            u = int(input('请输入年龄的上限(包含上限):'))
            count = 0
            print('统计结果如下:')
            print("{0:^12}{1:^12}{2:^12}{3:^12}{4:^12}{5:^12}".format('编号','姓名','性别','年龄','政治面貌','职称'))
            for i in range(len(self.listx)):
                if l <= self.listx[i].age <= u:
                    count += 1
                    self.listx[i].output()
            print('该年龄段的人数共计有{0}人'.format(count))
        elif choice == '2':
            total = len(self.listx)
            count_female = 0
            for i in range(len(self.listx)):
                if self.listx[i].gender == '女':
                    count_female += 1
            print('统计结果如下:')
            print('行政人员的总人数为{0}人'.format(total))
            print('其中,女性{0}人,男性{1}人'.format(count_female,total-count_female))
        else:
            print('选择错误,请重新选择!')

    def save(self): # 保存行政人员信息
        print('-' * 40, '保存行政人员信息', '-' * 40, sep='')
        with open('AdminiStaffinfo.txt', 'w', encoding='utf-8') as fp:
            for s in self.listx:
                s = [s.number,s.name,s.gender,str(s.age),s.poli_status,s.Title]
                s = ','.join(s) + '\n'
                fp.write(s)
        print('保存行政人员信息成功!')

    def init(self): # 读取行政人员信息
        print('-' * 40, '读取行政人员信息', '-' * 40, sep='')
        try:
            with open('AdminiStaffinfo.txt', 'r', encoding='utf-8') as fp:
                self.listx = []
                for line in fp.readlines():
                    s = line.strip().split(',')
                    self.listx.append(AdminiStaff(s[0],s[1],s[2],int(s[3]),s[4],s[5]))
                print('读取行政人员信息成功!')
        except FileNotFoundError:
            print('文件不存在!')

def admi_mune(am):                                                                                       # 行政人员类二级菜单
    am.init()
    print('行政人员信息管理子系统自动初始化完成!')
    choice = '99'
    while choice != '0':
        print('*' * 40, '行政人员信息管理子系统', '*' * 40, sep='')
        print('*温馨提示:当您使用添加或编辑或删除功能后,记得使用保存功能,以确保相关操作被子系统记录!')
        print('*请输入您的选择:')
        print('*1:添加')
        print('*2:查询')
        print('*3:显示')
        print('*4:编辑')
        print('*5:删除')
        print('*6:统计')
        print('*7:保存')
        print('*0:退出子系统')
        print('*' * 100)
        choice = input()
        if choice == '1':
            am.add()
        elif choice == '2':
            am.main_search()
        elif choice == '3':
            am.show()
        elif choice == '4':
            am.edit()
        elif choice == '5':
            am.dele()
        elif choice == '6':
            am.statis()
        elif choice == '7':
            am.save()
        elif choice == '0':
            break
        else:
            print('选择错误,请重新选择!')

(5)教师兼行政人员类(文件5) 

# 文件5  TeachAdminiStaff.py

from Staff import *

class TeachAdminiStaff(Staff):                                                                            # 教师兼行政人员类

    def __init__(self,number='-1',name='',gender='',age=-1,department='',major='',Title='',poli_status=''):
        Staff.__init__(self,number,name,gender,age)  # 编号、姓名、性别、年龄
        self.department = department                 # 系部
        self.major = major                           # 专业
        self.Title = Title                           # 职称
        self.poli_status = poli_status               # 政治面貌

    def set_number(self): # 设置教师兼行政人员编号
        temp_nu = input('请输入编号(4位数):')
        if len(temp_nu) != 4:
            print('编号必须是4位数,请重新录入!')
            return None
        else:
            return temp_nu

    def set_gender(self): # 设置教师兼行政人员性别
        temp_ge = input('请输入性别(男或女):')
        if temp_ge != '男' and temp_ge != '女':
            print('性别必须是男或女,请重新录入!')
            return None
        else:
            return temp_ge

    def input(self): # 录入教师兼行政人员信息
        print('请输入教师兼行政人员的各项信息:')
        temp_nu = self.set_number()
        if temp_nu == None:
            return None
        temp_na = input('请输入姓名:')
        temp_ge = self.set_gender()
        if temp_ge == None:
            return None
        temp_ag = int(input('请输入年龄(整数):'))
        temp_de = input('请输入系部:')
        temp_ma = input('请输入专业:')
        temp_Ti = input('请输入职称:')
        temp_po = input('请输入政治面貌:')
        self.number = temp_nu
        self.name = temp_na
        self.gender = temp_ge
        self.age = temp_ag
        self.department = temp_de
        self.major = temp_ma
        self.Title = temp_Ti
        self.poli_status = temp_po
        return self

    def output(self): # 输出教师兼行政人员信息
        print("{0:^12}{1:^12}{2:^12}{3:^12}{4:^12}{5:^12}{6:^12}{7:^12}".format(self.number,self.name,self.gender,self.age,self.department,self.major,self.Title,self.poli_status))

class TeachAdmiManager:                                                                                # 教师兼行政人员管理类

    def __init__(self):
        self.listx = []

    def check_number(self,nu): # 检查教师兼行政人员编号是否存在重复
        for i in range(len(self.listx)):
            if nu == self.listx[i].number:
                return True
        else:
            return False

    def add(self): # 添加教师兼行政人员信息
        print('-' * 40,'添加教师兼行政人员信息','-' * 40,sep='')
        TAS = TeachAdminiStaff()
        TAS = TAS.input()
        if TAS != None:
            if self.check_number(TAS.number):
                print('编号重复,添加失败!')
            else:
                self.listx.append(TAS)
                print('添加教师兼行政人员信息成功!')
        else:
            print('添加教师兼行政人员信息失败!')

    def show(self): # 显示教师兼行政人员信息
        print('-' * 40,'显示教师兼行政人员信息','-' * 40,sep='')
        print("{0:^12}{1:^12}{2:^12}{3:^12}{4:^12}{5:^12}{6:^12}{7:^12}".format('编号','姓名','性别','年龄','系部','专业','职称','政治面貌'))
        for tas in self.listx:
            tas.output()

    def min_search(self): # 查询教师兼行政人员信息
        print('-' * 20, '查询教师兼行政人员信息', '-' * 20, sep='')
        print('请选择查询方式:')
        print('1、根据编号查询')
        print('2、根据姓名查询')
        choice = input()
        if choice == '1':
            temp_nu = input('请输入编号(4位数):')
            for i in range(len(self.listx)):
                if temp_nu == self.listx[i].number:
                    return i
            else:
                return None
        elif choice == '2':
            temp_na = input('请输入姓名:')
            for i in range(len(self.listx)):
                if temp_na == self.listx[i].name:
                    return i
            else:
                return None

    def main_search(self): # 查询教师兼行政人员信息
        inde = self.min_search()
        if inde != None:
            print('查询成功,信息如下:')
            print("{0:^12}{1:^12}{2:^12}{3:^12}{4:^12}{5:^12}{6:^12}{7:^12}".format('编号','姓名','性别','年龄','系部','专业','职称','政治面貌'))
            self.listx[inde].output()
            return inde
        else:
            print('查询失败!')
            return None

    def edit(self): # 编辑教师兼行政人员信息
        print('-' * 40, '编辑教师兼行政人员信息', '-' * 40, sep='')
        print('请先查询需要编辑的教师兼行政人员信息!')
        inde = self.main_search()
        if inde != None:
            print('请选择需要编辑的信息:')
            choice = input('1、编号  2、姓名  3、性别  4、年龄  5、系部  6、专业  7、职称  8、政治面貌')
            if choice == '1':
                temp_nu = self.listx[inde].set_number()
                if temp_nu != None and not self.check_number(temp_nu):
                    self.listx[inde].number = temp_nu
                    print('编号编辑成功!')
                else:
                    print('编号编辑失败!')
            elif choice == '2':
                temp_na = input('请输入姓名:')
                self.listx[inde].name = temp_na
                print('姓名编辑成功!')
            elif choice == '3':
                temp_ge = self.listx[inde].set_gender()
                if temp_ge != None:
                    self.listx[inde].gender = temp_ge
                    print('性别编辑成功!')
                else:
                    print('性别编辑失败!')
            elif choice == '4':
                temp_ag = int(input('请输入年龄(整数):'))
                self.listx[inde].age = temp_ag
                print('年龄编辑成功!')
            elif choice == '5':
                temp_de = input('请输入系部:')
                self.listx[inde].department = temp_de
                print('系部编辑成功!')
            elif choice == '6':
                temp_ma = input('请输入专业:')
                self.listx[inde].major = temp_ma
                print('专业编辑成功!')
            elif choice == '7':
                temp_Ti = input('请输入职称:')
                self.listx[inde].Title = temp_Ti
                print('职称编辑成功!')
            elif choice == '8':
                temp_po = input('请输入政治面貌:')
                self.listx[inde].poli_status = temp_po
                print('政治面貌编辑成功!')
            else:
                print('选择有误,编辑失败!')

    def dele(self): # 删除教师兼行政人员信息
        print('-' * 40, '删除教师兼行政人员信息', '-' * 40, sep='')
        print('请先查询需要删除的教师兼行政人员信息!')
        inde = self.main_search()
        if inde != None:
            del self.listx[inde]
            print('删除教师兼行政人员信息成功!')
        else:
            print('删除教师兼行政人员信息失败!')

    def statis(self): # 统计教师兼行政人员信息
        print('-' * 40, '统计教师兼行政人员信息', '-' * 40, sep='')
        print('请选择统计方式:')
        print('1、按年龄统计')
        print('2、统计总人数以及男性和女性人数')
        choice = input()
        if choice == '1':
            l = int(input('请输入年龄的下限(包含下限):'))
            u = int(input('请输入年龄的上限(包含上限):'))
            count = 0
            print('统计结果如下:')
            print("{0:^12}{1:^12}{2:^12}{3:^12}{4:^12}{5:^12}{6:^12}{7:^12}".format('编号','姓名','性别','年龄','系部','专业','职称','政治面貌'))
            for i in range(len(self.listx)):
                if l <= self.listx[i].age <= u:
                    count += 1
                    self.listx[i].output()
            print('该年龄段的人数共计有{0}人'.format(count))
        elif choice == '2':
            total = len(self.listx)
            count_female = 0
            for i in range(len(self.listx)):
                if self.listx[i].gender == '女':
                    count_female += 1
            print('统计结果如下:')
            print('教师兼行政人员的总人数为{0}人'.format(total))
            print('其中,女性{0}人,男性{1}人'.format(count_female,total-count_female))
        else:
            print('选择错误,请重新选择!')

    def save(self): # 保存教师兼行政人员信息
        print('-' * 40, '保存教师兼行政人员信息', '-' * 40, sep='')
        with open('TeachAdminiStaffinfo.txt', 'w', encoding='utf-8') as fp:
            for s in self.listx:
                s = [s.number,s.name,s.gender,str(s.age),s.department,s.major,s.Title,s.poli_status]
                s = ','.join(s) + '\n'
                fp.write(s)
        print('保存教师兼行政人员信息成功!')

    def init(self): # 读取教师兼行政人员信息
        print('-' * 40, '读取教师兼行政人员信息', '-' * 40, sep='')
        try:
            with open('TeachAdminiStaffinfo.txt', 'r', encoding='utf-8') as fp:
                self.listx = []
                for line in fp.readlines():
                    s = line.strip().split(',')
                    self.listx.append(TeachAdminiStaff(s[0],s[1],s[2],int(s[3]),s[4],s[5],s[6],s[7]))
                print('读取教师兼行政人员信息成功!')
        except FileNotFoundError:
            print('文件不存在!')

def teach_admi_mune(tam):                                                                           # 教师兼行政人员类二级菜单
    tam.init()
    print('教师兼行政人员信息管理子系统自动初始化完成!')
    choice = '99'
    while choice != '0':
        print('*' * 40, '教师兼行政人员信息管理子系统', '*' * 40, sep='')
        print('*温馨提示:当您使用添加或编辑或删除功能后,记得使用保存功能,以确保相关操作被子系统记录!')
        print('*请输入您的选择:')
        print('*1:添加')
        print('*2:查询')
        print('*3:显示')
        print('*4:编辑')
        print('*5:删除')
        print('*6:统计')
        print('*7:保存')
        print('*0:退出子系统')
        print('*' * 100)
        choice = input()
        if choice == '1':
            tam.add()
        elif choice == '2':
            tam.main_search()
        elif choice == '3':
            tam.show()
        elif choice == '4':
            tam.edit()
        elif choice == '5':
            tam.dele()
        elif choice == '6':
            tam.statis()
        elif choice == '7':
            tam.save()
        elif choice == '0':
            break
        else:
            print('选择错误,请重新选择!')

(6)一级菜单函数和主函数(文件6) 

# 文件6  Main.py

from Staff import *
from Teacher import *
from LabTechnician import *
from AdminiStaff import *
from TeachAdminiStaff import *

# 一级菜单函数
def menu():                                                                                                  # 一级菜单函数
    print('*' * 40, '高校人员管理系统', '*' * 40, sep='')
    print('*请输入您的选择:')
    print('*1:教师信息管理')
    print('*2:实验员信息管理')
    print('*3:行政人员信息管理')
    print('*4:教师兼行政人员信息管理')
    print('*0:退出系统')
    print('*' * 100)

# 主函数
def main():                                                                                                       # 主函数
    tm = TeaManager()
    ltm = LabTechManager()
    am = AdmiManager()
    tam = TeachAdmiManager()
    while True:
        menu()
        choice = input()
        if choice == '1':
            tea_mune(tm)
        elif choice == '2':
            lab_tech_mune(ltm)
        elif choice == '3':
            admi_mune(am)
        elif choice == '4':
            teach_admi_mune(tam)
        elif choice == '0':
            break
        else:
            print('选择错误,请重新选择!')

main()

2、单文件

# 课设_Teacher  20221125
class Staff:                                                                                                      # 员工类

    def __init__(self,number='-1',name='',gender='',age=-1):
        self.number = number     # 编号
        self.name = name         # 姓名
        self.gender = gender     # 性别
        self.age = age           # 年龄

class Teacher(Staff):                                                                                             # 教师类

    def __init__(self,number='-1',name='',gender='',age=-1,department='',major='',title=''):
        Staff.__init__(self,number,name,gender,age)  # 编号、姓名、性别、年龄
        self.department = department                 # 系部
        self.major = major                           # 专业
        self.title = title                           # 职称

    def set_number(self): # 设置教师编号
        temp_nu = input('请输入编号(4位数):')
        if len(temp_nu) != 4:
            print('编号必须是4位数,请重新录入!')
            return None
        else:
            return temp_nu

    def set_gender(self): # 设置教师性别
        temp_ge = input('请输入性别(男或女):')
        if temp_ge != '男' and temp_ge != '女':
            print('性别必须是男或女,请重新录入!')
            return None
        else:
            return temp_ge

    def input(self): # 录入教师信息
        print('请输入教师的各项信息:')
        temp_nu = self.set_number()
        if temp_nu == None:
            return None
        temp_na = input('请输入姓名:')
        temp_ge = self.set_gender()
        if temp_ge == None:
            return None
        temp_ag = int(input('请输入年龄(整数):'))
        temp_de = input('请输入系部:')
        temp_ma = input('请输入专业:')
        temp_ti = input('请输入职称:')
        self.number = temp_nu
        self.name = temp_na
        self.gender = temp_ge
        self.age = temp_ag
        self.department = temp_de
        self.major = temp_ma
        self.title = temp_ti
        return self

    def output(self): # 输出教师信息
        print("{0:^12}{1:^12}{2:^12}{3:^12}{4:^12}{5:^12}{6:^12}".format(self.number,self.name,self.gender,self.age,self.department,self.major,self.title))

class TeaManager:                                                                                              # 教师管理类

    def __init__(self):
        self.listx = []

    def check_number(self,nu): # 检查教师编号是否存在重复
        for i in range(len(self.listx)):
            if nu == self.listx[i].number:
                return True
        else:
            return False

    def add(self): # 添加教师信息
        print('-' * 40,'添加教师信息','-' * 40,sep='')
        T = Teacher()
        T = T.input()
        if T != None:
            if self.check_number(T.number):
                print('编号重复,添加失败!')
            else:
                self.listx.append(T)
                print('添加教师信息成功!')
        else:
            print('添加教师信息失败!')

    def show(self): # 显示教师信息
        print('-' * 40,'显示教师信息','-' * 40,sep='')
        print("{0:^12}{1:^12}{2:^12}{3:^12}{4:^12}{5:^12}{6:^12}".format('编号','姓名','性别','年龄','系部','专业','职称'))
        for t in self.listx:
            t.output()

    def min_search(self): # 查询教师信息
        print('-' * 20, '查询教师信息', '-' * 20, sep='')
        print('请选择查询方式:')
        print('1、根据编号查询')
        print('2、根据姓名查询')
        choice = input()
        if choice == '1':
            temp_nu = input('请输入编号(4位数):')
            for i in range(len(self.listx)):
                if temp_nu == self.listx[i].number:
                    return i
            else:
                return None
        elif choice == '2':
            temp_na = input('请输入姓名:')
            for i in range(len(self.listx)):
                if temp_na == self.listx[i].name:
                    return i
            else:
                return None

    def main_search(self): # 查询教师信息
        inde = self.min_search()
        if inde != None:
            print('查询成功,信息如下:')
            print("{0:^12}{1:^12}{2:^12}{3:^12}{4:^12}{5:^12}{6:^12}".format('编号','姓名','性别','年龄','系部','专业','职称'))
            self.listx[inde].output()
            return inde
        else:
            print('查询失败!')
            return None

    def edit(self): # 编辑教师信息
        print('-' * 40, '编辑教师信息', '-' * 40, sep='')
        print('请先查询需要编辑的教师信息!')
        inde = self.main_search()
        if inde != None:
            print('请选择需要编辑的信息:')
            choice = input('1、编号  2、姓名  3、性别  4、年龄  5、系部  6、专业  7、职称')
            if choice == '1':
                temp_nu = self.listx[inde].set_number()
                if temp_nu != None and not self.check_number(temp_nu):
                    self.listx[inde].number = temp_nu
                    print('编号编辑成功!')
                else:
                    print('编号编辑失败!')
            elif choice == '2':
                temp_na = input('请输入姓名:')
                self.listx[inde].name = temp_na
                print('姓名编辑成功!')
            elif choice == '3':
                temp_ge = self.listx[inde].set_gender()
                if temp_ge != None:
                    self.listx[inde].gender = temp_ge
                    print('性别编辑成功!')
                else:
                    print('性别编辑失败!')
            elif choice == '4':
                temp_ag = int(input('请输入年龄(整数):'))
                self.listx[inde].age = temp_ag
                print('年龄编辑成功!')
            elif choice == '5':
                temp_de = input('请输入系部:')
                self.listx[inde].department = temp_de
                print('系部编辑成功!')
            elif choice == '6':
                temp_ma = input('请输入专业:')
                self.listx[inde].major = temp_ma
                print('专业编辑成功!')
            elif choice == '7':
                temp_ti = input('请输入职称:')
                self.listx[inde].title = temp_ti
                print('职称编辑成功!')
            else:
                print('选择有误,编辑失败!')

    def dele(self): # 删除教师信息
        print('-' * 40, '删除教师信息', '-' * 40, sep='')
        print('请先查询需要删除的教师信息!')
        inde = self.main_search()
        if inde != None:
            del self.listx[inde]
            print('删除教师信息成功!')
        else:
            print('删除教师信息失败!')

    def statis(self): # 统计教师信息
        print('-' * 40, '统计教师信息', '-' * 40, sep='')
        print('请选择统计方式:')
        print('1、按年龄统计')
        print('2、统计总人数以及男性和女性人数')
        choice = input()
        if choice == '1':
            l = int(input('请输入年龄的下限(包含下限):'))
            u = int(input('请输入年龄的上限(包含上限):'))
            count = 0
            print('统计结果如下:')
            print("{0:^12}{1:^12}{2:^12}{3:^12}{4:^12}{5:^12}{6:^12}".format('编号','姓名','性别','年龄','系部','专业','职称'))
            for i in range(len(self.listx)):
                if l <= self.listx[i].age <= u:
                    count += 1
                    self.listx[i].output()
            print('该年龄段的人数共计有{0}人'.format(count))
        elif choice == '2':
            total = len(self.listx)
            count_female = 0
            for i in range(len(self.listx)):
                if self.listx[i].gender == '女':
                    count_female += 1
            print('统计结果如下:')
            print('教师的总人数为{0}人'.format(total))
            print('其中,女性{0}人,男性{1}人'.format(count_female,total-count_female))
        else:
            print('选择错误,请重新选择!')

    def save(self): # 保存教师信息
        print('-' * 40, '保存教师信息', '-' * 40, sep='')
        with open('Teacherinfo.txt', 'w', encoding='utf-8') as fp:
            for s in self.listx:
                s = [s.number,s.name,s.gender,str(s.age),s.department,s.major,s.title]
                s = ','.join(s) + '\n'
                fp.write(s)
        print('保存教师信息成功!')

    def init(self): # 读取教师信息
        print('-' * 40, '读取教师信息', '-' * 40, sep='')
        try:
            with open('Teacherinfo.txt', 'r', encoding='utf-8') as fp:
                self.listx = []
                for line in fp.readlines():
                    s = line.strip().split(',')
                    self.listx.append(Teacher(s[0],s[1],s[2],int(s[3]),s[4],s[5],s[6]))
                print('读取教师信息成功!')
        except FileNotFoundError:
            print('文件不存在!')

def tea_mune(tm):                                                                                           # 教师类二级菜单
    tm.init()
    print('教师信息管理子系统自动初始化完成!')
    choice = '99'
    while choice != '0':
        print('*' * 40, '教师信息管理子系统', '*' * 40, sep='')
        print('*温馨提示:当您使用添加或编辑或删除功能后,记得使用保存功能,以确保相关操作被子系统记录!')
        print('*请输入您的选择:')
        print('*1:添加')
        print('*2:查询')
        print('*3:显示')
        print('*4:编辑')
        print('*5:删除')
        print('*6:统计')
        print('*7:保存')
        print('*0:退出子系统')
        print('*' * 100)
        choice = input()
        if choice == '1':
            tm.add()
        elif choice == '2':
            tm.main_search()
        elif choice == '3':
            tm.show()
        elif choice == '4':
            tm.edit()
        elif choice == '5':
            tm.dele()
        elif choice == '6':
            tm.statis()
        elif choice == '7':
            tm.save()
        elif choice == '0':
            break
        else:
            print('选择错误,请重新选择!')



# 课设_LabTechnician  20221126
class LabTechnician(Staff):                                                                                     # 实验员类

    def __init__(self,number='-1',name='',gender='',age=-1,lab='',job=''):
        Staff.__init__(self,number,name,gender,age)  # 编号、姓名、性别、年龄
        self.lab = lab                               # 实验室
        self.job = job                               # 职务

    def set_number(self): # 设置实验员编号
        temp_nu = input('请输入编号(4位数):')
        if len(temp_nu) != 4:
            print('编号必须是4位数,请重新录入!')
            return None
        else:
            return temp_nu

    def set_gender(self): # 设置实验员性别
        temp_ge = input('请输入性别(男或女):')
        if temp_ge != '男' and temp_ge != '女':
            print('性别必须是男或女,请重新录入!')
            return None
        else:
            return temp_ge

    def input(self): # 录入实验员信息
        print('请输入实验员的各项信息:')
        temp_nu = self.set_number()
        if temp_nu == None:
            return None
        temp_na = input('请输入姓名:')
        temp_ge = self.set_gender()
        if temp_ge == None:
            return None
        temp_ag = int(input('请输入年龄(整数):'))
        temp_la = input('请输入实验室:')
        temp_jo = input('请输入职务:')
        self.number = temp_nu
        self.name = temp_na
        self.gender = temp_ge
        self.age = temp_ag
        self.lab = temp_la
        self.job = temp_jo
        return self

    def output(self): # 输出实验员信息
        print("{0:^12}{1:^12}{2:^12}{3:^12}{4:^12}{5:^12}".format(self.number,self.name,self.gender,self.age,self.lab,self.job))

class LabTechManager:                                                                                        # 实验员管理类

    def __init__(self):
        self.listx = []

    def check_number(self,nu): # 检查实验员编号是否存在重复
        for i in range(len(self.listx)):
            if nu == self.listx[i].number:
                return True
        else:
            return False

    def add(self): # 添加实验员信息
        print('-' * 40,'添加实验员信息','-' * 40,sep='')
        LT = LabTechnician()
        LT = LT.input()
        if LT != None:
            if self.check_number(LT.number):
                print('编号重复,添加失败!')
            else:
                self.listx.append(LT)
                print('添加实验员信息成功!')
        else:
            print('添加实验员信息失败!')

    def show(self): # 显示实验员信息
        print('-' * 40,'显示实验员信息','-' * 40,sep='')
        print("{0:^12}{1:^12}{2:^12}{3:^12}{4:^12}{5:^12}".format('编号','姓名','性别','年龄','实验室','职务'))
        for lt in self.listx:
            lt.output()

    def min_search(self): # 查询实验员信息
        print('-' * 20, '查询实验员信息', '-' * 20, sep='')
        print('请选择查询方式:')
        print('1、根据编号查询')
        print('2、根据姓名查询')
        choice = input()
        if choice == '1':
            temp_nu = input('请输入编号(4位数):')
            for i in range(len(self.listx)):
                if temp_nu == self.listx[i].number:
                    return i
            else:
                return None
        elif choice == '2':
            temp_na = input('请输入姓名:')
            for i in range(len(self.listx)):
                if temp_na == self.listx[i].name:
                    return i
            else:
                return None

    def main_search(self): # 查询实验员信息
        inde = self.min_search()
        if inde != None:
            print('查询成功,信息如下:')
            print("{0:^12}{1:^12}{2:^12}{3:^12}{4:^12}{5:^12}".format('编号','姓名','性别','年龄','实验室','职务'))
            self.listx[inde].output()
            return inde
        else:
            print('查询失败!')
            return None

    def edit(self): # 编辑实验员信息
        print('-' * 40, '编辑实验员信息', '-' * 40, sep='')
        print('请先查询需要编辑的实验员信息!')
        inde = self.main_search()
        if inde != None:
            print('请选择需要编辑的信息:')
            choice = input('1、编号  2、姓名  3、性别  4、年龄  5、实验室  6、职务')
            if choice == '1':
                temp_nu = self.listx[inde].set_number()
                if temp_nu != None and not self.check_number(temp_nu):
                    self.listx[inde].number = temp_nu
                    print('编号编辑成功!')
                else:
                    print('编号编辑失败!')
            elif choice == '2':
                temp_na = input('请输入姓名:')
                self.listx[inde].name = temp_na
                print('姓名编辑成功!')
            elif choice == '3':
                temp_ge = self.listx[inde].set_gender()
                if temp_ge != None:
                    self.listx[inde].gender = temp_ge
                    print('性别编辑成功!')
                else:
                    print('性别编辑失败!')
            elif choice == '4':
                temp_ag = int(input('请输入年龄(整数):'))
                self.listx[inde].age = temp_ag
                print('年龄编辑成功!')
            elif choice == '5':
                temp_la = input('请输入实验室:')
                self.listx[inde].lab = temp_la
                print('实验室编辑成功!')
            elif choice == '6':
                temp_jo = input('请输入职务:')
                self.listx[inde].job = temp_jo
                print('职务编辑成功!')
            else:
                print('选择有误,编辑失败!')

    def dele(self): # 删除实验员信息
        print('-' * 40, '删除实验员信息', '-' * 40, sep='')
        print('请先查询需要删除的实验员信息!')
        inde = self.main_search()
        if inde != None:
            del self.listx[inde]
            print('删除实验员信息成功!')
        else:
            print('删除实验员信息失败!')

    def statis(self): # 统计实验员信息
        print('-' * 40, '统计实验员信息', '-' * 40, sep='')
        print('请选择统计方式:')
        print('1、按年龄统计')
        print('2、统计总人数以及男性和女性人数')
        choice = input()
        if choice == '1':
            l = int(input('请输入年龄的下限(包含下限):'))
            u = int(input('请输入年龄的上限(包含上限):'))
            count = 0
            print('统计结果如下:')
            print("{0:^12}{1:^12}{2:^12}{3:^12}{4:^12}{5:^12}".format('编号','姓名','性别','年龄','实验室','职务'))
            for i in range(len(self.listx)):
                if l <= self.listx[i].age <= u:
                    count += 1
                    self.listx[i].output()
            print('该年龄段的人数共计有{0}人'.format(count))
        elif choice == '2':
            total = len(self.listx)
            count_female = 0
            for i in range(len(self.listx)):
                if self.listx[i].gender == '女':
                    count_female += 1
            print('统计结果如下:')
            print('实验员的总人数为{0}人'.format(total))
            print('其中,女性{0}人,男性{1}人'.format(count_female,total-count_female))
        else:
            print('选择错误,请重新选择!')

    def save(self): # 保存实验员信息
        print('-' * 40, '保存实验员信息', '-' * 40, sep='')
        with open('LabTechnicianinfo.txt', 'w', encoding='utf-8') as fp:
            for s in self.listx:
                s = [s.number,s.name,s.gender,str(s.age),s.lab,s.job]
                s = ','.join(s) + '\n'
                fp.write(s)
        print('保存实验员信息成功!')

    def init(self): # 读取实验员信息
        print('-' * 40, '读取实验员信息', '-' * 40, sep='')
        try:
            with open('LabTechnicianinfo.txt', 'r', encoding='utf-8') as fp:
                self.listx = []
                for line in fp.readlines():
                    s = line.strip().split(',')
                    self.listx.append(LabTechnician(s[0],s[1],s[2],int(s[3]),s[4],s[5]))
                print('读取实验员信息成功!')
        except FileNotFoundError:
            print('文件不存在!')

def lab_tech_mune(ltm):                                                                                   # 实验员类二级菜单
    ltm.init()
    print('实验员信息管理子系统自动初始化完成!')
    choice = '99'
    while choice != '0':
        print('*' * 40, '实验员信息管理子系统', '*' * 40, sep='')
        print('*温馨提示:当您使用添加或编辑或删除功能后,记得使用保存功能,以确保相关操作被子系统记录!')
        print('*请输入您的选择:')
        print('*1:添加')
        print('*2:查询')
        print('*3:显示')
        print('*4:编辑')
        print('*5:删除')
        print('*6:统计')
        print('*7:保存')
        print('*0:退出子系统')
        print('*' * 100)
        choice = input()
        if choice == '1':
            ltm.add()
        elif choice == '2':
            ltm.main_search()
        elif choice == '3':
            ltm.show()
        elif choice == '4':
            ltm.edit()
        elif choice == '5':
            ltm.dele()
        elif choice == '6':
            ltm.statis()
        elif choice == '7':
            ltm.save()
        elif choice == '0':
            break
        else:
            print('选择错误,请重新选择!')



# 课设_AdminiStaff  20221126
class AdminiStaff(Staff):                                                                                      # 行政人员类

    def __init__(self,number='-1',name='',gender='',age=-1,poli_status='',Title=''):
        Staff.__init__(self,number,name,gender,age)  # 编号、姓名、性别、年龄
        self.poli_status = poli_status               # 政治面貌
        self.Title = Title                           # 职称

    def set_number(self): # 设置行政人员编号
        temp_nu = input('请输入编号(4位数):')
        if len(temp_nu) != 4:
            print('编号必须是4位数,请重新录入!')
            return None
        else:
            return temp_nu

    def set_gender(self): # 设置行政人员性别
        temp_ge = input('请输入性别(男或女):')
        if temp_ge != '男' and temp_ge != '女':
            print('性别必须是男或女,请重新录入!')
            return None
        else:
            return temp_ge

    def input(self): # 录入行政人员信息
        print('请输入行政人员的各项信息:')
        temp_nu = self.set_number()
        if temp_nu == None:
            return None
        temp_na = input('请输入姓名:')
        temp_ge = self.set_gender()
        if temp_ge == None:
            return None
        temp_ag = int(input('请输入年龄(整数):'))
        temp_po = input('请输入政治面貌:')
        temp_Ti = input('请输入职称:')
        self.number = temp_nu
        self.name = temp_na
        self.gender = temp_ge
        self.age = temp_ag
        self.poli_status = temp_po
        self.Title = temp_Ti
        return self

    def output(self): # 输出行政人员信息
        print("{0:^12}{1:^12}{2:^12}{3:^12}{4:^12}{5:^12}".format(self.number,self.name,self.gender,self.age,self.poli_status,self.Title))

class AdmiManager:                                                                                          # 行政人员管理类

    def __init__(self):
        self.listx = []

    def check_number(self,nu): # 检查行政人员编号是否存在重复
        for i in range(len(self.listx)):
            if nu == self.listx[i].number:
                return True
        else:
            return False

    def add(self): # 添加行政人员信息
        print('-' * 40,'添加行政人员信息','-' * 40,sep='')
        AS = AdminiStaff()
        AS = AS.input()
        if AS != None:
            if self.check_number(AS.number):
                print('编号重复,添加失败!')
            else:
                self.listx.append(AS)
                print('添加行政人员信息成功!')
        else:
            print('添加行政人员信息失败!')

    def show(self): # 显示行政人员信息
        print('-' * 40,'显示行政人员信息','-' * 40,sep='')
        print("{0:^12}{1:^12}{2:^12}{3:^12}{4:^12}{5:^12}".format('编号','姓名','性别','年龄','政治面貌','职称'))
        for a in self.listx:
            a.output()

    def min_search(self): # 查询行政人员信息
        print('-' * 20, '查询行政人员信息', '-' * 20, sep='')
        print('请选择查询方式:')
        print('1、根据编号查询')
        print('2、根据姓名查询')
        choice = input()
        if choice == '1':
            temp_nu = input('请输入编号(4位数):')
            for i in range(len(self.listx)):
                if temp_nu == self.listx[i].number:
                    return i
            else:
                return None
        elif choice == '2':
            temp_na = input('请输入姓名:')
            for i in range(len(self.listx)):
                if temp_na == self.listx[i].name:
                    return i
            else:
                return None

    def main_search(self): # 查询行政人员信息
        inde = self.min_search()
        if inde != None:
            print('查询成功,信息如下:')
            print("{0:^12}{1:^12}{2:^12}{3:^12}{4:^12}{5:^12}".format('编号','姓名','性别','年龄','政治面貌','职称'))
            self.listx[inde].output()
            return inde
        else:
            print('查询失败!')
            return None

    def edit(self): # 编辑行政人员信息
        print('-' * 40, '编辑行政人员信息', '-' * 40, sep='')
        print('请先查询需要编辑的行政人员信息!')
        inde = self.main_search()
        if inde != None:
            print('请选择需要编辑的信息:')
            choice = input('1、编号  2、姓名  3、性别  4、年龄  5、政治面貌  6、职称')
            if choice == '1':
                temp_nu = self.listx[inde].set_number()
                if temp_nu != None and not self.check_number(temp_nu):
                    self.listx[inde].number = temp_nu
                    print('编号编辑成功!')
                else:
                    print('编号编辑失败!')
            elif choice == '2':
                temp_na = input('请输入姓名:')
                self.listx[inde].name = temp_na
                print('姓名编辑成功!')
            elif choice == '3':
                temp_ge = self.listx[inde].set_gender()
                if temp_ge != None:
                    self.listx[inde].gender = temp_ge
                    print('性别编辑成功!')
                else:
                    print('性别编辑失败!')
            elif choice == '4':
                temp_ag = int(input('请输入年龄(整数):'))
                self.listx[inde].age = temp_ag
                print('年龄编辑成功!')
            elif choice == '5':
                temp_po = input('请输入政治面貌:')
                self.listx[inde].poli_status = temp_po
                print('政治面貌编辑成功!')
            elif choice == '6':
                temp_Ti = input('请输入职称:')
                self.listx[inde].Title = temp_Ti
                print('职称编辑成功!')
            else:
                print('选择有误,编辑失败!')

    def dele(self): # 删除行政人员信息
        print('-' * 40, '删除行政人员信息', '-' * 40, sep='')
        print('请先查询需要删除的行政人员信息!')
        inde = self.main_search()
        if inde != None:
            del self.listx[inde]
            print('删除行政人员信息成功!')
        else:
            print('删除行政人员信息失败!')

    def statis(self): # 统计行政人员信息
        print('-' * 40, '统计行政人员信息', '-' * 40, sep='')
        print('请选择统计方式:')
        print('1、按年龄统计')
        print('2、统计总人数以及男性和女性人数')
        choice = input()
        if choice == '1':
            l = int(input('请输入年龄的下限(包含下限):'))
            u = int(input('请输入年龄的上限(包含上限):'))
            count = 0
            print('统计结果如下:')
            print("{0:^12}{1:^12}{2:^12}{3:^12}{4:^12}{5:^12}".format('编号','姓名','性别','年龄','政治面貌','职称'))
            for i in range(len(self.listx)):
                if l <= self.listx[i].age <= u:
                    count += 1
                    self.listx[i].output()
            print('该年龄段的人数共计有{0}人'.format(count))
        elif choice == '2':
            total = len(self.listx)
            count_female = 0
            for i in range(len(self.listx)):
                if self.listx[i].gender == '女':
                    count_female += 1
            print('统计结果如下:')
            print('行政人员的总人数为{0}人'.format(total))
            print('其中,女性{0}人,男性{1}人'.format(count_female,total-count_female))
        else:
            print('选择错误,请重新选择!')

    def save(self): # 保存行政人员信息
        print('-' * 40, '保存行政人员信息', '-' * 40, sep='')
        with open('AdminiStaffinfo.txt', 'w', encoding='utf-8') as fp:
            for s in self.listx:
                s = [s.number,s.name,s.gender,str(s.age),s.poli_status,s.Title]
                s = ','.join(s) + '\n'
                fp.write(s)
        print('保存行政人员信息成功!')

    def init(self): # 读取行政人员信息
        print('-' * 40, '读取行政人员信息', '-' * 40, sep='')
        try:
            with open('AdminiStaffinfo.txt', 'r', encoding='utf-8') as fp:
                self.listx = []
                for line in fp.readlines():
                    s = line.strip().split(',')
                    self.listx.append(AdminiStaff(s[0],s[1],s[2],int(s[3]),s[4],s[5]))
                print('读取行政人员信息成功!')
        except FileNotFoundError:
            print('文件不存在!')

def admi_mune(am):                                                                                       # 行政人员类二级菜单
    am.init()
    print('行政人员信息管理子系统自动初始化完成!')
    choice = '99'
    while choice != '0':
        print('*' * 40, '行政人员信息管理子系统', '*' * 40, sep='')
        print('*温馨提示:当您使用添加或编辑或删除功能后,记得使用保存功能,以确保相关操作被子系统记录!')
        print('*请输入您的选择:')
        print('*1:添加')
        print('*2:查询')
        print('*3:显示')
        print('*4:编辑')
        print('*5:删除')
        print('*6:统计')
        print('*7:保存')
        print('*0:退出子系统')
        print('*' * 100)
        choice = input()
        if choice == '1':
            am.add()
        elif choice == '2':
            am.main_search()
        elif choice == '3':
            am.show()
        elif choice == '4':
            am.edit()
        elif choice == '5':
            am.dele()
        elif choice == '6':
            am.statis()
        elif choice == '7':
            am.save()
        elif choice == '0':
            break
        else:
            print('选择错误,请重新选择!')



# 课设_TeachAdminiStaff  20221127
class TeachAdminiStaff(Staff):                                                                            # 教师兼行政人员类

    def __init__(self,number='-1',name='',gender='',age=-1,department='',major='',Title='',poli_status=''):
        Staff.__init__(self,number,name,gender,age)  # 编号、姓名、性别、年龄
        self.department = department                 # 系部
        self.major = major                           # 专业
        self.Title = Title                           # 职称
        self.poli_status = poli_status               # 政治面貌

    def set_number(self): # 设置教师兼行政人员编号
        temp_nu = input('请输入编号(4位数):')
        if len(temp_nu) != 4:
            print('编号必须是4位数,请重新录入!')
            return None
        else:
            return temp_nu

    def set_gender(self): # 设置教师兼行政人员性别
        temp_ge = input('请输入性别(男或女):')
        if temp_ge != '男' and temp_ge != '女':
            print('性别必须是男或女,请重新录入!')
            return None
        else:
            return temp_ge

    def input(self): # 录入教师兼行政人员信息
        print('请输入教师兼行政人员的各项信息:')
        temp_nu = self.set_number()
        if temp_nu == None:
            return None
        temp_na = input('请输入姓名:')
        temp_ge = self.set_gender()
        if temp_ge == None:
            return None
        temp_ag = int(input('请输入年龄(整数):'))
        temp_de = input('请输入系部:')
        temp_ma = input('请输入专业:')
        temp_Ti = input('请输入职称:')
        temp_po = input('请输入政治面貌:')
        self.number = temp_nu
        self.name = temp_na
        self.gender = temp_ge
        self.age = temp_ag
        self.department = temp_de
        self.major = temp_ma
        self.Title = temp_Ti
        self.poli_status = temp_po
        return self

    def output(self): # 输出教师兼行政人员信息
        print("{0:^12}{1:^12}{2:^12}{3:^12}{4:^12}{5:^12}{6:^12}{7:^12}".format(self.number,self.name,self.gender,self.age,self.department,self.major,self.Title,self.poli_status))

class TeachAdmiManager:                                                                                # 教师兼行政人员管理类

    def __init__(self):
        self.listx = []

    def check_number(self,nu): # 检查教师兼行政人员编号是否存在重复
        for i in range(len(self.listx)):
            if nu == self.listx[i].number:
                return True
        else:
            return False

    def add(self): # 添加教师兼行政人员信息
        print('-' * 40,'添加教师兼行政人员信息','-' * 40,sep='')
        TAS = TeachAdminiStaff()
        TAS = TAS.input()
        if TAS != None:
            if self.check_number(TAS.number):
                print('编号重复,添加失败!')
            else:
                self.listx.append(TAS)
                print('添加教师兼行政人员信息成功!')
        else:
            print('添加教师兼行政人员信息失败!')

    def show(self): # 显示教师兼行政人员信息
        print('-' * 40,'显示教师兼行政人员信息','-' * 40,sep='')
        print("{0:^12}{1:^12}{2:^12}{3:^12}{4:^12}{5:^12}{6:^12}{7:^12}".format('编号','姓名','性别','年龄','系部','专业','职称','政治面貌'))
        for tas in self.listx:
            tas.output()

    def min_search(self): # 查询教师兼行政人员信息
        print('-' * 20, '查询教师兼行政人员信息', '-' * 20, sep='')
        print('请选择查询方式:')
        print('1、根据编号查询')
        print('2、根据姓名查询')
        choice = input()
        if choice == '1':
            temp_nu = input('请输入编号(4位数):')
            for i in range(len(self.listx)):
                if temp_nu == self.listx[i].number:
                    return i
            else:
                return None
        elif choice == '2':
            temp_na = input('请输入姓名:')
            for i in range(len(self.listx)):
                if temp_na == self.listx[i].name:
                    return i
            else:
                return None

    def main_search(self): # 查询教师兼行政人员信息
        inde = self.min_search()
        if inde != None:
            print('查询成功,信息如下:')
            print("{0:^12}{1:^12}{2:^12}{3:^12}{4:^12}{5:^12}{6:^12}{7:^12}".format('编号','姓名','性别','年龄','系部','专业','职称','政治面貌'))
            self.listx[inde].output()
            return inde
        else:
            print('查询失败!')
            return None

    def edit(self): # 编辑教师兼行政人员信息
        print('-' * 40, '编辑教师兼行政人员信息', '-' * 40, sep='')
        print('请先查询需要编辑的教师兼行政人员信息!')
        inde = self.main_search()
        if inde != None:
            print('请选择需要编辑的信息:')
            choice = input('1、编号  2、姓名  3、性别  4、年龄  5、系部  6、专业  7、职称  8、政治面貌')
            if choice == '1':
                temp_nu = self.listx[inde].set_number()
                if temp_nu != None and not self.check_number(temp_nu):
                    self.listx[inde].number = temp_nu
                    print('编号编辑成功!')
                else:
                    print('编号编辑失败!')
            elif choice == '2':
                temp_na = input('请输入姓名:')
                self.listx[inde].name = temp_na
                print('姓名编辑成功!')
            elif choice == '3':
                temp_ge = self.listx[inde].set_gender()
                if temp_ge != None:
                    self.listx[inde].gender = temp_ge
                    print('性别编辑成功!')
                else:
                    print('性别编辑失败!')
            elif choice == '4':
                temp_ag = int(input('请输入年龄(整数):'))
                self.listx[inde].age = temp_ag
                print('年龄编辑成功!')
            elif choice == '5':
                temp_de = input('请输入系部:')
                self.listx[inde].department = temp_de
                print('系部编辑成功!')
            elif choice == '6':
                temp_ma = input('请输入专业:')
                self.listx[inde].major = temp_ma
                print('专业编辑成功!')
            elif choice == '7':
                temp_Ti = input('请输入职称:')
                self.listx[inde].Title = temp_Ti
                print('职称编辑成功!')
            elif choice == '8':
                temp_po = input('请输入政治面貌:')
                self.listx[inde].poli_status = temp_po
                print('政治面貌编辑成功!')
            else:
                print('选择有误,编辑失败!')

    def dele(self): # 删除教师兼行政人员信息
        print('-' * 40, '删除教师兼行政人员信息', '-' * 40, sep='')
        print('请先查询需要删除的教师兼行政人员信息!')
        inde = self.main_search()
        if inde != None:
            del self.listx[inde]
            print('删除教师兼行政人员信息成功!')
        else:
            print('删除教师兼行政人员信息失败!')

    def statis(self): # 统计教师兼行政人员信息
        print('-' * 40, '统计教师兼行政人员信息', '-' * 40, sep='')
        print('请选择统计方式:')
        print('1、按年龄统计')
        print('2、统计总人数以及男性和女性人数')
        choice = input()
        if choice == '1':
            l = int(input('请输入年龄的下限(包含下限):'))
            u = int(input('请输入年龄的上限(包含上限):'))
            count = 0
            print('统计结果如下:')
            print("{0:^12}{1:^12}{2:^12}{3:^12}{4:^12}{5:^12}{6:^12}{7:^12}".format('编号','姓名','性别','年龄','系部','专业','职称','政治面貌'))
            for i in range(len(self.listx)):
                if l <= self.listx[i].age <= u:
                    count += 1
                    self.listx[i].output()
            print('该年龄段的人数共计有{0}人'.format(count))
        elif choice == '2':
            total = len(self.listx)
            count_female = 0
            for i in range(len(self.listx)):
                if self.listx[i].gender == '女':
                    count_female += 1
            print('统计结果如下:')
            print('教师兼行政人员的总人数为{0}人'.format(total))
            print('其中,女性{0}人,男性{1}人'.format(count_female,total-count_female))
        else:
            print('选择错误,请重新选择!')

    def save(self): # 保存教师兼行政人员信息
        print('-' * 40, '保存教师兼行政人员信息', '-' * 40, sep='')
        with open('TeachAdminiStaffinfo.txt', 'w', encoding='utf-8') as fp:
            for s in self.listx:
                s = [s.number,s.name,s.gender,str(s.age),s.department,s.major,s.Title,s.poli_status]
                s = ','.join(s) + '\n'
                fp.write(s)
        print('保存教师兼行政人员信息成功!')

    def init(self): # 读取教师兼行政人员信息
        print('-' * 40, '读取教师兼行政人员信息', '-' * 40, sep='')
        try:
            with open('TeachAdminiStaffinfo.txt', 'r', encoding='utf-8') as fp:
                self.listx = []
                for line in fp.readlines():
                    s = line.strip().split(',')
                    self.listx.append(TeachAdminiStaff(s[0],s[1],s[2],int(s[3]),s[4],s[5],s[6],s[7]))
                print('读取教师兼行政人员信息成功!')
        except FileNotFoundError:
            print('文件不存在!')

def teach_admi_mune(tam):                                                                           # 教师兼行政人员类二级菜单
    tam.init()
    print('教师兼行政人员信息管理子系统自动初始化完成!')
    choice = '99'
    while choice != '0':
        print('*' * 40, '教师兼行政人员信息管理子系统', '*' * 40, sep='')
        print('*温馨提示:当您使用添加或编辑或删除功能后,记得使用保存功能,以确保相关操作被子系统记录!')
        print('*请输入您的选择:')
        print('*1:添加')
        print('*2:查询')
        print('*3:显示')
        print('*4:编辑')
        print('*5:删除')
        print('*6:统计')
        print('*7:保存')
        print('*0:退出子系统')
        print('*' * 100)
        choice = input()
        if choice == '1':
            tam.add()
        elif choice == '2':
            tam.main_search()
        elif choice == '3':
            tam.show()
        elif choice == '4':
            tam.edit()
        elif choice == '5':
            tam.dele()
        elif choice == '6':
            tam.statis()
        elif choice == '7':
            tam.save()
        elif choice == '0':
            break
        else:
            print('选择错误,请重新选择!')



# 一级菜单函数
def menu():                                                                                                  # 一级菜单函数
    print('*' * 40, '高校人员管理系统', '*' * 40, sep='')
    print('*请输入您的选择:')
    print('*1:教师信息管理')
    print('*2:实验员信息管理')
    print('*3:行政人员信息管理')
    print('*4:教师兼行政人员信息管理')
    print('*0:退出系统')
    print('*' * 100)

# 主函数
def main():                                                                                                       # 主函数
    tm = TeaManager()
    ltm = LabTechManager()
    am = AdmiManager()
    tam = TeachAdmiManager()
    while True:
        menu()
        choice = input()
        if choice == '1':
            tea_mune(tm)
        elif choice == '2':
            lab_tech_mune(ltm)
        elif choice == '3':
            admi_mune(am)
        elif choice == '4':
            teach_admi_mune(tam)
        elif choice == '0':
            break
        else:
            print('选择错误,请重新选择!')

main()
  • 3
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值