程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python利用字典和列表實現學生信息管理系統

編輯:Python

本文將利用Python中的字典和列表實現學生信息管理系統

文件的存放格式采用的是python自帶的pickle模塊,需要新建course.txt和student.txt供程序讀寫。

下面是示例代碼

import pickle# 從文件中讀取學生信息並返回def readStudent(): with open("student.txt",'rb') as f: try: return pickle.load(f) #讀取失敗,說明讀取的文件為空,返回空列表即可 except EOFError: return []# 保存學生信息student_list到文件student.txt中def saveStudent(student_list): with open("student.txt",'wb') as f: pickle.dump(student_list, f)# 增加學生信息def addStudent(student_list): id = input("請輸入要增加的學生學號:") name = input("請輸入要增加的學生姓名:") sex = input("請輸入要增加的學生性別:") specialty = input("請輸入要增加的學生專業班級:") # 把這4個數據裝入字典student中 student = {"學號":id, "姓名":name, "性別":sex, "專業班級":specialty} # 把字典student添加到列表student_list中 student_list.append(student)# 刪除學生信息def deleteStudent(student_list): id = input("請輸入要刪除的學生學號:") for i in range(0, len(student_list)): # student_list[i]是一個字典 if student_list[i]["學號"] == id: # 刪除student_list中的第i個字典 student_list.pop(i) print("刪除成功!") return # 結束函數 print("刪除失敗,未查詢到該學生。")# 修改學生信息def modifyStudent(student_list): id = input("請輸入要修改的學生學號:") for i in range(0, len(student_list)): if student_list[i]["學號"] == id: id = input("請輸入修改後的學生學號:") name = input("請輸入修改後的姓名:") sex = input("請輸入修改後的性別:") specialty = input("請輸入修改後的專業班級:") # 把這4個數據裝入字典student中 student = {"學號":id, "姓名":name, "性別":sex, "專業班級":specialty} # 用student替換student_list中的第i個字典 student_list[i] = student print("修改成功!") return # 結束函數 print("修改失敗,未查詢到該學生。")# 顯示所有學生信息def showStudent(student_list): print("學號\t\t姓名\t\t性別\t\t專業班級") for student in student_list: print("%s\t\t%s\t\t%s\t\t%s" %(student["學號"], student["姓名"], student["性別"], student["專業班級"]))# 從文件中讀取學生成績信息def readCourse(): with open("course.txt",'rb') as f: try: return pickle.load(f) #讀取失敗,說明讀取的文件為空,返回空列表即可 except EOFError: return []# 保存學生成績信息course_list到文件course.txt中def saveCourse(course_list): with open("course.txt",'wb') as f: pickle.dump(course_list, f)# 增加學生成績信息 def addCourse(course_list): id = input("請輸入要增加的學生學號:") english = int(input("請輸入該學生的英語成績:")) math = int(input("請輸入該學生的數學成績:")) computer = int(input("請輸入該學生的計算機成績:")) chemistry = int(input("請輸入該學生的化學成績:")) PE = int(input("請輸入該學生的體育成績:")) # 把這6個數據裝入字典course中 course = {"學號":id, "英語":english, "數學":math, "計算機":computer, "化學":chemistry, "體育":PE} # 把字典course添加到列表course_list中 course_list.append(course)# 刪除學生成績信息 def deleteCourse(course_list): id = input("請輸入要刪除的學生學號:") for i in range(0, len(course_list)): # course_list[i]是一個字典 if course_list[i]["學號"] == id: # 刪除列表中的第i個字典 course_list.pop(i) print("刪除成功!") return #結束函數 print("刪除失敗,未查詢到該學生成績。")# 修改學生成績信息def modifyCourse(course_list): id = input("請輸入要修改的學生學號:") for i in range(0, len(course_list)): if course_list[i]["學號"] == id: id = input("請輸入修改後的學生學號:") english = int(input("請輸入修改後的英語成績:")) math = int(input("請輸入修改後的數學成績:")) computer = int(input("請輸入修改後的計算機成績:")) chemistry = int(input("請輸入修改後的化學成績:")) PE = int(input("請輸入修改後的體育成績:")) # 把這6個數據裝入字典course中 course = {"學號":id, "英語":english, "數學":math, "計算機":computer, "化學":chemistry, "體育":PE} # 用dict替換舊的數據 course_list[i] = course print("修改成功!") return #結束函數 print("修改失敗,未查詢到該學生成績。")# 顯示學生成績信息def showCourse(course_list): print("學號\t\t英語\t\t數學\t\t計算機\t\t化學\t\t體育") for course in course_list: print("%s\t\t%d\t\t%d\t\t%d\t\t%d\t\t%d" %(course["學號"], course["英語"], course["數學"], course["計算機"], course["化學"], course["體育"]))# 通過姓名查詢該生的成績信息def searchScoreByName(student_list, course_list): name = input("請輸入學生姓名:") id = "未查詢到" for stu in student_list: if stu["姓名"] == name: id = stu["學號"] break if id == "未查詢到": print("未查詢到該學生信息。") return #結束函數 for course in course_list: if course["學號"] == id: print("查詢成功!該學生信息如下:") print("學號\t\t英語\t\t數學\t\t計算機\t\t化學\t\t體育") print("%s\t\t%d\t\t%d\t\t%d\t\t%d\t\t%d" %(course["學號"], course["英語"], course["數學"], course["計算機"], course["化學"], course["體育"])) return #結束程序 print("未查詢到該學生成績信息。")# 查詢某門課程得分最高的學生信息def searchStudentByHighScore(student_list, course_list): courseName = input("請輸入課程名稱:") # 按這門課程冒泡排序 for i in range(0, len(course_list)-1): for j in range(0, len(course_list)-1-i): if course_list[j][courseName] < course_list[j+1][courseName]: course_list[j], course_list[j+1] = course_list[j+1], course_list[j] id = course_list[0]["學號"] for student in student_list: if student["學號"] == id: print("查找成功!") print("學號\t\t姓名\t\t性別\t\t專業班級") print("%s\t\t%s\t\t%s\t\t%s" %(student["學號"], student["姓名"], student["性別"], student["專業班級"])) return print("未查找到該學生信息。")# 輸出某門課的平均成績def outputAverageScore(course_list): courseName = input("請輸入課程名稱:") sum = 0 for course in course_list: sum += course[courseName] print("%s平均成績為%.2f" %(courseName, sum/len(course_list)))# 主菜單def menu(): print("1.增加學生信息 2.增加成績信息") print("3.修改學生信息 4.修改成績信息") print("5.刪除學生信息 6.刪除成績信息") print("7.顯示學生信息 8.顯示成績信息") print("9.通過姓名查詢該生的成績信息") print("10.查詢某門課程得分最高的學生信息") print("11.輸出某門課的平均成績") print("0.保存並退出")# 主函數def main(): student_list = readStudent() course_list = readCourse() flag = True while flag: menu() choose = input("請輸入選項:") while True: # 增加學生信息 if choose == '1': addStudent(student_list) break # 增加成績信息 elif choose == '2': addCourse(course_list) break # 修改學生信息 elif choose == '3': modifyStudent(student_list) break # 修改成績信息 elif choose == '4': modifyCourse(course_list) break # 刪除學生信息 elif choose == '5': deleteStudent(student_list) break # 刪除成績信息 elif choose == '6': deleteCourse(course_list) break # 顯示學生信息 elif choose == '7': showStudent(student_list) break # 顯示成績信息 elif choose == '8': showCourse(course_list) break # 通過姓名查詢該生的成績信息 elif choose == '9': searchScoreByName(student_list, course_list) break # 查詢某門課程得分最高的學生信息 elif choose == '10': searchStudentByHighScore(student_list, course_list) break # 輸出某門課的平均成績 elif choose == '11': outputAverageScore(course_list) break # 保存數據並退出 elif choose == '0': saveStudent(student_list) saveCourse(course_list) flag = False break else: choose = input("輸入錯誤, 請重新輸入:")if __name__=='__main__': main()

到此這篇關於Python利用字典和列表實現學生信息管理系統的文章就介紹到這了,更多相關Python學生信息管理系統內容請搜索軟件開發網以前的文章或繼續浏覽下面的相關文章希望大家以後多多支持軟件開發網!



  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved