设计内容及要求:学生信息要求:不少于2个班级,每个班级不少于10位学生,格式如下:学号(10位,如2023030201) 、姓名、性别、班级、数据结构、linux编程基础、python程序设计。学生数据存储到文件中(也可以使用数据库),示例如下: 序号 学号 姓名 性别 班级 数据结构 linux编程基础 python程序设计 备注 1 2023300201 张三 男 计科1班 90 88 85 2 2023300202 李丽 女 计科2班 85 76 80 实习功能如下: (1)按班级顺序输出学生信息列表; (2)创建:插入一条学生信息,并输出验证是否插入成功; (3)删除:按学号删除一条学生记录,并输出验证是否删除成功; (4)修改:修改某位学生的课程成绩,并验证是否修改成功; (5)查找:按照学生姓名查找学生某门课程成绩并输出显示; (6)排序:要体现不少于两种排序算法 (a)统计每个学生的总分,按总分降序输出; (b)统计每个学生的平均分,按平均分增序输出; (c)统计每个班中总分前三名和后三名,并输出; (7)退出程序,用c语言写,给出完整的代码
#include <stdio.h> #include <stdlib.h> #include <string.h> struct Student { char id[11]; char name[50]; char gender[10]; char class[20]; int data_structure; int linux_programming; int python_programming; }; void printStudent(struct Student student) { printf("%s %s %s %s %d %d %d\n", student.id, student.name, student.gender, student.class, student.data_structure, student.linux_programming, student.python_programming); } void printStudents(struct Student students[], int size) { printf("序号 学号 姓名 性别 班级 数据结构 linux编程基础 python程序设计\n"); for (int i = 0; i < size; i++) { printf("%d ", i+1); printStudent(students[i]); } } void createStudent(struct Student students[], int size, struct Student newStudent) { students[size] = newStudent; printf("插入成功!\n"); } void deleteStudent(struct Student students[], int *size, char studentId[11]) { int index = -1; for (int i = 0; i < *size; i++) { if (strcmp(students[i].id, studentId) == 0) { index = i; break; } } if (index != -1) { for (int i = index; i < *size - 1; i++) { students[i] = students[i+1]; } (*size)--; printf("删除成功!\n"); } else { printf("未找到该学生!\n"); } } void updateGrade(struct Student students[], int size, char studentId[11], int newDataStructure, int newLinuxProgramming, int newPythonProgramming) { for (int i = 0; i < size; i++) { if (strcmp(students[i].id, studentId) == 0) { students[i].data_structure = newDataStructure; students[i].linux_programming = newLinuxProgramming; students[i].python_programming = newPythonProgramming; printf("修改成功!\n"); return; } } printf("未找到该学生!\n"); } void searchGrade(struct Student students[], int size, char name[50], char subject[20]) { for (int i = 0; i < size; i++) { if (strcmp(students[i].name, name) == 0) { if (strcmp(subject, "data_structure") == 0) { printf("%s 的数据结构成绩为:%d\n", name, students[i].data_structure); } else if (strcmp(subject, "linux_programming") == 0) { printf("%s 的linux编程基础成绩为:%d\n", name, students[i].linux_programming); } else if (strcmp(subject, "python_programming") == 0) { printf("%s 的python程序设计成绩为:%d\n", name, students[i].python_programming); } return; } } printf("未找到该学生!\n"); } void sortByTotal(struct Student students[], int size) { // Bubble sort for (int i = 0; i < size - 1; i++) { for (int j = 0; j < size - i - 1; j++) { if (students[j].data_structure + students[j].linux_programming + students[j].python_programming < students[j+1].data_structure + students[j+1].linux_programming + students[j+1].python_programming) { struct Student temp = students[j]; students[j] = students[j+1]; students[j+1] = temp; } } } printf("按总分降序排序完成!\n"); printStudents(students, size); } void sortByAverage(struct Student students[], int size) { // Insertion sort for (int i = 1; i < size; i++) { struct Student key = students[i]; int j = i - 1; while (j >= 0 && (students[j].data_structure + students[j].linux_programming + students[j].python_programming) / 3 > (key.data_structure + key.linux_programming + key.python_programming) / 3) { students[j+1] = students[j]; j = j - 1; } students[j+1] = key; } printf("按平均分增序排序完成!\n"); printStudents(students, size); } void sortInClass(struct Student students[], int size) { // Selection sort int start = 0; while (start < size) { int minIndex = start; int maxIndex = start; for (int i = start; i < size; i++) { if (students[i].data_structure + students[i].linux_programming + students[i].python_programming > students[maxIndex].data_structure + students[maxIndex].linux_programming + students[maxIndex].python_programming) { maxIndex = i; } if (students[i].data_structure + students[i].linux_programming + students[i].python_programming < students[minIndex].data_structure + students[minIndex].linux_programming + students[minIndex].python_programming) { minIndex = i; } } struct Student temp = students[start]; students[start] = students[minIndex]; students[minIndex] = temp; if (maxIndex == start) { maxIndex = minIndex; } temp = students[size - 1]; students[size - 1] = students[maxIndex]; students[maxIndex] = temp; start++; } printf("按班级总分前三名和后三名排序完成!\n"); printStudents(students, size); } int main() { struct Student students[20]; int size = 0; // Initialize student data struct Student student1 = {"2023300201", "张三", "男", "计科1班", 90, 88, 85}; struct Student student2 = {"2023300202", "李丽", "女", "计科2班", 85, 76, 80}; students[size++] = student1; students[size++] = student2; int choice; do { printf("1. 按班级顺序输出学生信息列表\n"); printf("2. 插入一条学生信息\n"); printf("3. 按学号删除一条学生记录\n"); printf("4. 修改某位学生的课程成绩\n"); printf("5. 按照学生姓名查找学生某门课程成绩\n"); printf("6. 按总分降序输出/按平均分增序输出/按班级总分前三名和后三名输出\n"); printf("7. 退出程序\n"); printf("请选择功能:"); scanf("%d", &choice); switch (choice) { case 1: printStudents(students, size); break; case 2: { struct Student newStudent; printf("请输入学号:"); scanf("%s", newStudent.id); printf("请输入姓名:"); scanf("%s", newStudent.name); printf("请输入性别:"); scanf("%s", newStudent.gender); printf("请输入班级:"); scanf("%s", newStudent.class); printf("请输入数据结构成绩:"); scanf("%d", &newStudent.data_structure); printf("请输入linux编程基础成绩:"); scanf("%d", &newStudent.linux_programming); printf("请输入python程序设计成绩:"); scanf("%d", &newStudent.python_programming); createStudent(students, size, newStudent); size++; } break; case 3: { char studentId[11]; printf("请输入要删除的学生学号:"); scanf("%s", studentId); deleteStudent(students, &size, studentId); } break; case 4: { char studentId[11]; int newDataStructure, newLinuxProgramming, newPythonProgramming; printf("请输入要修改成绩的学生学号:"); scanf("%s", studentId); printf("请输入新的数据结构成绩:"); scanf("%d", &newDataStructure); printf("请输入新的linux编程基础成绩:"); scanf("%d", &newLinuxProgramming); printf("请输入新的python程序设计成绩:"); scanf("%d", &newPythonProgramming); updateGrade(students, size, studentId, newDataStructure, newLinuxProgramming, newPythonProgramming); } break; case 5: { char name[50]; char subject[20]; printf("请输入要查找成绩的学生姓名:"); scanf("%s", name); printf("请输入要查找的科目(data_structure/linux_programming/python_programming):"); scanf("%s", subject); searchGrade(students, size, name, subject); } break; case 6: { int sortChoice; printf("选择排序方式:\n"); printf("1. 按总分降序输出\n"); printf("2. 按平均分增序输出\n"); printf("3. 按班级总分前三名和后三名输出\n"); scanf("%d", &sortChoice); switch (sortChoice) { case 1: sortByTotal(students, size); break; case 2: sortByAverage(students, size); break; case 3: sortInClass(students, size); break; default: printf("无效选择!\n"); } } break; case 7: printf("程序已退出!\n"); break; default: printf("无效选择!\n"); } } while (choice != 7); return 0; } [2024-12-15 22:10:03 | AI写代码神器 | 6408点数解答]
- [GPT] 设计内容及要求:学生信息要求:不少于2个班级,每个班级不少于10位学生,格式如下:学号(10位,如2023030201) 、姓名、性别、班级、数据结构、linux编程基础、python程序设计。学生数据存储到文件中(也可以使用数据库),示例如下: 序号 学号 姓名 性别 班级 数据结构 linux编程基础 python程序设计 备注 1 2023300201 张三 男 计科1班 90 88 85 2 2023300202 李丽 女 计科2班 85 76 80 实习功能如下: (1)按班级顺序输出学生信息列表; (2)创建:插入一条学生信息,并输出验证是否插入成功; (3)删除:按学号删除一条学生记录,并输出验证是否删除成功; (4)修改:修改某位学生的课程成绩,并验证是否修改成功; (5)查找:按照学生姓名查找学生某门课程成绩并输出显示; (6)排序:要体现不少于两种排序算法 (a)统计每个学生的总分,按总分降序输出; (b)统计每个学生的平均分,按平均分增序输出; (c)统计每个班中总分前三名和后三名,并输出; (7)退出程序,用c语言写(2547点数解答 | 2024-12-15 22:08:58)333
- [GPT] 设计内容及要求:学生信息要求:不少于2个班级,每个班级不少于10位学生,格式如下:学号(10位,如2023030201) 、姓名、性别、班级、数据结构、linux编程基础、python程序设计。学生数据存储到文件中(也可以使用数据库),示例如下: 序号 学号 姓名 性别 班级 数据结构 linux编程基础 python程序设计 备注 1 2023300201 张三 男 计科1班 90 88 85 2 2023300202 李丽 女 计科2班 85 76 80 实习功能如下: (1)按班级顺序输出学生信息列表; (2)创建:插入一条学生信息,并输出验证是否插入成功; (3)删除:按学号删除一条学生记录,并输出验证是否删除成功; (4)修改:修改某位学生的课程成绩,并验证是否修改成功; (5)查找:按照学生姓名查找学生某门课程成绩并输出显示; (6)排序:要体现不少于两种排序算法 (a)统计每个学生的总分,按总分降序输出; (b)统计每个学生的平均分,按平均分增序输出; (c)统计每个班中总分前三名和后三名,并输出; (7)退出程序,用c语言写,给出完整的代码(6408点数解答 | 2024-12-15 22:10:03)322
- [字节豆包] 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)393
- [字节豆包] 定义一个结构体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)327
- [字节豆包] 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)318
- [字节豆包] 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)310
- [GPT] student = [张三,李四,王五,周六,赵七] score =[ ["会计学", "c语言", "java"], ["python", "程序设计", "java"], ["数据结构", "c语言", "java"], ["python", "c语言", "大学计算机基础"], ["python", "会计学", "信息管理"] ] 1.将两个列表转换为一个字典,名为dict2 2.遍历字典dict2 3.将dict2深拷贝 4.在拷贝后的文件上做如下操作: 1)删除周六的信息 2)添加键值对:“钱一”:["管理科学与工程", "大学计算机基础", "大学数学"] 3)修改“张三”的三个课程为"大学数学", "c语言", "python"(422点数解答 | 2024-10-29 15:43:54)375
- [字节豆包] student = [张三,李四,王五,周六,赵七] score =[ ["会计学", "c语言", "java"], ["python", "程序设计", "java"], ["数据结构", "c语言", "java"], ["python", "c语言", "大学计算机基础"], ["python", "会计学", "信息管理"] ] 1.将两个列表转换为一个字典,名为dict2 2.遍历字典dict2 3.将dict2深拷贝 4.在拷贝后的文件上做如下操作: 1)删除周六的信息 2)添加键值对:“钱一”:["管理科学与工程", "大学计算机基础", "大学数学"] 3)修改“张三”的三个课程为"大学数学", "c语言", "python"(254点数解答 | 2024-10-29 16:01:39)371
- [字节豆包] ID Math Physics Programming ExpScore 2025001 85 78 92 88 2025002 92 88 95 92 2025003 76 85 88 85 2025004 65 72 61 68 2025005 88 90 87 89 2025006 54 61 58 55 2025007 95 92 96 94 2025008 81 79 84 82 2025009 70 68 74 72 2025010 43 55 49 50 这是表格,待会我会向你提问问提,请根据这个表格作答 1)利用student_data.xlsx文件在MATLAB中创建表格数组T。(4分) 2)将表格数组T转换为数值数组A。(4分) 3)对数组A进行操作,取出10名同学的数学成绩。(4分) 4)对数组A进行操作,提取物理成绩(Physics)最高的同学的完整数据(ID、Math、Physics、Programming、ExpScore)。(4分) 5)对数组A进行操作,计算4门课程的平均分和标准差。(4分) (600点数解答 | 2025-12-26 08:56:56)91
- [字节豆包] 定义一个尊享无忧的学生类(student), ①学生类的成员属性分别是姓名(name),年龄(age),语文成绩(yuwen),数学成绩(shuxue),班级(banji)(所有的学生都是尊享无忧班级) ②定义学习的方法(study) ③创一个测试类,并完成如下内容: 创建两个学生对象张三和李四,通过成员方法(study)将学生信息打印到控制台上。(格式如下) 张三,18岁,语文成绩:98,数学成绩:90,班级:尊享无忧 好好学习,天天向上 张三,19岁,语文成绩:98,数学成绩:90,班级:尊享无忧 好好学习,天天向上(264点数解答 | 2024-09-18 16:21:36)265
- [字节豆包] 随埛生成20埊60-100之间的堝数值塒素的塒组作为成绩输入,根据字典{'优':90,'良':80,'埓':70,'塤':60}分别判断各埊等级对应的成绩数量,输出所有成绩和以字典形式输出各埊等级对应的成绩数量。 输出示例: 成绩: 77 成绩: 65 …… 成绩: 84 {'优': 7, '良': 4, '埓': 5, '塤': 4} 注:提交时,将代码埓该随埛堝数塒组修改为指墊塒组,即scores=(77, 65, 95, 90, 66, 88, 62, 72, 89, 90, 92, 85, 98, 65, 74, 71, 95, 77, 96, 84),才可自动判题。(219点数解答 | 2025-04-09 10:20:32)197
- [GPT] c++程序: 实现一个单门课程成绩管理系统。进入系统时,用户可选择身份:1.教师;2学生。 以教师身份进入后,如果上次已保存了数据,可将文件中数据读取出来,并允许修改部分数据。如果未保存数据,则允许教师录入新的数据。具体功能包括: 可录入或修改课程信息,包括:课程编号、课程名称; 可录入或修改课程的评分项目 (数量任意,不低于3项),包括:项目名称、所占分比例(需进行合法性检测,各项目比例之和为100%);示例如下: 项目名称 所占比例 实验 30% 作业 20% 期中考试 20% 期末考试 30% 注: 一旦录入学生成绩后,评分项目不允许修改;未录入成绩数据时,允许进行修改。 3.可录入、修改、刑除学生(学生数量不限)读门课程的各项成绩,并按照其比例自动算出总成绩;学生基本信息包括学号、姓名;示例如下: 请录入“c++编程”课程成绩 学号:201901 姓名:张三 实验:60 作业:70 期中考试:60 期未考试:80 信息显示功能。可显示课程信息、评分项目信息、所有学生的成绩单。 5.能够将上述数据保存在文件中,二进制、文本文件均可。(课程信息和评 分项目信息可保存一个文件,成绩单(6361点数解答 | 2024-05-24 02:01:02)498