IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python学员管理系统 -> 正文阅读

[Python知识库]Python学员管理系统

一.系统需求

系统要求:

????????张三想要使用Python语言做一个学员管理系统程序,使用面向对象编程思想完成学生信

息管理系统的开发,涉及到的属性有姓名、性别、年龄、手机号、学科A成绩、学科B成绩和总成

绩。张三目前只会添加学生信息和查询某个学生信息,缺少查询全部、保存、删除、修改四个基础

功能,除此之外,张三还有统计总成绩和计算平均分扩展功能。

张三已有的功能:

(1)添加学生信息:

????????输入要添加的学生的姓名、性别、年龄、手机号、学科A成绩、学科B成绩,临时保存到

列表中。

(2)查询学生信息:

????????输入的目标学生姓名,如果学生存在,输出该学员所有信息;如果不存在,返回错误。

(3)加载学员信息:

????????每次进入该系统,自动加载文件保存的数据。

缺少的基础功能:

(1)查询所有学生信息

(2)保存学生信息

(3)删除学生信息

(4)修改学生信息

缺少的扩展功能:

????????统计每个学生的总成绩,计算学科A和学科B的平均分

二.准备程序文件

创建项??录,例如: StudentManagerSystem

程序?件如下:

程序???件: main.py

学员?件: student.py

管理系统?件: managerSystemDemo.py

三.参考代码

main.py

from managerSystem import *  # 导?入managerSystem模块

if __name__ == '__main__':  # 启动学员管理理系统
    student_manager = StudentManager()
    student_manager.run()

student.py

class Student(object):
    def __init__(self, name, gender, tel, age,scores):
        self.name = name
        self.gender = gender
        self.tel = tel
        self.age = age
        self.scores = scores

        self.all_score = ""

    def __str__(self):
        return f'{self.name}, {self.gender}, {self.tel}, {self.age},{self.scores},{self.all_score}'

managerSystemDemo.py?

from student import *  # 导?入student模块


