首页 > 编程语言 >python--学生管理系统案列

python--学生管理系统案列

时间:2024-10-22 12:22:06浏览次数:7  
标签:__ name stu python 案列 学生 -- print input

1. 编写一个程序,模拟一个简单的学生管理系统。要求用户可以添加学生信息,查看学生列表和每个学生的信息,删除学生信息等操作。使用字典实现,键为学生的姓名,值为一个包含学生信息的字典(包括学号、班级、成绩等)。
****************************** 欢迎使用学生管理系统 ******************************
1. 添加学生 2. 查看学生列表 3. 查看学生信息 4. 删除学生 5. 退出系统
1
请输入学生姓名: zhangsan
请输入学生学号: 10010
请输入学生班级: 3
请输入学生成绩: 99
添加成功!

1. 添加学生 2. 查看学生列表 3. 查看学生信息 4. 删除学生 5. 退出系统
2
zhangsan

1. 添加学生 2. 查看学生列表 3. 查看学生信息 4. 删除学生 5. 退出系统
3
请输入学生姓名: zhangsan
姓名: zhangsan,学号: 10010,班级: 3,成绩: 99

1. 添加学生 2. 查看学生列表 3. 查看学生信息 4. 删除学生 5. 退出系统
3
请输入学生姓名: lisi
学生不存在!

1. 添加学生 2. 查看学生列表 3. 查看学生信息 4. 删除学生 5. 退出系统
4
请输入学生姓名: zhangsan
删除成功!


# 用字典
if __name__ == '__main__':
    print("******************欢迎使用东湖学生管理系统********************")
    initStuDict = {}   # 存放学生信息
    while True:
        print("1. 添加学生    2. 查看学生列表    3. 查看学生信息    4. 删除学生     5. 退出系统")
        num = int(input("请输入您的操作(1-5): "))
        match num:
            case 1:
                name = input("请输入学生姓名: ")
                id = input("请输入学生学号: ")
                class_ = input("请输入学生班级: ")
                score = input("请输入学生成绩: ")
                initStuDict[name] = {"学号": id, "班级": class_, "成绩": score}
                print("添加成功!")

            case 2:
                print("学生列表如下: ")
                for key, value in initStuDict.items():
                    print(key)

            case 3:
                name = input("请输入学生姓名: ")
                if name in initStuDict:
                    print(f"姓名: {name},学号: {initStuDict[name]['学号']},班级: {initStuDict[name]['班级']},成绩: {initStuDict[name]['成绩']}")
                else:
                    print("学生不存在!")

            case 4:
                name = input("请输入学生姓名: ")
                if name in initStuDict:
                    initStuDict.pop(name)
                    print("删除成功!")
                else:
                    print("学生不存在!")

            case 5:
                exit(0)





另一种方法:


class Student:
    def __init__(self, name, sno,clazz, score):
        self.name = name
        self.sno = sno
        self.clazz = clazz
        self.score = score

    def __repr__(self):
        return self.name+","+self.sno+","+self.clazz+","+str(self.score)

if __name__ == '__main__':

    print("******************欢迎使用东湖学生管理系统********************")
    initStuList = [] # 存放学生信息
    while True:

        print("1.添加学生\t2.查看学生列表\t3.查看学生信息\t4.删除学生\t5.退出系统")
        num = input("请输入您的操作(1-5):")
        match num:
            case "1":

                name=input("请输入学生姓名")
                sno=input("请输入学生学号")
                clazz=input("请输入学生班级")
                score=int(input("请输入学生成绩"))

                stu = Student(name,sno,clazz,score)

                initStuList.append(stu)
                print("添加学生信息成功")
            case "2":
                print("学生列表如下:")
                for stu in initStuList:
                    print(stu)
            case "3":
                name = input("请输入您要查找的学生的姓名:")

                stu = None
                for stuItem in initStuList:
                    if stuItem.name == name:
                        stu = stuItem
                        break
                if stu is None:
                    print("该学生不存在")
                else:
                    print(stu)

            case "4":
                name = input("请输入您要删除的学生的姓名:")
                stu = None
                for stuItem in initStuList:
                    if stuItem.name == name:
                        stu = stuItem
                        break
                if stu is None:
                    print("该学生不存在")
                else:
                    initStuList.remove(stu)
                    print("删除成功")
            case "5":
                exit(0)

