Python 學生資訊管理系統

2021-10-06 17:28:39 字數 3938 閱讀 2068

遞迴實現

1、有五個學⽣坐在⼀起,問第五個⼈多少歲?答⽐第四個⼤

2歲,第四個⼈說它⽐第三個⼈⼤2歲,

,...

第⼀個⼈說他

10歲。請寫⼀個遞迴函式計算第

5個學⽣多少歲

def age(num):

if num == 1:

return 10

return age(num-1) + 2

print(age(5)) 結果18

2、某班期末考試科⽬為數學和計算機,有最多不超過

30⼈參加考試。學⽣的資訊包括學號、姓名。

考試後要求: (

1)計算每個學⽣的總分和平均分; (

2)按總分

成績由⾼到低排出成績的名次; (

3)列印出名次表,**內包括學⽣姓名、學

號、各科分數、總分和平均分; (

4)任意輸⼊⼀個學號,能夠查詢出該學⽣在班級中的排名及其考試分數

編寫要求:

(1)

要對⽤戶輸⼊進⾏驗證,如果輸⼊的不是

0-4顯示錯誤,然後繼續輸⼊

(2)

要能夠連續不斷的進⾏選擇

(3)

每⼀項功能都要封裝函式完成,函式單獨放

到⼀個模組中

(4)

選單及其⽤戶選擇的處理放到主模組中。

(5)

學⽣資料儲存到⽂件

主程式檔案 index.py

student = 

from menu import menu,user_choice,show_over

from input import inf_input,stu_sort,inf_output,inf_index

def main():

while true:

menu()

choice = user_choice()

if choice == 0:

show_over()

if choice == 1:

inf_input(student,3)

if choice == 2:

inf_output(student)

if choice == 3:

stu_sort(student)

inf_index(student)

if choice == 4:

stu_sort(student)

inf_output(student)

if __name__ == '__main__':

main()

實現0-4函式功能檔案 input.py

def inf_input(student,num):

""":param student: 存放學生資訊的列表

:param num: 學生的個數

:return: 無

"""for i in range(num):

student2 = {}

student1 = input(f"請輸⼊第個學⽣的資訊(按姓名、學號、數學成績、計算機成績輸⼊,空格隔開):").split(" ")

student2['姓名'] = student1[0]

student2['學號'] = student1[1]

student2['數學成績'] = float(student1[2])

student2['計算機成績'] = float(student1[3])

student2['總成績'] = float(student1[2]) + float(student1[3])

student2['平均成績'] = (float(student1[2]) + float(student1[3])) / 2

def stu_sort(student):

""":param student: 學生資訊列表

:return: 無

"""student.sort(key=lambda student:student['總成績'],reverse=true)

def inf_output(student):

"""輸出學生資訊

:param student:

:return:

"""fm1 = "\t\t\t\t\t"

fm2 = "\t\t\t\t\t"

f2 = fm1.format("姓名","學號","數學成績","計算機成績","總成績","平均成績")

print(f2)

for i in range(len(student)):

print(fm2.format(student[i]['姓名'],

student[i]['學號'],

student[i]['數學成績'],

student[i]['計算機成績'],

student[i]['總成績'],

student[i]['平均成績']))

def inf_index(student):

"""按學號查詢學生資訊

:param student:

:return:

"""fm1 = "\t\t\t\t\t"

fm2 = "\t\t\t\t\t\t"

id = input("請輸入你要查詢的學號:")

for i in range(len(student)):

if id == student[i]['學號']:

print(fm1.format("名次","姓名","學號","數學成績","計算機成績","總成績","平均成績"))

stu = fm2.format(i+1, student[i]['姓名'],

student[i]['學號'],

student[i]['數學成績'],

student[i]['計算機成績'],

student[i]['總成績'],

student[i]['平均成績'])

print("查詢成功,該學生的資訊為:")

print(stu)

break

else:

print("沒有該學生的資訊")

if __name__ == '__main__': # 只在本模組呼叫

student =

inf_input(3)

使用者介面 menu.py

def menu():

print("""

*****歡迎使用學生資訊管理系統====

[1] 學生資訊輸入

[2] 學生資訊輸出

[3] 查詢學生資訊

[4] 成績排序

[0] 退出

""")

def user_choice():

while true:

choice = int(input("請輸入你的選擇:"))

if choice < 0 or choice > 4:

print("請輸入正確的選項")

else:

return choice

def show_over():

print("="*30)

print("\t\t感謝你的使用")

print("="*30)

exit(0)

執行結果

學生資訊管理系統

學生資訊管理系統,顧名思義就是為了管理學生的相關資訊做的一款軟體。雖然這次有原始碼供我們參考,但是從中我學習到了如何從開始到完工去做一款軟體,下邊我從做一項軟體專案的前後順序來總結我的學生資訊管理系統。一,分析需求 首先在做這款軟體是,我們先想象乙個成品,他的功能有哪些,每個功能完成哪項任務,這就是...

學生資訊管理系統

1.背景描述 學校招生辦在錄取當年新生時為新生建立了乙個新生基礎資訊類studentbase,其中包含每位新生的基本資料 學號 long mnum 姓名 char mname 20 性別 int m 其中0表示男,1表示女 年齡 int mage 住址 char maddr 30 新生主修專業所在系...

學生資訊管理系統

學生資訊管理系統由13個窗體1乙個mdi窗體乙個模組組成,窗體主要實現了登陸 新增 修改 檢視等功能,模組主要是存放全域性變數和各種函式。在敲這個系統之前,我覺得有個問題需要考慮一下,要是想一邊敲一邊除錯的話,那前面就得把資料庫等配置好了,如果想敲完再除錯的話,那就什麼時候配置好資料庫都可以。我當時...