admin管理员组

文章数量:1794759

Python:学习成绩管理系统

Python:学习成绩管理系统

目录

前言

一、需求分析

1、概念设计

2、流程图设计

3、主界面设计

二、功能实现

1、主函数定义

2、录入学生信

(1)功能实现

(2)输出界面

​3、删除学生信

(1)功能实现

(2)输出界面

4、修改学生信

(1)功能实现

(2)输出界面

5、查找学生信

(1)功能实现

(2)输出界面 

6、排序

(1)功能实现

(2)输出界面

7、统计学生总人数

(1)功能实现

(2)输出界面

8、显示所有学生信

(1)功能实现

(2)输出界面

三、项目打包 

四、总结


前言

对于此系统我所使用的是window11系统,所用Python解释器版本:python3.8,建议在pycharm进行

编写.基于对Python基础知识的掌握,对学生成绩管理系统进行全方位刨析,一步一步讲解,希望对

有需要的人有所帮助。

一、需求分析 1、概念设计

        针对学生们对自己成绩的查询便捷性,自主编写了一套简易的班级学习成绩管理系统。其中学生成绩管理系统主要包括录入学生信、查找学生信、删除学生信、修改学生信、排序学生信、统计学生总数、显示学生信,这几项功能。其中录入学生的信包括学号、姓名、C语言程序设计成绩、Python成绩、Java成绩、绩点;查询学生信分为按学号和按姓名查找两种;删除学生信是输入学号进行查找,查找到学生信之后,对学生信进行删除;修改学生信是输入学号后,查询到学生信之后,对学生信进行修改;排序学生信的排序方式可选择升序和降序,可选择按C语言程序设计成绩、Python成绩、Java成绩、绩点进行排序;统计学生总数 就是输出信管理系统中有几个学生的信。学生成绩管理系统,说难也难,说简单也简单,对于初学者的我们也算一项不小的挑战了,对于这个系统,它的功能等等很多,所以我们需要有一个大概的思路,来让我们更好的完成它。

2、流程分析

编号功能
0退出系统
1录入学生信insert()
2查找学生信search()
3删除学生信delete()
4修改学生信modity()
5排序sort()
6统计学生总人数total()
7显示所有学生信show()
3、主界面设计

大致样式如图所示:

 代码:

import os def main (): while True: menu() //调用菜单函数 choice=int(input('请选择:')) if choice in [0,1,2,3,4,5,6,7]: if choice==0: answer = input ('请确定要退出系统?y/n:') if answer == 'y' or answer == 'Y': print ('谢谢你的使用') break else: continue elif choice==1: insert() elif choice==2: search () elif choice==3: delete() elif choice==4: modify() elif choice==5: sort() elif choice==6: total() elif choice==7: show() else: print('请正确输入数字!') def menu(): print ('=========================学生成绩管理系统=========================') print ('----------------------------功能模块----------------------------') print ('\\t\\t\\t\\t\\t\\t1.录入学生信') print ('\\t\\t\\t\\t\\t\\t2.查找学生信') print ('\\t\\t\\t\\t\\t\\t3.删除学生信') print ('\\t\\t\\t\\t\\t\\t4.修改学生信') print ('\\t\\t\\t\\t\\t\\t5.排序') print ('\\t\\t\\t\\t\\t\\t6.统计学生总人数') print ('\\t\\t\\t\\t\\t\\t7.显示所有学生信') print ('\\t\\t\\t\\t\\t\\t0.退出系统') print ('-------------------------------------------------------------') if __name__ == '__main__': //程序开始运行 main() 二、功能实现 1、主函数定义

用户根据输入功能模块对应的数字编号进行操作,功能使用完成后再次返回主页面。用户如果输入数字0后,根据提示输入y则退出系统,否则继续返回主界面

def main (): while True: menu() choice=int(input('请选择:')) if choice in [0,1,2,3,4,5,6,7]: if choice==0: answer = input ('请确定要退出系统?y/n:') if answer == 'y' or answer == 'Y': print ('谢谢你的使用') break else: continue elif choice==1: insert() elif choice==2: search () elif choice==3: delete() elif choice==4: modify() elif choice==5: sort() elif choice==6: total() elif choice==7: show() else: print('请正确输入数字!') 2、录入学生信

