学生信息管理系统--课后程序(Python程序开发案例教程-黑马程序员编著-第6章-课后作业)

news/2024/11/26 4:15:07/

实例2:学生信息管理系统

学生信息管理系统是用于管理学生信息的管理软件,它具备学生信息的查找、修改、增加和删除功能,利用该系统可实现学生信息管理的电子化,提高信息管理效率。

本实例要求编写程序,实现学生信息管理系统。

实例目标

  1. 熟练地定义函数
  2. 熟练地在函数中访问全局变量

实例分析

由实例描述可知,本实例的学生管理系统具备5个功能,分别是打印功能菜单、添加学生信息、删除学生信息、修改学生信息和显示学生信息,每个功能可以抽取成一个函数,在程序执行的过程中调用即可。

除此之外,还可以定义一个主函数main(),该函数主要描述使用一次学生管理系统的过程,包括打印功能菜单、接收用户的输入、根据输入调用函数执行相应的功能。

代码实现

(1)定义一个打印功能菜单的函数print_menu(),该函数的定义如下所示:

# 功能菜单打印

def print_menu():

    print('=' * 30)

    print('学生管理系统')

    print('1.添加学生信息')

    print('2.删除学生信息')

    print('3.修改学生信息')

    print('4.显示所有学生信息')

    print('0.退出系统')

    print('=' * 30)

(2)定义一个添加学生信息的函数add_stu_info(),该函数需提示用户输入学生的基本信息:姓名、性别和手机号码,将输入的信息以键值的形式存储到字典new_info中,再将该字典添加到代表学生管理系统的列表stu_info中。add_stu_info()函数的定义如下所示:

# 新建一个列表,用来保存学生的所有信息

stu_info = []

# 添加学生信息

def add_stu_info():

    # 提示并获取学生的姓名

    new_name = input('请输入新学生的姓名:')

    # 提示并获取学生的性别

    new_sex = input('请输入新学生的性别:')

    # 提示并获取学生的手机号

    new_phone = input('请输入学生的手机号码:')

    new_info = dict()

    new_info['name'] = new_name

    new_info['sex'] = new_sex

    new_info['phone'] = new_phone

    stu_info.append(new_info)

(3)定义一个用于删除学生信息的函数del_stu_info(),该函数需提示用户输入待删除学生的序号,之后便从列表stu_info中删除存有该学生信息的字典。del_stu_info()函数的定义如下所示:

# 删除学生信息

def del_stu_info(student):

    del_num = int(input('请输入要删除的序号:')) – 1

    del student[del_num]

(4)定义一个用于修改学生信息的函数modify_stu_info(),该函数需在列表stu_info不为空的情况下进行修改,先提示用户输入待修改学生的序号,再要求用户输入修改后的学生信息进行替换。modify_stu_info()函数的定义如下所示:

# 修改学生信息

def modify_stu_info():

    if len(stu_info) !=0:

        stu_id = int(input('请输入学生序号:'))

        new_name = input('请输入学生姓名:')

        new_sex = input('请输入学生性别(男/女):')

        new_phone = input('请输入学生的手机号码:')

        stu_info[stu_id - 1]['name'] = new_name

        stu_info[stu_id - 1]['sex'] = new_sex

        stu_info[stu_id - 1]['phone'] = new_phone

    else:

        print('学生信息表为空')

(5)定义一个用于显示所有学生信息的函数show_stu_info (),该函数需遍历列表stu_info,并采用固定的格式打印列表中的所有信息。show_stu_info ()函数的定义如下所示:

# 显示学生信息

def show_stu_info():

    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

(6)定义一个主函数main(),该函数中包含运行一次程序的完整过程,包括打印功能菜单、接收用户选择的功能序号、调用函数执行相应的功能,另外还需在用户输入0时处理退出程序的业务。main()函数的定义如下所示:

# 主函数

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':                 # 修改学生信息

            modify_stu_info()

        elif key == '4':                 # 查看所有学生的信息

            show_stu_info()

        elif key == '0':

            quit_confirm = input('亲,真的要退出么?(Yes or No):')

            if quit_confirm == 'Yes':

                break                     # 跳出循环

            else:

                print('输入有误,请重新输入')

