python实践案例:学生信息管理系统(基础)

1、系统登录界面

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

2、程序运行过程

3、具体实现过程

代码如下:


student_info_list = []

def insert():
    student_num = input('请输入学号:')
    for num in student_info_list:
        if student_num == num['student_num']:
            print('学号已经存在')
            return insert()
    while True:
        if student_num.isdigit():
            break
        else:
            student_num = input('学号有误,请重新输入:')

    name = input('请输入姓名:')
    while True:
        if name.isdigit():
            name = input('姓名有误,请重新输入:')
            continue
        break
    sex = input('请输入性别:')
    if sex == '男' or sex == '女':
        pass
    else:
        print('输出格式错误!')
        while True:
            new_sex = input('请重新输入性别:')
            if new_sex == '男' or sex == '女':
                sex = new_sex
                break

    age = input('请输入年龄:')
    while True:
        if age.isdigit():
            break
        else:
            age = input('年龄有误,请重新输入:')
    age_num = int(age)
    if age_num <= 30:
        pass
    if age_num > 30:
        while True:
            age = input('年龄有误,请重新输入:')
            age_num = int(age)
            if age_num <= 30:
                pass
            else:
                continue
            break

    phone = input('请输入手机号:')
    while True:
        if phone.isdigit():
            break
        else:
            phone = input('手机号有误,请重新输入:')
    phone_num = len(phone)
    # print(phone_num)
    if phone_num == 11:
        student_info_list.append({'student_num': student_num, 'name': name, 'sex': sex, 'age': age, 'phone': phone})
    if phone_num != 11:
        while True:
            phone = input('手机号有误,请重新输入:')
            new_phone_num = len(phone)
            if new_phone_num == 11:
                student_info_list.append(
                    {'student_num': student_num, 'name': name, 'sex': sex, 'age': age, 'phone': phone})

                break

def delete():
    # 1. 用户输入要删除的学员的姓名
    del_name = input('请输入要删除的学员的姓名:')
    # 2. 判断学员是否存在:如果输入的姓名存在则删除,否则报错提示
    for i in student_info_list:
        if del_name == i['name']:
            student_info_list.remove(i)
            print('删除成功')
            break
        else:
            print('该学员不存在')

def update():
    chance_update = int(input('请输入要修改的内容(1:姓名 2:手机号):'))
    if chance_update == 1:
        update_name = input('请输入要修改的学员姓名:')
        for i in student_info_list:
            if update_name == i['name']:
                new_name = input('请输入新的学员姓名:')
                i['name'] = new_name
            else:
                print('未找到该学员')
                break
    else:
        update_phone = input('请输入要修改的学员手机号:')
        for i in student_info_list:
            if update_phone == i['phone']:
                new_phone = input('请输入新的学员手机号:')
                i['phone'] = new_phone
            else:
                print('未找到该手机号')

def search():
    """查询学员"""
    # 1. 输入要查找的学员姓名:
    search_name = input('请输入要查找的学员姓名:')
    # global info
    # 2. 判断学员是否存在:如果输入的姓名存在则显示这位学员信息,否则报错提示
    for i in student_info_list:
        if search_name == i['name']:
            print('查找到的学员信息如下:----------')
            print(f"该学员的学号是{i['student_num']}, 姓名是{i['name']},性别是{i['sex']},年龄是{i['age']}, 手机号是{i['phone']}")
            break
    else:
        print('该学员不存在')

def show():
    """ 显示所有学员信息 """
    # print('学号\t姓名\t性别\t年龄\t手机号')
    print("%-3s %-3s %-5s %-3s %-5s " % ("学号", "姓名", "性别", "年龄", "手机号"))
    for i in student_info_list:
        print(f'{i["student_num"]}\t{i["name"]}\t{i["sex"]}\t{i["age"]}\t{i["phone"]}')

def help():
    interface()

def interface():
    print('- ' * 20)
    print('欢迎登录学员管理系统')
    print('1、添加学员(insert)')
    print('2、删除学员(delete)')
    print('3、修改学员信息(update)')
    print('4、查询学员信息(search)')
    print('5、显示学员信息(show)')
    print('6、退出系统(exit)')
    print('- ' * 20)

def seq():
    while True:
        seq = input('请选择您需要的功能序号:')
        if seq == '1' or seq == 'insert':
            insert()
        elif seq == '2' or seq == 'delete':
            delete()
        elif seq == '3' or seq == 'update':
            update()
        elif seq == '4' or seq == 'search':
            search()
        elif seq == '5' or seq == 'show':
            show()
        elif seq == '6' or seq == 'exit':
            pd = input('是否退出程序!(yes or no):')
            if pd == 'yes' or pd == 'YES':
                break
            elif pd == 'no' or pd == 'NO':
                print('程序继续!')
            else:
                print('格式错误!')
                continue
        elif seq == 'help':
            help()
        else:
            print('请输入正确的功能序号:')

interface()
seq()
print('-----------------')
with open('D:\\文档\\学生信息管理.txt', 'w', encoding='utf8') as f_dst:            #选择一个你要把信息录入到那个文件
    for student_info in student_info_list:
        student_num = student_info['student_num']
        name = student_info['name']
        sex = student_info['sex']
        age = student_info['age']
        phone = student_info['phone']
        f_dst.write(f"{student_num}\t{name}\t{sex}\t{age}\t{phone}\n")

f_dst.close()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值