学生信息管理系统

代码后有注释

在每个 函数的前面 我都有写明函数的作用

因为不知道有没有需要这个,所以并没有在做的时候截一些图,若有要一些讲解的图,请大家留言,我会重新在这篇文章之上添加一些子程序的运行以及讲解

若该文章沉默下去了,那么小编也不会浪费时间去写讲解,因为已经有了注释

最后,如果有什么不懂的,留言告诉我,我会第一时间去处理

'''
程序名:学生信息管理系统
作者:Sherry
时间:2021.11.27
ctrl shift + / -
展开和关闭代码块
'''

# 打开文件之后将 里面的每一行 以列表的形式输出
def get_all_students():
    students = []  # 定义学生空列表

    f = open('D:\Python_Datebase\学生信息管理\学生信息表.txt')  # 使用绝对位置打开文件

    for line in f:  # 让 line   是 f 里面的值
        line = line.replace('\n', '')  # 因为在我们输出的时候会看见每一行后面都有一个 \n 这个是因为在文档中换行了所以会有\n,
                                                                            # 用replace 来消除\n 并使用 '' 空值替换
        student = line.split(' ')  # 这里使 每个以 ‘ ’ 为间隔的值,组成一个列表
        students.append(student)  # 组成一个列表之后我们放入 students 这个大列表
    f.close()
    return students

#按学号查询
def query_student_by_id():
    id = input('Please Input Student ID :')#这里的大部分代码和修改的差不多  在那里我有注释
    students = get_all_students()
    for i in range(len(students)):
        if id == students[i][0]:
            print(students[i])
            break
        else:
            print('haven\'t find student id is {}'.format(id))
            break

#按姓名查找id
def query_student_by_name():
    name = input('Please Input Student name :')
    students = get_all_students()
    for i in range(len(students)):
        if name == students[i][1]:
            print(students[i])
            break
        else:
            print('haven\'t find student name is {}'.format(name))
            break

#按姓名删除列表 (基本上不赞成用姓名,怕重名)
def delete_student_by_name():
    name = input('Please Input You Want To Delete Student name :')
    students = get_all_students()
    for i in range(len(students)):
        if name == students[i][1]:
            del students[i]
            f = open('D:\Python_Datebase\学生信息管理\学生信息表.txt', 'w')
            for i in range(len(students)):
                student = ' '.join(students[i]) + '\n'
                f.write(student)
            f.close()
            print('Delete Student Record Succeed!')
            break
        else:
            print('haven\'t find student name is {}'.format(name))
            break

#按学号删除
def delete_student_by_id():
    id = input('Please Input You Want To Delete Student ID :')
    students = get_all_students()
    for i in range(len(students)):
        if id == students[i][0]:
            del students[i]
            f = open('D:\Python_Datebase\学生信息管理\学生信息表.txt', 'w')
            for i in range(len(students)):
                student = ' '.join(students[i]) + '\n'
                f.write(student)
            f.close()
            print('Delete Student Record Succeed!')
            break
        else:
            print('haven\'t find student name is {}'.format(id))
            break

#增加一个学生并添加在最后面
def add_student():
    students = get_all_students()
    id = str(int(input('学号:')))
    name = input('姓名:')
    sex = input('性别:')
    age = str(int(input('年龄:')))
    grade = input('班级:')
    major = input('专业:')
    college = input('学院:')
    contact = str(int(input('联系方式:')))
    students.append([id, name, sex, age, grade, major, college, contact])

    f = open('D:\Python_Datebase\学生信息管理\学生信息表.txt', 'w')
    for i in range(len(students)):
        student = ' '.join(students[i]) + '\n'
        f.write(student)
    f.close()
    print('Add Student Record Succeed!')

#显示所有学生
def display_all_students():
    students = get_all_students()
    for i in range(len(students)):
        for j in range(len(students[i])):
            print(students[i][j], end='\t')
        print()

#查询的菜单
def query_student():
    while True:
        print('查询学生记录')
        print('================')
        print('1、按学号查询学生记录')
        print('2、按姓名查询学生记录')
        print('3、查询全部学生记录')
        print('4、返回上级菜单')
        print('=================')
        mc3 = int(input('请输入菜单号:'))
        if mc3 == 1:
            query_student_by_id()
        elif mc3 == 2:
            query_student_by_name()
        elif mc3 == 3:
            display_all_students()
        else:
            break

#修改学生记录
def modify_student_by_id():
    id = input('input student Id:')
    students = get_all_students()   #调用函数返回值
    for i in range(len(students)):  #先计算有多少个列表
        if id == students[i][0]:    #输入的id 与列表内是否相等
            id = students[i][0]     #让  id 这个唯一索引 不变
            del students[i]     #条件若成立那么我们就删除查询到的‘id’所在的列表
            name = input('姓名:')
            sex = input('性别:')
            age = str(int(input('年龄:')))
            grade = input('班级:')
            major = input('专业:')
            college = input('学院:')
            contact = str(int(input('联系方式:')))
            students.insert(i, [id, name, sex, age, grade, major, college, contact]) #这里我们采用了insert 来重新插入
                                                                                        # 在这里i因为循环的得到的值是0,所以在一开始插入

            f = open('D:\Python_Datebase\学生信息管理\学生信息表.txt', 'r+')       #这里及一下 我们在增加学生记录时已提及。
            for i in range(len(students)):
                student = ' '.join(students[i]) + '\n'
                f.write(student)
            f.close()
            print('Modify Student Record Succeed!')
        elif id != students[i][0]:
            continue
        else:
            print('Have\'n find id is {} student'.format(id))
            break

#删除的菜单
def delete_student():
    print('============================')
    print('1、Delete student by ID')
    print('2、Delete student by name')
    print('3、Return last menu')
    print('============================')
    mc4 = int(input('Input menu number:'))
    if mc4 == 1:
        delete_student_by_id()
    elif mc4 == 2:
        delete_student_by_name()
    elif mc4 == 3:
        login()

#登入后的主系统
def login():
    username = input('请输入用户名:')
    password = input('请输入密码:')
    if username == 'admin' and password == '111111':
        while True:
            print('学生管理系统')
            print('================')
            print('1、增加学生记录')
            print('2、查询学生记录')
            print('3、修改学生记录')
            print('4、删除学生记录')
            print('5、返回上级菜单')
            print('=================')
            mc2 = int(input('输入菜单号:'))
            if mc2 == 1:
                add_student()
            elif mc2 == 2:
                query_student()
            elif mc2 == 3:
                modify_student_by_id()
            elif mc2 == 4:
                delete_student()
            else:
                break
    else:
        print('账号或密码错误!')

#主程序
while True:
    print('登录系统')
    print('=========')
    print('1、登录')
    print('2、退出')
    print('=========')
    mc1 = int(input('输入菜单号:'))
    if mc1 == 1:
        login()
    elif mc1 == 2:
        print('感谢使用!')
        break
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猫腻余腥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值