(7)在末尾添加调用main()函数的代码,具体如下所示。

if __name__ == '__main__':

    main()

代码测试

运行程序,在控制台输入“1”之后的结果如下所示:

==============================

学生管理系统

1.添加学生信息

2.删除学生信息

3.修改学生信息

4.显示所有学生信息

0.退出系统

==============================

请选择功能:1

请输入新学生的姓名:小红

请输入新学生的性别:

请输入学生的手机号码:123456

在控制台输入“3”之后的结果如下所示:

请选择功能:3

请输入学生序号:1

请输入学生姓名:小明

请输入学生性别(男/女):男

请输入学生的手机号码:123

在控制台输入“4”之后的结果如下所示:

请选择功能:4

学生的信息如下:

==============================

序号    姓名    性别    手机号码

1    小明        123

在控制台输入“0”之后的结果如下所示:

请选择功能:0

亲,真的要退出么?(Yes or No):Yes


http://www.ppmy.cn/news/31427.html

相关文章

嵌入式学习笔记——使用寄存器编程实现按键输入功能

文章目录前言模块介绍原理图编程思路检测IO口的电平前言 昨天,通过配置通用输出模式,实现了LED灯的点亮、熄灭以及流水等操作,解决了通用输出的问题,今天我们再借用最常见的输入模块,按键来实现一个按键控制LED的功能…

【Linux】安装MariaDB Community Server最佳实践

写作背景:记一次从MySQL平台迁移到MariaDB的测试环境准备 文章目录安装YUM (CentOS, RHEL)APT (Debian, Ubuntu)ZYpp (SLES)启动配置测试本机登录远程登录在主流Linux上安装MariaDB Community Server,官方当前(2023年3月10日)最新…

VMware15配置NAT模式联通网络

最近为了测试C# 开发的桌面应用程序悬浮球的兼容性,在虚拟机上安装了win7系统和xp系统,之前也安装过黑苹果系统,但是win系统倒是第一次安装,在win7系统联网的时候,踩了一些坑,整理纪录一下。 设置主物理机配…

【数据结构】解决顺序表题的基本方法

🚀write in front🚀 📜所属专栏:> 初阶数据结构 🛰️博客主页:睿睿的博客主页 🛰️代码仓库:🎉VS2022_C语言仓库 🎡您的点赞、关注、收藏、评论&#xff0…

直播回顾 | 聚焦科技自立自强,Bonree ONE 助力国产办公自动化平稳替代

3月5日,两会发布《政府工作报告》,强调科技政策要聚焦自立自强。 统计显示,2022年金融信创项目数同比增长300%,金融领域信创建设当前已进入发展爆发期,由国有大型银行逐渐向中小型银行、非银金融机构不断扩展。信创云…

基础05-TCP三次握手和四次挥手

TCP 连接 三次握手 四次挥手 题目 请描述 TCP 连接的 三次握手 和 四次挥手 建立连接 客户端和服务端通过 HTTP 协议发送请求,并获取内容。 在发送请求之前,需要先建立连接,确定目标机器处于可接受请求的状态。 就例如,你要请…

C++ STL:string类的概述及常用接口说明

目录 一. 什么是STL 二. string类的概述 三. string类的常用接口说明 3.1 字符串对象创建相关接口(构造函数) 3.2 字符串长度和容量相关接口 3.3 字符访问相关接口函数 3.4 字符串删改相关接口函数 3.5 字符查找和子串相关接口函数 3.6 迭代器相…

【JavaSE】数组的定义与使用详解

目录 1.数组的基本概念 1.1数组的好处 1.2什么是数组 1.3数组的定义及初始化 1.3.1数组的创建 1.3.2数组的初始化 1.4数组的使用 1.4.1访问数组中的元素 1.4.2遍历数组 2.数组的类型 2.1认识JVM的内存分布 2.2基本类型变量与引用类型变量 2.3认识null 3.数组的应…