C语言写一个学籍管理系统,要做到学生学号,姓名,性别,年龄信息的录入,实现数据的批量增加,根据学号数据信息的删除,根据学号数据信息的查找
时间: 2024-03-17 11:42:30 浏览: 76
好的,我可以为您提供一个基本的学籍管理系统的C语言代码,其中包括学生信息的录入、数据的批量增加、根据学号删除数据以及根据学号查找数据的功能。代码如下:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_STUDENT_NUM 100
/* 学生结构体 */
struct student {
int id; // 学号
char name[20]; // 姓名
char sex[5]; // 性别
int age; // 年龄
};
/* 学生数组 */
struct student students[MAX_STUDENT_NUM];
/* 学生数量 */
int student_count = 0;
/* 获取指定学号的学生在数组中的下标 */
int get_student_index(int id) {
int i;
for (i = 0; i < student_count; i++) {
if (students[i].id == id) {
return i;
}
}
return -1;
}
/* 录入学生信息 */
void input_student() {
struct student stu;
printf("请输入学生信息:\n");
printf("学号:");
scanf("%d", &stu.id);
printf("姓名:");
scanf("%s", stu.name);
printf("性别:");
scanf("%s", stu.sex);
printf("年龄:");
scanf("%d", &stu.age);
students[student_count++] = stu;
printf("已成功录入学生信息!\n");
}
/* 批量增加学生信息 */
void batch_add_student() {
int i;
int count;
printf("请输入需要增加的学生数量:");
scanf("%d", &count);
for (i = 0; i < count; i++) {
input_student();
}
}
/* 根据学号删除学生信息 */
void delete_student() {
int id;
printf("请输入需要删除的学生学号:");
scanf("%d", &id);
int index = get_student_index(id);
if (index == -1) {
printf("该学号对应的学生信息不存在!\n");
return;
}
int i;
for (i = index; i < student_count - 1; i++) {
students[i] = students[i + 1];
}
student_count--;
printf("已成功删除学生信息!\n");
}
/* 根据学号查找学生信息 */
void search_student() {
int id;
printf("请输入需要查找的学生学号:");
scanf("%d", &id);
int index = get_student_index(id);
if (index == -1) {
printf("该学号对应的学生信息不存在!\n");
return;
}
struct student stu = students[index];
printf("学号:%d 姓名:%s 性别:%s 年龄:%d\n", stu.id, stu.name, stu.sex, stu.age);
}
/* 主函数 */
int main() {
int choice;
while (1) {
printf("\n");
printf("1. 录入学生信息\n");
printf("2. 批量增加学生信息\n");
printf("3. 根据学号删除学生信息\n");
printf("4. 根据学号查找学生信息\n");
printf("0. 退出程序\n");
printf("请选择操作:");
scanf("%d", &choice);
switch (choice) {
case 0:
printf("程序已退出!\n");
return 0;
case 1:
input_student();
break;
case 2:
batch_add_student();
break;
case 3:
delete_student();
break;
case 4:
search_student();
break;
default:
printf("输入有误,请重新选择!\n");
break;
}
}
return 0;
}
```
代码中使用了一个`struct student`结构体来表示每个学生的信息,包括学号、姓名、性别、年龄;使用一个`students`数组来存储所有学生的信息;使用一个`student_count`变量来记录当前已录入的学生数量。
在主函数中,通过不断循环显示菜单,根据用户的选择调用相应的函数实现对学生信息的管理。
通过该程序,您可以实现学生信息的录入、数据的批量增加、根据学号删除数据以及根据学号查找数据等功能。当然,该程序还有很多不足之处,您可以根据自己的需求进行改进和完善。
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231045021.png)
![-](https://img-home.csdnimg.cn/images/20241231045021.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![-](https://img-home.csdnimg.cn/images/20241231044833.png)
![-](https://img-home.csdnimg.cn/images/20241231044901.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)