Bagaimana untuk melaksanakan sistem pengurusan maklumat pelajar yang mudah dalam python

WBOY
Lepaskan: 2023-05-12 09:43:05
ke hadapan
1373 orang telah melayarinya

1. Fungsi sistem

1 Masukkan maklumat pelajar

2. Cari maklumat pelajar

3 Maklumat

5 Isih keputusan

6 Kira jumlah bilangan pelajar

7. Paparkan semua maklumat pelajar

0 >

2. Persekitaran pembangunan sistem

1 Sistem pengendalian: win7

2

3. Kod pelaksanaan

import os filename='students.txt' def main(): while True: menum() 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 #退出while循环并退出系统 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() #显示所有学生信息 def insert(): student_list=[] #用于存储学生信息,列表每个元素是字典。 while True: id=input('请输入学生ID:') if not id: break name=input('请输入学生姓名:') if not name: break try: Englist=int(input('请输入英语成绩:')) Python=int(input('请输入Python成绩:')) Java=int(input('请输入Java成绩:')) except: print('输入无效,不是整数类型,请重新输入!') continue #将录入的学生信息保存到字典中 student={'id':id,'name':name,'English':Englist,'Python':Python,'Java':Java} #将学生信息添加到列表中 student_list.append(student) answer=input('是否继续添加?(y/n)') if answer=='y' or answer=='Y': continue else: break #将学生信息保存在文件中 save(student_list) print('学生信息录入完毕!') pass def search(): student_query=[] #用列表存储,防止有同名学生。 while True: id='' name='' if os.path.exists(filename): mode=input('按ID查找请输入1,按姓名查找请输入2:') if mode == '1': id=input('请输入要查找的学生ID:') elif mode == '2': name=input('请输入要查找的学生姓名:') else: print('您的输入有误,请重新输入!') search() with open(filename,'r',encoding='utf-8') as rfile: student=rfile.readlines() for item in student: d=dict(eval(item)) if id!='': if d['id']==id: student_query.append(d) elif name!='': if d['name']==name: student_query.append(d) #显示查询结果 show_student(student_query) student_query.clear() #清空列表 answer=input('是否要继续查询?(y/n)') if answer=='y' or answer=='Y': continue else: break else: print('暂未保存学生信息。') return pass def delete(): while True: student_id=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 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'id为{student_id}的学生信息已被删除') else: print(f'没有找到ID为{student_id}的学生信息') else: print('无此学生信息') break show() #删完之后重新显示所有学生信息 answer=input('是否继续删除?(y/n)') if answer=='y' or answer=='Y': continue else: break pass def modify(): show() if os.path.exists(filename): #判断文件是否存在 with open(filename,'r',encoding='utf-8') as rfile: student_old=rfile.readlines() else: return #结束函数 student_id=input('请输入要修改信息的学生ID:') with open(filename,'w',encoding='utf-8') as wfile: for item in student_old: d=dict(eval(item)) if d['id']==student_id: print('找到此学生信息,可以修改。') while True: try: d['name']=input('请输入学生姓名:') d['English']=input('请输入English成绩:') d['Python']=input('请输入Python成绩:') d['Java']=input('请输入Java成绩:') except: print('您的输入有误请重新输入!') else: break wfile.write(str(d)+'\n') print('修改成功!') else: wfile.write(str(d)+'\n') answer=input('是否继续修改其他学生信息?(y/n)') if answer=='y': modify() pass def sort(): show() if os.path.exists(filename): with open(filename,'r',encoding='utf-8') as rfile: student_list=rfile.readlines() student_new=[] for item in student_list: d=dict(eval(item)) student_new.append(d) else: return asc_or_desc=input('请选择(0:升序,1:降序):') if asc_or_desc=='0': asc_or_desc_bool=False elif asc_or_desc=='1': asc_or_desc_bool=True else: print('您的输入有误,请重新输入!') sort() mode=input('请选择排序方式(0:按总成绩排序,1:按English成绩排序,2:按Python成绩排序,3:按Java成绩排序)') if mode=='0': student_new.sort(key=lambda x: int(x['English'])+int(x['Python'])+int(x['Java']), reverse=asc_or_desc_bool) elif mode=='1': student_new.sort(key=lambda x:int(x['English']),reverse=asc_or_desc_bool) elif mode=='2': student_new.sort(key=lambda x: int(x['Python']), reverse=asc_or_desc_bool) elif mode=='3': student_new.sort(key=lambda x: int(x['Java']), reverse=asc_or_desc_bool) else: print('您的输入有误,请重新输入!') sort() show_student(student_new) pass def total(): if os.path.exists(filename): with open(filename,'r',encoding='utf-8') as rfile: students=rfile.readlines() if students: print(f'一共有{len(students)}名学生') else: print('还没有录入学生信息!') else: print('暂未保存学生信息......') pass def show(): student_lst=[] if os.path.exists(filename): with open(filename,'r',encoding='utf-8') as rfile: students=rfile.readlines() for item in students: student_lst.append(eval(item)) if student_lst: show_student(student_lst) else: print('暂未保存过数据!') pass def save(stu_list): try: stu_txt=open(filename,'a',encoding='utf=8') except: stu_txt=open(filename,'w',encoding='utf-8') for item in stu_list: stu_txt.write(str(item)+'\n') stu_txt.close() def show_student(lst): if len(lst)==0: print('没有查到学生信息,无数据显示!') return #定义标题显示格式 format_title='{:^6}\t{:^12}\t{:^10}\t{:^10}\t{:^10}\t{:^8}' print(format_title.format('ID','姓名','English成绩','Python成绩','Java成绩','总成绩')) #定义内容显示格式 format_data='{:^6}\t{:^12}\t{:^10}\t{:^18}\t{:^14}\t{:^8}' for item in lst: print(format_data.format(item.get('id'),item.get('name'),item.get('English'),item.get('Python'),item.get('Java'),str(int(item.get('English'))+int(item.get('Python'))+int(item.get('Java'))))) pass def menum(): print('-------------------学生信息管理系统--------------------') print('-----------------------功能菜单------------------------') print(' 1.录入学生信息') print(' 2.查找学生信息') print(' 3.删除学生信息') print(' 4.修改学生信息') print(' 5.成绩排序') print(' 6.统计学生总人数') print(' 7.显示所有学生信息') print(' 0.退出系统') print('------------------------------------------------------') main()
Salin selepas log masuk

4. Pakej projek dan jana fail boleh laku .exe

1 : pip pasang PyInstaller dan tekan Enter,

2 Masukkan: pyinstaller -F lokasi khusus fail program,

3 Selepas menekan Enter, anda boleh melihat lokasi .exe fail pada baris kedua terakhir kandungan output.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan sistem pengurusan maklumat pelajar yang mudah dalam python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!