生成一張成績單,並按照總分的大小順序排序
分析:根據題目的需求,我們可以將題目拆解成以下步驟:
第一步:獲取學生的姓名
第二步:生成學生的三科成績
第三步:生成排名
第四步:組合儲存結構
第五步:輸出
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 排序結果依然放入這個檔案中。大家看下如何寫,這裡的行數是隨機的。我寫...