录入学生信函数代码部分,在这个函数中实现的功能是录入学生信,包括学号、姓名、C语言成绩、Python成绩、Java成绩,并将其写入文件中,每一行为一个学生的信存储。

(1)功能实现 def insert(): //插入学生信功能 stu_lst = [] while True: no=int(input('请输入学号(例如1001):')) if not no: break name=input('请输入姓名:') if not name: break try: c = int (input ('请输入C语言成绩:')) python = int (input ('请输入Python的成绩:')) java = int (input ('请输入Java的成绩:')) except: print('输入无效,请重新输入!') continue student={'id':no,'name':name,'C语言':c,'Python':python,'Java':java} stu_lst.append(student) save (stu_lst) print ('信录入成功!') stu_lst.clear() choice=input('是否继续?y/n:') if choice=='y' or choice=='Y': continue else: break def save(lst): //存储列表数据 try: stu_txt=open(filename,'a',encoding='utf-8') except: stu_txt=open(filename,'w',encoding='utf-8') for item in lst: stu_txt.write(str(item)+'\\n') stu_txt.close() (2)输出界面 3、删除学生信

删除学生信函数代码部分,此函数主要功能是执行删除操作,输入学号进行查找,查找到学生信之后,对学生信进行删除。

(1)功能实现 def delete(): //删除学生信功能 while True: student_id=int(input('请输入学生的id:')) 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 files: for item in student_old: d = dict (eval (item)) if d['id']!=student_id: files.write(str(d)+'\\n') else: flag=True if flag: print (f'学号为{student_id}的学生信已删除!') else: print (f'没有找到id为{student_id}的学生信') else: print('无学生记录') break show() choice = input ('是否继续?y/n:') if choice == 'y': continue else: break def show(): //显示文本中的数据 student_lst=[] if os.path.exists(filename): with open(filename,'r',encoding='utf-8') as file: student=file.readlines() for item in student: student_lst.append(eval(item)) if student_lst: show_student(student_lst) else: print('暂未保存学生数据!') (2)输出界面

4、修改学生信

修改学生信函数代码部分,此函数的主要功能是对学生信进行修改,当输入学号后,查询到学生信之后,对学生各科成绩进行修改。

(1)功能实现 def modify(): show() if os.path.exists(filename): with open(filename,'r',encoding='utf-8') as file: student_lst=file.readlines() else: return student_id=int(input('请输入学生id:')) with open(filename,'w',encoding='utf-8') as file1: for item in student_lst: d = dict (eval (item)) if d ['id'] == student_id: print(f'已经找到id为{student_id}的学生') while True: try: d ['name'] = input ('请输入学生姓名:') d ['C语言'] = int (input ('请输入C语言成绩:')) d ['Python'] = int (input ('请输入Python的成绩:')) d ['Java'] = int (input ('请输入Java的成绩:')) except: print('输入的信有误,重新输入!!') else: break file1.write(str(d)+'\\n') print('修改信成功!!!!!!!') else: file1.write(str(d)+'\\n') switch = input ('是否要修改信?y/n:') if switch == 'y': modify() (2)输出界面

 

5、查找学生信

查询学生信函数代码部分,此函数主要功能是查询时分为按学号和按姓名查询两种,若查无此人则输出“l列表中无此学生信”。

