Python之学生信息管理系统


实现

打印功能菜单、添加学生信息、删除学生信息、修改学生信息、显示学生信息、退出系统,并且需要接收用户的输入,在根据输入内容调用相应函数实现相应功能,模板图如下:


一、基础界面实现

1、主函数

定义主函数main,并通过定义print_menu()函数输打印学生管理系统菜单

#打印功能菜单
def print_menu():
    print('='*30)
    print('学生管理系统')
    print('1.添加学生信息')
    print('2.删除学生信息')
    print('3.修改学生信息')
    print('4.显示所有学生信息')
    print('0.退出系统')
    print('')
 
#定义主函数
def main():
    print_menu()
if __name__ == "__main__":
    main()

2、保持循环,获取用户需求

(1)while True循环:使系统菜单一直保持循环,为后面实现用户选择退出系统后,系统才结束循环作铺垫

(2)变量key:将获取到的用户需要实现的功能进行存储

(3)if循环:多分支循环,再分别实现各个模块的功能

#定义主函数
def main():
    while True:
        print_menu()
        key = input('请输入功能对应的数字:')
        if key == '1':
            #添加学生信息
            pass
        elif key == '2':
            #删除学生信息
            pass
        elif key == '3':
            #修改学生信息
            pass
        elif key == '4':
            #查找全部学生信息
            pass
        elif key == '0':
            #退出系统
            pass
        else:
            print('输入有误')

 二、函数实现模块功能

1、添加学生信息

(1)name,sex,phone:存储用户输入的新学生的姓名,性别,手机号码信息

(2)new_info():定义成一个字典,通过键值对的形式,存储当前学生的所有信息

(3)append():列表的添加,将当前的字典存入列表,作为列表的一个元素

(4)stu_info:定义了一个列表用来存储所有的学生信息


#定义一个列表来存储所有学生信息
stu_info = []
 
#添加学生信息
def add_stu_info():
    name = input('请输入新学生的姓名:')
    sex = input('请输入新学生的性别:')
    phone = input('请输入新学生的手机号码:')
    new_info = dict()#定义一个字典
    new_info['name'] = name
    new_info['sex'] = sex
    new_info['phone'] = phone
    stu_info.append(new_info)

2、删除学生信息

(1)len():进入删除操作前先判断学生信息表是否为空

①为空:输出学生信息表为空,直接跳出删除操作

②不空:通过del_num变量记录用户需要删除的学生序号

(2)记录好要删除的学生序号还需要进一步判断输入的序号是否有误

①为flase:输出要删除的序号有误,跳出删除操作

②为true:通过del列表的删除操作进行删除对应序号的学生信息,并输出删除成功



#删除学生信息
def del_stu_info(student):
    if len(stu_info) != 0:
        del_num = int(input('请输入要删除的序号:')) - 1
        if del_num < len(stu_info):
            del student[del_num]
            print(f'删除指定序号:{del_num+1}成功')
        else:
            print('要删除的序号有误')
    else:
        print('学生信息表为空')

 3、修改学生信息

(1)len():进入修改操作前先判断学生信息表是否为空

①为空:输出学生信息表为空,直接跳出修改操作

②不空:通过rev_num变量记录用户需要修改的学生序号

(2)记录好要修改的学生序号还需要进一步判断输入的序号是否有误

①为flase:输出要修改的序号有误,跳出修改操作

②为true:通过rev_name、rev_sex、rev_phone变量记录修改后学生的信息

(3)stu_info[ ][ ]:通过列表修改元素的方法,将新的信息替换旧的信息



#修改学生信息
def rev_stu_info():
    if len(stu_info) != 0:
        rev_num = int(input('请输入要修改学生的序号:')) - 1
        if rev_num >= len(stu_info):
            print("要修改的序号有误")
        else:
            rev_name = input('请输入要修改学生的姓名:')
            rev_sex = input('请输入要修改学生的性别:')
            rev_phone = input('请输入要修改学生的手机:')
            stu_info[rev_num]['name'] = rev_name
            stu_info[rev_num]['sex'] = rev_sex
            stu_info[rev_num]['phone'] = rev_phone
    else:
        print('学生信息表为空')

