设计内容及要求:学生信息要求:不少于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点数解答]
- 设计内容及要求:学生信息要求:不少于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)252
- 设计内容及要求:学生信息要求:不少于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)245
- 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)293
- 定义一个结构体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)229
- 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)219
- 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)204
- 随埛生成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)122
- 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)259
- 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)255
- 定义一个尊享无忧的学生类(student), ①学生类的成员属性分别是姓名(name),年龄(age),语文成绩(yuwen),数学成绩(shuxue),班级(banji)(所有的学生都是尊享无忧班级) ②定义学习的方法(study) ③创一个测试类,并完成如下内容: 创建两个学生对象张三和李四,通过成员方法(study)将学生信息打印到控制台上。(格式如下) 张三,18岁,语文成绩:98,数学成绩:90,班级:尊享无忧 好好学习,天天向上 张三,19岁,语文成绩:98,数学成绩:90,班级:尊享无忧 好好学习,天天向上(264点数解答 | 2024-09-18 16:21:36)200
- https://chatgpt.com/?q=%E5%8F%AF%E5%A4%9A%E5%9C%A8%E6%95%99%E7%8C%B4%E5%B0%8F%E5%AE%9D%E8%AE%A4%E8%AF%86%E6%95%B0%E4%BD%8D%EF%BC%8C%E4%B8%AA%E3%80%81%E5%8D%81%E3%80%81%E7%99%BE%E3%80%81%E5%8D%83%E3%80%81%E4%B8%87%E2%80%A6%E2%80%A6%E5%8F%AF%E5%A4%9A%E4%BB%8E%E5%B7%A6%E5%88%B0%E5%8F%B3%EF%BC%8C%E4%BB%8E%E9%AB%98%E4%BD%8D%E5%88%B0%E4%BD%8E%E4%BD%8D%EF%BC%8C%E5%86%99%E4%B8%8B%E4%BA%86%E4%B8%80%E4%BA%9B%E6%95%B0%E5%AD%97%EF%BC%8C%E8%AE%A9%E7%8C%B4%E5%B0%8F%E5%AE%9D%E6%8B%BC%E5%87%BA%E4%B8%80%E4%B8%AA(395点数解答 | 2025-04-05 11:50:38)161
- https://chatgpt.com/?q=%E5%8F%AF%E5%A4%9A%E5%9C%A8%E6%95%99%E7%8C%B4%E5%B0%8F%E5%AE%9D%E8%AE%A4%E8%AF%86%E6%95%B0%E4%BD%8D%EF%BC%8C%E4%B8%AA%E3%80%81%E5%8D%81%E3%80%81%E7%99%BE%E3%80%81%E5%8D%83%E3%80%81%E4%B8%87%E2%80%A6%E2%80%A6%E5%8F%AF%E5%A4%9A%E4%BB%8E%E5%B7%A6%E5%88%B0%E5%8F%B3%EF%BC%8C%E4%BB%8E%E9%AB%98%E4%BD%8D%E5%88%B0%E4%BD%8E%E4%BD%8D%EF%BC%8C%E5%86%99%E4%B8%8B%E4%BA%86%E4%B8%80%E4%BA%9B%E6%95%B0%E5%AD%97%EF%BC%8C%E8%AE%A9%E7%8C%B4%E5%B0%8F%E5%AE%9D%E6%8B%BC%E5%87%BA%E4%B8%80%E4%B8%AA(351点数解答 | 2025-04-05 11:52:06)147