Python学生信息管理系统:增删改查功能实现

本程序使用Python实现简单的学生信息管理系统,包含增加、查询、修改、删除四种功能。

import re

fields = ['学号', '姓名', '性别', '生日', '电话']
fmt = '{0:12}{1:12}{2:12}{3:12}{4:12}'
stus = []

def print_menu():
    while True:
        print('=' * 20)
        print('1. 增加学生信息')
        print('2. 打印所有学生信息')
        print('3. 查询学生信息')
        print('4. 修改学生电话号码')
        print('5. 删除学生信息')
        print('0. 退出')
        print('=' * 20)
        choice = int(input('请输入选项:'))
        if choice == 1:
            stu_add()
        elif choice == 2:
            stu_print()
        elif choice == 3:
            stu_find()
        elif choice == 4:
            stu_modify()
        elif choice == 5:
            stu_delete()
        elif choice == 0:
            break
        else:
            print('输入错误:只能输入0-5')

def stu_add():
    msg = ''
    values = input('请输入学号、姓名、性别、生日、电话, 空格隔开\n').split()
    if not re.match('\d{10}', values[0]):
        msg += '学号只能是 10 位数字. \n'
    if len(values[1]) < 1:
        msg += '姓名至少包含两个字符. \n'
    if values[2] not in ('男', '女'):
        msg += '性别只能是男和女. \n'
    if not re.match('\d{4}-\d{2}-\d{2}', values[3]):
        msg += '生日只能是 yyyy-mm-dd 格式, 如 2020-12-31.  \n'
    if not re.match('\d{11}', values[4]):
        msg += '电话只能是11位数字组成. \n'
    if len(msg) == 0:
        stus.append(dict(zip(fields, values)))
        print('增加数据成功.')
    else:
        print('增加数据失败:\n' + msg)

def stu_print():
    if len(stus) == 0:
        print('没有学生信息')
    else:
        print(fmt.format(*fields))
        for stu in stus:
            print(fmt.format(stu['学号'], stu['姓名'], stu['性别'], stu['生日'], stu['电话']))

def stu_find():
    id = input('请输入要查询的学生学号:')
    for stu in stus:
        if stu['学号'] == id:
            print(fmt.format(*fields))
            print(fmt.format(stu['学号'], stu['姓名'], stu['性别'], stu['生日'], stu['电话']))
            return
    print('没有找到该学生')

def stu_modify():
    id = input('请输入要修改电话号码的学生学号:')
    for stu in stus:
        if stu['学号'] == id:
            phone = input('请输入新的电话号码:')
            stu['电话'] = phone
            print('修改电话号码成功')
            return
    print('没有找到该学生')

def stu_delete():
    id = input('请输入要删除的学生学号:')
    for stu in stus:
        if stu['学号'] == id:
            stus.remove(stu)
            print('删除学生信息成功')
            return
    print('没有找到该学生')

print_menu()

代码功能说明:

  1. print_menu()函数: 打印菜单选项,并根据用户输入调用相应的函数。
  2. stu_add()函数: 输入学生信息,进行数据验证,并将验证通过的信息保存到stus列表中。
  3. stu_print()函数: 打印所有学生信息。
  4. stu_find()函数: 输入学生学号,查询并打印学生信息。
  5. stu_modify()函数: 输入学生学号,修改该学生的电话号码。
  6. stu_delete()函数: 输入学生学号,删除该学生信息。

优化说明:

  1. 使用re模块进行数据验证,提高代码效率和可靠性。
  2. 使用fmt格式化字符串,使输出结果更美观。
  3. 代码注释清晰,方便理解代码逻辑。

未来改进:

  1. 添加更多字段,如地址、班级等。
  2. 使用文件存储学生信息,实现数据持久化。
  3. 使用图形界面,提升用户体验。
  4. 使用数据库进行数据管理,提高系统性能。

总结:

本程序实现了简单的学生信息管理系统,并进行了一定的优化。未来可以根据需求进行进一步改进,使其功能更强大,性能更优越。


原文地址: https://www.cveoy.top/t/topic/nBHR 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录