当前位置:   article > 正文

python实现学生管理系统_学生管理系统python代码

学生管理系统python代码

一、系统分析

本系统需要实现对学生信息的添加、显示、删除、查找,最后要将学生的信息保存到文件当中,永久化存储。
注:还需要什么功能可以在此基础上扩展

(一)功能模块图

本系统的主要模块如下图所示:
在这里插入图片描述

(二)模块描述

1、新增学生模块
用户先输入要新增的学生个数,然后添加每个学生具体信息,具体信息包括:学号、姓名、性别、班级。在新增学号、性别的时候进行合法检测,每个学生的学号是唯一的,性别必须是男或者在女
2、显示学生模块
将所有的学生信息打印在屏幕上
3、删除学生模块
用户可以根据学号、姓名进行删除,如果有同名的学生,将所有同名的学生打印在屏幕上,让用户输入编号,选择删除哪一个学生
4、查找学生模块
用户可以根据学号、姓名、性别、班级进行查找

(三)流程控制图

本系统的主要流程控制如下图所示:
在这里插入图片描述


二、系统设计实现

(一)主函数

1、主函数中实现程序的整体逻辑控制
2、程序每次开始运行时,先将文件中的数据加载到一个studentsList的全局变量中,studentsList类型是列表,再打印主菜单,用户输入选项选择对应的功能。每当执行完任一种功能后,都会再次返回到主菜单,当选择0的时候,则退出程序,退出程序前需要将本次运行后的数据保存到文件当中

# 主菜单
def mainMenu():
    print('*******************************************')
    print('*****         《学生管理系统》          *****')
    print('*****           1、新增学生            *****')
    print('*****           2、显示学生            *****')
    print('*****           3、删除学生            *****')
    print('*****           4、查找学生            *****')
    print('*****           0、退出程序            *****')
    print('*******************************************')
    choice = input('请输入你的选择:')
    return choice
    
# 主函数
def main():
    load() # 程序每次运行前,先将文件中的数据加载过来
    while True:
        choice = int(mainMenu())  # 打印菜单
        if choice == 1:
            # 新增学生
            insert()
        elif choice == 2:
            # 显示学生
            show()
        elif choice == 3:
            # 删除学生
            delete()
        elif choice == 4:
            # 查找学生
            find()
        elif choice == 0:
            # 退出程序
            save() # 将信息保存到文件当中
            sys.exit() # 使用此方法,需要导入sys模板库
        else:
            print('输入错误,请重新输入!')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36

(二)保存和加载函数

1、保存函数会将学生的信息保存到文件当中,一行对应一个学生的所有信息,学生的具体信息中间用一个水平制表符分开
2、加载函数会将文件中的信息加载到studentsList列表中,具体操作如下:
(1)读取文件的一行,去掉末尾的换行符换行
(2)将读取到的字符串按制表符分割成多个字符串存放到列表中
(3)将列表中的每个字符串放到字典中,再加载到studentsList列表中

# 将数据保存到文件当中
def save():
    with open('record.txt', 'w', encoding = 'utf8') as f: # 打开文件,f为文件对象,encoding是指定编码格式为utf8
        for s in studentsList:
            # 存到文件中的时候,每个信息间隔一个制表符,方便后面取出
            f.write(f"{s['studentId']}\t{s['name']}\t{s['gender']}\t{s['classId']}\n")
            

# 将文件中的数据加载到studentsList列表中
def load():
    # 为了防止文件不存在打开失败保存,可以先检查文件是否存在
    if not os.path.exists('record.txt'):
        return
    # 打开文件读取数据
    with open('record.txt', 'r', encoding = 'utf8') as f:
        for line in f: # 每次读取一行
            # 针对每一行数据,按水平制表符划分,并存入到列表当中
            # 切分前先将每一行数据后面的换行符去掉,strip()此方法可以将字符串首尾的空白符去掉(空白符包括:换行、制表符、空格等)
            line = line.strip()
            alist = line.split('\t') # 按制表符切分字符串,并存入到列表中
            if len(alist) != 4: # 检测数据是否划分正确
                print('文件内容格式错误!')
                return
            student = {
                'studentId': alist[0],
                'name': alist[1],
                'gender': alist[2],
                'classId': alist[3]
            }
            studentsList.append(student)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

