c语言学生成绩管理系统
时间: 2023-09-22 22:05:01 浏览: 75
学生成绩管理系统一般包括以下功能:
1. 添加学生:输入学生的姓名、学号、性别等信息,并保存到文件或数据库中。
2. 录入成绩:输入每位学生的各科成绩,包括数学、语文、英语等科目,并计算总分、平均分等数据。
3. 查询成绩:按照学号或姓名查询某位学生的各科成绩、总分、平均分等数据。
4. 修改成绩:按照学号或姓名修改某位学生的各科成绩。
5. 删除学生:按照学号或姓名删除某位学生的信息和成绩。
6. 统计成绩:计算全班各科的平均分、最高分、最低分等数据,并输出成绩单。
下面是一个基于 C 语言的学生成绩管理系统的实现示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义学生结构体
struct student {
char name[20]; // 姓名
char id[20]; // 学号
char sex[10]; // 性别
int math; // 数学成绩
int chinese; // 语文成绩
int english; // 英语成绩
int total; // 总分
float average; // 平均分
};
// 定义学生数组和计数器
struct student students[100];
int count = 0;
// 添加学生信息
void addStudent() {
struct student s;
printf("请输入学生姓名:");
scanf("%s", s.name);
printf("请输入学号:");
scanf("%s", s.id);
printf("请输入性别:");
scanf("%s", s.sex);
printf("请输入数学成绩:");
scanf("%d", &s.math);
printf("请输入语文成绩:");
scanf("%d", &s.chinese);
printf("请输入英语成绩:");
scanf("%d", &s.english);
s.total = s.math + s.chinese + s.english;
s.average = s.total / 3.0;
students[count++] = s;
printf("学生信息添加成功!\n");
}
// 显示学生信息
void showStudent() {
printf("姓名\t学号\t性别\t数学\t语文\t英语\t总分\t平均分\n");
for (int i = 0; i < count; i++) {
struct student s = students[i];
printf("%s\t%s\t%s\t%d\t%d\t%d\t%d\t%.2f\n", s.name, s.id, s.sex, s.math, s.chinese, s.english, s.total, s.average);
}
}
// 查询学生信息
void queryStudent() {
int choice;
printf("请选择查询方式:\n");
printf("1.按学号查询\n");
printf("2.按姓名查询\n");
scanf("%d", &choice);
if (choice == 1) {
char id[20];
printf("请输入学号:");
scanf("%s", id);
for (int i = 0; i < count; i++) {
struct student s = students[i];
if (strcmp(s.id, id) == 0) {
printf("姓名\t学号\t性别\t数学\t语文\t英语\t总分\t平均分\n");
printf("%s\t%s\t%s\t%d\t%d\t%d\t%d\t%.2f\n", s.name, s.id, s.sex, s.math, s.chinese, s.english, s.total, s.average);
return;
}
}
printf("未找到该学生!\n");
} else if (choice == 2) {
char name[20];
printf("请输入姓名:");
scanf("%s", name);
for (int i = 0; i < count; i++) {
struct student s = students[i];
if (strcmp(s.name, name) == 0) {
printf("姓名\t学号\t性别\t数学\t语文\t英语\t总分\t平均分\n");
printf("%s\t%s\t%s\t%d\t%d\t%d\t%d\t%.2f\n", s.name, s.id, s.sex, s.math, s.chinese, s.english, s.total, s.average);
return;
}
}
printf("未找到该学生!\n");
} else {
printf("输入无效!\n");
}
}
// 修改学生信息
void modifyStudent() {
char id[20];
printf("请输入要修改的学生学号:");
scanf("%s", id);
for (int i = 0; i < count; i++) {
struct student s = students[i];
if (strcmp(s.id, id) == 0) {
printf("请输入修改后的数学成绩:");
scanf("%d", &s.math);
printf("请输入修改后的语文成绩:");
scanf("%d", &s.chinese);
printf("请输入修改后的英语成绩:");
scanf("%d", &s.english);
s.total = s.math + s.chinese + s.english;
s.average = s.total / 3.0;
students[i] = s;
printf("修改成功!\n");
return;
}
}
printf("未找到该学生!\n");
}
// 删除学生信息
void deleteStudent() {
char id[20];
printf("请输入要删除的学生学号:");
scanf("%s", id);
for (int i = 0; i < count; i++) {
struct student s = students[i];
if (strcmp(s.id, id) == 0) {
for (int j = i; j < count - 1; j++) {
students[j] = students[j + 1];
}
count--;
printf("删除成功!\n");
return;
}
}
printf("未找到该学生!\n");
}
// 统计学生信息
void statisticsStudent() {
int mathSum = 0;
int chineseSum = 0;
int englishSum = 0;
int maxTotal = 0;
int minTotal = 300;
char maxName[20];
char minName[20];
for (int i = 0; i < count; i++) {
struct student s = students[i];
mathSum += s.math;
chineseSum += s.chinese;
englishSum += s.english;
if (s.total > maxTotal) {
maxTotal = s.total;
strcpy(maxName, s.name);
}
if (s.total < minTotal) {
minTotal = s.total;
strcpy(minName, s.name);
}
}
printf("全班数学平均分为:%.2f\n", mathSum / (float)count);
printf("全班语文平均分为:%.2f\n", chineseSum / (float)count);
printf("全班英语平均分为:%.2f\n", englishSum / (float)count);
printf("全班最高分为:%d,姓名为:%s\n", maxTotal, maxName);
printf("全班最低分为:%d,姓名为:%s\n", minTotal, minName);
}
// 主函数
int main() {
int choice;
while (1) {
printf("请选择操作:\n");
printf("1.添加学生\n");
printf("2.显示学生\n");
printf("3.查询学生\n");
printf("4.修改学生\n");
printf("5.删除学生\n");
printf("6.统计学生\n");
printf("0.退出程序\n");
scanf("%d", &choice);
switch (choice) {
case 1:
addStudent();
break;
case 2:
showStudent();
break;
case 3:
queryStudent();
break;
case 4:
modifyStudent();
break;
case 5:
deleteStudent();
break;
case 6:
statisticsStudent();
break;
case 0:
printf("程序已退出!\n");
return 0;
default:
printf("输入无效!\n");
break;
}
}
return 0;
}
```
使用该程序可以方便地管理学生信息和成绩,提高教学效率和管理效率。
阅读全文