我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python程序设计之 —— 简易学生信息管理系统

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python程序设计之 —— 简易学生信息管理系统

大家好,我是 Enovo飞鱼,今天分享一个 Python程序设计之 —— 简易学生信息管理系统 ,小白或者正在学习Python的小伙伴推荐阅读,加油💪。

b3fbfe3ea4bd456888f880daf73703e5.png

目录

前言 

Python 简介

Python 特点

一、项目来源及背景 

二、功能设计

三、步骤分析

四、需求实现

五、具体代码

功能界面部分:

主要部分代码:

4.1 添加学生信息

4.2 删除学生信息

4.3 查询学生信息 

4.4 统计学生总人数

4.5 显示所有学生信息

排序 (以总成绩分数)

五、运行效果

六、完整代码

获取源码?私信?关注?点赞?收藏?


 

Java程序设计之(一)MySQL的交互-学生信息成绩管理系统:

http://t.csdn.cn/JKoQIhttp://t.csdn.cn/JKoQI


前言 

Python 简介

Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。

Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。

  • Python 是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。

  • Python 是交互式语言: 这意味着,您可以在一个 Python 提示符 >>> 后直接执行代码。

  • Python 是面向对象语言: 这意味着Python支持面向对象的风格或代码封装在对象的编程技术。

  • Python 是初学者的语言:Python 对初级程序员而言,是一种伟大的语言,它支持广泛的应用程序开发,从简单的文字处理到 WWW 浏览器再到游戏。

Python 特点

  • 1.易于学习:Python有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简单。

  • 2.易于阅读:Python代码定义的更清晰。

  • 3.易于维护:Python的成功在于它的源代码是相当容易维护的。

  • 4.一个广泛的标准库:Python的最大的优势之一是丰富的库,跨平台的,在UNIX,Windows和Macintosh兼容很好。

  • 5.互动模式:互动模式的支持,您可以从终端输入执行代码并获得结果的语言,互动的测试和调试代码片断。

  • 6.可移植:基于其开放源代码的特性,Python已经被移植(也就是使其工作)到许多平台。

  • 7.可扩展:如果你需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法,你可以使用C或C++完成那部分程序,然后从你的Python程序中调用。

  • 8.数据库:Python提供所有主要的商业数据库的接口。

  • 9.GUI编程:Python支持GUI可以创建和移植到许多系统调用。

  • 10.可嵌入: 你可以将Python嵌入到C/C++程序,让你的程序的用户获得"脚本化"的能力。


一、项目来源及背景 

学生信息管理系统是学生在每学年记录学生升学,转学,退学等的主要应用,具有较强的实用性,贴近实际,便于完成系统的分析与设计,适用于多用户。

 


二、功能设计

实现一个学生信息的管理系统:主要功能有:

  1. 添加学生信息

  2. 删除学生信息

  3. 查询学生信息

  4. 统计学生总人数

  5. 显示所有学生信息

  6. 排序(以总成绩分数)

  7. 退出学生信息管理系统

 


三、步骤分析

  1. 显示功能界面

  2. 用户输入功能序号

  3. 对不同序号的功能实现具体函数

                3.1 定义函数

                3.2 调用函数

 


四、需求实现

  1. 显示功能界面 menu()

  2. 用户输入程序指令 choice = int(input('请输入您的程序指令:'))

  3. 按照用户输入的功能序号,执行不同的功能(函数)

  4. 添加学生信息 insert()

  5. 删除学生信息 delete()

  6. 查询学生信息 search()

  7. 统计学生总人数 total()

  8. 显示所以学生信息 show()

  9. 排序(以总成绩分数)sort()

  10. 退出学生信息管理系统  if choice == 0:

 


五、具体代码

系统功能进行循环使用,直到用户输入0,退出系统。

功能界面部分:

def menu():    print('==============================学生信息管理系统==============================')    print('︽︽︽︽︽︽︽︽︽︽︽︽︽︽︽︽︽功能菜单︽︽︽︽︽︽︽︽︽︽︽︽︽︽︽︽')    print("*" * 74)    print("******", " " * 60, "******")    print("******\t    1.添加学生信息", " " * 18, "4.统计学生总人数\t\t    ******")    print("******\t    2.删除学生信息", " " * 18, "5.显示所有学生信息\t\t    ******")    print("******\t    3.查询学生信息", " " * 18, "6.排序(以总成绩分数) \t    ******")    print("******\t    0.退出学生信息管理系统", " " * 18, "\t\t\t\t\t******")    print("******", " " * 60, "******")    print("*" * 74)    print('︾︾︾︾︾︾︾︾︾︾︾︾︾︾︾︾︾︾︾︾︾︾︾︾︾︾︾︾︾︾︾︾︾︾︾︾︾')def save(lst):    stu_txt = open(fileName, 'a', encoding='utf-8')    for item in lst:        stu_txt.write(str(item) + '\n')    stu_txt.close()

主要部分代码:

# 定义函数main()def main():    while True:        menu()        choice = int(input('请输入您的程序指令:'))        if choice in [0, 1, 2, 3, 4, 5, 6]:            if choice == 0:                print("您确定要退出吗?yes/no")                answer = input()                if answer == 'yes':                    print('感谢您的使用!!!')                    break  # 终止                else:                    continue  # 中止            elif choice == 1:                insert()            elif choice == 2:                delete()            elif choice == 3:                search()            elif choice == 4:                total()            elif choice == 5:                show()            elif choice == 6:                sort()        else:            print('输入的指令不在范围内,请重新输入!!!')

那么根据上面的代码,需要实现具体的功能函数,主要功能代码部分如下:


4.1 添加学生信息

# 录入学生信息def insert():    global phone    student_list = []    while True:        id = input('请输入学号: ')        if not id:            break        name = input('请输入姓名: ')        if not name:            break        sex = input('请输入性别: ')        if not sex:            break        # phone = input('请输入手机号: ')        # if not phone:        count = 0        for i in range(1, 4):            phone = input("请输入你的手机号: ")            # 利用正则表达式进行限定            tel = re.match(r"^1[3456789]\d{9}$", phone)            if tel:                print("输入成功!")                break            if tel != phone:                count += 1            if (count == 3):                print("录入失败,请30秒后重试!")            if (count != 3):                print("录入错误,请核对你的手机号!")        try:            # 智育分满分70分,德育分满分20分,体育分满分10分            zyf = int(input('请输入你的智育分:'))            dyf = int(input('请输入你的德育分:'))            tyf = int(input('请输入你的体育分:'))        except:            print('请您输入数字成绩!')            continue        # 将录入的学生信息保存到字典中        student = {'id': id, 'name': name, 'sex': sex, 'phone': phone, 'zyf': zyf, 'dyf': dyf, 'tyf': tyf}        # 将学生信息添加到列表中        # 可删!!!!!        student_list.append(student)        answer = input('是否继续添加?yes/no\n')        if answer == 'yes':            continue        else:            break    # 保存学生信息    save(student_list)  # 封装    print('学生信息录入完毕!!!')

 

4.2 删除学生信息

# 删除学生信息def delete():    while True:        student_id = input('请输入要删除学生的学号:')        if student_id != '':            if os.path.exists(fileName):                with open(fileName, 'r', encoding='utf-8') as file:                    student_old = file.readlines()            else:                student_old = []            flag = False  # 标记是否删除            if student_old:                with open(fileName, 'w', encoding='utf-8') as wfile:                    d = {}                    for item in student_old:                        d = dict(eval(item))  # 将字符串转换为字典                        if d['id'] != student_id:wfile.write(str(d) + '\n')                        else:flag = True                    if flag:                        print(f'学号为{student_id}的学生信息已经删除')                    else:                        print(f'学生表中没有找到学号为{student_id}的学生')            else:                print('学生表已中无任何学生个人信息')                break            show()  # 重新显示所有学生信息            answer = input('是否继续删除?yes/no\n')            if answer == 'yes':                continue            else:                break    print('删除学生信息已结束,请你进行下一步操作!!!')

 

4.3 查询学生信息 