(三)新增学生函数

先获取学生的学号、姓名、性别、班级,再将这些信息组合成一个字典类型的元素,最后加入到studentsList列表中

# 新增学生
def insert():
    # 先将学生先添加到studentsList变量当中,当程序结束的时候,再将数据保存到文件当中
    # 注意:input的返回值是字符串类型
    print('[新增学生] 开始!')
    n = int(input('请输入你要新增几个学生的信息:'))
    for i in range(0, n):
        print(f'[正在新增第{i+1}个学生的信息:]')
        while True: # 这里做一个检查,每个学生的学号必须是唯一的
            flagStudentId = 0  # 标记学生学号是否重复,0表示没有重复,1表示重复
            studentId = input('请输入学生学号:')
            for s in studentsList:
                if s['studentId'] == studentId:
                    flagStudentId = 1 # 有重复学号,修改标记
            if flagStudentId == 1:
                print('此学号已存在,请重新输入!')
            else:
                break # 跳出循环
        name = input('请输入学生姓名:')
        while True: # 检查性别是否输出正确
            gender = input('请输入学生性别:')
            if gender not in ('男', '女'):
                print('性别输入错误,请重新输入!')
            else:
                break
        classId = input('请输入学生班级:')
        # 将上面数据放到字典当中,方便管理
        student = {
            'studentId': studentId,
            'name': name,
            'gender': gender,
            'classId': classId
        }
        studentsList.append(student)  # 将学生信息添加到studentsList中
        print(f'第{i+1}个学生的信息新增完毕!')
    print('[新增学生] 结束!')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36

(四)显示函数

# 显示学生(显示所有学生信息)
def show():
    print('[显示学生] 开始!')
    print('学号\t\t 姓名\t\t 性别\t\t 班级')
    for s in studentsList: # 循环打印学生信息
        print(f"{s['studentId']}\t\t {s['name']}\t\t {s['gender']}\t\t {s['classId']}")
    print(f'[显示学生] 结束, 总共显示了{len(studentsList)}个学生信息!')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

(五)删除函数

1、delete( )函数是对删除整体控制,具体删除操作由deleteByIdOrName( )函数实现
2、deleteMenu( )打印菜单让用户选择,如果选择错误,则重新输入
3、如果按姓名删除,遇到同名的学生,将所有同名学生打印到屏幕上,让用户输入编号进行选择删除哪一个学生

# 删除菜单
def deleteMenu():
    print('*******************************************')
    print('*****      《请选择按什么方式删除》       *****')
    print('*****           1、按学号删除           *****')
    print('*****           2、按姓名删除           *****')
    print('*******************************************')
    choice = input('请输入你的选择:')
    return choice
    
# 按学号或者姓名删除学生,参数为1代表按学号删除,参数为2代表按姓名删除
def deleteByIdOrName(value):
    alist = [] # 创建一个列表,存放满足删除条件的学生
    count = 0 # 计数器
    if value == 1: # 按学号删除
        studentId = input('请输入学生学号:')
        for s in studentsList:  # 查找满足条件的学生
            if studentId == s['studentId']:  # 满足条件
                alist.append(s)  # 将s存到alist中
    else: # 按姓名删除
        name = input('请输入学生姓名:')
        for s in studentsList:  # 查找满足条件的学生
            if name == s['name']:  # 满足条件
                alist.append(s)  # 将s存到alist中

    if len(alist) == 1: # 只有一个满足条件的学生,直接删除
        studentsList.remove(alist[0]) # 用remove,通过值来删除
        print('删除成功!')
    elif len(alist) > 1: # 有多个满足条件的学生,请用户选择
        print('编号\t\t学号\t\t 姓名\t\t 性别\t\t 班级')
        for s in alist: # 先将同名的学生打印
            count += 1
            print(f"{count}\t\t{s['studentId']}\t\t {s['name']}\t\t {s['gender']}\t\t {s['classId']}")
        print(f'总共有{count}个姓名为{name}的学生!')
        while True:
            choice = int(input('请输入你要删除的学生编号:'))
            if 1 <= choice <= count:  # 检验输入是否合法
                studentsList.remove(alist[choice-1])  # 通过值来删除
                break
            else:
                print('输入错误,请重新选择!')
        print('删除成功!')
    else:
        print('没有此学生!')