4、查找全部学生信息

(1)len():进入查找操作前先判断学生信息表是否为空

①为空:输出学生信息表为空,直接跳出查找操作

②不空:输出学生信息如下

(2)i:序号,记录并输出学生数量

(3)for循环:逐个输出列表元素


#查找全部学生信息
def show_stu_info():
    if len(stu_info) != 0:
        print('学生的信息如下:')
        print('=' * 30)
        print('序号  姓名  性别  手机号码')
        i = 1
        for temp_info in stu_info:
            print("%d  %s  %s  %s" %(i,temp_info['name'],temp_info['sex'],temp_info['phone']))
            i += 1
    else:
        print('学生信息表为空')

5、退出系统

(1)quit_confirm:再次询问用户是否退出,并记录

(2)if循环:判断用户输入的是Yes还是No

①break:用户输入Yes,即确定退出,跳出while True这个死循环

②coninue:用户输入No,即不退出,则继续新一轮的while True循环


#定义主函数
def main():
    while True:
        print_menu()
        key = input('请输入功能对应的数字:')
        if key == '1':
            #添加学生信息
            pass
        elif key == '2':
            #删除学生信息
            pass
        elif key == '3':
            #修改学生信息
            pass
        elif key == '4':
            #查找全部学生信息
            pass
        elif key == '0':
            #退出系统
            quit_confirm = input('亲,真的要退出么?(Yes/No):')
            if quit_confirm == 'Yes':
                break
            elif quit_confirm == 'No':
                continue
            else:
                print('输入有误,请重新输入')
        else:
            print('输入有误')

三、整合代码

1、 完整代码

#定义一个列表来存储所有学生信息
stu_info = []
 
#打印功能菜单
def print_menu():
    print('=' * 30)
    print('学生管理系统')
    print('1.添加学生信息')
    print('2.删除学生信息')
    print('3.修改学生信息')
    print('4.显示所有学生信息')
    print('0.退出系统')
    print('=' * 30)
 
#添加学生信息
def add_stu_info():
    name = input('请输入新学生的姓名:')
    sex = input('请输入新学生的性别:')
    phone = input('请输入新学生的手机号码:')
    new_info = dict()#定义一个字典
    new_info['name'] = name
    new_info['sex'] = sex
    new_info['phone'] = phone
    stu_info.append(new_info)
 
#删除学生信息
def del_stu_info(student):
    if len(student) != 0:
        del_num = int(input('请输入要删除的序号:')) - 1
        if del_num < len(stu_info):
            del student[del_num]
            print(f'删除指定序号:{del_num+1}成功')
        else:
            print('要删除的序号有误')
    else:
        print('学生信息表为空')
 
#修改学生信息
def rev_stu_info():
    if len(stu_info) != 0:
        rev_num = int(input('请输入要修改学生的序号:')) - 1
        if rev_num >= len(stu_info):
            print("要修改的序号有误")
        else:
            rev_name = input('请输入要修改学生的姓名:')
            rev_sex = input('请输入要修改学生的性别:')
            rev_phone = input('请输入要修改学生的手机:')
            stu_info[rev_num]['name'] = rev_name
            stu_info[rev_num]['sex'] = rev_sex
            stu_info[rev_num]['phone'] = rev_phone
    else:
        print('学生信息表为空')
 
#查找全部学生信息
def show_stu_info():
    if len(stu_info) != 0:
        print('学生的信息如下:')
        print('=' * 30)
        print('序号  姓名  性别  手机号码')
        i = 1
        for temp_info in stu_info:
            print("%d  %s  %s  %s" %(i,temp_info['name'],temp_info['sex'],temp_info['phone']))
            i += 1
    else:
        print('学生信息表为空')
 
