要求:使用元组和字典管理学生信息。(1)创建包含学生信息的元组(学号, 姓名)(2)使用字典存储每个学生三门课程的成绩,格式为 {学号: [数学, 英语, Python]}(3)输入学号可查询学生姓名和平均分(4)统计全班每门课程的最高分和最低分(5)使用集合自动排除重复的学号输入。


# 学生信息管理系统 ```python # (1) 创建学生信息元组 students = [ ('1001', '张三'), ('1002', '李四'), ('1003', '王五'), ('1004', '赵六') ] # (2) 创建成绩字典 scores = { '1001': [85, 90, 88], '1002': [78, 82, 80], '1003': [92, 88, 95], '1004': [80, 85, 78] } # (3) 查询学生信息功能 def query_student(student_id): # 在元组中查找学生 student_info = None for s in students: if s[0] == student_id: student_info = s break if student_info: # 计算平均分 avg_score = sum(scores[student_id]) / 3 print(f"学生姓名: {student_info[1]}, 平均分: {avg_score:.2f}") else: print("未找到该学号的学生") # (4) 统计课程最高分和最低分 def course_statistics(): # 提取各科成绩 math_scores = [s[0] for s in scores.values()] english_scores = [s[1] for s in scores.values()] python_scores = [s[2] for s in scores.values()] print(f"数学 - 最高分: {max(math_scores)}, 最低分: {min(math_scores)}") print(f"英语 - 最高分: {max(english_scores)}, 最低分: {min(english_scores)}") print(f"Python - 最高分: {max(python_scores)}, 最低分: {min(python_scores)}") # (5) 使用集合排除重复学号 def add_student(): existing_ids = {s[0] for s in students} while True: student_id = input("请输入学号(输入q退出): ") if student_id.lower() == 'q': break if student_id in existing_ids: print("该学号已存在,请重新输入") continue name = input("请输入姓名: ") students.append((student_id, name)) # 初始化成绩 math = int(input("数学成绩: ")) english = int(input("英语成绩: ")) python = int(input("Python成绩: ")) scores[student_id] = [math, english, python] existing_ids.add(student_id) print("学生信息添加成功") # 主菜单 def main(): while True: print("\n学生信息管理系统") print("1. 查询学生信息") print("2. 统计课程成绩") print("3. 添加学生信息") print("4. 退出系统") choice = input("请选择操作: ") if choice == '1': student_id = input("请输入学号: ") query_student(student_id) elif choice == '2': course_statistics() elif choice == '3': add_student() elif choice == '4': print("系统退出") break else: print("无效输入,请重新选择") if __name__ == "__main__": main() ``` ## 代码说明 1. 学生信息元组:使用元组存储学号和姓名,确保学生基本信息不可变。 2. 成绩字典:使用字典存储每个学生的三门课程成绩,键为学号,值为成绩列表。 3. 查询功能:输入学号可查询学生姓名和平均分,平均分计算保留两位小数。 4. 统计功能:分别计算数学、英语和Python课程的最高分和最低分。 5. 添加学生:使用集合检查重复学号,防止重复添加相同学号的学生。 6. 主菜单:提供交互式菜单,方便用户选择不同功能。 这个系统满足了所有要求,并提供了基本的交互界面,可以根据需要进一步扩展功能。 [2025-04-20 17:55:36 | AI问答 | 902点数解答]
- c语音 定义一个结构体student,其中包含的成员为char no[10];char name[10];float score。设有5个学生,从键盘输入其信息,按成绩的升序排序。并输出这5个学生排序后的信息。 输入格式: "%s%s%f" 输出格式: "请输入第%d位同学的信息:姓名 学号 成绩\n" "%s,%s,%.0f\n" 输入样例: 张三 10001 98↙ 李四 10002 100↙ 王五 10003 95↙ 赵六 10004 99↙ 钱七 10005 93↙ 输出样例: 请输入第1位同学的信息:姓名 学号 成绩↙ 请输入第2位同学的信息:姓名 学号 成绩↙ 请输入第3位同学的信息:姓名 学号 成绩↙ 请输入第4位同学的信息:姓名 学号 成绩↙ 请输入第5位同学的信息:姓名 学号 成绩↙ 钱七,10005,93↙ 王五,10003,95↙ 张三,10001,98↙ 赵六,10004,99↙ 李四,10002,100↙(373点数解答 | 2024-10-30 00:37:20)264
- 定义一个结构体student,其中包含的成员为char no[10];char name[10];float score。设有5个学生,从键盘输入其信息,按成绩的升序排序。并输出这5个学生排序后的信息。 输入格式: "%s%s%f" 输出格式: "请输入第%d位同学的信息:姓名 学号 成绩\n" "%s,%s,%.0f\n" 输入样例: 张三 10001 98 李四 10002 100 王五 10003 95 赵六 10004 99 钱七 10005 93 输出样例: 请输入第1位同学的信息:姓名 学号 成绩 请输入第2位同学的信息:姓名 学号 成绩 请输入第3位同学的信息:姓名 学号 成绩 请输入第4位同学的信息:姓名 学号 成绩 请输入第5位同学的信息:姓名 学号 成绩 钱七,10005,93 王五,10003,95 张三,10001,98 赵六,10004,99 李四,10002,100(354点数解答 | 2024-10-30 18:45:58)203
- c语言定义一个结构体student,其中包含的成员为char no[10];char name[10];float score。设有5个学生,从键盘输入其信息,按成绩的升序排序。并输出这5个学生排序后的信息。 输入格式: "%s%s%f" 输出格式: "请输入第%d位同学的信息:姓名 学号 成绩\n" "%s,%s,%.0f\n" 输入样例: 张三 10001 98↙ 李四 10002 100↙ 王五 10003 95↙ 赵六 10004 99↙ 钱七 10005 93↙ 输出样例: 请输入第1位同学的信息:姓名 学号 成绩↙ 请输入第2位同学的信息:姓名 学号 成绩↙ 请输入第3位同学的信息:姓名 学号 成绩↙ 请输入第4位同学的信息:姓名 学号 成绩↙ 请输入第5位同学的信息:姓名 学号 成绩↙ 钱七,10005,93↙ 王五,10003,95↙ 张三,10001,98↙ 赵六,10004,99↙ 李四,10002,100↙(373点数解答 | 2024-10-31 19:49:58)191
- c语音定义一个结构体student,其中包含的成员为char no[10];char name[10];float score。设有5个学生,从键盘输入其信息,按成绩的升序排序。并输出这5个学生排序后的信息。 输入格式: "%s%s%f" 输出格式: "请输入第%d位同学的信息:姓名 学号 成绩\n" "%s,%s,%.0f\n" 输入样例: 张三 10001 98↙ 李四 10002 100↙ 王五 10003 95↙ 赵六 10004 99↙ 钱七 10005 93↙ 输出样例: 请输入第1位同学的信息:姓名 学号 成绩↙ 请输入第2位同学的信息:姓名 学号 成绩↙ 请输入第3位同学的信息:姓名 学号 成绩↙ 请输入第4位同学的信息:姓名 学号 成绩↙ 请输入第5位同学的信息:姓名 学号 成绩↙ 钱七,10005,93↙ 王五,10003,95↙ 张三,10001,98↙ 赵六,10004,99↙ 李四,10002,100↙(326点数解答 | 2025-01-01 20:11:47)180
- 要求:使用元组和字典管理学生信息。(1)创建包含学生信息的元组(学号, 姓名)(2)使用字典存储每个学生三门课程的成绩,格式为 {学号: [数学, 英语, Python]}(3)输入学号可查询学生姓名和平均分(4)统计全班每门课程的最高分和最低分(5)使用集合自动排除重复的学号输入。(902点数解答 | 2025-04-20 17:55:36)59
- java定义并测试一个名为student的类,包括属性有“学号” “姓名”,以及3门课程“数学” “英语” “计算机”的成绩,包括的方法有计算3门课程的“总分”“平均分”“最高分”“最低分”(2332点数解答 | 2024-03-12 10:23:27)211
- 某中学对学生的附加科目进行能力测试,并按以下标准统计学科等级水平。 (1)生物和科学两门课都达到60分,并且总分达到300分为及格; (2)每门课达到85分,并且总分达到425分为优秀; (3)总分不到250分或有任意一门课不到60分,为不及格。 请从score.txt文件中读取学生成绩数据,判定等级并写入level.txt文件中。 1)score.txt 文件中数据组织形式:文件中的第一行是数据标签,数据从第二行开始,空格间 隔),例 学号 姓名 语文 数学 英语 生物 科学 001 赵晨 85 78 99 70 60 …… 2)level.txt 文件中数据组织形式:文件中的第一行是数据标签,数据从第二行开始,空格间 隔),例 学号 姓名 总成绩 达标 001 …… 赵晨 392 及格(573点数解答 | 2024-06-22 23:14:14)239
- 7-2 成绩计算-2-关联类 分数 50 作者 蔡轲 单位 南昌航空大学 创建成绩类,包含: 属性:平时成绩(int)、期末成绩(int) 方法:计算总成绩(计算规则:平时成绩*0.4+期末成绩*0.6,保留整数部分,小数部分直接丢弃) 创建学生类,包含: 属性:学号(String)、姓名(String)、语文成绩(成绩类)、数学成绩(成绩类)、物理成绩(成绩类) 方法:计算总分、计算平均分 输入3个学生的信息,将每个学生的信息封装在一个学生对象中。 按输入顺序依次输出3个学生的总分、平均分(精确到小数点后两位,舍去部分按四舍五入规则计入最后一位)。 浮点数保留小数的相关知识可参考:https://blog.csdn.net/huaishuming/article/details/17752365 注意:未用学生类对象封装数据的,本题计0分 输入格式: 依次输入3个学生的每门课成绩,每个学生成绩信息格式: 学号+英文空格+姓名+英文空格+课程名+英文空格+平时成绩+英文空格+期末成绩 注:3个学生的课程顺序可能会不一致 例如: 22201311 张琳 语文 7(621点数解答 | 2025-04-18 11:43:55)230
- 题目(description): 卫星导航系统(如我国自主研发的北斗卫星导航系统)能实时获取位置、速度、时间等时空信息,在交通运输、农林渔业、气象测报、通信授时、救灾减灾、公共安全等领域都得到了广泛应用。 在应用层面,卫星导航系统一般以报文方式进行数据传输,其中$gprmc是常用报文之一,基本的格式如下: $gprmc,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>*hh <1> utc时间,hhmmss.sss(时分秒.毫秒)格式 <2> 定位状态,a=有效定位,v=无效定位 <3> 纬度ddmm.mmmm(度分)格式 <4> 纬度半球n(北半球)或s(南半球) <5> 经度dddmm.mmmm(度分)格式 <6> 经度半球e(东经)或w(西经) <7> 地面速率(000.0~999.9节) <8> 地面航向(000.0~359.9度,以正北为参考基准) <9> utc日期,ddmmyy(日月年)格式 <10> 磁偏角(000.0~180.0度,前面的0也(385点数解答 | 2025-01-08 03:43:54)254
- 题目(description): 卫星导航系统(如我国自主研发的北斗卫星导航系统)能实时获取位置、速度、时间等时空信息,在交通运输、农林渔业、气象测报、通信授时、救灾减灾、公共安全等领域都得到了广泛应用。 在应用层面,卫星导航系统一般以报文方式进行数据传输,其中$gprmc是常用报文之一,基本的格式如下: $gprmc,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>*hh <1> utc时间,hhmmss.sss(时分秒.毫秒)格式 <2> 定位状态,a=有效定位,v=无效定位 <3> 纬度ddmm.mmmm(度分)格式 <4> 纬度半球n(北半球)或s(南半球) <5> 经度dddmm.mmmm(度分)格式 <6> 经度半球e(东经)或w(西经) <7> 地面速率(000.0~999.9节) <8> 地面航向(000.0~359.9度,以正北为参考基准) <9> utc日期,ddmmyy(日月年)格式 <10> 磁偏角(000.0~180.0度,前面的0也(346点数解答 | 2025-01-08 03:46:29)253
- 1.使用pandas库读取数据“data.csv”,展示其前5行数据。 2.对数据进行探索,查看数据类型、缺失值以及数据基本的数值统计详细信息。 3.对数据data日期格式数据做日期转换。 4.查看data**信息统计情况。 (1)查看发布**信息中所在城市city的岗位数量统计信息,统计**信息较多的前五名城市。 (2)保留学历是本科和大专的**信息. 0618220232 061822( (3)修改“district”列,如“高新区”,需要改成“成都-高新区” (4)找出"positionadvantage”职位优势这一列中有“双休”条件的**信息,在所有发布的**信息中的占比,保留2位小数。(5)根据“salary”工资列,新增最低工资和最高工资两列,列名分别设置为“最低工资”和“最高工资”,(如10k-30k,则最低 工资为10k,最高工资为20k) 5.对数据data作统计分析(642点数解答 | 2024-06-30 15:39:49)232
- 1.使用pandas库读取数据“data.csv”,展示其前5行数据。 2.对数据进行探索,查看数据类型、缺失值以及数据基本的数值统计详细信息。 3.对数据data日期格式数据做日期转换。 4.查看data**信息统计情况。 (1)查看发布**信息中所在城市city的岗位数量统计信息,统计**信息较多的前五名城市。 (2)保留学历是本科和大专的**信息. 0618220232 061822( (3)修改“district”列,如“高新区”,需要改成“成都-高新区” (4)找出"positionadvantage”职位优势这一列中有“双休”条件的**信息,在所有发布的**信息中的占比,保留2位小数。(5)根据“salary”工资列,新增最低工资和最高工资两列,列名分别设置为“最低工资”和“最高工资”,(如10k-30k,则最低 工资为10k,最高工资为20k) 5.对数据data作统计分析(1)统计分析各城市**数量分布图(2)**学历占比图 **学历占比图(3)通过**学历分析图,给出你对**发布情况的分析结论.(4)统计每一天发布的**数量图,按天来统计(提示:需要先将时间按每天来统(1539点数解答 | 2024-06-30 15:56:50)242