Python 学生信息管理系统------文章中源码100%真实有效-----如何将类、初始化属性、模块、循环判断、静态方法等一系列知识点结合起来做一个项目

简介: Python 学生信息管理系统------文章中源码100%真实有效-----如何将类、初始化属性、模块、循环判断、静态方法等一系列知识点结合起来做一个项目

本文适合需要用python完成课程大作业、python爱好者、python路上的学习者、初学python者、需要将python知识点串在一起的人、上进的人。

**

以下代码看懂我认为python基础就没什么问题了

manageSystem.py

# TODO                鸟欲高飞,必先展翅
# TODO                 向前的人 :Jhon
from Crawler.XM.student import *
class StudentMange(object):
    def __init__(self):
        #列表方式存储学生信息
        self.Student_list=[]
    # TODO  程序的入口函数
    def run(self):
        # 1、加载文件里面的学员数据
        self.load_student()
        while True:
            #2、显示功能菜单
            self.show_menu()
            # 3、输入目标功能序号
            menu_num=int(input("请输入需要的功能需序号:"))
            #4、根据用户输入的需要执行不同的功能
            if menu_num==1:
                # 添加学员
                self.add_Student()
            elif menu_num==2:
                self.del_Student()
            elif menu_num==3:
                self.modify_student()
            elif menu_num==4:
                self.search_student()
            elif menu_num==5:
                self.show_student()
            elif menu_num==6:
                self.save_student()
            elif menu_num==7:
                break
    #  系统菜单功能
    @staticmethod    #类、对象都可以调用
    # 2.1、显示功能菜单-------打印序号的功能对应的关系
    def show_menu():
        print("请选择如下功能")
        print("1、添加学员")
        print("2、删除学员")
        print("3、修改学员信息")
        print("4、查询学员信息")
        print("5、显示所有的学院信息")
        print("6、保存学员信息")
        print("7、退出系统")
    # 2.2、添加学员
    def add_Student(self):
        # 1、学员输入对应的姓名、性别、手机号
        name=input("请输入您的姓名:")
        gender=input("请输入您的性别:")
        tell=input("请输入您的手机号:")
        # 2、创建学员的对象------类  Student   在Studnet 文件里面,先导入Student模块再创建对象
        students=Student(name,gender,tell)
        # 3、对象添加到学员列表中
        self.Student_list.append(students)
        print(self.Student_list)
        print(students)
    # 2.3、删除新学员信息
    def del_Student(self):
        #1、用户输入目标学员姓名
        del_name=input("亲输入需要删除的学员姓名:")
        #2、遍历学员的列表,用户输入的学员存在则删除学员对象,否则提示不存在
        for i in self.Student_list:
            if del_name==i.name:
                self.Student_list.remove(i)
                break
            else:
                #循环正常结束,循环结束没有删除任何一个人,说明用户输入的目标学员不存在
                print("查无此人")
        print(self.Student_list)
    # 2.4、修改学员信息
    def modify_student(self):
        # 1、输入目标学员姓名
        modify_name=input("请输入要修改的学员性别:")
        #2、遍历列表数据,如果学员存在修改姓名、性别、手机号,否则提示学员不存在
        for i in self.Student_list:
            if modify_name==i.name:
                i.name=input("姓名:")
                i.gender=input("性别:")
                i.tell=input("号码:")
                print(f"修改学员的信息成功,姓名{i.name},性别{i.gender},号码{i.tell}")
                break
        else:
            print("查无此人")
    #2.5、查询学员信息
    def search_student(self):
        # 1、用户输入目标学员姓名
        search_name=input("要搜索的学员姓名")
        # 2、遍历列表,有就打印学员信息,否则提示学员不存在
        for i in self.Student_list:
            if search_name==i.name:
                print("姓名是{i.name},性别是{i.gender},号码是{i.tell}")
                print(f"姓名是{i.name},性别是{i.gender},号码是{i.tell}")
                break
        else:
            print("查无此人")
    # 2.6 、显示所有的学员信息
    def show_student(self):
        # 1、打印我们的表头
        print("姓名:\t性别:\t手机号;")
        # 2、打印学员数据
        for i in self.Student_list:
            print(f"{i.name}\t{i.gender}\t{i.tell}")
    # 2.7 、保存学员信息
    def save_student(self):
        # 1、打开文件
        f=open("student.data","w")
        # 2.1、文件写入数据   学员对象转换为字典
        new_list=[i.__dict__ for i in self.Student_list]
        # 2.2、文件写入字符串数据
        f.write(str(new_list))
        # 3、关闭文件
        f.close()
    # 2.8 加载学员信息
    def load_student(self):
        # 1、打开文件,尝试r打开  有异常就用w
        try:
            f=open("student.data","r")
        except:
            f=open("student.data","w")
        else:
            # 2、读取数据   读取的数据是字符串还原列表类型[{}],转换成学员对象[]
            data=f.read()  #必然是个字符串
            new_list=eval(data)  #转换成字典数据
            self.Student_list=[Student(i["name"],i["gender"],i["tell"]) for i in new_list]
        finally:
            # 3、关闭文件
            f.close()
if __name__ == "__main__":
    Student_manage=StudentMange()
    StudentMange().run()

上面的manageSystem.py是此程序的主程序,包含了静态方法、闭包、函数封装、输入输出判断、初始化属性、调用模块等等。。。。。。

student.py

# TODO                鸟欲高飞,必先展翅
# TODO                 向前的人 :Jhon
class Student(object):
    def __init__(self,name,gender,tell):
        self.name=name
        self.gender=gender
        self.tell=tell
    def __str__(self):
        return f"{self.name},{self.gender},{self.tell}"

student.py主要是初始化学生的初始化属性,包括名字(name)、性别(gender)、电话号码(tell)。方便上面manageSystem.py调用,使得代码更加简洁。


本文上传纯属是为了带大家分享,记录代码,方便以后查看微信图片_20220927124034.png


以上截图是文件所属目录,目录不对调用的时候是会报错的,所以要注意文件目录。

以上代码看懂我认为python基础就没什么问题了


目录
相关文章
|
28天前
|
测试技术 Python
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
106 31
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
|
2月前
|
Python
Python Internet 模块
Python Internet 模块。
133 74
|
2月前
|
Python
课程设计项目之基于Python实现围棋游戏代码
游戏进去默认为九路玩法,当然也可以选择十三路或是十九路玩法 使用pycharam打开项目,pip安装模块并引用,然后运行即可, 代码每行都有详细的注释,可以做课程设计或者毕业设计项目参考
78 33
|
3月前
|
算法 数据安全/隐私保护 开发者
马特赛特旋转算法:Python的随机模块背后的力量
马特赛特旋转算法是Python `random`模块的核心,由松本真和西村拓士于1997年提出。它基于线性反馈移位寄存器,具有超长周期和高维均匀性,适用于模拟、密码学等领域。Python中通过设置种子值初始化状态数组,经状态更新和输出提取生成随机数,代码简单高效。
141 63
|
3月前
|
持续交付 Python
如何在Python中自动解决模块和包的依赖冲突?
完全自动解决所有依赖冲突可能并不总是可行,特别是在复杂的项目中。有时候仍然需要人工干预和判断。自动解决的方法主要是提供辅助和便捷,但不能完全替代人工的分析和决策😉。
|
1月前
|
Python
[oeasy]python057_如何删除print函数_dunder_builtins_系统内建模块
本文介绍了如何删除Python中的`print`函数,并探讨了系统内建模块`__builtins__`的作用。主要内容包括: 1. **回忆上次内容**:上次提到使用下划线避免命名冲突。 2. **双下划线变量**:解释了双下划线(如`__name__`、`__doc__`、`__builtins__`)是系统定义的标识符,具有特殊含义。
32 3
|
9月前
|
Python 人工智能 数据可视化
Python模块与包(八)
Python模块与包(八)
69 0
Python模块与包(八)
|
3月前
|
开发者 Python
如何在Python中管理模块和包的依赖关系?
在实际开发中,通常会结合多种方法来管理模块和包的依赖关系,以确保项目的顺利进行和可维护性。同时,要及时更新和解决依赖冲突等问题,以保证代码的稳定性和可靠性
158 62
|
3月前
|
数据可视化 Python
如何在Python中解决模块和包的依赖冲突?
解决模块和包的依赖冲突需要综合运用多种方法,并且需要团队成员的共同努力和协作。通过合理的管理和解决冲突,可以提高项目的稳定性和可扩展性
|
3月前
|
Python
Python的模块和包
总之,模块和包是 Python 编程中非常重要的概念,掌握它们可以帮助我们更好地组织和管理代码,提高开发效率和代码质量
133 61

热门文章

最新文章

推荐镜像

更多