BANNER-Python數(shù)據(jù)分析實戰(zhàn)課件1第6章 類的應用-學生成績管理系統(tǒng)_第1頁
BANNER-Python數(shù)據(jù)分析實戰(zhàn)課件1第6章 類的應用-學生成績管理系統(tǒng)_第2頁
BANNER-Python數(shù)據(jù)分析實戰(zhàn)課件1第6章 類的應用-學生成績管理系統(tǒng)_第3頁
BANNER-Python數(shù)據(jù)分析實戰(zhàn)課件1第6章 類的應用-學生成績管理系統(tǒng)_第4頁
BANNER-Python數(shù)據(jù)分析實戰(zhàn)課件1第6章 類的應用-學生成績管理系統(tǒng)_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

學生成績管理系統(tǒng)功能介紹學生成績管理系統(tǒng)功能實現(xiàn)學生基本信息的管理,主要以下功能:(1)輸入并存儲學生的信息:輸入學生的學號、姓名、和分數(shù),把數(shù)據(jù)保存在建立的student.txt文件里面。(2)打印學生信息:通過打印函數(shù)把學生所有信息打印在屏幕上。(3)修改學生信息:首先通過查詢功能查詢出該學生是否存在,如果存在就對該學生的信息進行修改,如果不存在則返回到主界面。(4)刪除學生信息:該功能是對相應的學生進行刪除操作,如果學生存在就查找并進行刪除。(5)按學生成績進行排序:按照學生總分從高到底進行排序。(6)查找學生信息:輸入學生學號,查找該學生的相關信息,如果查找到就輸出該學生的信息,沒有該學號就提示輸入的學號不存在。。程序設計的思路將學生信息設計成一個Student類,這里假設學生有三門課成績。classStudent:#定義一個學生類def__init__(self):=''self.ID=''self.score1=0#語文成績self.score2=0#數(shù)學成績self.score3=0#英語成績self.sum=0#總分

defsumscore(self):#計算總分self.sum=self.score1+self.score2+self.score3definput(self):#輸入學生的信息defoutput(self,file_object):系統(tǒng)在開始使用之前先進行初始化功能,判斷students.txt文件中是否保存有學生的信息。程序設計的思路對學生基本信息操作(包括查找、修改、刪除、排序)時,首先是打開students.txt文件,對文件中的內(nèi)容進行讀取操作,然后再對每個人的信息以空格進行分隔,得到每個人的詳細信息包括學生的姓名,學號,成績,形成學生類對象并存入stulist列表中。對學生基本信息的所有操作都是針對stulist列表進行,如果是添加學生,則追加寫入文件中。如果是刪除和修改學生,則操作完成后將stulist列表覆蓋寫入文件中。程序設計步驟——設計Student類classStudent:#定義一個學生類def__init__(self):=''self.ID=''self.score1=0#語文成績self.score2=0#數(shù)學成績self.score3=0#英語成績self.sum=0#總分defsumscore(self):#計算總分self.sum=self.score1+self.score2+self.score3definput(self):#輸入學生的信息=input("請輸入學生的姓名")self.ID=input("請輸入學生的ID")self.score1=int(input("請輸入學生語文成績"))self.score2=int(input("請輸入學生數(shù)學成績"))self.score3=int(input("請輸入學生英語成績"))self.sumscore()defoutput(self,file_object):#輸出到文件中print(,self.ID,self.score1,self.score2,self.score3,self.sum)file_object.write(self.ID)file_object.write("")file_object.write()file_object.write("")file_object.write(str(self.score1))file_object.write("")file_object.write(str(self.score2))file_object.write("")file_object.write(str(self.score3))file_object.write("")file_object.write(str(self.sum))file_object.write("\n")程序設計步驟——添加學生信息添加一個stu學生信息時,首先判斷學號是否已經(jīng)存在,如果已經(jīng)存在則取消添加操作。否則根據(jù)用戶選擇是否保存,如果保存則以追加方式寫入文件。defAdd(stulist,stu):#添加一個學生信息ifsearchByID(stulist,stu.ID)==True:#判斷學號存在否print("學號已經(jīng)存在!")returnFalseprint("是否要保存學生信息?")nChoose=input("ChooseY/N")ifnChoose=='Y'ornChoose=='y':stulist.append(stu)#加入列表print(,stu.ID,stu.score1,stu.score2,stu.score3,stu.sum)file_object=open("students.txt","a")#"a"追加方式stu.output(file_object)#輸出到文件里保存file_object.close()程序設計步驟——刪除學生信息刪除一個學生信息時,首先遍歷stulist列表中學生的ID是否是刪除的學號,如果是則從列表stulist中刪除。最后采用覆蓋寫入方式將stulist列表中剩余學生重新寫入文件中。程序設計步驟——刪除學生信息defDel(stulist,ID):#刪除一個學生信息

