




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
學生成績管理系統功能介紹學生成績管理系統功能實現學生基本信息的管理,主要以下功能:(1)輸入并存儲學生的信息:輸入學生的學號、姓名、和分數,把數據保存在建立的student.txt文件里面。(2)打印學生信息:通過打印函數把學生所有信息打印在屏幕上。(3)修改學生信息:首先通過查詢功能查詢出該學生是否存在,如果存在就對該學生的信息進行修改,如果不存在則返回到主界面。(4)刪除學生信息:該功能是對相應的學生進行刪除操作,如果學生存在就查找并進行刪除。(5)按學生成績進行排序:按照學生總分從高到底進行排序。(6)查找學生信息:輸入學生學號,查找該學生的相關信息,如果查找到就輸出該學生的信息,沒有該學號就提示輸入的學號不存在。。程序設計的思路將學生信息設計成一個Student類,這里假設學生有三門課成績。classStudent:#定義一個學生類def__init__(self):=''self.ID=''self.score1=0#語文成績self.score2=0#數學成績self.score3=0#英語成績self.sum=0#總分
defsumscore(self):#計算總分self.sum=self.score1+self.score2+self.score3definput(self):#輸入學生的信息defoutput(self,file_object):系統在開始使用之前先進行初始化功能,判斷students.txt文件中是否保存有學生的信息。程序設計的思路對學生基本信息操作(包括查找、修改、刪除、排序)時,首先是打開students.txt文件,對文件中的內容進行讀取操作,然后再對每個人的信息以空格進行分隔,得到每個人的詳細信息包括學生的姓名,學號,成績,形成學生類對象并存入stulist列表中。對學生基本信息的所有操作都是針對stulist列表進行,如果是添加學生,則追加寫入文件中。如果是刪除和修改學生,則操作完成后將stulist列表覆蓋寫入文件中。程序設計步驟——設計Student類classStudent:#定義一個學生類def__init__(self):=''self.ID=''self.score1=0#語文成績self.score2=0#數學成績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("請輸入學生數學成績"))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學生信息時,首先判斷學號是否已經存在,如果已經存在則取消添加操作。否則根據用戶選擇是否保存,如果保存則以追加方式寫入文件。defAdd(stulist,stu):#添加一個學生信息ifsearchByID(stulist,stu.ID)==True:#判斷學號存在否print("學號已經存在!")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姓名
語文數學英語總分")foriteminstulist:#格式化輸出print("%5s%5s%3d%3d%3d%4d"%(item.ID,,item.score1,item.score2,item.score3,item.sum))程序設計步驟——成績排序
成績排序實現按照學生成績由高至低進行排序,在實現的時候采用比較排序算法,按照總分對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數學\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("沒有該學生學號!")程序設計步驟——初始化函數defInit(stulist):#初始化函數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()程序設計步驟——主函數main()是主函數,主要通過循環實現用戶功能選擇。defmain():#程序的入口函數whileTrue:print("*********************")print("--------菜單---------")print("增加學生信息--------1")print("查找學生信息--------2")print("刪除學生信息--------3")print("修改學生信息--------4")print("所有學生信息--------5")print("按照分
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年企業人力資源管理師之四級人力資源管理師能力提升試卷B卷附答案
- 2025年公務員(國考)之公務員面試通關考試題庫帶答案解析
- 2019-2025年消防設施操作員之消防設備高級技能全真模擬考試試卷A卷含答案
- 2025版權許可協議的合同范本示例
- 農產品棉花供貨合同樣本
- 高三政治常識知識圖解及疑難解析(二)
- 小班主題活動周的實施方案計劃
- 體育館龍骨施工方案
- 跨界合作下的品牌效應分析計劃
- 舊窗保潔施工方案
- 2025年春季四年級下冊語文第15課《白鵝》課件(統編版)
- 2024北京市大興初二(下)期中數學試卷及答案
- JGT266-2011 泡沫混凝土標準規范
- 中建盤扣式落地卸料平臺施工方案
- 中央八項規定實施細則解讀課件
- 宿舍教室報修維修登記表
- 土壤酸性磷酸酶活性測定方法
- 核電廠運行規程3
- 現澆箱梁支架施工方案(共87頁結構圖多附現場照片)
- 自學考試——軍人心理咨詢與治療
- 二正丁胺MSDS危險化學品安全技術說明書
評論
0/150
提交評論