程序实现了以下功能:
(1)添加学生信息
(2)删除学生信息
(3)修改学生信息
(4)查找学生信息
(5)显示所有学生信息
程序使用了学生结构体和数组来存储学生信息,并使用了循环和条件语句来实现各种操作。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_STUDENTS 100 // 最大学生数
// 学生结构体
typedef struct student {
char name[20];
int id;
int age;
char gender[5];
float score;
} Student;
// 学生数组
Student students[MAX_STUDENTS];
int num_students = 0; // 学生数量
// 添加学生
void add_student() {
if (num_students >= MAX_STUDENTS) {
printf("已达到学生数量上限!\n");
return;
}
Student new_student;
printf("请输入学生姓名:");
scanf("%s", new_student.name);
printf("请输入学生学号:");
scanf("%d", &new_student.id);
printf("请输入学生年龄:");
scanf("%d", &new_student.age);
printf("请输入学生性别:");
scanf("%s", new_student.gender);
printf("请输入学生成绩:");
scanf("%f", &new_student.score);
students[num_students] = new_student;
num_students++;
printf("添加成功!\n");
}
// 删除学生
void delete_student() {
int id;
printf("请输入要删除的学生学号:");
scanf("%d", &id);
int i;
for (i = 0; i < num_students; i++) {
if (students[i].id == id) {
int j;
for (j = i; j < num_students - 1; j++) {
students[j] = students[j + 1];
}
num_students--;
printf("删除成功!\n");
return;
}
}
printf("未找到该学生!\n");
}
// 修改学生信息
void modify_student() {
int id;
printf("请输入要修改的学生学号:");
scanf("%d", &id);
int i;
for (i = 0; i < num_students; i++) {
if (students[i].id == id) {
Student new_student;
printf("请输入学生姓名:");
scanf("%s", new_student.name);
printf("请输入学生年龄:");
scanf("%d", &new_student.age);
printf("请输入学生性别:");
scanf("%s", new_student.gender);
printf("请输入学生成绩:");
scanf("%f", &new_student.score);
students[i] = new_student;
printf("修改成功!\n");
return;
}
}
printf("未找到该学生!\n");
}
// 查找学生
void search_student() {
int id;
printf("请输入要查找的学生学号:");
scanf("%d", &id);
int i;
for (i = 0; i < num_students; i++) {
if (students[i].id == id) {
printf("姓名:%s\n", students[i].name);
printf("学号:%d\n", students[i].id);
printf("年龄:%d\n", students[i].age);
printf("性别:%s\n", students[i].gender);
printf("成绩:%f\n", students[i].score);
return;
}
}
printf("未找到该学生!\n");
}
// 显示所有学生信息
void show_all_students() {
if (num_students == 0) {
printf("暂无学生信息!\n");
return;
}
int i;
for (i = 0; i < num_students; i++) {
printf("姓名:%s\n", students[i].name);
printf("学号:%d\n", students[i].id);
printf("年龄:%d\n", students[i].age);
printf("性别:%s\n", students[i].gender);
printf("成绩:%f\n", students[i].score);
printf("----------\n");
}
}
int main() {
int choice;
while (1) {
printf("1. 添加学生\n");
printf("2. 删除学生\n");
printf("3. 修改学生信息\n");
printf("4. 查找学生\n");
printf("5. 显示所有学生信息\n");
printf("0. 退出\n");
printf("请选择操作:");
scanf("%d", &choice);
switch (choice) {
case 1:
add_student();
break;
case 2:
delete_student();
break;
case 3:
modify_student();
break;
case 4:
search_student();
break;
case 5:
show_all_students();
break;
case 0:
exit(0);
default:
printf("无效的操作!\n");
}
}
return 0;
}