python:学生管理系统程序(可运行)

简介: 历经几天终于完成了自己写的第一个程序,在这个过程中可谓艰辛啊没写注释,所以大家自己领悟吧,有需要的朋友别抄袭哦!

历经几天终于完成了自己写的第一个程序,在这个过程中可谓艰辛啊

没写注释,所以大家自己领悟吧,有需要的朋友别抄袭哦!

class SqList:
    def __init__(self):
        self.init_capacity = 1
        self.capacity = self.init_capacity
        self.data = [None] * self.capacity
        self.size = 0
    def student(self, number, name, course, grade):
        self.number = number
        self.name = name
        self.course = course
        self.grade = grade
        return f'学号为{self.number},名字为{self.name},课程为{self.course},成绩为{self.grade}'
    def resize(self, new_capacity):
        assert new_capacity >= 0
        old_data = self.data
        self.data = [None] * new_capacity
        self.capacity = new_capacity
        for i in range(self.size):
            self.data[i] = old_data[i]
    def add_to(self, data):
        if self.size == self.capacity:
            self.resize(2 * self.size)
        self.data[self.size] = data
        self.size += 1
    def add_stu(self):
        if self.size == self.capacity:
            self.resize(2 * self.size)
        number_stu, name_stu, course_stu, grade_stu = input("输入学号,姓名,科目,成绩:(以空格为间)").split(" ")
        self.add_to(number_stu)
        self.add_to(name_stu)
        self.add_to(course_stu)
        self.add_to(grade_stu)
        print("添加成功")
    def all_stu(self):
        if self.data == [None]:
            print("暂时无学生的信息")
        else:
            stu = 0
            for i in range(self.size // 4):
                print(self.student(self.data[stu], self.data[stu + 1], self.data[stu + 2], self.data[stu + 3]))
                stu += 4
            # print(self.data)
            # print(self.size)
    def pop_number(self, op):
        num = 0
        while num < self.size and self.data[num] != op:
            num += 1
        for j in range(num + 4, self.size):
            self.data[j - 4] = self.data[j]
        self.size -= 4
        if self.capacity > self.init_capacity and self.size <= self.capacity / 4:
            self.resize(self.capacity // 2)
    def pop_course(self,pop):
        num = 0
        while num < self.size and self.data[num] != pop:
            num += 1
        for j in range(num + 4, self.size):
            self.data[j - 4] = self.data[j]
        self.size -= 4
    def delete_stu(self):
        select=int(input("请选择删除方式(1.学号删除,2.课程删除):"))
        if select==1:
            id_stu = str(input("输入需要删除的学生的学号:"))
            if id_stu in self.data:
                self.pop_number(id_stu)
            else:
                print("无此学生信息")
        elif select==2:
            course_in=str(input("输入要删除的学生的对应课程:"))
            if course_in  in self.data:
                self.pop_course(course_in)
            else:
                print("无此课程")
        else:
            print("请输入正确指令")
    def sort_number(self):
        for i in range(self.size // 4):
            exchange = False
            for j in range(self.size - 4,0, -4):
                if int(self.data[j]) > int(self.data[j - 4]):
                    number, name, course, grade = self.data[j], self.data[j - 1], self.data[j - 2], self.data[j - 3]
                    self.data[j], self.data[j - 1], self.data[j - 2], self.data[j - 3] = self.data[j - 4], self.data[j - 5], self.data[j - 6], self.data[j - 7]
                    self.data[j - 4], self.data[j - 5], self.data[j - 6], self.data[j - 7] = number, name, course, grade
                    exchange = True
            if exchange==False:return
    def sort_grade(self):
        for i in range(self.size // 4):
            exchange = False
            for j in range(self.size - 4,4,-4):
                if int(self.data[j]) < int(self.data[j - 4]):
                    number, name, course, grade = self.data[j], self.data[j - 1], self.data[j - 2], self.data[j - 3]
                    self.data[j], self.data[j -1], self.data[j - 2], self.data[j - 3] = self.data[j - 4], self.data[
                        j - 5], self.data[j - 6], self.data[j - 7]
                    self.data[j - 4], self.data[j - 5], self.data[j - 6], self.data[j - 7] = number, name, course, grade
            if exchange == False: return
        print(self.data)
    def menu_stu(self):
        try:
            while True:
                print('1.显示学生记录\n2.添加一个学生信息\n3.输入学号或课程删除学生记录\n4.按学号递减排序输出学生记录\n5.递减查看学生成绩\n6.退出系统\n')
                select = int(input("输入对应功能数字:"))
                if select == 1:
                    self.all_stu()
                if select == 2:
                    self.add_stu()
                if select == 3:
                    self.delete_stu()
                if select == 4:
                    self.sort_number()
                if select == 5:
                    self.sort_grade()
                if select == 6:
                    print("欢迎下一次使用")
                    break
        except ValueError:
            print("输入有效内容,please!")
use = SqList()
use.menu_stu()
相关文章
|
1月前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的眼疾识别系统实现~人工智能+卷积网络算法
眼疾识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了4种常见的眼疾图像数据集(白内障、糖尿病性视网膜病变、青光眼和正常眼睛) 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Django框架搭建了一个Web网页平台可视化操作界面,实现用户上传一张眼疾图片识别其名称。
130 5
基于Python深度学习的眼疾识别系统实现~人工智能+卷积网络算法
|
2月前
|
机器学习/深度学习 人工智能 算法
猫狗宠物识别系统Python+TensorFlow+人工智能+深度学习+卷积网络算法
宠物识别系统使用Python和TensorFlow搭建卷积神经网络,基于37种常见猫狗数据集训练高精度模型,并保存为h5格式。通过Django框架搭建Web平台,用户上传宠物图片即可识别其名称,提供便捷的宠物识别服务。
350 55
|
1月前
|
安全 前端开发 数据库
Python 语言结合 Flask 框架来实现一个基础的代购商品管理、用户下单等功能的简易系统
这是一个使用 Python 和 Flask 框架实现的简易代购系统示例,涵盖商品管理、用户注册登录、订单创建及查看等功能。通过 SQLAlchemy 进行数据库操作,支持添加商品、展示详情、库存管理等。用户可注册登录并下单,系统会检查库存并记录订单。此代码仅为参考,实际应用需进一步完善,如增强安全性、集成支付接口、优化界面等。
|
5天前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【蘑菇识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
蘑菇识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了9种常见的蘑菇种类数据集【"香菇(Agaricus)", "毒鹅膏菌(Amanita)", "牛肝菌(Boletus)", "网状菌(Cortinarius)", "毒镰孢(Entoloma)", "湿孢菌(Hygrocybe)", "乳菇(Lactarius)", "红菇(Russula)", "松茸(Suillus)"】 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Django框架搭建了一个Web网页平台可视化操作界面,
42 11
基于Python深度学习的【蘑菇识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能
|
2月前
|
存储 缓存 监控
局域网屏幕监控系统中的Python数据结构与算法实现
局域网屏幕监控系统用于实时捕获和监控局域网内多台设备的屏幕内容。本文介绍了一种基于Python双端队列(Deque)实现的滑动窗口数据缓存机制,以处理连续的屏幕帧数据流。通过固定长度的窗口,高效增删数据,确保低延迟显示和存储。该算法适用于数据压缩、异常检测等场景,保证系统在高负载下稳定运行。 本文转载自:https://www.vipshare.com
132 66
|
1月前
|
存储 NoSQL 数据库连接
在Python程序中实现LevelDB的海量key的分批次扫描
通过本文的步骤,您可以在Python程序中实现对LevelDB海量key的分批次扫描。这样不仅能够有效地管理大规模数据,还可以避免一次性加载过多数据到内存中,提高程序的性能和稳定性。希望这篇指南能为您的开发工作提供实用的帮助。
74 28
|
1月前
|
机器学习/深度学习 算法 前端开发
基于Python深度学习果蔬识别系统实现
本项目基于Python和TensorFlow,使用ResNet卷积神经网络模型,对12种常见果蔬(如土豆、苹果等)的图像数据集进行训练,构建了一个高精度的果蔬识别系统。系统通过Django框架搭建Web端可视化界面,用户可上传图片并自动识别果蔬种类。该项目旨在提高农业生产效率,广泛应用于食品安全、智能农业等领域。CNN凭借其强大的特征提取能力,在图像分类任务中表现出色,为实现高效的自动化果蔬识别提供了技术支持。
基于Python深度学习果蔬识别系统实现
|
1月前
|
Python
[oeasy]python057_如何删除print函数_dunder_builtins_系统内建模块
本文介绍了如何删除Python中的`print`函数,并探讨了系统内建模块`__builtins__`的作用。主要内容包括: 1. **回忆上次内容**:上次提到使用下划线避免命名冲突。 2. **双下划线变量**:解释了双下划线(如`__name__`、`__doc__`、`__builtins__`)是系统定义的标识符,具有特殊含义。
32 3
|
2月前
|
存储 算法 Python
文件管理系统中基于 Python 语言的二叉树查找算法探秘
在数字化时代,文件管理系统至关重要。本文探讨了二叉树查找算法在文件管理中的应用,并通过Python代码展示了其实现过程。二叉树是一种非线性数据结构,每个节点最多有两个子节点。通过文件名的字典序构建和查找二叉树,能高效地管理和检索文件。相较于顺序查找,二叉树查找每次比较可排除一半子树,极大提升了查找效率,尤其适用于海量文件管理。Python代码示例包括定义节点类、插入和查找函数,展示了如何快速定位目标文件。二叉树查找算法为文件管理系统的优化提供了有效途径。
64 5
|
2月前
|
安全 API C语言
Python程序的安全逆向(关于我的OPENAI的APIkey是如何被盗的)
本文介绍了如何使用C语言编写一个简单的文件加解密程序,并讨论了如何为编译后的软件添加图标。此外,文章还探讨了Python的.pyc、.pyd等文件的原理,以及如何生成和使用.pyd文件来增强代码的安全性。通过视频和教程,作者详细讲解了生成.pyd文件的过程,并分享了逆向分析.pyd文件的方法。最后,文章提到可以通过定制Python解释器来进一步保护源代码。
85 6

热门文章

最新文章