class StudentManager(object):
    def __init__(self):
        self.student_list = []  # 建立一个存储数据用的列表

    def run(self):  # 程序入口函数
        self.load_student()  # 加载学员信息

        while True:
            self.show_menu()  # 显示功能菜单
            menun_num = int(input("请输入您需要的功能序号:"))  # 用户输入功能序号

            # 根据输入的序号,执行不同的功能
            if menun_num == 1:  # 添加学员
                self.add_student()
                self.save_student()
            elif menun_num == 2:  # 查询学员信息
                self.search_student()
            elif menun_num == 3:  # 显示所有学员信息
                self.show_student()
            elif menun_num == 4:  # 保存学员信息
                self.save_student()
            elif menun_num == 5:  # 删除学员
                self.del_student()
                self.save_student()
            elif menun_num == 6:  # 修改学员信息
                self.modify_student()
                self.save_student()
            elif menun_num == 7:  # 统计成绩
                self.data_statistic()
            elif menun_num == 8:  # 退出系统
                break

    # 定义功能函数

    def show_menu(self):  # 显示功能菜单
        print("请选择如下功能------------")
        print("1:添加学员")
        print("2:查询学员信息")
        print("3:显示所有学员")
        print("4:保存学员信息")
        print("5:信息删除学员")
        print("6:修改学员信息")
        print("7:统计成绩")
        print("8:退出系统")

    def add_student(self):  # 添加学员

        # 用户输?姓名、性别、手机号、年龄
        name = input("请输入您的姓名")
        gender = input("请输入您的性别")
        tel = input("请输入您的手机号")
        age = input("请输入您的年龄")

        scores = []
        score1 = input('请输入学科A成绩:')
        score2 = input('请输入学科B成绩:')
        scores.append(score1)
        scores.append(score2)

        student = Student(name, gender, tel, age, scores)  # 创建学员对象
        self.student_list.append(student)  # 将该学员对象添加到列表

        print(self.student_list)  # 打印信息
        print(student)  # 打印信息

    def del_student(self):  # 删除学员
        del_name = input('请输?要删除的学员姓名:')  # 用户输入目标学员姓名

        # 如果用户输入的目标学员存在则删除,否则提示学员不不存在
        for i in self.student_list:  # 遍历学生信息列表
            if i.name == del_name:  # 查找学生是否存在
                self.student_list.remove(i)  # 删除学生信息
                break
        else:
            print("查无此人!")

        print(self.student_list)  # 打印学生列表,验证删除功能

    def modify_student(self):  # 修改学员信息
        modify_name = input('请输?要修改的学员的姓名:')  # 用户输入目标学员姓名

        # 如果用户输入的目标学员存在,则修改信息,否则提示学员不存在
        for i in self.student_list:  # 遍历学生信息列表
            if i.name == modify_name:  # 查找学生是否存在
                # 更改学员信息
                i.name = input('请输?学员姓名:')
                i.gender = input('请输?学员性别:')
                i.tel = input('请输?学员手机号:')
                i.age = input('请输入学员年龄:')

                scores = []
                score1 = input('请输入学科A成绩:')
                score2 = input('请输入学科B成绩:')
                scores.append(score1)
                scores.append(score2)

                print(
                    f'姓名:{i.name}, 性别:{i.gender}, 手机号:{i.tel}, 年龄:{i.age}, 成绩A:{i.scores[0]}, 成绩B:{i.scores[0]}')  # 打印学生信息,验证是否更改成功
                break
        else:
            print('查无此人!')

    def search_student(self):  # 查询学员信息
        search_name = input('请输?要查询的学员的姓名:')  # 用户输入目标学员姓名
        # 如果用户输入的目标学员存在,则打印学员信息,否则提示学员不存在
        for i in self.student_list:  # 遍历学生信息列表
            if i.name == search_name:  # 查找学生是否存在
                print(
                    f'姓名:{i.name}, 性别:{i.gender}, 手机号:{i.tel}, 年龄:{i.age}, 成绩A:{i.scores[0]}, 成绩B:{i.scores[0]}')  # 打印学员信息
                break
        else:
            print('查无此?!')

    def show_student(self):  # 显示所有学员信息
        print('姓名\t性别\t\t手机号\t年龄\t\t学科A成绩\t\t学科B成绩')  # 打印信息名称
        for i in self.student_list:  # 遍历学生信息列表
            print(f'{i.name}\t{i.gender}\t\t{i.tel}\t\t{i.age}\t\t{i.scores[0]}\t\t\t{i.scores[0]}')  # 打印学员信息

    def save_student(self):  # 保存学员信息
        f = open('student.data', 'w', encoding='utf-8')  # 打开文件
        new_list = [i.__dict__ for i in self.student_list]  # 将学员数据转换成列表字典数据
        print(new_list)  # 打印信息
        f.write(str(new_list))  # 转换成字符串,存入文档
        f.close()  # 关闭文件

    def load_student(self):  # 加载学员信息
        # 尝试以"r"模式打开数据文件,文件不存在则提示用户;文件存在(没有异常)则读取数据
        try:
            f = open('student.data', 'r', encoding='utf-8')
        except:
            f = open('student.data', 'w', encoding='utf-8')
        else:
            data = f.read()  # 读取数据
            # 转换数据类型,再转换为字典为对象后存储到学员列表
            new_list = eval(data)
            self.student_list = [Student(i['name'], i['gender'], i['tel'], i['age'], i['scores']) for i in new_list]
        finally:
            f.close()  # 关闭文件

    def data_statistic(self):
        scoresA = 0
        scoresB = 0
        sum = 0
        count = 0
        print('姓名\t\t学科A成绩\t\t学科B成绩\t\t总成绩')  # 打印信息名称
        for i in self.student_list:  # 遍历学生信息列表
            count = count + 1
            scoresA = scoresA + int(i.scores[0])
            scoresB = scoresB + int(i.scores[1])
            sum = int(i.scores[0]) + int(i.scores[1])
            print(f'{i.name}\t\t{i.scores[0]}\t\t{i.scores[1]}\t\t\t{sum}')
        print('学科A平均成绩\t\t学科B平均成绩')  # 打印信息名称
        print(f'{scoresA / count}\t\t\t{scoresB / count}')

?

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-12-25 11:04:55  更:2022-12-25 11:08:51 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/22 18:17:36-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码