#定义主函数
def main():
    while True:
        print_menu()
        key = input('请输入对应的功能的数字:')
        if key == '1':
            #添加学生信息
            add_stu_info()
        elif key == '2':
            #删除学生信息
            del_stu_info(stu_info)
        elif key == '3':
            #修改学生信息
            rev_stu_info()
        elif key == '4':
            #显示所有学生信息
            show_stu_info()
        elif key == '0':
            #退出系统
            quit_confirm = input('亲,真的要退出么?(Yes/No):')
            if quit_confirm == 'Yes'&nbs***bsp;quit_confirm == 'yes'&nbs***bsp;quit_confirm == 'YES':
                break
            elif quit_confirm == 'No'&nbs***bsp;quit_confirm == 'no'&nbs***bsp;quit_confirm == 'NO':
                continue
            else:
                print('输入有误,请重新输入')
        else:
            print('输入有误,请重新输入')
 
if __name__=='__main__':
    main()

2、完整实现过程


#Python#
Python 文章被收录于专栏

Python概述及应用领域,PyCharm、Jupyter notebook的安装与使用,编码规范,标准库、扩展库对象的导入与使用

全部评论
学生管理系统感觉大家都写过
点赞 回复 分享
发布于 2022-10-09 10:01 陕西

相关推荐

双飞二本嵌入式求拷打我是在&nbsp;BOSS&nbsp;上投递的简历,好多都没人回复,这是开场白和简历求大神帮忙看看。您好!我是2025届应届生,最快可在一周内上岗,能够实习六个月以上,并接受加班。以下是我的核心优势和相关经验:1.&nbsp;嵌入式开发能力:&nbsp;&nbsp;&nbsp;熟练掌握STM32系列单片机及其外设(如GPIO、定时器、ADC、DAC、I2C、SPI、UART等),能够独立完成硬件驱动开发和调试。&nbsp;&nbsp;熟悉FreeRTOS实时操作系统,具备多任务调度和资源管理经验。&nbsp;&nbsp;熟悉LVGL图形库开发,能够实现嵌入式设备的图形界面设计。2.&nbsp;硬件设计能力:&nbsp;&nbsp;&nbsp;具备PCB设计经验,曾为2023年工创赛物流搬运赛道设计小车主板,带领团队获得国家级银奖。&nbsp;&nbsp;&nbsp;熟悉硬件原理图分析,能够快速理解并调试硬件电路。3.&nbsp;机器人开发与竞赛经验:&nbsp;&nbsp;&nbsp;在全国大学生智能车竞赛、ROS机器人竞赛中多次获得国家级奖项,具备丰富的机器人开发经验。&nbsp;&nbsp;&nbsp;熟悉Linux环境,对ROS和ROS&nbsp;2有一定了解,能够进行机器人系统的开发与调试。4.&nbsp;编程能力:&nbsp;&nbsp;&nbsp;熟悉C/C++,熟悉Python,能够高效完成嵌入式开发和算法实现。&nbsp;&nbsp;&nbsp;具备良好的代码规范和文档编写能力。5.&nbsp;团队协作与领导能力:&nbsp;&nbsp;&nbsp;在多个项目中担任核心开发或团队负责人,具备良好的沟通能力和团队协作精神。&nbsp;&nbsp;&nbsp;在工创赛中带领团队完成项目规划、任务分配和技术攻关,展现了较强的领导力。我对嵌入式开发、机器人技术和智能硬件充满热情,期待加入贵公司,与团队共同成长,为公司创造价值!如果有合适的岗位,欢迎随时联系我,期待进一步沟通!
沉淀一会:嵌入式就是狗屎
点赞 评论 收藏
分享
2024-12-25 09:09
四川师范大学 运营
想和你交朋友的潜伏者要冲国企:先去沃尔玛亲身感受标准化流程体系,一两年后再跳槽国内任何零售行业,可以有更大选择权吧?
点赞 评论 收藏
分享
评论
1
6
分享

创作者周榜

更多
牛客网
牛客企业服务