酷代码 AI
菜单
聚合搜索:一个入口掌握所有。点击查看!
全部AI  /  AI写代码神器
服务商

任务描述 设计一个学生成绩管理程序,实现对n个学生的3门课程的成绩的记录与统计工作。学生信息包括:学号,姓名,课程成绩1,课程成绩2,课程成绩3。 程序基本功能要求如下: 1---添加学生信息(依次输入学号、三门课程的分数、姓名) 2---修改学生信息(依次输入学号、三门课程的分数、姓名) 3---按学号删除学生(输入学号) 4---按学号查询学生信息(输入学号,输出学号、姓名、三门课程的分数) 5---按姓名查询学生信息(输入姓名,按学号升序依次输出学生信息) 6---按学号升序排序 7---按总分降序排序 0---退出 提示 本题不做复杂度要求。 学生数 n<1000, 姓名字符不超过50,姓名可能带有空格,姓名可能重复,但学号具有唯一性。 按总分降序排序时,同分的学生按照学号升序输出。 注意考虑以下异常输入 操作1 试图添加重复学生:以新添加的学生更新 操作2 试图修改不存在的学生信息:不做任何修改 操作3 试图删除不存在的学生:不做任何修改 操作4 查找不存在的学号:不输出任何信息 操作5 查找不存在的学生姓名:不输出任何信息 测试说明 测试将包括若干行,每行的第一个数代表操

以下是使用 Python 实现的学生成绩管理程序代码: ```python # 定义学生类 class Student: def __init__(self, student_id, name, score1, score2, score3): self.student_id = student_id self.name = name self.score1 = score1 self.score2 = score2 self.score3 = score3 self.total_score = score1 + score2 + score3 # 计算总分 # 存储学生信息的列表 students = [] # 添加学生信息的函数 def add_student(): student_id = int(input("请输入学号:")) score1 = float(input("请输入课程成绩 1:")) score2 = float(input("请输入课程成绩 2:")) score3 = float(input("请输入课程成绩 3:")) name = input("请输入姓名:") # 检查是否有重复学号 for student in students: if student.student_id == student_id: student.name = name student.score1 = score1 student.score2 = score2 student.score3 = score3 return new_student = Student(student_id, name, score1, score2, score3) students.append(new_student) # 修改学生信息的函数 def modify_student(): student_id = int(input("请输入学号:")) found = False for student in students: if student.student_id == student_id: found = True score1 = float(input("请输入新的课程成绩 1:")) score2 = float(input("请输入新的课程成绩 2:")) score3 = float(input("请输入新的课程成绩 3:")) name = input("请输入新的姓名:") student.name = name student.score1 = score1 student.score2 = score2 student.score3 = score3 if not found: print("未找到该学号的学生,无法修改。") # 按学号删除学生的函数 def delete_student_by_id(): student_id = int(input("请输入学号:")) found = False for student in students: if student.student_id == student_id: found = True students.remove(student) if not found: print("未找到该学号的学生,无法删除。") # 按学号查询学生信息的函数 def query_student_by_id(): student_id = int(input("请输入学号:")) found = False for student in students: if student.student_id == student_id: found = True print(f"学号:{student.student_id},姓名:{student.name},课程成绩 1:{student.score1},课程成绩 2:{student.score2},课程成绩 3:{student.score3}") if not found: print("未找到该学号的学生。") # 按姓名查询学生信息的函数 def query_student_by_name(): name = input("请输入姓名:") found = False sorted_students = sorted(students, key=lambda x: x.student_id) # 按学号升序排序 for student in sorted_students: if student.name == name: found = True print(f"学号:{student.student_id},姓名:{student.name},课程成绩 1:{student.score1},课程成绩 2:{student.score2},课程成绩 3:{student.score3}") if not found: print("未找到该姓名的学生。") # 按学号升序排序的函数 def sort_by_student_id(): students.sort(key=lambda x: x.student_id) # 按总分降序排序的函数 def sort_by_total_score(): students.sort(key=lambda x: (-x.total_score, x.student_id)) # 主函数 def main(): while True: choice = int(input("请选择操作(0:退出,1:添加学生信息,2:修改学生信息,3:按学号删除学生,4:按学号查询学生信息,5:按姓名查询学生信息,6:按学号升序排序,7:按总分降序排序):")) if choice == 0: break elif choice == 1: add_student() elif choice == 2: modify_student() elif choice == 3: delete_student_by_id() elif choice == 4: query_student_by_id() elif choice == 5: query_student_by_name() elif choice == 6: sort_by_student_id() elif choice == 7: sort_by_total_score() if __name__ == "__main__": main() ``` 额外需要注意的逻辑点: 1. 在处理输入时,要做好异常情况的处理,比如输入的学号不是整数,成绩不是浮点数等。 2. 排序函数中的比较逻辑要确保准确,特别是对于总分相同的情况。 3. 在进行修改和删除操作时,要确保找到对应的学生信息,避免出现误操作。 [2024-12-12 11:57:52 | AI写代码神器 | 1203点数解答]

热门AI查看更多
“AI写代码神器”擅长各种语言编程、解释代码、注解补充。 在这里填写你的问题。如:写出java冒泡排序算法。
一个入口掌握所有。 在这输入任何问题,或者要AI输出的内容。
将阿拉伯数字转为人明币大写,如:数字1000转换为壹仟。
AI生成爆文标题,能够快速创作出极具吸引力的标题,促使短视频、自媒体文章的点击率与阅读量迅猛攀升。 此处填写一个原始标题,如:一般人怎样打理自身的社交圈?
AI生成新闻评论。 在这里填入新闻内容。
AI生成内容摘要。 在此处填入需要生成摘要的内容,还可以输入4000字。
AI生成主持词,擅长团建、年会、婚礼、节日等场合的主持词编写。 在这里填入主持场景,如:运动会
AI快速生成周报、月报、日报、年终总结等各类总结报告。 在这里简单输入工作目标、指标、成果,没有任何格式或特殊需求。如:计划年销售业绩1000万,实际完成800万。
输入一个字,显示以这个字开头的歇后语
输入一个字,显示以这个字开头的成语
极速在线生成证件照
极速更换证件照红、蓝、白底色
实用工具查看更多
阿里云99元2核2G服务器/年,199元2核4G服务器随心买。
今日油价 [生活类]
全国各省油价,实时更新。
图片互转base64 [开发类]
将图片转换为Base64编码,可以让你很方便地在没有上传文件的条件下将图片插入其它的网页、编辑器中。 这对于一些小的图片是极为方便的,因为你不需要再去寻找一个保存图片的地方。
时间转换器 [开发类]
时间戳转换器,时间、毫秒、秒、倒计时查看
录入名字、电话、邮箱、个人介绍信息,生成二维码,可通过此码扫码添加微信联系人
数独游戏 [娱乐类]
数独(Sudoku)是经典的9x9数字逻辑谜题。在有81个小格的九宫格内,玩家依据初始数字推理填入1 - 9的数字,要保证每行、每列以及每个3x3宫格中的数字都不重复。这款在线数独游戏有多难度可选,没有头绪时,可以点开答案看一下哦^_^
经典推箱子 [娱乐类]
基于H5的经典推箱子小游戏,锻炼玩家的眼力和反应力,非常不错
AI摸鱼五子棋 [娱乐类]
基于H5的五子棋人机对练,锻炼玩家的眼力和反应力,非常不错
相关提问