# 查询学生信息def search():    while True:        stu_query = []        id = ''        # 判断文件是否存在        if os.path.exists(fileName):            # if的使用            if id == '':                id = input('请输入要查找的学生学号:')            else:                print('您的输入有误,请重新输入!')                continue            # 如果文件存在,并且用户输入了正确的查询标号,则打开文件            with open(fileName, 'r', encoding='utf-8') as rfile:                students = rfile.readlines()            # 转换为字典类型            for item in students:                d = dict(eval(item))                if id != '':                    if id == d['id']:                        stu_query.append(d)  # 追加            # 显示查询结果            show_student(stu_query)            # 是否继续查询其他学生信息            answer = input('还要查询其他学生吗?yes/no\n')            if answer == 'yes':                continue            else:                break        else:            print('学生信息不存在!')            return    print('学生信息查询结束,请进行下一步操作!!!')

 

4.4 统计学生总人数

# 统计学生总人数def total():    # 判断文件是否存在,如果存在则打开文件,读取信息    if os.path.exists(fileName):        with open(fileName, 'r', encoding='utf-8') as rfile:            students = rfile.readlines()            # 判断读取到的学生信息是否为空            if students:                print('一共有{}名学生'.format(len(students)))            else:                print('学生系统中还没有录入学生信息!')    else:        print('学生信息不存在!')        return    print('学生总人数统计完毕,请进行下一步操作!!!')

 

4.5 显示所有学生信息

# 显示所有学生信息def show():    student_list = []    # 判断文件是否存在,如果存在则打开文件,读取信息    if os.path.exists(fileName):        with open(fileName, 'r', encoding='utf-8') as rfile:            students = rfile.readlines()            # 判断读取到的学生信息是否为空            if students:                for item in students:                    student_list.append(eval(item))                # 展示学生信息                show_student(student_list)            else:                print('学生文件中还没有录入学生信息!')    else:        print('学生文件不存在!')        return    print('学生信息已成功显示,请你进行下一步操作!!!')

 

排序 (以总成绩分数)

# 对总学生成绩进行排序def sort():    # 判断文件是否存在,如果存在则打开文件,读取信息    if os.path.exists(fileName):        with open(fileName, 'r', encoding='utf-8') as rfile:            students_list = rfile.readlines()        students_new = []        # 判断读取到的学生信息是否为空        if students_list:            # 将所有的item加入到students_new中            for item in students_list:                d = dict(eval(item))                students_new.append(d)                # 利用匿名函数与sort方法进行排序                # True为降序,False升序                students_new.sort(key=lambda x: int(x['zyf']) + int(x['dyf']) + int(x['tyf']),      reverse=True)            # 将排序后的成绩进行输出            show_student(students_new)    print('学生信息排序完成并成功显示,请你进行下一步操作!!!')

 


五、运行效果

31d53f439ef8442087eecd68481d94f1.png

8a3a3dda14d84d1f9f34cc8a2d1c481c.png

如上图所示可以看到我们的运行效果,及示例,并且我们输入的信息会存入一个文本文件,那怎么实现的呢?请看下方代码

# 建立一个名为student.text的文本用于保存文件fileName = 'student.txt'

 


六、完整代码

