用c++写一个学生管理系统
时间: 2024-02-18 16:52:00 浏览: 75
好的,关于学生管理系统的开发,首先需要明确你需要实现哪些功能。一般来说,学生管理系统包括以下几个重要功能:
1. 学生基本信息的录入和管理,包括姓名、性别、学号、班级等信息。
2. 学生课程成绩的录入和管理,包括各科成绩、总分、平均分和排名等信息。
3. 学生选课情况的管理,包括已选课程和可选课程的列表。
4. 学生信息的查询和统计功能,包括成绩排名、不及格学生名单等。
5. 程序的操作界面,包括菜单栏、图形界面等。
那么,下面给出一种实现学生管理系统的C语言代码:
```
#include <stdio.h>
#include <string.h>
#define MAX_NUM 100 // 学生数量的最大值
#define MAX_NAME 20 // 学生姓名的最大长度
#define MAX_COURSE 10 // 学生科目的最大数量
struct student {
int id; // 学号
char name[MAX_NAME + 1]; // 姓名
int sex; // 性别(0表示女,1表示男)
float score[MAX_COURSE]; // 成绩
int course_num; // 科目数量
};
struct student stu_list[MAX_NUM]; // 学生数组
int stu_num = 0; // 学生数量
// 添加学生信息
void add_student() {
if (stu_num == MAX_NUM) {
printf("学生数量已达到最大限制!\n");
return;
}
struct student stu;
printf("请输入学号:");
scanf("%d", &stu.id);
printf("请输入姓名:");
scanf("%s", stu.name);
printf("请输入性别(0表示女,1表示男):");
scanf("%d", &stu.sex);
printf("请输入科目数量:");
scanf("%d", &stu.course_num);
printf("请输入各科成绩(用空格隔开):");
for (int i = 0; i < stu.course_num; i++) {
scanf("%f", &stu.score[i]);
}
stu_list[stu_num] = stu;
stu_num++;
printf("添加成功!\n");
}
// 查询学生信息
void query_student() {
printf("请输入学号:");
int id;
scanf("%d", &id);
int index = -1;
for (int i = 0; i < stu_num; i++) {
if (stu_list[i].id == id) {
index = i;
break;
}
}
if (index == -1) {
printf("找不到该学生信息!\n");
return;
}
printf("姓名:%s 性别:%s ", stu_list[index].name, stu_list[index].sex == 0 ? "女" : "男");
printf("科目数量:%d ", stu_list[index].course_num);
printf("各科成绩:");
for (int i = 0; i < stu_list[index].course_num; i++) {
printf("%.2f ", stu_list[index].score[i]);
}
printf("\n");
}
// 统计成绩信息
void statistic_score() {
float total_score = 0.0;
float min_score = 100.0;
float max_score = 0.0;
int fail_num = 0;
for (int i = 0; i < stu_num; i++) {
for (int j = 0; j < stu_list[i].course_num; j++) {
total_score += stu_list[i].score[j];
if (stu_list[i].score[j] < 60.0) {
fail_num++;
}
if (stu_list[i].score[j] < min_score) {
min_score = stu_list[i].score[j];
}
if (stu_list[i].score[j] > max_score) {
max_score = stu_list[i].score[j];
}
}
}
printf("总分为:%.2f 平均分为:%.2f 最高分为:%.2f 最低分为:%.2f 不及格人数为:%d\n",
total_score, total_score / (stu_num * 1.0), max_score, min_score, fail_num);
}
// 主函数
int main() {
printf("***欢迎使用学生管理系统***\n");
while (1) {
printf("1. 添加学生信息\n");
printf("2. 查询学生信息\n");
printf("3. 统计成绩信息\n");
printf("4. 退出\n");
int cmd;
scanf("%d", &cmd);
if (cmd == 1) {
add_student();
} else if (cmd == 2) {
query_student();
} else if (cmd == 3) {
statistic_score();
} else if (cmd == 4) {
break;
} else {
printf("输入有误,请重新输入!\n");
}
}
printf("谢谢使用!\n");
return 0;
}
```
注意,这只是一个简单的学生管理系统示例,你可以根据自己的需求进行修改和完善。
阅读全文