学员管理系统

article/2025/11/11 1:32:11

大家在学习编程语言的时候,有时候会遇到让编程一个简单的系统等的问题。比如我在学习python的时候,就让编程如下一样的一个学员管理信息的系统:

 一个可以添加学员信息,删除学员信息,修改学员信息,查询学员信息,显示所有学员信息和退出这个学员管理系统的多个功能组合的系统。代码如下:

# 函数加强过程:递归+lambda表达式+高阶函数三者的综合应用
# 系统规定的就是不允许重名
# 定义功能函数界面

def info_print():
    print('请选择功能------')
    print('1.添加学员')
    print('2.删除学员')
    print('3.修改学员')
    print('4.查询学员')
    print('5.显示所有学员')
    print('6.退出系统')
    print('-' * 20)

# 准备空列表接收学员信息
info = []

# 添加
def add_info():
    # 先用户输入信息
    new_id = input('请输入学号')
    new_name = input('请输入名字')
    new_tel = input('请输入手机号')
    # 声明全局变量info,因为数据是用字典存入这个空列表
    global info
    # 再判断是否已经有输入的学员姓名信息,有就提示用户,不再执行下面的代码
    for i in info:
        if new_name == i['name']:
            print('此用户信息已经存在')
            # 加return退出当前的函数,后面的代码就不执行了
            return
    # 先准备空字典用于输入信息
    info_dict = {}
    # 然后字典新增数据
    info_dict['id'] = new_id
    info_dict['name'] = new_name
    info_dict['tel'] = new_tel
    # 列表追加字典数据
    info.append(info_dict)
    print(info)

# 删除
def del_info():
    del_name = input('请输入要删除的学员的姓名:')
    global info
    for i in info:
        if del_name == i['name']:
            info.remove(i)
            # 系统不允许重名,删除了一个之后后面的就不需要再遍历了,所以要break退出循环
            break
    else:
        print('该学员不存在')
    print(info)

# 修改
def alter_info():
    alter_name = input('请输入要修改的学员的姓名:')
    global info
    for i in info:
        if alter_name == i['name']:
            # 学员存在就修改手机号码,不存在就无法执行修改
            i['tel'] = input('请输入新的手机号:')
            # 找到要修改的就不用再遍历了,停止循环
            break
    else:
        print('该学员不存在')
    print(info)

# 查询
def search_info():
    search_name = input('请输入要查询的学员的姓名:')
    global info
    for i in  info:
        if search_name == i['name']:
            print('查找到学员信息如下:.......')
            # 引号嵌套必须区分开,不然会出现错误
            print(f"该学员的学号是{i['id']},姓名是{i['name']},手机号是{i['tel']}")
            break
    else:
        print('该学员不存在')
    print(info)

# 显示所有
def print_all():
    # 加制表符\t就是为了对齐隔开分别打印的信息,使得更美观
    print('学号\t姓名\t手机号')
    for i in info:
        # 因为这里就是全部打印,就不需要声明全局变量了
        print(f'{i["id"]}\t{i["name"]}\t{i["tel"]}')

# 系统功能因为需要循环使用,直到用户输入6才退出系统
while True:
    # 1.显示功能界面;上面定义函数,下面调用
    info_print()

    # 2.用户输入功能序号;因为上面接收到的数据类型是字符串,而这里用int就是改变数据类型为整型
    user_num = int(input('请输入功能序号:'))

    # 3.按照用户输入的功能序号去执行不同功能(函数);用到多重判断,因为不同序号执行不同功能;所有存储学员信息是全局变量
    if user_num == 1:
        add_info()
    elif user_num == 2:
        del_info()
    elif user_num == 3:
        alter_info()
    elif user_num == 4:
        search_info()
    elif user_num == 5:
        print_all()
    elif user_num == 6:
        # 因为现在全部的函数调用都在while True循环内,所以要退出系统就是要终止while True循环 -- break
        exit_flag = input('确定要退出吗?yes or no')
        if exit_flag == 'yes':
            # break终止的就是就近的,也就是while True循环,所以不去封装退出函数,否则会出现不必要的问题
            break
    # 但是如果输入了1-6以外的数字呢是无法继续执行功能的,所以要写明特殊情况
    else:
        print('输入的功能序号有误')
 

如上就是我所编写的关于这个普通版学员管理系统的代码,根据不同的序号执行不同的功能来对学员信息进行处理。以后还会写面向对象版的学员管理系统,是另外一种版本。


http://chatgpt.dhexx.cn/article/KwIOQTeK.shtml

相关文章

【Python实现】学员管理系统(详细解析)

目录 1、总体要求2、需求分析3、框架设计4、细节设计4.1 程序入口4.2 学员管理类4.2.1 初始化4.2.2 登录认证4.2.3 功能菜单4.2.4 文件操作4.2.5 新增学员4.2.6 删除学员4.2.7 修改学员4.2.8 查找学员4.2.9 显示全部学员4.2.10 学员数据统计4.2.11 清空系统数据 5、总结 1、总体…

[Java] 学员管理系统(服务器—客户端模式)

目录 学员管理系统(服务器—客户端模式)1. 项目演示a. 打开项目b. 运行项目 2. 项目说明a. 所采用的知识点b. 业务交互模式图示 3. 案例代码a. 客户端i. 创建实体类 Studentii. 创建主类 MainApp b. 服务器端i. 创建实体类 Studentii. 创建服务器端线程类…

java 中 Scanner 输入

