qcode
  • 创作工场专业版,一问多答!更智能、更完整、更原创
  • 这是一个超强内容创作平台,它会写文章、做设计、绘图、敲代码,有问必答!
🔥点击使用-免登录深度版🔥

C语言实现班级学生成绩管理系统:菜单操作、输入、计算、排序及查找功能设计

时间2023-06-20 10:37:42 提问来自 湖南省娄底市 的网友 分类创作 浏览492
以下是一个班30名学生,4门课程的成绩管理程序的C语言代码,实现了输入、计算、排序、输出和查找功能: ```c #include <stdio.h> #include <string.h> #define MAX_STUDENTS 30 #define MAX_NAME_LENGTH 20 struct student { int id; char name[MAX_NAME_LENGTH]; int scores[4]; float average; }; struct student students[MAX_STUDENTS]; int num_students = 0; void input_scores() { printf("请输入学生信息: "); for (int i = 0; i < MAX_STUDENTS; i++) { printf("请输入第%d个学生的学号(输入-1结束):", i + 1); scanf("%d", &students[i].id); if (students[i].id == -1) { break; } printf("请输入第%d个学生的姓名:", i + 1); scanf("%s", students[i].name); printf("请输入第%d个学生的4门课程成绩:", i + 1); for (int j = 0; j < 4; j++) { scanf("%d", &students[i].scores[j]); } num_students++; } } void calculate_average() { for (int i = 0; i < num_students; i++) { int sum = 0; for (int j = 0; j < 4; j++) { sum += students[i].scores[j]; } students[i].average = (float)sum / 4; } } void sort_by_average() { for (int i = 0; i < num_students - 1; i++) { for (int j = 0; j < num_students - i - 1; j++) { if (students[j].average < students[j + 1].average) { struct student temp = students[j]; students[j] = students[j + 1]; students[j + 1] = temp; } } } } void output_scores() { printf("学号 姓名 语文 数学 英语 计算机 平均分 "); for (int i = 0; i < num_students; i++) { printf("%d %s %d %d %d %d %.2f ", students[i].id, students[i].name, students[i].scores[0], students[i].scores[1], students[i].scores[2], students[i].scores[3], students[i].average); } } void search_by_id() { int id; printf("请输入要查找的学生学号:"); scanf("%d", &id); for (int i = 0; i < num_students; i++) { if (students[i].id == id) { printf("学号 姓名 语文 数学 英语 计算机 平均分 "); printf("%d %s %d %d %d %d %.2f ", students[i].id, students[i].name, students[i].scores[0], students[i].scores[1], students[i].scores[2], students[i].scores[3], students[i].average); return; } } printf("未找到该学生! "); } void search_by_name() { char name[MAX_NAME_LENGTH]; printf("请输入要查找的学生姓名:"); scanf("%s", name); for (int i = 0; i < num_students; i++) { if (strcmp(students[i].name, name) == 0) { printf("学号 姓名 语文 数学 英语 计算机 平均分 "); printf("%d %s %d %d %d %d %.2f ", students[i].id, students[i].name, students[i].scores[0], students[i].scores[1], students[i].scores[2], students[i].scores[3], students[i].average); return; } } printf("未找到该学生! "); } int main() { int choice; do { printf("请选择要进行的操作: "); printf("1. 成绩信息的输入 "); printf("2. 成绩的计算 "); printf("3. 成绩的排序 "); printf("4. 成绩信息的输出 "); printf("5. 学生的查找(按学号) "); printf("6. 学生的查找(按姓名) "); printf("0. 退出程序 "); printf("请输入操作编号:"); scanf("%d", &choice); switch (choice) { case 1: input_scores(); break; case 2: calculate_average(); break; case 3: sort_by_average(); break; case 4: output_scores(); break; case 5: search_by_id(); break; case 6: search_by_name(); break; case 0: printf("程序已退出! "); break; default: printf("无效的操作编号,请重新输入! "); break; } } while (choice != 0); return 0; } ``` 程序中使用了结构体来存储每个学生的信息,包括学号、姓名、4门课程成绩和平均分。输入、计算、排序、输出和查找功能都是通过调用不同的函数来实现的。在菜单中,用户可以选择要进行的操作,直到选择退出程序为止。

不满意?免费深度重写!

免责声明:
以上内容除特别注明外均来源于网友提问,创作工场回答,未经许可,严谨转载。

上一篇 设计一个初中地理东北三省观看视频后的课堂导入 下一篇 发条橙 A Clockwork Orange影评