# 导入模块import osimport re# 建立一个名为student.text的文本用于保存文件fileName = 'student.txt'# 定义函数main()def main():    while True:        menu()        choice = int(input('请输入您的程序指令:'))        if choice in [0, 1, 2, 3, 4, 5, 6]:            if choice == 0:                print("您确定要退出吗?yes/no")                answer = input()                if answer == 'yes':                    print('感谢您的使用!!!')                    break  # 终止                else:                    continue  # 中止            elif choice == 1:                insert()            elif choice == 2:                delete()            elif choice == 3:                search()            elif choice == 4:                total()            elif choice == 5:                show()            elif choice == 6:                sort()        else:            print('输入的指令不在范围内,请重新输入!!!')def menu():    print('==============================学生信息管理系统==============================')    print('︽︽︽︽︽︽︽︽︽︽︽︽︽︽︽︽︽功能菜单︽︽︽︽︽︽︽︽︽︽︽︽︽︽︽︽')    print("*" * 74)    print("******", " " * 60, "******")    print("******\t    1.添加学生信息", " " * 18, "4.统计学生总人数\t\t    ******")    print("******\t    2.删除学生信息", " " * 18, "5.显示所有学生信息\t\t    ******")    print("******\t    3.查询学生信息", " " * 18, "6.排序(以总成绩分数) \t    ******")    print("******\t    0.退出学生信息管理系统", " " * 18, "\t\t\t\t\t******")    print("******", " " * 60, "******")    print("*" * 74)    print('︾︾︾︾︾︾︾︾︾︾︾︾︾︾︾︾︾︾︾︾︾︾︾︾︾︾︾︾︾︾︾︾︾︾︾︾︾')def save(lst):    stu_txt = open(fileName, 'a', encoding='utf-8')    for item in lst:        stu_txt.write(str(item) + '\n')    stu_txt.close()# 录入学生信息def insert():    global phone    student_list = []    while True:        id = input('请输入学号: ')        if not id:            break        name = input('请输入姓名: ')        if not name:            break        sex = input('请输入性别: ')        if not sex:            break        # phone = input('请输入手机号: ')        # if not phone:        count = 0        for i in range(1, 4):            phone = input("请输入你的手机号: ")            # 利用正则表达式进行限定            tel = re.match(r"^1[3456789]\d{9}$", phone)            if tel:                print("输入成功!")                break            if tel != phone:                count += 1            if (count == 3):                print("录入失败,请30秒后重试!")            if (count != 3):                print("录入错误,请核对你的手机号!")        try:            # 智育分满分70分,德育分满分20分,体育分满分10分            zyf = int(input('请输入你的智育分:'))            dyf = int(input('请输入你的德育分:'))            tyf = int(input('请输入你的体育分:'))        except:            print('请您输入数字成绩!')            continue        # 将录入的学生信息保存到字典中        student = {'id': id, 'name': name, 'sex': sex, 'phone': phone, 'zyf': zyf, 'dyf': dyf, 'tyf': tyf}        # 将学生信息添加到列表中        # 可删!!!!!        student_list.append(student)        answer = input('是否继续添加?yes/no\n')        if answer == 'yes':            continue        else:            break    # 保存学生信息    save(student_list)  # 封装    print('学生信息录入完毕!!!')def show_student(lst):    # 传过来空列表    if len(lst) == 0:        print('没有查找到该生信息!')        return    # 定义标题显示格式    format_title = '{:^5}\t{:^23}{:^5}\t{:^11}\t{:^12}\t{:^10}\t{:^10}\t{:^6}\t{:^6}\t'    print(format_title.format('学号', '姓名', '性别', '手机号', '智育分', '德育分', '体育分', '总成绩', '分数等级'))    # 定义内容的显示格式    format_data = '{:^6}\t{:^6}\t{:^6}\t{:^31}{:^3}\t{:^10}\t{:^9}\t{:^12}\t{:^12}\t'    for item in lst:        sum = int(item['zyf']) + int(item['dyf']) + int(item['tyf'])        # grade等级的使用        grade = ''        if sum >= 85:            grade = 'A'        if 75 <= sum < 85:            grade = 'B'        if 65 <= sum < 75:            grade = 'C'        if 60 <= sum < 65:            grade = 'D'        if sum < 60:            grade = 'error'        # sum,grade的输出格式不同        # format_data.format(sum,grade))        print(format_data.format(item['id'], item['name'], item['sex'], item['phone'],     item['zyf'], item['dyf'], item['tyf'],     sum, grade))        print('全部学生信息显示完毕!!!')# 查询学生信息def search():    while True:        stu_query = []        id = ''        # 判断文件是否存在        if os.path.exists(fileName):            # if的使用            if id == '':                id = input('请输入要查找的学生学号:')            else:                print('您的输入有误,请重新输入!')                continue            # 如果文件存在,并且用户输入了正确的查询标号,则打开文件            with open(fileName, 'r', encoding='utf-8') as rfile:                students = rfile.readlines()            # 转换为字典类型            for item in students:                d = dict(eval(item))                if id != '':                    if id == d['id']:                        stu_query.append(d)  # 追加            # 显示查询结果            show_student(stu_query)            # 是否继续查询其他学生信息            answer = input('还要查询其他学生吗?yes/no\n')            if answer == 'yes':                continue            else:                break        else:            print('学生信息不存在!')            return    print('学生信息查询结束,请进行下一步操作!!!')# 删除学生信息def delete():    while True:        student_id = input('请输入要删除学生的学号:')        if student_id != '':            if os.path.exists(fileName):                with open(fileName, 'r', encoding='utf-8') as file:                    student_old = file.readlines()            else:                student_old = []            flag = False  # 标记是否删除            if student_old:                with open(fileName, 'w', encoding='utf-8') as wfile:                    d = {}                    for item in student_old:                        d = dict(eval(item))  # 将字符串转换为字典                        if d['id'] != student_id:wfile.write(str(d) + '\n')                        else:flag = True                    if flag:                        print(f'学号为{student_id}的学生信息已经删除')                    else:                        print(f'学生表中没有找到学号为{student_id}的学生')            else:                print('学生表已中无任何学生个人信息')                break            show()  # 重新显示所有学生信息            answer = input('是否继续删除?yes/no\n')            if answer == 'yes':                continue            else:                break    print('删除学生信息已结束,请你进行下一步操作!!!')# 统计学生总人数def total():    # 判断文件是否存在,如果存在则打开文件,读取信息    if os.path.exists(fileName):        with open(fileName, 'r', encoding='utf-8') as rfile:            students = rfile.readlines()            # 判断读取到的学生信息是否为空            if students:                print('一共有{}名学生'.format(len(students)))            else:                print('学生系统中还没有录入学生信息!')    else:        print('学生信息不存在!')        return    print('学生总人数统计完毕,请进行下一步操作!!!')# 显示所有学生信息def show():    student_list = []    # 判断文件是否存在,如果存在则打开文件,读取信息    if os.path.exists(fileName):        with open(fileName, 'r', encoding='utf-8') as rfile:            students = rfile.readlines()            # 判断读取到的学生信息是否为空            if students:                for item in students:                    student_list.append(eval(item))                # 展示学生信息                show_student(student_list)            else:                print('学生文件中还没有录入学生信息!')    else:        print('学生文件不存在!')        return    print('学生信息已成功显示,请你进行下一步操作!!!')# 对总学生成绩进行排序def sort():    # 判断文件是否存在,如果存在则打开文件,读取信息    if os.path.exists(fileName):        with open(fileName, 'r', encoding='utf-8') as rfile:            students_list = rfile.readlines()        students_new = []        # 判断读取到的学生信息是否为空        if students_list:            # 将所有的item加入到students_new中            for item in students_list:                d = dict(eval(item))                students_new.append(d)                # 利用匿名函数与sort方法进行排序                # True为降序,False升序                students_new.sort(key=lambda x: int(x['zyf']) + int(x['dyf']) + int(x['tyf']),      reverse=True)            # 将排序后的成绩进行输出            show_student(students_new)    print('学生信息排序完成并成功显示,请你进行下一步操作!!!')if __name__ == '__main__':    main()

 


上述内容就是我们,Python学生信息管理系统 的全部内容了,希望可以得到大家的支持!

以上就是课程实践作业—— 学生信息管理系统 的全部程序设计分析及相关代码,供大家学习使用,希望可以帮助到大家!如果各位有疑问的话,欢迎私信,发现错误,也希望可以指出,共同改进学习,加油💪!


 

获取源码?私信?关注?点赞?收藏?

  👍+✏️+⭐️+🙇‍

有需要源码的小伙伴可以 关注下方微信公众号 " Enovo开发工厂 ",回复 关键词 " python-m1 " 

 

来源地址:https://blog.csdn.net/m0_63244368/article/details/128820177

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python程序设计之 —— 简易学生信息管理系统

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

python如何实现简易的学生信息管理系统

本篇内容主要讲解“python如何实现简易的学生信息管理系统”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python如何实现简易的学生信息管理系统”吧!一、系统功能1.录入学生信息2.查找学生
2023-07-06

Java学生信息管理系统设计(数据库版)

本文实例为大家分享了数据库版的Java学生信息管理系统,供大家参考,具体内容如下package Student_system; import java.awt.*; import java.awt.event.*; import jav
2023-05-30

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录