隨機生成學生成績,並將成績按總分排序

2021-10-13 15:33:32 字數 2388 閱讀 9671

生成一張成績單,並按照總分的大小順序排序

分析:根據題目的需求,我們可以將題目拆解成以下步驟:

第一步:獲取學生的姓名

第二步:生成學生的三科成績

第三步:生成排名

第四步:組合儲存結構

第五步:輸出

1. 生成乙個姓名字典

dict_student_info =

2. 生成學生的成績
# 將生成的成績存貯在列表中

student_result =

# 控制生成的成績的行數

for i in

range

(len

(dict_student_info)):

# 臨時儲存每乙個學生的成績,並初始化臨時變數

temp_result =

# 控制生成的成績門數

for j in

range(3

):50,

100)

)# 將每一名學生的成績新增到最終的集合中

3. 生成排名
student_sorted =

# 遍歷上一步的結果並將求出成績總和

for i in student_result:

sum(i)

)# print(student_sorted)

# 排序

student_sorted.sort(reverse=

true

)# print(student_sorted)

# print(student_result)

4. 組合儲存結構
total_student_result =

student_sno =

list

(sorted

(dict_student_info.keys())

)index =

0for i in student_sno:

temp_total =

temp_total[

"姓名"

]=dict_student_info[i]

temp_total[

"明細"]=

list

(student_result)

[index]

temp_total[

"總分"]=

sum(student_result[index]

) temp_total[

"名次"

]=student_sorted.index(

sum(student_result[index]))

+1total_student_result[i]

= temp_total

index +=

1for i in

sorted

(list

(total_student_result.keys())

):print

(i,":"

,total_student_result[i]

)

5. 輸出
print

("\n\n################################成績單############################"

)print

("名次\t學號\t\t姓名\t 語文\t 數學\t 英語\t 總分\t均分"

)for i in

range

(len

(dict_student_info)):

for j in total_student_result:

if total_student_result[j]

["名次"

]==i+1:

print

(i+1

,end=

"\t\t"

)print

(j,end=

"\t\t"

)print

(total_student_result[j]

["姓名"

],end=

"\t\t"

)for t in

range(3

):print

(total_student_result[j]

["明細"

][t]

,end=

"\t\t"

)print

(total_student_result[j]

["總分"

],end=

"\t\t"

)print

("%.2f"

%(total_student_result[j]

["總分"]/

3))

按等級統計學生成績

本題要求實現乙個根據學生成績設定其等級,並統計不及格人數的簡單函式。int set grade struct student p,int n 其中p是指向學生資訊的結構體陣列的指標,該結構體的定義為 struct student n是陣列元素個數。學號num 姓名name和成績score均是已經儲存...

按等級統計學生成績

6 2 按等級統計學生成績 20分 本題要求實現乙個根據學生成績設定其等級,並統計不及格人數的簡單函式。函式介面定義 int set grade struct student p,int n 其中p是指向學生資訊的結構體陣列的指標,該結構體的定義為 struct student n是陣列元素個數。學...

學生成績排序

n.txt檔案內存放著學生的資訊 資訊包括姓名和分數 如 張三 90 李四 78 陳五 82 姓名和分數之間用空格隔開 分數和姓名之間換行 要求寫乙個程式 把這些資料根據分數從小到大進行排序 如 李四 78 陳五 82 張三 90 排序結果依然放入這個檔案中。大家看下如何寫,這裡的行數是隨機的。我寫...