用C语言创建一个学生学籍系统,包括姓名学号性别成绩有语文、英语、数学,实现增删改查打印功能
时间: 2023-12-06 16:44:21 浏览: 89
好的,我可以为您提供一个简单的学生学籍系统的代码。代码如下:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_STUDENT_NUM 100
struct student {
char name[20];
char id[20];
char gender[10];
int score_chinese;
int score_math;
int score_english;
};
struct student stu_list[MAX_STUDENT_NUM];
int stu_num = 0;
void add_student() {
if (stu_num >= MAX_STUDENT_NUM) {
printf("学生人数已满!\n");
return;
}
struct student s;
printf("请输入学生姓名:");
scanf("%s", s.name);
printf("请输入学生学号:");
scanf("%s", s.id);
printf("请输入学生性别:");
scanf("%s", s.gender);
printf("请输入学生语文成绩:");
scanf("%d", &s.score_chinese);
printf("请输入学生数学成绩:");
scanf("%d", &s.score_math);
printf("请输入学生英语成绩:");
scanf("%d", &s.score_english);
stu_list[stu_num++] = s;
printf("添加成功!\n");
}
void delete_student() {
char id[20];
printf("请输入要删除的学生的学号:");
scanf("%s", id);
int found = 0;
for (int i = 0; i < stu_num; i++) {
if (strcmp(stu_list[i].id, id) == 0) {
found = 1;
for (int j = i; j < stu_num - 1; j++) {
stu_list[j] = stu_list[j+1];
}
stu_num--;
printf("删除成功!\n");
break;
}
}
if (!found) {
printf("未找到该学生!\n");
}
}
void modify_student() {
char id[20];
printf("请输入要修改的学生的学号:");
scanf("%s", id);
int found = 0;
for (int i = 0; i < stu_num; i++) {
if (strcmp(stu_list[i].id, id) == 0) {
found = 1;
printf("请输入学生姓名(原姓名:%s):", stu_list[i].name);
scanf("%s", stu_list[i].name);
printf("请输入学生性别(原性别:%s):", stu_list[i].gender);
scanf("%s", stu_list[i].gender);
printf("请输入学生语文成绩(原成绩:%d):", stu_list[i].score_chinese);
scanf("%d", &stu_list[i].score_chinese);
printf("请输入学生数学成绩(原成绩:%d):", stu_list[i].score_math);
scanf("%d", &stu_list[i].score_math);
printf("请输入学生英语成绩(原成绩:%d):", stu_list[i].score_english);
scanf("%d", &stu_list[i].score_english);
printf("修改成功!\n");
break;
}
}
if (!found) {
printf("未找到该学生!\n");
}
}
void search_student() {
char id[20];
printf("请输入要查询的学生的学号:");
scanf("%s", id);
int found = 0;
for (int i = 0; i < stu_num; i++) {
if (strcmp(stu_list[i].id, id) == 0) {
found = 1;
printf("姓名:%s 学号:%s 性别:%s\n", stu_list[i].name, stu_list[i].id, stu_list[i].gender);
printf("语文成绩:%d 数学成绩:%d 英语成绩:%d\n", stu_list[i].score_chinese, stu_list[i].score_math, stu_list[i].score_english);
break;
}
}
if (!found) {
printf("未找到该学生!\n");
}
}
void print_student() {
if (stu_num == 0) {
printf("学生人数为0!\n");
return;
}
printf("姓名\t学号\t性别\t语文\t数学\t英语\n");
for (int i = 0; i < stu_num; i++) {
printf("%s\t%s\t%s\t%d\t%d\t%d\n", stu_list[i].name, stu_list[i].id, stu_list[i].gender,
stu_list[i].score_chinese, stu_list[i].score_math, stu_list[i].score_english);
}
}
int main() {
int choice;
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();
break;
case 2:
delete_student();
break;
case 3:
modify_student();
break;
case 4:
search_student();
break;
case 5:
print_student();
break;
case 6:
exit(0);
default:
printf("输入有误,请重新输入!\n");
}
}
return 0;
}
```
该代码实现了学生学籍系统的增删改查打印功能。用户可以通过菜单选择需要进行的操作。如果用户输入操作编号不正确,程序会提示用户重新输入。
阅读全文