学生管理系统(文件版)

import os

# 定义一个储存学生的列表
stu_list = []


def show():
    print('1. 添加学生信息')
    print('2. 删除学生信息')
    print('3. 修改学生信息')
    print('4. 查询单个学生信息')
    print('5. 查询所有的学生信息')
    print('6. 退出系统并保存')


# 文件的读取 到stu_list
def file():
    # 全局变量内部使用 需要全局化 之后stu_list在函数内部可以修改
    global stu_list
    file_name = "21"
    # 判断文件是否存在
    if os.path.exists(file_name):
        # 打开文件
        f = open(file_name, "r", encoding="utf-8")
        # 读取文件
        while True:
            # 每次读取一行
            stu_info = f.readline()
            # print(type(stu_info))
            # 判断文件中是否有数据
            if stu_info:
                # 将数据转换为字典 添加到stu_list中
                stu_list.append(eval(stu_info))
                # eval()
                # 函数官方解释:将字符串str当作有效的表达式来求值并返回计算结果
                # 在我看来就是还原数据原来的样子
                # print(type(eval(stu_info)))
            else:
                break
        f.close()
        print("old_stu_list:", stu_list)
    else:
        print("gun")


def insert():
    name = input("请输入需要添加的学生姓名:")
    age = int(input("请输入需要添加的学生的年龄:"))
    gender = input("请输入需要添加的学生的性别:")
    stu_dict = {"姓名": name, "年龄": age, "性别": gender}
    # 将信息添加到stu_list
    stu_list.append(stu_dict)
    print("================")


def remove():
    name = input("输入需要删除学生姓名")
    for students in stu_list:
        if name == students["姓名"]:
            stu_list.remove(students)
            print("==================删除成功====================")


def modify():
    name = input("请输入需要修改学生姓名:")
    for students in stu_list:
        if name == students["姓名"]:
            age = int(input("年龄"))
            gender = input("性别")
            students["年龄"] = age
            students["性别"] = gender
            stu_list.append(students)
            print("==========修改成功===========")


def search():
    name = input("请输入需要删除学生姓名:")
    for students in stu_list:
        if name == students["姓名"]:
            print(students)


def show_all():
    for index, students in enumerate(stu_list):
        print(index + 1, students)


def save():
    f = open("21", "w", encoding="utf-8")
    for students in stu_list:
        f.write(str(students) + "\n")
    f.close()


def main():
    #     将文件中的学生信息读取出来放入stu_list
    file()
    while True:
        show()
        #     输入操作
        opt = input('请输入操作:')
        if opt == "1":
            insert()

        elif opt == '2':
            # print('2. 删除学生')
            remove()
        elif opt == '3':
            # print('3. 修改学生信息')
            modify()
        elif opt == '4':
            # print('4. 查询单个学生信息')
            search()
        elif opt == '5':
            # print('5. 查询所有的学生信息')
            show_all()
        elif opt == '6':
            print('欢迎下次使用学生管理系统')
            save()

            break
        else:
            print('你输入的内容有误,请重新输入')
            continue
        input('...... 回车键继续操作.......')
    print("new", stu_list)


# 表示只能当前程序执行下面代码

if __name__ == "__main__":
    main()
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
您使用Python中的文件操作(如打开、读取、写入、关闭文件)来实现用户账号管理和学生管理系统文件。以下是一个简单的示例代码,演示如何使用文本文件来存储和读取用户账号和学生信息。 ```python # 用户账号管理系统文件 # 打开用户账号文件 user_file = open("user_accounts.txt", "a+") # 获取用户输入的用户名和密码 username = input("请输入用户名:") password = input("请输入密码:") # 检查用户输入的用户名是否已存在 user_file.seek(0) # 将文件指针移动到文件开头 for line in user_file: if username in line: print("该用户名已存在!") break else: # 将新用户的账号信息写入文件 user_file.write(username + "," + password + "\n") print("用户账号创建成功!") # 关闭用户账号文件 user_file.close() # 学生管理系统文件 # 打开学生信息文件 student_file = open("student_info.txt", "a+") # 获取用户输入的学生信息 name = input("请输入学生姓名:") age = input("请输入学生年龄:") score = input("请输入学生成绩:") # 将新学生的信息写入文件 student_file.write(name + "," + age + "," + score + "\n") print("学生信息添加成功!") # 关闭学生信息文件 student_file.close() ``` 在上述示例代码中,我们分别打开了用户账号文件和学生信息文件,使用 `a+` 模式来打开文件,这意味着我们既可以读取文件中已有的内容,也可以在文件末尾添加新的内容。在用户账号管理系统中,我们首先读取文件中已有的账号信息,然后检查用户输入的用户名是否已存在,如果不存在则将新用户的账号信息写入文件。在学生管理系统中,我们直接将用户输入的学生信息写入文件。最后,我们都关闭了文件,释放系统资源。 请注意,上述代码仅为示例,实际应用中您需要根据需求进行修改和完善。另外,为了确保文件操作的安全性和稳定性,建议您在代码中添加异常处理机制。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值