学生成绩管理系统c++
时间: 2023-09-11 13:07:18 浏览: 70
对于学生成绩管理系统的C语言实现,可以采用结构体来存储学生信息和成绩信息,具体实现如下:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_STUDENT_NUM 100 // 最大学生数
// 学生信息结构体
typedef struct student_info{
char name[20]; // 学生姓名
int id; // 学生学号
}StudentInfo;
// 成绩信息结构体
typedef struct score_info{
int math; // 数学成绩
int english; // 英语成绩
int chinese; // 语文成绩
}ScoreInfo;
// 学生记录结构体
typedef struct student_record{
StudentInfo info; // 学生信息
ScoreInfo score; // 成绩信息
}StudentRecord;
// 学生记录数组
StudentRecord records[MAX_STUDENT_NUM];
int num_of_students = 0; // 学生数
// 添加学生记录
void add_student_record(){
if(num_of_students >= MAX_STUDENT_NUM){
printf("学生数已达上限!\n");
return;
}
printf("请输入学生姓名:");
scanf("%s", records[num_of_students].info.name);
printf("请输入学生学号:");
scanf("%d", &records[num_of_students].info.id);
printf("请输入学生的数学成绩:");
scanf("%d", &records[num_of_students].score.math);
printf("请输入学生的英语成绩:");
scanf("%d", &records[num_of_students].score.english);
printf("请输入学生的语文成绩:");
scanf("%d", &records[num_of_students].score.chinese);
num_of_students++; // 学生数加一
printf("学生记录添加成功!\n");
}
// 查找学生记录
void search_student_record(){
int id;
printf("请输入要查找的学生学号:");
scanf("%d", &id);
for(int i = 0; i < num_of_students; i++){
if(records[i].info.id == id){
printf("学生姓名:%s\n", records[i].info.name);
printf("学生学号:%d\n", records[i].info.id);
printf("数学成绩:%d\n", records[i].score.math);
printf("英语成绩:%d\n", records[i].score.english);
printf("语文成绩:%d\n", records[i].score.chinese);
return;
}
}
printf("未找到该学生记录!\n");
}
// 修改学生记录
void modify_student_record(){
int id;
printf("请输入要修改的学生学号:");
scanf("%d", &id);
for(int i = 0; i < num_of_students; i++){
if(records[i].info.id == id){
printf("请输入学生姓名:");
scanf("%s", records[i].info.name);
printf("请输入学生学号:");
scanf("%d", &records[i].info.id);
printf("请输入学生的数学成绩:");
scanf("%d", &records[i].score.math);
printf("请输入学生的英语成绩:");
scanf("%d", &records[i].score.english);
printf("请输入学生的语文成绩:");
scanf("%d", &records[i].score.chinese);
printf("学生记录修改成功!\n");
return;
}
}
printf("未找到该学生记录!\n");
}
// 删除学生记录
void delete_student_record(){
int id;
printf("请输入要删除的学生学号:");
scanf("%d", &id);
for(int i = 0; i < num_of_students; i++){
if(records[i].info.id == id){
for(int j = i; j < num_of_students - 1; j++){
records[j] = records[j+1]; // 后面的记录向前移动
}
num_of_students--; // 学生数减一
printf("学生记录删除成功!\n");
return;
}
}
printf("未找到该学生记录!\n");
}
// 显示所有学生记录
void display_all_student_records(){
printf("学生数:%d\n", num_of_students);
for(int i = 0; i < num_of_students; i++){
printf("学生姓名:%s\n", records[i].info.name);
printf("学生学号:%d\n", records[i].info.id);
printf("数学成绩:%d\n", records[i].score.math);
printf("英语成绩:%d\n", records[i].score.english);
printf("语文成绩:%d\n", records[i].score.chinese);
printf("\n");
}
}
int main(){
int choice = 0;
while(1){
printf("1. 添加学生记录\n");
printf("2. 查找学生记录\n");
printf("3. 修改学生记录\n");
printf("4. 删除学生记录\n");
printf("5. 显示所有学生记录\n");
printf("6. 退出程序\n");
printf("请输入操作编号:");
scanf("%d", &choice);
switch(choice){
case 1: add_student_record(); break;
case 2: search_student_record(); break;
case 3: modify_student_record(); break;
case 4: delete_student_record(); break;
case 5: display_all_student_records(); break;
case 6: exit(0); break;
default: printf("请输入正确的操作编号!\n"); break;
}
}
return 0;
}
```
上述代码实现了学生成绩管理系统的基本功能,包括添加学生记录、查找学生记录、修改学生记录、删除学生记录和显示所有学生记录。在程序运行时,用户可以根据提示进行相应的操作。其中,使用结构体来存储学生信息和成绩信息,方便进行相关操作。
阅读全文