# 删除学生
def delete():
    while True:
        choice = int(deleteMenu())  # 打印删除相关菜单
        if choice == 1:
            # 按学号删除
            deleteByIdOrName(1) # 参数为1,代表按学号删除
            break
        elif choice == 2:
            # 按姓名删除
            deleteByIdOrName(2) # 参数为2,代表按姓名删除
            break
        else:
            print('输入错误,请重新输入!')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59

(六)查找函数

1、findMenu( )打印菜单让用户选择,如果选择错误,则重新输入
2、find( )函数是查找的整体控制,具体查找由函数findSub( )来实现
3、由于查找的核心就是遍历studentsList列表,所以避免重复代码,将核心封装成一个displayInfo( )函数,它可以根据键和值打印满足条件的学生信息,它会被fundSub( )函数调用

# 查找菜单
def findMenu():
    print('*******************************************')
    print('*****       《请选择按什么方式查找》      *****')
    print('*****           1、按学号查找           *****')
    print('*****           2、按姓名查找           *****')
    print('*****           3、按性别查找           *****')
    print('*****           4、按班级查找           *****')
    print('*******************************************')
    choice = input('请输入你的选择:')
    return choice
    
# 打印满足条件的学生信息
# key是字典的键,info是要查找的学生的键对应的值
def displayInfo(key, info):
    flag = 0 # 用于标记是否有满足条件的学生,0表示没有,1表示有
    count = 0 # 统计满足条件的学生个数
    for s in studentsList:
        if s[key] == info:
            flag = 1 # 修改标记
            count += 1
            print(f"{s['studentId']}\t\t {s['name']}\t\t {s['gender']}\t\t {s['classId']}")
    print(f'[查找学生] 结束,总共有{count}个学生满足查找条件!')

# 按学号、姓名、性别、班级查找
def findSub(value):
    count = 0 # 计数器
    if value == 1:
        # 按学号查找
        studentId = input('请输入学生学号:')
        # 将满足条件的学生信息打印出来,第一个参数是字典的键值,第二个参数是要查找的学生姓名
        displayInfo('studentId', studentId)
    elif value == 2:
        # 按姓名查找
        name = input('请输入学生姓名:')
        displayInfo('name', name)
    elif value == 3:
        # 按性别查找
        while True: # 这里做一个性别检查
            gender = input('请输入学生性别:')
            if gender not in ('男', '女'):
                print('输入错误,请重新输入!')
            else:
                break
        displayInfo('gender', gender)
    elif value == 4:
        # 按班级查找
        classId = input('请输入班级:')
        displayInfo('classId', classId)

# 查找学生
def find():
    while True:
        choice = int(findMenu()) # 打印菜单
        if choice == 1:
            # 按学号查找
            findSub(1)
            break
        elif choice == 2:
            # 按姓名查找
            findSub(2)
            break
        elif choice == 3:
            # 按性别查找
            findSub(3)
            break
        elif choice == 4:
            # 按班级查找
            findSub(4)
            break
        else:
            print('输入错误,请重新输入!')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72


三、完整代码

import sys # 导入模板库,使用sys.exit()退出程序
import os.path # 导入模板库,使用os.path.exists('path')查看文件是否存在

studentsList = [] # 创建一个学生列表,存放学生信息,每个元素都是字典类型

# 主菜单
def mainMenu():
    print('*******************************************')
    print('*****         《学生管理系统》          *****')
    print('*****           1、新增学生            *****')
    print('*****           2、显示学生            *****')
    print('*****           3、删除学生            *****')
    print('*****           4、查找学生            *****')
    print('*****           0、退出程序            *****')
    print('*******************************************')
    choice = input('请输入你的选择:')
    return choice


# 删除菜单
def deleteMenu():
    print('*******************************************')
    print('*****      《请选择按什么方式删除》       *****')
    print('*****           1、按学号删除           *****')
    print('*****           2、按姓名删除           *****')
    print('*******************************************')
    choice = input('请输入你的选择:')
    return choice


# 查找菜单
def findMenu():
    print('*******************************************')
    print('*****       《请选择按什么方式查找》      *****')
    print('*****           1、按学号查找           *****')
    print('*****           2、按姓名查找           *****')
    print('*****           3、按性别查找           *****')
    print('*****           4、按班级查找           *****')
    print('*******************************************')
    choice = input('请输入你的选择:')
    return choice
    
    
