美文网首页
学生管理系统(2)

学生管理系统(2)

作者: 痞子_4ae7 | 来源:发表于2020-05-16 16:50 被阅读0次
    # coding='utf-8'
    
    # 学生管理系统函数
    def stu_manager():
        print('-' * 20)
        print("""学生管理系统:
                    1.添加学生 
                    2.展示学生
                    3.查询学生 
                    4.删除学生 
                    5.修改学生 
                    6.退出系统 """)
        print('-' * 20)
    
        while True:
            choice = input('请输入您要选择的操作(1-6):')
    
            # 添加学生
            if choice == '1':
                students = []
                name = input('请输入学生姓名:')
                age = input('请输入学生年龄:')
                ID = input('请输入学生学号:')
    
                # 学生个人信息列表
                stu = [name, age, ID]
                students.append(stu)
                with open('./stu_manager.txt', 'a+', encoding='utf-8') as f:
                    length = len(students)
                    for i in range(length):
                        stu_str = '姓名:' + students[i][0] + ' ' * 2 + \
                                  '年龄:' + students[i][1] + ' ' * 2 + \
                                  '学号:' + students[i][2] + '\n'
                        f.write(stu_str)
                print('添加成功!')
    
            # 展示学生
            elif choice == '2':
                with open('./stu_manager.txt', 'r', encoding='utf-8') as f:
                    content = f.read()
                    if content:
                        print(content)
                    else:
                        print('学生信息文件为空,请添加学生!')
    
            # 查询学生
            elif choice == '3':
                name = input('请输入要查询的学生姓名:')
                with open('./stu_manager.txt', 'r', encoding='utf-8') as f:
                    lines = f.readlines()
                    flag = True
                    print('您查询的学生信息为:')
    
                    # 对于读取到的信息列表,循环判断每一行中,要查询的学生是否存在
                    for each_line in lines:
                        if name in each_line:
                            # 如果存在,则打印出该行,即该学生信息
                            print(each_line)
                            flag = False
                    if flag:
                        print('该学生不存在,请检查!')
    
            # 删除学生
            elif choice == '4':
                students = []
                name = input('请输入要删除的学生姓名:')
                with open('./stu_manager.txt', 'r', encoding='utf-8') as f:
                    lines = f.readlines()
                    old_length = len(lines)
                    for each_line in lines:
                        # 如果学生信息不存在,则将该行添加到新的全体学生列表中
                        if name not in each_line:
                            students.append(each_line)
                            length = len(students)
                            with open('./stu_manager.txt', 'w', encoding='utf-8') as f2:
                                # 逐行打印新的学生列表中的信息
                                for i in range(length):
                                    stu_str = students[i]
                                    f2.write(stu_str)
                    # 判断原始信息列表和新的学生信息列表长度,如果新列表长度短,代表删除成功
                    if length < old_length:
                        print('删除成功!')
                    else:
                        print('该学生不存在,请检查!')
    
            # 修改学生
            elif choice == '5':
                old_name = input('请输入要修改的学生:')
                with open('./stu_manager.txt', 'r', encoding='utf-8') as f:
                    lines = f.readlines()
                    flag = True
                    content = ''
                    for each_line in lines:
                        if old_name in each_line:
                            new_name = input('请输入学生姓名:')
                            age = input('请输入学生年龄:')
                            ID = input('请输入学生学号:')
                            each_line = '姓名:' + new_name + ' ' * 2 + \
                                        '年龄:' + age + ' ' * 2 + \
                                        '学号:' + ID + '\n'
                            flag = False
                        else:
                            each_line = each_line
                        content += each_line
                        with open('./stu_manager.txt', 'w+', encoding='utf-8') as new_f:
                            new_f.write(content)
                    if flag:
                        print('该学生不存在,请检查!')
                    else:
                        print('修改成功!')
    
            # 退出系统
            elif choice == '6':
                print('即将退出系统,欢迎下次使用!')
                exit()
            else:
                print('您的输入有误,请重新输入!')
    
    
    if __name__ == '__main__':
        stu_manager()
    

    相关文章

      网友评论

          本文标题:学生管理系统(2)

          本文链接:https://www.haomeiwen.com/subject/wbcrohtx.html