教你用Python实现简易版学生信息管理系统(含源码)

一、项目分析

1、首先定义一个存放基础学生信息列表

格式:list = [{学号:姓名,年龄:num,成绩:num },{……}]

student1 = [\\
            {1:\"jam\",\'age\':17,\'socer\':99},
            {2:\'kol\',\'age\':18,\'socer\':89},
            {3:\'avlir\',\'age\':19,\'socer\':100}]

2、先搭建框架(主函数main())

if __name__ == \'__main__\':
    while True:
        menu()
        key = input(\"输入选项数字 查询/输入 信息:\")
        if key == \'1\':
            lookup() #打印指定学生信息
        elif key == \'2\':
            append() #添加新的学生信息
        elif key == \'3\':
            delete() #删除指定学生信息
        elif key == \'4\':
            allinformation() #打印所有信息
        elif key == \'5\':
            revise() #修改指定学生信息
        elif key == \'6\':
            save() #保存信息
        elif key == \'0\':
            print(\"确定退出?\")
            exit = input(\"输入yes退出:\")
            if exit == \'yes\':
                break
            else:
                print(\"输入错误,返回 \")

3、搭建好框架之后,这时候发现需要一个菜单界面(menu())

#页面
def menu():
    print(\'-\'*30)
    print(\"欢迎来到学生管理系统\")
    print(\"1.输入学号查询成绩\")
    print(\"2.添加学生信息\")
    print(\"3.删除学生信息\")
    print(\"4.打印所有学生信息\")
    print(\"5.修改学生信息\")
    print(\"6.保存学生信息到指定文件\")
    print(\"0.退出系统\")
    print(\"-\"*30)

4、接下来就是查询指定学生信息(lookup())。

列表下标从0开始,所以这里在输入学号后面加了 “-1” 

#打印信息
def lookup():
    sid = int(input(\"输入查询学号:\"))-1 #学号
    if sid > len(student1)-1:
        print(\"输入错误,返回菜单\")
    else:
        print(student1[sid]) #输出信息
    input(\"按回车键继续\")

5、接下来是添加学生信息(append())

因为列表元素是用字典存储,所以这里用到字典的添加元素

#添加信息
def append():
    newsid = eval(input(\'输入新同学学号(从4开始):\'))
    newname = eval(input(\'输入新同学姓名:\'))
    newage = eval(input(\'输入新同学年龄:\'))
    newsocer = eval(input(\'输入新同学成绩:\'))
    newstudent1 = {}
    newstudent1[newsid] = newname #添加 学号、姓名
    newstudent1[\'age\'] = newage #添加年龄
    newstudent1[\'socer\'] = newsocer #添加成绩
    student1.append(newstudent1) #加入列表
    input(\"按回车键继续\")

6、能添加也就能删除(delete())

#删除信息
def delete():
    did = int(input(\"输入需要删除的成绩对应的学号:\"))-1
    del student1[did] #删除指定信息
    input(\"按回车键继续\")

7、然后就是输出所有信息(allinformation())

这里遍历输出列表元素时,用到了格式化字符串的函数 str.format()

##输出所有学生信息
def allinformation():
    print(\"所有信息如下:\")
    i = 1
    for show in student1:
        print(\"{}\".format(show)) #打印学生信息
        i += 1
    input(\"按回车键继续\")

8、现在还差修改信息(revise())

也是字典修改值得方法,通过键来修改对应值

##修改信息
def revise():
    resid = int(input(\"输入要修改的学生学号:\"))-1    
    r = input(\"要修改的对象(1.年龄;2.成绩;否则,都修改):\")
    if r == \'1\':
        newage = input(\"修改后的年龄\")
        student1[resid][\'age\'] = newage
    elif r == \'2\':
        newsocer = input(\"修改后的成绩\")
        student1[resid][\'socer\'] = newsocer
    else:
        newage = input(\"修改后的年龄\")
        newsocer = input(\"修改后的成绩\")
        student1[resid][\'socer\'] = newsocer
        student1[resid][\'age\'] = newage
    input(\"按回车键继续\")

9、差点忘了还得保存一下信息……(save())

我把它保存在与代码同一文件中student.txt文件中,引入路径时需要绝对路径

##保存学生信息
def save():
    f = open(\'student.txt\',\'w\') #打开文件
    f.write(str(student1)) #写入文件
    f.close() #关闭文件
    input(\"保存成功按回车键继续\")

然后,完整代码如下:

\'\'\'
Created on 2021年6月13日
学生信息系统
列表存储学生信息,通过字典——键进行学生信息访问
@author: 小天
\'\'\'
 
student1 = [\\
            {1:\"jam\",\'age\':17,\'socer\':99},
            {2:\'kol\',\'age\':18,\'socer\':89},
            {3:\'avlir\',\'age\':19,\'socer\':100}]
#页面
def menu():
    print(\'-\'*30)
    print(\"欢迎来到学生管理系统\")
    print(\"1.输入学号查询成绩\")
    print(\"2.添加学生信息\")
    print(\"3.删除学生信息\")
    print(\"4.打印所有学生信息\")
    print(\"5.修改学生信息\")
    print(\"6.保存学生信息到指定文件\")
    print(\"0.退出系统\")
    print(\"-\"*30)
#打印信息
def lookup():
    sid = int(input(\"输入查询学号:\"))-1 #学号
    if sid > len(student1)-1:
        print(\"输入错误,返回菜单\")
    else:
        print(student1[sid]) #输出信息
    input(\"按回车键继续\")
#添加信息
def append():
    newsid = eval(input(\'输入新同学学号(从4开始):\'))
    newname = eval(input(\'输入新同学姓名:\'))
    newage = eval(input(\'输入新同学年龄:\'))
    newsocer = eval(input(\'输入新同学成绩:\'))
    newstudent1 = {}
    newstudent1[newsid] = newname #添加 学号、姓名
    newstudent1[\'age\'] = newage #添加年龄
    newstudent1[\'socer\'] = newsocer #添加成绩
    student1.append(newstudent1) #加入列表
    input(\"按回车键继续\")
 
#删除信息
def delete():
    did = int(input(\"输入需要删除的成绩对应的学号:\"))-1
    del student1[did] #删除指定信息
    input(\"按回车键继续\")
 
##输出所有学生信息
def allinformation():
    print(\"所有信息如下:\")
    i = 1
    for show in student1:
        print(\"{}\".format(show)) #打印学生信息
        i += 1
    input(\"按回车键继续\")
 
##修改信息
def revise():
    resid = int(input(\"输入要修改的学生学号:\"))-1    
    r = input(\"要修改的对象(1.年龄;2.成绩;否则,都修改):\")
    if r == \'1\':
        newage = input(\"修改后的年龄\")
        student1[resid][\'age\'] = newage
    elif r == \'2\':
        newsocer = input(\"修改后的成绩\")
        student1[resid][\'socer\'] = newsocer
    else:
        newage = input(\"修改后的年龄\")
        newsocer = input(\"修改后的成绩\")
        student1[resid][\'socer\'] = newsocer
        student1[resid][\'age\'] = newage
    input(\"按回车键继续\")
    
##保存学生信息
def save():
    f = open(\'student.txt\',\'w\') #打开文件
    f.write(str(student1)) #写入文件
    f.close() #关闭文件
    input(\"保存成功按回车键继续\")
    
if __name__ == \'__main__\':
    while True:
        menu()
        key = input(\"输入选项数字 查询/输入 信息:\")
        if key == \'1\':
            lookup() #打印指定学生信息
        elif key == \'2\':
            append() #添加新的学生信息
        elif key == \'3\':
            delete() #删除指定学生信息
        elif key == \'4\':
            allinformation() #打印所有信息
        elif key == \'5\':
            revise() #修改指定学生信息
        elif key == \'6\':
            save() #保存信息
        elif key == \'0\':
            print(\"确定退出?\")
            exit = input(\"输入yes退出:\")
            if exit == \'yes\':
                break
            else:
                print(\"输入错误,返回 \")

输出示例:

——————————
欢迎来到学生管理系统
1.输入学号查询成绩
2.添加学生信息
3.删除学生信息
4.打印所有学生信息
5.修改学生信息
6.保存学生信息到指定文件
0.退出系统
——————————
输入选项数字 查询/输入 信息:2
输入新同学学号(从4开始):4
输入新同学姓名:\’dfg\’
输入新同学年龄:17
输入新同学成绩:78
按回车键继续
——————————
欢迎来到学生管理系统
1.输入学号查询成绩
2.添加学生信息
3.删除学生信息
4.打印所有学生信息
5.修改学生信息
6.保存学生信息到指定文件
0.退出系统
——————————
输入选项数字 查询/输入 信息:6
按回车键继续
——————————
欢迎来到学生管理系统
1.输入学号查询成绩
2.添加学生信息
3.删除学生信息
4.打印所有学生信息
5.修改学生信息
6.保存学生信息到指定文件
0.退出系统
——————————
输入选项数字 查询/输入 信息:4
所有信息如下:
{1: \’jam\’, \’age\’: 17, \’socer\’: 99}
{2: \’kol\’, \’age\’: 18, \’socer\’: 89}
{3: \’avlir\’, \’age\’: 19, \’socer\’: 100}
{4: \’dfg\’, \’age\’: 17, \’socer\’: 78}
按回车键继续
——————————
欢迎来到学生管理系统
1.输入学号查询成绩
2.添加学生信息
3.删除学生信息
4.打印所有学生信息
5.修改学生信息
6.保存学生信息到指定文件
0.退出系统
——————————
输入选项数字 查询/输入 信息:3
输入需要删除的成绩对应的学号:4
按回车键继续
——————————
欢迎来到学生管理系统
1.输入学号查询成绩
2.添加学生信息
3.删除学生信息
4.打印所有学生信息
5.修改学生信息
6.保存学生信息到指定文件
0.退出系统
——————————
输入选项数字 查询/输入 信息:6
按回车键继续
——————————
欢迎来到学生管理系统
1.输入学号查询成绩
2.添加学生信息
3.删除学生信息
4.打印所有学生信息
5.修改学生信息
6.保存学生信息到指定文件
0.退出系统
——————————
输入选项数字 查询/输入 信息:0
确定退出?
输入yes退出:yes

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容