因为涉及到 io 流输入问题,如果不关闭会一直占用资源。所以使用过后要及时关闭,防止资源一直被占用。 Scanner在使用前要导入 java.util.Scanner 包 1.整数 描述: 输入一个整数,输出这个整数。 输入描述: 输入一个整数&#xff0c…

Java之键盘输入语句Scanner

文章目录 键盘输入语句1. 介绍2. 步骤3. 案例演示 键盘输入语句 1. 介绍 在编程中,需要接收用户输入的数据,就可以使用键盘输入语句来获取。Input.java , 需要一个 扫描器(对象), 就是 Scanner 2. 步骤 导入该类的所在包, java.util.*创建该类对象&a…

Java的常用输入输出语句

一、概述 输入输出可以说是计算机的基本功能。作为一种语言体系,java中主要按照流(stream)的模式来实现。其中数据的流向是按照计算机的方向确定的,流入计算机的数据流叫做输入流(inputStream),由计算机发出的数据流叫做输出流(outputStream)。 Java语言体系中,对数据流…

java中输入语句是怎么写的

java中用户输入语句的写法是: 1、【Scanner sc new Scanner(System.in); 】; 2、【String input sc.next();】。 (视频教程推荐:java视频) 具体代码如下:import java.util.Scanner; public class Number { /** * param a…

java基础之java输入输出语句

1、使用Scanner 使用时需要引入包importjava.util.Scanner;首先定义Scanner对象 Java基础学习:java输入输出语句 比如: Java基础学习:java输入输出语句 2、使用BufferedReader 用前需要引入importjava.io.Reader; Java基础学习&#xff1…

java 键盘输入语句怎么写

java 键盘输入语句写法 第一种: public class shuRu{ public static void main(string arg[]){ system.out.println(arg[1]); } } 第二种: import java.util.scanner; public class shuRu{ public static void main(string arg[]){ scanner i…

java语言输入语句是_java中的输入语句怎么写?

java中的输入语句怎么写? 发布时间:2020-05-20 15:19:52 来源:亿速云 阅读:206 作者:鸽子 java中用户输入语句的写法是: 1、【Scanner sc new Scanner(System.in); 】; 2、【String input sc.…

java 输入语句_java怎样输入语句

java输入语句的方法:1、输入单个字符【char c=(char)System.in.read()】;2、输入整数或者字符串【int a=cin.nextInt()】;3、可以用BufferedReader类输入。 java输入语句的方法: 如果你要进行输入,请一定加上两个包import java.util.*; import java.io.*; 请看下面例子用于…

java输入语句怎么写

壹哥在前面给大家讲过,Java中给咱们提供了有三个标准的“流”,他们被统称为standard streams。除了负责输出的流之外,还有一个负责输入的标准流,Java中对应的API是System.in。 与标准输出相比,标准输入则复杂的多。尤…

java输入语句_java输入语句是什么

Java的语句有很多,其中输入语句是最基本的操作之一。下面我将带大家一起了解一下要如何进行输入代码的编写。 首先当你进行输入操作前要将下面两个包给加入Java程序的包行列中。 先将java.io.*;以及java.util.*;导入Java代码中。import java.util.*; import java.io…

java输入语句

java输入语句 import java.util.Scanner;//导入 java.util 包下的 Scanner 类,用来构建Scanner对象 public class TestScanner{public static void main(String[] args){Scanner scanner new Scanner(System.in);//建立Scanner对象,通过System.in来读取键盘输入数…

java的四种输入方法,你会几种?

java的输入方法最常见的就是Scanner的方法,我经过查阅一些资料发现了输入方法原来还有那么多种,可以玩出不少花样,下面是我总结出的四种输入方式,有需要的可以拿去 1.Scanner相关的功能 Scanner的输入方法是最常见的一种&#x…

zzlatex制作复杂表格(跨行、跨列)

用Latex制作复杂表格, 需要用到\multirow宏包, 用\multicolumn, \multirow, \hline, \cline 四种命令来控制跨列,跨行, 横线, 竖线位置。 原帖请见: http://jhengjyun.blogspot.jp/2011/01/latexmulticolu…

HTML--table--跨行跨列

效果图 代码 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>跨行跨列</title><style type"text/css">table{border: 1px solid;width: 500px;}table td,th{border: 0.0625rem solid;text-align: c…

HTML表格标签跨行与跨列

关于行和列我们换个称呼&#xff1a;横与竖来形容&#xff0c;而<tr></tr>就是横&#xff0c;<th></th>和<td></td>代表的就是竖。rowspan的属性放置td标签中就是与下一横中td合并&#xff08;上下合并&#xff09;&#xff0c;此时要删除…

IDEA通过正则跨行搜索

idea快捷键&#xff1a;ctrlF (?is)key1.*?key2 如果想搜索同时包含key1和key2的关键词&#xff0c;同时&#xff0c;允许跨行&#xff0c;则可以这样搜索 如果没有加(?is)则是单行搜索

latex跨行跨列表格

使用revtex模板的跨行跨列表格时候不需要使用\usepackage{booktabs},否则midrule&#xff0c;toprule这些线条不能够正常显示。因此需要使用自带的线条。 下面记录一下我试用过的跨行跨列表格latex语法 \begin{table}[hb]\centering\caption{ \label{cutoff} nothing }\begin{…

Latex 跨行跨列表格

使用Latex进行论文写作时&#xff0c;常常需要制作跨行、跨列的表格。但是要制作一个美观的表格&#xff0c;还是有一点复杂的&#xff0c;这里列出一个绘制基本三线表的方法&#xff0c;以及需要注意的地方。更加复杂的表格可以此为模板修改内容。 效果&#xff1a; Latex代…