(1)功能实现 def search(): //定义查找学生信函数 search_qurry=[] while True: id='' name='' if os.path.exists(filename): choice = int (input ('Id查询请按1,名字查询请按2:')) if choice == 1: id=int(input('请输入学生id:')) elif choice==2: name=input('请输入学生姓名:') else: print('输入有误,重新输入!') search() with open(filename,'r',encoding='utf-8') as file: student_lst=file.readlines() for item in student_lst: d = dict (eval (item)) if id!='': if d['id']==id: search_qurry.append(d) elif name!='': if d['name']==name: search_qurry.append(d) show_student(search_qurry) search_qurry.clear() a=input('是否继续查找?y/n:') if a=='y': continue else: break def show_student(lst): //显示学生成绩列表 if len(lst)==0: print('列表中无此学生的信') return student_title='{:^6}\\t{:^12}\\t{:^8}\\t{:^10}\\t{:^10}\\t{:^8}' print(student_title.format('ID','姓名','C语言成绩','Python成绩','Java成绩','绩点')) student_data='{:^6}\\t{:^12}\\t{:^8}\\t{:^8}\\t{:^8}\\t{:^8}' for item in lst: print(student_data.format(item.get('id'),item.get('name'),item.get('C语言'),item.get('Python'),item.get('Java'),round((int(item.get('C语言'))+int(item.get('Python'))+int(item.get('Java'))-180)/30,2))) print ('\\n') (2)输出界面 6、排序

排序学生信函数功能是对学生信进行排序,排序方式可选择升序和降序,排序条件可选择按英C语言、Python、Java成绩以及三门成绩折算的绩点进行排序。

(1)功能实现 def sort(): show() if os.path.exists(filename): with open(filename,'r',encoding='utf-8')as file: student_lst=file.readlines() student_new=[] for item in student_lst: d=dict(eval(item)) student_new.append(d) else: return switch=input('排序方式(0.升序,1.降序)') if switch=='0': switch_bool=False elif switch=='1': switch_bool=True else: print('输入错误!') sort() choice=input('请选择排序方式(1.C语言成绩,2.Python成绩,3.Java成绩,4.绩点)') if choice=='1': student_new.sort(key=lambda x:int(x['C语言']),reverse=switch_bool) elif choice=='2': student_new.sort (key=lambda x: int (x ['Python']), reverse=switch_bool) elif choice=='3': student_new.sort (key=lambda x: int (x ['Java']), reverse=switch_bool) elif choice=='4': student_new.sort (key=lambda x: round((int (x ['C语言'])+int (x ['Python'])+int (x ['Java'])),2), reverse=switch_bool) else: print('选择错误!重新输入') sort() show_student(student_new) (2)输出界面

7、统计学生总人数

统计学生总数函数代码部分,此函数主要是输出信管理系统存储数据文本文件中有几个学生的信。

(1)功能实现 def total(): if os.path.exists(filename): with open(filename,'r',encoding='utf-8') as file: students=file.readlines() if students: print('系统内有{}个学生'.format(len(students))) else: print('系统内无学生记录!') else: print('暂未保存学生信!') (2)输出界面

8、显示所有学生信

显示学生信函数代码部分,此函数是将文件存储的学生信全部显示出来(学号、姓名、C语言成绩、Python成绩、Java成绩、绩点)

(1)功能实现 def show_student(lst): if len(lst)==0: print('列表中无此学生的信') return student_title='{:^6}\\t{:^12}\\t{:^8}\\t{:^10}\\t{:^10}\\t{:^8}' print(student_title.format('ID','姓名','C语言成绩','Python成绩','Java成绩','绩点')) student_data='{:^6}\\t{:^12}\\t{:^8}\\t{:^8}\\t{:^8}\\t{:^8}' for item in lst: print(student_data.format(item.get('id'),item.get('name'), item.get('C语言'),item.get('Python'),item.get('Java'),round((int(item.get('C语言'))+int(item.get('Python'))+int(item.get('Java'))-180)/30,2))) print ('\\n') (2)输出界面 三、项目打包 

项目打包: 安装第三方模块:1,按win+R,输入cmd,打开cmd命令界面,

                                  在线安装模式:pip install Pyinstaller

                              2,执行打包操作      

pyinstaller -F E:\\PyhonProject\\Chap1\\system.py 四、总结

如果有特殊要求,代码复制后可自行更改。相信看完后对Python的知识有更进一步的认识,希望对初学者和小白有一定的基础。谢谢!

本文标签: 成绩管理系统Python