C语言编写学生成绩管理系统
时间: 2023-07-09 22:18:19 浏览: 49
好的,我可以为您提供一些关于C语言编写学生成绩管理系统方面的建议。
首先,您需要定义学生结构体,包含学生的姓名、学号、各科成绩等信息。然后,您需要设计一个菜单界面,包含添加学生信息、查询学生信息、修改学生信息、删除学生信息等操作。对于每个操作,您需要编写相应的函数来实现。
以下是一个简单的学生成绩管理系统的C语言代码示例:
```c
#include <stdio.h>
#include <string.h>
struct student {
char name[20];
int id;
int math;
int english;
int computer;
float average;
};
void add_student(struct student *students, int *count) {
printf("请输入学生姓名:");
scanf("%s", students[*count].name);
printf("请输入学号:");
scanf("%d", &students[*count].id);
printf("请输入数学成绩:");
scanf("%d", &students[*count].math);
printf("请输入英语成绩:");
scanf("%d", &students[*count].english);
printf("请输入计算机成绩:");
scanf("%d", &students[*count].computer);
students[*count].average = (students[*count].math + students[*count].english + students[*count].computer) / 3.0;
(*count)++;
}
void print_student(struct student student) {
printf("姓名:%s 学号:%d 数学成绩:%d 英语成绩:%d 计算机成绩:%d 平均分:%.2f\n", student.name, student.id, student.math, student.english, student.computer, student.average);
}
void search_student(struct student *students, int count) {
int id;
printf("请输入要查询的学生学号:");
scanf("%d", &id);
for (int i = 0; i < count; i++) {
if (students[i].id == id) {
print_student(students[i]);
return;
}
}
printf("未找到学号为%d的学生\n", id);
}
void modify_student(struct student *students, int count) {
int id;
printf("请输入要修改的学生学号:");
scanf("%d", &id);
for (int i = 0; i < count; i++) {
if (students[i].id == id) {
printf("当前学生信息如下:\n");
print_student(students[i]);
printf("请输入修改后的数学成绩:");
scanf("%d", &students[i].math);
printf("请输入修改后的英语成绩:");
scanf("%d", &students[i].english);
printf("请输入修改后的计算机成绩:");
scanf("%d", &students[i].computer);
students[i].average = (students[i].math + students[i].english + students[i].computer) / 3.0;
printf("修改成功!修改后的学生信息如下:\n");
print_student(students[i]);
return;
}
}
printf("未找到学号为%d的学生\n", id);
}
void delete_student(struct student *students, int *count) {
int id;
printf("请输入要删除的学生学号:");
scanf("%d", &id);
for (int i = 0; i < *count; i++) {
if (students[i].id == id) {
for (int j = i; j < *count - 1; j++) {
students[j] = students[j + 1];
}
(*count)--;
printf("删除成功!\n");
return;
}
}
printf("未找到学号为%d的学生\n", id);
}
void print_menu() {
printf("学生成绩管理系统\n");
printf("1. 添加学生信息\n");
printf("2. 查询学生信息\n");
printf("3. 修改学生信息\n");
printf("4. 删除学生信息\n");
printf("5. 退出\n");
}
int main() {
struct student students[100];
int count = 0;
int choice;
while (1) {
print_menu();
printf("请输入操作编号:");
scanf("%d", &choice);
switch (choice) {
case 1:
add_student(students, &count);
break;
case 2:
search_student(students, count);
break;
case 3:
modify_student(students, count);
break;
case 4:
delete_student(students, &count);
break;
case 5:
printf("谢谢使用!\n");
return 0;
default:
printf("无效的操作编号,请重新输入!\n");
break;
}
}
}
```
这是一个基本的框架,您可以根据具体需求进行修改和完善。希望能对您有所帮助!