




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
學(xué)生成績管理系統(tǒng)功能介紹學(xué)生成績管理系統(tǒng)功能實現(xiàn)學(xué)生基本信息的管理,主要以下功能:(1)輸入并存儲學(xué)生的信息:輸入學(xué)生的學(xué)號、姓名、和分數(shù),把數(shù)據(jù)保存在建立的student.txt文件里面。(2)打印學(xué)生信息:通過打印函數(shù)把學(xué)生所有信息打印在屏幕上。(3)修改學(xué)生信息:首先通過查詢功能查詢出該學(xué)生是否存在,如果存在就對該學(xué)生的信息進行修改,如果不存在則返回到主界面。(4)刪除學(xué)生信息:該功能是對相應(yīng)的學(xué)生進行刪除操作,如果學(xué)生存在就查找并進行刪除。(5)按學(xué)生成績進行排序:按照學(xué)生總分從高到底進行排序。(6)查找學(xué)生信息:輸入學(xué)生學(xué)號,查找該學(xué)生的相關(guān)信息,如果查找到就輸出該學(xué)生的信息,沒有該學(xué)號就提示輸入的學(xué)號不存在。。程序設(shè)計的思路將學(xué)生信息設(shè)計成一個Student類,這里假設(shè)學(xué)生有三門課成績。classStudent:#定義一個學(xué)生類def__init__(self):=''self.ID=''self.score1=0#語文成績self.score2=0#數(shù)學(xué)成績self.score3=0#英語成績self.sum=0#總分
defsumscore(self):#計算總分self.sum=self.score1+self.score2+self.score3definput(self):#輸入學(xué)生的信息defoutput(self,file_object):系統(tǒng)在開始使用之前先進行初始化功能,判斷students.txt文件中是否保存有學(xué)生的信息。程序設(shè)計的思路對學(xué)生基本信息操作(包括查找、修改、刪除、排序)時,首先是打開students.txt文件,對文件中的內(nèi)容進行讀取操作,然后再對每個人的信息以空格進行分隔,得到每個人的詳細信息包括學(xué)生的姓名,學(xué)號,成績,形成學(xué)生類對象并存入stulist列表中。對學(xué)生基本信息的所有操作都是針對stulist列表進行,如果是添加學(xué)生,則追加寫入文件中。如果是刪除和修改學(xué)生,則操作完成后將stulist列表覆蓋寫入文件中。程序設(shè)計步驟——設(shè)計Student類classStudent:#定義一個學(xué)生類def__init__(self):=''self.ID=''self.score1=0#語文成績self.score2=0#數(shù)學(xué)成績self.score3=0#英語成績self.sum=0#總分defsumscore(self):#計算總分self.sum=self.score1+self.score2+self.score3definput(self):#輸入學(xué)生的信息=input("請輸入學(xué)生的姓名")self.ID=input("請輸入學(xué)生的ID")self.score1=int(input("請輸入學(xué)生語文成績"))self.score2=int(input("請輸入學(xué)生數(shù)學(xué)成績"))self.score3=int(input("請輸入學(xué)生英語成績"))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")程序設(shè)計步驟——添加學(xué)生信息添加一個stu學(xué)生信息時,首先判斷學(xué)號是否已經(jīng)存在,如果已經(jīng)存在則取消添加操作。否則根據(jù)用戶選擇是否保存,如果保存則以追加方式寫入文件。defAdd(stulist,stu):#添加一個學(xué)生信息ifsearchByID(stulist,stu.ID)==True:#判斷學(xué)號存在否print("學(xué)號已經(jīng)存在!")returnFalseprint("是否要保存學(xué)生信息?")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()程序設(shè)計步驟——刪除學(xué)生信息刪除一個學(xué)生信息時,首先遍歷stulist列表中學(xué)生的ID是否是刪除的學(xué)號,如果是則從列表stulist中刪除。最后采用覆蓋寫入方式將stulist列表中剩余學(xué)生重新寫入文件中。程序設(shè)計步驟——刪除學(xué)生信息defDel(stulist,ID):#刪除一個學(xué)生信息
count=0flag=Falseforiteminstulist:ifitem.ID==ID:stulist.remove(item)#從列表中刪除
flag=True#刪除成功
breakcount+=1ifflag==False:#或者count==len(stulist)print("沒有該學(xué)生學(xué)號!")returnfile_object=open("students.txt","w")#覆蓋寫入
forstuinstulist:stu.output(file_object)print("刪除保存成功!")file_object.close()程序設(shè)計步驟——修改學(xué)生信息defChange(stulist,ID):#修改學(xué)生信息
count=0flag=Falseforiteminstulist:ifitem.ID==ID:flag=Truestulist.remove(item)
file_object=open("students.txt","w")#將stulist列表中剩余學(xué)生重新寫入文件forstuinstulist:stu.output(file_object)file_object.close()ifflag==False:print("沒有該學(xué)生學(xué)號!")returnstu=Student()
stu.input()#輸入這個被修改學(xué)生的新信息Add(stulist,stu)#添加一個stu學(xué)生信息到文件中程序設(shè)計步驟——顯示所有學(xué)生信息defdisplay(stulist):#顯示所有學(xué)生信息print("學(xué)號\t姓名
語文數(shù)學(xué)英語總分")foriteminstulist:#格式化輸出print("%5s%5s%3d%3d%3d%4d"%(item.ID,,item.score1,item.score2,item.score3,item.sum))程序設(shè)計步驟——成績排序
成績排序?qū)崿F(xiàn)按照學(xué)生成績由高至低進行排序,在實現(xiàn)的時候采用比較排序算法,按照總分對stuList中保存的學(xué)生信息進行排序。defSort(stulist): #按學(xué)生成績排序
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]程序設(shè)計步驟——查詢學(xué)生信息
defSearch(stulist,ID):#搜索一個學(xué)生信息print("學(xué)號\t姓名\t語文\t數(shù)學(xué)\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("沒有該學(xué)生學(xué)號!")程序設(shè)計步驟——初始化函數(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è)計步驟——主函數(shù)main()是主函數(shù),主要通過循環(huán)實現(xiàn)用戶功能選擇。defmain():#程序的入口函數(shù)whileTrue:print("*********************")print("--------菜單---------")print("增加學(xué)生信息--------1")print("查找學(xué)生信息--------2")print("刪除學(xué)生信息--------3")print("修改學(xué)生信息--------4")print("所有學(xué)生信息--------5")print("按照分
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025技術(shù)員勞動合同模板
- 2025合同買賣協(xié)議書
- 2025員工續(xù)簽的合同范本
- 《服務(wù)卓越》課件
- 愉快的夏天音樂活動策劃方案
- 2025商業(yè)店鋪租賃合同保證書
- 2025年中國投資銀行貸款合同示范文本
- 2016年秋八年級生物上冊 第5單元 第1章 第7節(jié) 哺乳動物教學(xué)設(shè)計 (新版)新人教版
- 考研英語打油詩過來人分享復(fù)習(xí)計劃細安排
- 團干部培訓(xùn)競選大綱
- 市政工程管線之間及其構(gòu)筑物之間最小水平距離要求
- 數(shù)字經(jīng)濟學(xué)-教學(xué)案例及答案 唐要家
- 【S鎮(zhèn)35kV變電站一次系統(tǒng)設(shè)計(論文)14000字】
- V帶傳動設(shè)計說明書
- 與農(nóng)戶的收購協(xié)議書范本
- GB/T 30819-2024機器人用諧波齒輪減速器
- 中國特種兵課件
- 梁板結(jié)構(gòu):雙向板
- 吊籃高處作業(yè)安全交底
- 彩票物流配送服務(wù)投標(biāo)方案(技術(shù)方案)
- T∕CFA 0308053-2019 鑄造企業(yè)清潔生產(chǎn)要求 導(dǎo)則
評論
0/150
提交評論