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