标签:__,name,stu,python,案列,学生,--,print,input
From: https://blog.csdn.net/m0_56341622/article/details/143148292

相关文章

  • 习题6.3
    习题6.3代码importnumpyasnpimportpandasaspdimportcvxpyascpimportnetworkxasnximportmatplotlib.pyplotaspltplt.rcParams['font.sans-serif']=['TimesNewRoman+SimSun+WFMSansSC']plt.rcParams['mathtext.fontset'......
  • jdk & tomcat 镜像制作
    镜像加速地址https://docker.aityp.com/manage/add下载jdkhttps://repo.huaweicloud.com/java/jdk/8u172-b11/下载镜像dockerpullswr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/centos:7.4.1708jdk的Dockerfile文件FROMswr.cn-north-4.myhuaweicloud.com/ddn-......
  • HCIP OSPF-1 邻居状态机和 DR 选举
    一、实验拓扑二、实验需求及解法通过本次实验,验证OSPF邻居状态机变化过程,以及DR选举过程。1.配置设备IP地址。R1<R1>system-view[R1]sysnameR1[R1]interfaceg0/0/0[R1-GigabitEthernet0/0/0]ipaddress12.1.1.124[R1-GigabitEthernet0/0/0]quitR2<R......
  • 苹果笔记本和微软Surface哪个更适合商务使用
    在商务环境中,选择合适的笔记本电脑对于提高工作效率至关重要。本文对苹果笔记本和微软Surface进行比较分析,探讨哪种更适合商务使用。主要考虑因素包括:1.性能和可靠性;2.操作系统与软件兼容性;3.设计与便携性;4.电池续航力;5.价格与性价比;6.售后服务与支持。通过全面的比较分析,可以帮......
  • C语言使用指针作为函数参数,并利用函数嵌套求输入三个整数,将它们按大到小的顺序输出。(
    输入三个整数,要求从大到小的顺序向他们输出,用函数实现。   本代码使用到了指针和函数嵌套。   调用指针做函数ex,并嵌套调用指针函数exx在函数ex中。(代码在下面哦!)一、关于函数 ex  1. 这个函数接受三个指针参数 int*p1 、 int*p2 和 int*p3 ,分别指......
  • 习题6.4
    习题6.4代码importnumpyasnpimportpandasaspdimportcvxpyascpimportnetworkxasnximportmatplotlib.pyplotaspltplt.rcParams['font.sans-serif']=['TimesNewRoman+SimSun+WFMSansSC']plt.rcParams['mathtext.fontset'......
  • 【JavaEE】【多线程】单例模式
    目录一、设计模式1.1单例模式1.1.1饿汉模式1.1.2懒汉模式1.2线程安全问题1.3懒汉模式线程安全问题的解决方法1.3.1原子性问题解决1.3.2解决效率问题1.3.3解决内存可见性问题和指令重排序问题一、设计模式在讲解案例前,先介绍一个概念设计模式:就是大佬们......
  • 习题6.1
    习题6.1代码importnumpyasnpimportpandasaspdimportcvxpyascpimportnetworkxasnximportmatplotlib.pyplotaspltplt.rcParams['font.sans-serif']=['TimesNewRoman+SimSun+WFMSansSC']plt.rcParams['mathtext.fontset'......
  • 空间配置器allocator
    空间配置器allocator自己定义的vector容器缺点构造容器的时候使用new导致分配内存的同时也调用构造函数,析构容器的时候使用delete将所有的元素进行析构。我们想要的是在使用容器的时候,如果没有元素入栈,就不会进行多余的构造;同时对容器进行析构时,也仅仅析构仅有的几个元素......
  • Nuxt.js 应用中的 build:manifest 事件钩子详解
    title:Nuxt.js应用中的build:manifest事件钩子详解date:2024/10/22updated:2024/10/22author:cmdragonexcerpt:build:manifest是Nuxt.js中的一个生命周期钩子,它在Vite和Webpack构建清单期间被调用。利用这个钩子,开发者可以自定义Nitro渲染在最终HTM......