用c++写一个学生管理系统, 建立学生信息,每个学生的信息应包括:学号、姓名、性别、班级、至少3门课程的成绩; 2. 数据输入:输入学生的各项信息; 3. 数据修改:根据输入学生的学号可以选择修改该学生的信息; 4. 数据处理:可以选择处理方式为:排序、查询。其中: a) 排序:按学号排序 b) 查询:根据学号查询成绩 5. 数据输出:输出学生的相应结果信息; 6. 退出:退出整个学生信息管理系统。
时间: 2023-07-15 16:14:37 浏览: 83
很好,我已经了解你的要求和问题。对于第一个问题,我可以提供一个参考的学生管理系统的C代码,你可以参考一下:
```
#include <stdio.h>
#include <stdlib.h>
#define MAX_STUDENT 100 // 最多可存放100个学生信息
struct student {
int id;
char name[20];
char sex;
char classname[20];
int scores[3];
};
int count = 0; // 当前学生数量
struct student students[MAX_STUDENT]; // 存放学生信息的数组
// 添加学生信息
void add_student() {
if (count >= MAX_STUDENT) {
printf("学生信息已满,不能添加\n");
return;
}
printf("请输入学号: ");
scanf("%d", &students[count].id);
printf("请输入姓名: ");
scanf("%s", students[count].name);
printf("请输入性别: ");
scanf(" %c", &students[count].sex); // 需要在 %c 之前加一个空格,否则会读取上一个输入缓存中的回车字符
printf("请输入班级: ");
scanf("%s", students[count].classname);
printf("请输入3门课程的成绩: ");
scanf("%d%d%d", &students[count].scores[0], &students[count].scores[1], &students[count].scores[2]);
count ++;
}
// 根据学号查询学生信息
void find_student() {
int id, i;
printf("请输入要查询的学生学号: ");
scanf("%d", &id);
for (i = 0; i < count; i++) {
if (students[i].id == id) {
printf("学号:%d 姓名:%s 性别:%c 班级:%s 成绩:%d %d %d\n",
students[i].id, students[i].name, students[i].sex, students[i].classname, students[i].scores[0], students[i].scores[1], students[i].scores[2]);
return;
}
}
printf("没有找到学号为%d的学生\n", id);
}
// 修改学生信息
void modify_student() {
int id, i;
printf("请输入要修改的学生学号: ");
scanf("%d", &id);
for (i = 0; i < count; i++) {
if (students[i].id == id) {
printf("请输入新的姓名: ");
scanf("%s", students[i].name);
printf("请输入新的性别: ");
scanf(" %c", &students[i].sex); // 需要在 %c 之前加一个空格,否则会读取上一个输入缓存中的回车字符
printf("请输入新的班级: ");
scanf("%s", students[i].classname);
printf("请输入3门课程的新的成绩: ");
scanf("%d%d%d", &students[i].scores[0], &students[i].scores[1], &students[i].scores[2]);
printf("修改成功\n");
return;
}
}
printf("没有找到学号为%d的学生\n", id);
}
// 按学号排序
void sort_by_id() {
int i, j;
struct student t;
for (i = 0; i < count - 1; i++) {
for (j = i; j < count; j++) {
if (students[i].id > students[j].id) {
t = students[i];
students[i] = students[j];
students[j] = t;
}
}
}
printf("按学号排序成功\n");
}
// 输出学生信息
void print_all_students() {
int i;
for (i = 0; i < count; i++) {
printf("学号:%d 姓名:%s 性别:%c 班级:%s 成绩:%d %d %d\n",
students[i].id, students[i].name, students[i].sex, students[i].classname, students[i].scores[0], students[i].scores[1], students[i].scores[2]);
}
}
// 主程序:显示菜单、读取用户输入,调用相应函数
int main() {
int choice;
while (1) {
printf("1.添加学生信息\n2.查询学生信息\n3.修改学生信息\n4.按学号排序\n5.输出所有学生信息\n6.退出\n");
scanf("%d", &choice);
switch (choice) {
case 1:
add_student();
break;
case 2:
find_student();
break;
case 3:
modify_student();
break;
case 4:
sort_by_id();
break;
case 5:
print_all_students();
break;
case 6:
exit(0);
break;
default:
printf("无效的选择\n");
break;
}
}
return 0;
}
```
以上就是常见的学生管理系统的C代码。当然,你可以根据自己的需求进行改进和优化。
阅读全文