精品熟女碰碰人人a久久,多姿,欧美欧美a v日韩中文字幕,日本福利片秋霞国产午夜,欧美成人禁片在线观看

python如何實現簡易的學生信息管理系統

python如何實現簡易的學生信息管理系統

本文講解"python怎么實現簡易的學生信息管理系統",希望能夠解決相關問題。

一、系統功能

1.錄入學生信息

2.查找學生信息

3.修改學生信息

4.刪除學生信息

5.成績排序

6.統計學生總人數

7.顯示所有學生信息

0.退出系統

二、系統開發環境

1.操作系統:win7

2.開發工具:pycharm

3.python內置模塊:os,re

三、實現代碼

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()

四、項目打包并生成.exe可執行文件

1.安裝第三方模塊,打開dos窗口,輸入:pip install pyinstaller并回車,

2.輸入:pyinstaller -f 程序文件具體位置,

3.回車后即可在輸出內容的倒數第二行看到.exe文件的位置。

關于 "python怎么實現簡易的學生信息管理系統" 就介紹到此。希望多多支持碩編程。

下一節:python混合怎么使用同步和異步函數

python編程技術

相關文章