经典案例之 学生成绩管理系统

下面是一个简单的学生成绩管理系统,包括增加、删除、修改和查询学生成绩的功能,用C语言编写。

步骤解析:

  1. 定义结构体类型

我们需要定义一个结构体类型来存储学生信息,包括姓名、学号和成绩等字段。以下是一个示例结构体定义:

typedef struct student { char name[20]; int id; float score; } Student;

  1. 定义全局变量

我们需要定义一个全局变量来存储学生信息,以便在程序中进行增删改查操作。以下是一个示例全局变量定义:

#define MAX_STUDENTS 100 Student students[MAX_STUDENTS]; int num_students = 0;

这里我们定义了一个名为“students”的数组,用于存储所有学生的信息,以及一个名为“num_students”的整数变量,用于记录当前学生的数量。

  1. 实现增加学生信息功能

增加学生信息功能需要实现以下步骤:

  • 提示用户输入学生信息(包括姓名、学号和成绩);
  • 将学生信息添加到“students”数组中;
  • 更新“num_students”变量的值。

以下是一个示例增加学生信息函数的实现:

void add_student() { if (num_students >= MAX_STUDENTS) { printf("The maximum number of students has been reached.\n"); return; } printf("Enter the name of the student: "); scanf("%s", students[num_students].name); printf("Enter the ID of the student: "); scanf("%d", &students[num_students].id); printf("Enter the score of the student: "); scanf("%f", &students[num_students].score); num_students++; printf("Student added successfully.\n"); }

  1. 实现删除学生信息功能

删除学生信息功能需要实现以下步骤:

  • 提示用户输入要删除的学生的学号;
  • 在“students”数组中查找该学号对应的学生信息;
  • 如果找到了对应的学生信息,则将该学生信息从数组中删除;
  • 更新“num_students”变量的值。

以下是一个示例删除学生信息函数的实现:

void delete_student() { int id; int i, j; printf("Enter the ID of the student to be deleted: "); scanf("%d", &id); for (i = 0; i < num_students; i++) { if (students[i].id == id) { for (j = i; j < num_students - 1; j++) { students[j] = students[j + 1]; } num_students--; printf("Student deleted successfully.\n"); return; } } printf("No student with the specified ID was found.\n"); }

  1. 实现修改学生信息功能

修改学生信息功能需要实现以下步骤:

以下是一个示例查询学生信息函数的实现:

void search_student() { int choice; char keyword[20]; int i; printf("How do you want to search for the student?\n"); printf("1. By name\n"); printf("2. By ID\n"); printf("Your choice: "); scanf("%d", &choice); printf("Enter the keyword to search for: "); scanf("%s", keyword); for (i = 0; i < num_students; i++) { if ((choice == 1 && strcmp(students[i].name, keyword) == 0) || (choice == 2 && students[i].id == atoi(keyword))) { printf("Name: %s, ID: %d, Score: %.2f\n", students[i].name, students[i].id, students[i].score); } } }

在主函数中,我们需要提供一个菜单,让用户选择要执行的功能。以下是一个示例主函数的实现:

int main() { int choice; while (1) { printf("\n"); printf("Student Score Management System\n"); printf("================================\n"); printf("1. Add student\n"); printf("2. Delete student\n"); printf("3. Modify student\n"); printf("4. Search student\n"); printf("5. Exit\n"); printf("Your choice: "); scanf("%d", &choice); switch (choice) { case 1: add_student(); break; case 2: delete_student(); break; case 3: modify_student(); break; case 4: search_student(); break; case 5: exit(0); default: printf("Invalid choice.\n"); } } return 0; }

这个主函数包含一个循环,每次循环都显示一个菜单,并根据用户的选择执行相应的功能。当用户选择退出时,程序退出。

这就是一个简单的学生成绩管理系统的实现。

  • 提示用户输入要修改的学生的学号;
  • 在“students”数组中查找该学号对应的学生信息;
  • 如果找到了对应的学生信息,则提示用户输入新的学生信息,并将其更新到数组中。

    以下是一个示例修改学生信息函数的实现:

    void modify_student() { int id; int i; printf("Enter the ID of the student to be modified: "); scanf("%d", &id); for (i = 0; i < num_students; i++) { if (students[i].id == id) { printf("Enter the new name of the student: "); scanf("%s", students[i].name); printf("Enter the new score of the student: "); scanf("%f", &students[i].score); printf("Student modified successfully.\n"); return; } } printf("No student with the specified ID was found.\n"); }

  • 实现查询学生信息功能
  • 查询学生信息功能需要实现以下步骤:

  • 提示用户选择要查询的方式(按姓名或按学号);
  • 根据用户的选择,提示用户输入要查询的关键字;
  • 在“students”数组中查找符合条件的学生信息,并输出到屏幕上。
  • 编写主函数
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值