樂彩網(wǎng)站源碼網(wǎng)站建設(shè)在線培訓(xùn)app
學(xué)生成績表信息包括學(xué)號、姓名、各科課程成績(語文、數(shù)學(xué)、英語、政治)和總分。用帶頭結(jié)點的單鏈表管理學(xué)生成績表,每個學(xué)生的信息依次從鍵盤輸入,并根據(jù)需要進行插入、刪除、排序、輸出等操作。
import json# 初始化系統(tǒng)
students = []# 結(jié)構(gòu)體
class Student:def __init__(self, ID, Name, Mark):self.ID = IDself.Name = Nameself.Mark = Markself.Total = sum(Mark)self.Average = self.Total / len(Mark)# 錄入
def inputt():global studentsID = input("請輸入學(xué)號:")Name = input("請輸入姓名:")Marks = []for subject in ["數(shù)學(xué)", "英語", "語文"]:mark = float(input(f"請輸入{subject}成績:"))Marks.append(mark)student = Student(ID, Name, Marks)students.append(student)print("錄入成功。")# 刪除
def deletee():global studentsID = input("請輸入要刪除的學(xué)生學(xué)號:")found = Falsefor student in students:if student.ID == ID:students.remove(student)found = Trueprint("刪除成功。")breakif not found:print(f"未找到學(xué)號為{ID}的學(xué)生。")# 修改
def modfiy():global studentsID = input("請輸入要修改的學(xué)生學(xué)號:")found = Falsefor student in students:if student.ID == ID:Marks = []for subject in ["數(shù)學(xué)", "英語", "語文"]:mark = float(input(f"請輸入新的{subject}成績:"))Marks.append(mark)student.Mark = Marksstudent.Total = sum(Marks)student.Average = student.Total / len(Marks)found = Trueprint("修改成功。")breakif not found:print(f"未找到學(xué)號為{ID}的學(xué)生。")# 插入
def insert():global studentsposition = int(input("請輸入要插入的位置(1-{}):".format(len(students) + 1)))if 1 <= position <= len(students) + 1:ID = input("請輸入學(xué)號:")Name = input("請輸入姓名:")Marks = []for subject in ["數(shù)學(xué)", "英語", "語文"]:mark = float(input(f"請輸入{subject}成績:"))Marks.append(mark)student = Student(ID, Name, Marks)students.insert(position - 1, student)print("插入成功。")else:print("插入位置無效。")# 排序
def sort():global studentsstudents.sort(key=lambda x: x.Average, reverse=True)print("排序完成。")# 顯示
def display():global studentsif not students:print("暫無學(xué)生信息。")else:print("學(xué)號\t姓名\t數(shù)學(xué)\t英語\t語文\t總分\t平均分")for student in students:print(f"{student.ID}\t{student.Name}\t{student.Mark[0]}\t{student.Mark[1]}\t{student.Mark[2]}\t{student.Total:.2f}\t{student.Average:.2f}")# 查詢
def Student_SearchByIndex():global studentsID = input("請輸入要查詢的學(xué)生學(xué)號:")found = Falsefor student in students:if student.ID == ID:print("學(xué)號\t姓名\t數(shù)學(xué)\t英語\t語文\t總分\t平均分")print(f"{student.ID}\t{student.Name}\t{student.Mark[0]}\t{student.Mark[1]}\t{student.Mark[2]}\t{student.Total:.2f}\t{student.Average:.2f}")found = Truebreakif not found:print(f"未找到學(xué)號為{ID}的學(xué)生。")# 主函數(shù)
def main():while True:print("\n學(xué)生成績管理系統(tǒng)")print("1. 錄入學(xué)生信息")print("2. 刪除學(xué)生信息")print("3. 修改學(xué)生成績")print("4. 插入學(xué)生成績")print("5. 排序?qū)W生成績")print("6. 顯示學(xué)生成績")print("7. 查詢學(xué)生成績")print("8. 退出系統(tǒng)")choice = input("請選擇操作(1-8):")if choice == "1":inputt()elif choice == "2":deletee()elif choice == "3":modfiy()elif choice == "4":insert()elif choice == "5":sort()elif choice == "6":display()elif choice == "7":Student_SearchByIndex()elif choice == "8":breakelse:print("無效的選擇,請重新輸入。")if __name__ == "__main__":main()