# 新增学生
def insert():
    # 先将学生先添加到studentsList变量当中,当程序结束的时候,再将数据保存到文件当中
    # 注意:input的返回值是字符串类型
    print('[新增学生] 开始!')
    n = int(input('请输入你要新增几个学生的信息:'))
    for i in range(0, n): # 循环的是0123...,n-1
        print(f'[正在新增第{i+1}个学生的信息:]')
        while True: # 这里做一个检查,每个学生的学号必须是唯一的
            flagStudentId = 0  # 标记学生学号是否重复,0表示没有重复,1表示重复
            studentId = input('请输入学生学号:')
            for s in studentsList:
                if s['studentId'] == studentId:
                    flagStudentId = 1 # 有重复学号,修改标记
            if flagStudentId == 1:
                print('此学号已存在,请重新输入!')
            else:
                break # 跳出循环
        name = input('请输入学生姓名:')
        while True: # 检查性别是否输出正确
            gender = input('请输入学生性别:')
            if gender not in ('男', '女'):
                print('性别输入错误,请重新输入!')
            else:
                break
        classId = input('请输入学生班级:')
        # 将上面数据放到字典当中,方便管理
        student = {
            'studentId': studentId,
            'name': name,
            'gender': gender,
            'classId': classId
        }
        studentsList.append(student)  # 将学生信息添加到studentsList中
        print(f'第{i+1}个学生的信息新增完毕!')
    print('[新增学生] 结束!')


# 显示学生(显示所有学生信息)
def show():
    print('[显示学生] 开始!')
    print('学号\t\t 姓名\t\t 性别\t\t 班级')
    for s in studentsList: # 循环打印学生信息
        print(f"{s['studentId']}\t\t {s['name']}\t\t {s['gender']}\t\t {s['classId']}")
    print(f'[显示学生] 结束, 总共显示了{len(studentsList)}个学生信息!')

# 按学号或者姓名删除学生,参数为1代表按学号删除,参数为2代表按姓名删除
def deleteByIdOrName(value):
    alist = [] # 创建一个列表,存放满足删除条件的学生
    count = 0 # 计数器
    if value == 1: # 按学号删除
        studentId = input('请输入学生学号:')
        for s in studentsList:  # 查找满足条件的学生
            if studentId == s['studentId']:  # 满足条件
                alist.append(s)  # 将s存到alist中
    else: # 按姓名删除
        name = input('请输入学生姓名:')
        for s in studentsList:  # 查找满足条件的学生
            if name == s['name']:  # 满足条件
                alist.append(s)  # 将s存到alist中
    if len(alist) == 1: # 只有一个满足条件的学生,直接删除
        studentsList.remove(alist[0]) # 用remove,通过值来删除
        print('删除成功!')
    elif len(alist) > 1: # 有多个满足条件的学生,请用户选择
        print('编号\t\t学号\t\t 姓名\t\t 性别\t\t 班级')
        for s in alist: # 先将同名的学生打印
            count += 1
            print(f"{count}\t\t{s['studentId']}\t\t {s['name']}\t\t {s['gender']}\t\t {s['classId']}")
        print(f'总共有{count}个姓名为{name}的学生!')
        while True:
            choice = int(input('请输入你要删除的学生编号:'))
            if 1 <= choice <= count:  # 检验输入是否合法
                studentsList.remove(alist[choice-1])  # 通过值来删除
                break
            else:
                print('输入错误,请重新选择!')
        print('删除成功!')
    else:
        print('没有此学生!')


# 删除学生
def delete():
    while True:
        choice = int(deleteMenu())  # 打印删除相关菜单
        if choice == 1:
            # 按学号删除
            deleteByIdOrName(1) # 参数为1,代表按学号删除
            break
        elif choice == 2:
            # 按姓名删除
            deleteByIdOrName(2) # 参数为2,代表按姓名删除
            break
        else:
            print('输入错误,请重新输入!')


# 打印满足条件的学生信息
def displayInfo(key, info):
    flag = 0 # 用于标记是否有满足条件的学生,0表示没有,1表示有
    count = 0 # 统计满足条件的学生个数
    for s in studentsList:
        if s[key] == info:
            flag = 1 # 修改标记
            count += 1
            print(f"{s['studentId']}\t\t {s['name']}\t\t {s['gender']}\t\t {s['classId']}")
    print(f'[查找学生] 结束,总共有{count}个学生满足查找条件!')


# 按学号、姓名、性别、班级查找
def findSub(value):
    count = 0 # 计数器
    if value == 1:
        # 按学号查找
        studentId = input('请输入学生学号:')
        # 将满足条件的学生信息打印出来,第一个参数是字典的键值,第二个参数是要查找的学生姓名
        displayInfo('studentId', studentId)
    elif value == 2:
        # 按姓名查找
        name = input('请输入学生姓名:')
        displayInfo('name', name)
    elif value == 3:
        # 按性别查找
        while True: # 这里做一个性别检查
            gender = input('请输入学生性别:')
            if gender not in ('男', '女'):
                print('输入错误,请重新输入!')
            else:
                break
        displayInfo('gender', gender)
    elif value == 4:
        # 按班级查找
        classId = input('请输入班级:')
        displayInfo('classId', classId)


# 查找学生
def find():
    while True:
        choice = int(findMenu()) # 打印菜单
        if choice == 1:
            # 按学号查找
            findSub(1)
            break
        elif choice == 2:
            # 按姓名查找
            findSub(2)
            break
        elif choice == 3:
            # 按性别查找
            findSub(3)
            break
        elif choice == 4:
            # 按班级查找
            findSub(4)
            break
        else:
            print('输入错误,请重新输入!')


# 将数据保存到文件当中
def save():
    with open('record.txt', 'w', encoding = 'utf8') as f: # 打开文件,f为文件对象,encoding是指定编码格式为utf8
        for s in studentsList:
            # 存到文件中的时候,每个信息间隔一个制表符,方便后面取出
            f.write(f"{s['studentId']}\t{s['name']}\t{s['gender']}\t{s['classId']}\n")


# 将文件中的数据加载到studentsList列表中
def load():
    # 为了防止文件不存在打开失败保存,可以先检查文件是否存在
    if not os.path.exists('record.txt'):
        return
    # 打开文件读取数据
    with open('record.txt', 'r', encoding = 'utf8') as f:
        for line in f: # 每次读取一行
            # 针对每一行数据,按水平制表符划分,并存入到列表当中
            # 切分前先将每一行数据后面的换行符去掉,strip()此方法可以将字符串首尾的空白符去掉(空白符包括:换行、制表符、空格等)
            line = line.strip()
            alist = line.split('\t') # 按制表符切分字符串,并存入到列表中
            if len(alist) != 4: # 检测数据是否划分正确
                print('文件内容格式错误!')
                return
            student = {
                'studentId': alist[0],
                'name': alist[1],
                'gender': alist[2],
                'classId': alist[3]
            }
            studentsList.append(student)


# 主函数,程序的整体逻辑
def main():
    load() # 程序每次运行前,先将文件中的数据加载过来
    while True:
        choice = int(mainMenu())  # 打印菜单
        if choice == 1:
            # 新增学生
            insert()
        elif choice == 2:
            # 显示学生
            show()
        elif choice == 3:
            # 删除学生
            delete()
        elif choice == 4:
            # 查找学生
            find()
        elif choice == 0:
            # 退出程序
            save() # 将信息保存到文件当中
            sys.exit()
        else:
            print('输入错误,请重新输入!')


# 调用主函数
main()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
  • 199
  • 200
  • 201
  • 202
  • 203
  • 204
  • 205
  • 206
  • 207
  • 208
  • 209
  • 210
  • 211
  • 212
  • 213
  • 214
  • 215
  • 216
  • 217
  • 218
  • 219
  • 220
  • 221
  • 222
  • 223
  • 224
  • 225
  • 226
  • 227
  • 228
  • 229
  • 230
  • 231
  • 232
  • 233
  • 234
  • 235
  • 236
  • 237
  • 238
  • 239
  • 240
  • 241
  • 242
  • 243
  • 244
  • 245
  • 246
  • 247
  • 248
  • 249
  • 250
  • 251
  • 252
  • 253
  • 254
  • 255
  • 256
  • 257
  • 258
  • 259
  • 260
  • 261
  • 262
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/170273
推荐阅读
相关标签
  

闽ICP备14008679号