count=0flag=Falseforiteminstulist:ifitem.ID==ID:stulist.remove(item)#從列表中刪除

flag=True#刪除成功

breakcount+=1ifflag==False:#或者count==len(stulist)print("沒有該學生學號!")returnfile_object=open("students.txt","w")#覆蓋寫入

forstuinstulist:stu.output(file_object)print("刪除保存成功!")file_object.close()程序設計步驟——修改學生信息defChange(stulist,ID):#修改學生信息

count=0flag=Falseforiteminstulist:ifitem.ID==ID:flag=Truestulist.remove(item)

file_object=open("students.txt","w")#將stulist列表中剩余學生重新寫入文件forstuinstulist:stu.output(file_object)file_object.close()ifflag==False:print("沒有該學生學號!")returnstu=Student()

stu.input()#輸入這個被修改學生的新信息Add(stulist,stu)#添加一個stu學生信息到文件中程序設計步驟——顯示所有學生信息defdisplay(stulist):#顯示所有學生信息print("學號\t姓名

語文數(shù)學英語總分")foriteminstulist:#格式化輸出print("%5s%5s%3d%3d%3d%4d"%(item.ID,,item.score1,item.score2,item.score3,item.sum))程序設計步驟——成績排序

成績排序?qū)崿F(xiàn)按照學生成績由高至低進行排序,在實現(xiàn)的時候采用比較排序算法,按照總分對stuList中保存的學生信息進行排序。defSort(stulist): #按學生成績排序

insertSort(stulist) #比較排序

display(stulist)definsertSort(stulist): #比較排序

foriinrange(len(stulist)-1):forjinrange(i+1,len(stulist)):ifstulist[i].sum<stulist[j].sum: #交換

temp=stulist[i]stulist[i]=stulist[j]stulist[j]=tempstulist[i],stulist[j]=

stulist[j],stulist[j]程序設計步驟——查詢學生信息

defSearch(stulist,ID):#搜索一個學生信息print("學號\t姓名\t語文\t數(shù)學\t英語\t總分")count=0foriteminstulist:ifitem.ID==ID:print(item.ID,'\t',,'\t',item.score1,'\t',item.score2,'\t',item.score3,'\t',item.sum)breakcount=count+1ifcount==len(stulist):print("沒有該學生學號!")程序設計步驟——初始化函數(shù)defInit(stulist):#初始化函數(shù)ifos.path.exists('students.txt'):#判斷文件students.txt是否存在

file_object=open('students.txt','r')forlineinfile_object:stu=Student()line=line.strip("\n")s=line.split("")#按空格分隔形成列表stu.ID=s[0]=s[1]stu.score1=int(s[2])stu.score2=int(s[3])stu.score3=int(s[4])stu.sum=s[5]

stulist.append(stu)file_object.close()print("初始化成功!")main()程序設計步驟——主函數(shù)main()是主函數(shù),主要通過循環(huán)實現(xiàn)用戶功能選擇。defmain():#程序的入口函數(shù)whileTrue:print("*********************")print("--------菜單---------")print("增加學生信息--------1")print("查找學生信息--------2")print("刪除學生信息--------3")print("修改學生信息--------4")print("所有學生信息--------5")print("按照分

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論