用结构体数组以及函数完成:
1.录入你要增加的几个学生,之后输出所有的学生信息
2.删除你要删除的第几个学生,并打印所有的学生信息
3.修改你要修改的第几个学生,并打印所有的学生信息
4.查找你要查找的第几个学生,并打印该的学生信息
find.c文件代码
#include "find.h"
void StudentInp(struct student stu[], int n, int *len)
{
int j = *len;
for(int i = j; i < j + n; i++)
{
printf("请输入第%d个学生的信息",i + 1);
printf("请输入学生的名字:");
scanf("%s", stu[i].name);
printf("请输入学生的学号:");
scanf("%d", &stu[i].id);
printf("请输入学生的年龄:");
scanf("%d", &stu[i].age);
(*len)++;
}
show_student(len);
}
void StudentDel(struct student stu[], int n, int *len)
{
for(int i = n - 1; i < *len; i++)
{
strcpy(stu[i].name, stu[i + 1].name);
stu[i].id = stu[i + 1].id;
stu[i].age = stu[i + 1].age;
}
(*len)--;
show_student(len);
}
void StudentFin(struct student stu[], int n)
{
printf("姓名:%s\t学号:%d\t年龄:%d\n",\
stu[n-1].name, stu[n-1].id, stu[n-1].age);
}
void StudentCha(struct student stu[], int n, int *len)
{
printf("请输入修改后的名字:");
scanf("%s", stu[n-1].name);
printf("请输入修改后的学号:");
scanf("%d", &stu[n-1].id);
printf("请输入修改后的年龄:");
scanf("%d", &stu[n-1].age);
show_student(len);
}
void show_student(int *len)
{
for(int i = 0; i < *len; i++)
{
printf("姓名:%s\t学号:%d\t年龄:%d\n",\
stu[i].name, stu[i].id, stu[i].age);
}
}
find.h文件代码
#ifndef __FIND_H__
#define __FIND_H__
#include <stdio.h>
#include <string.h>
struct student
{
char name[20];
int id;
int age;
};
struct student stu[20];
void StudentInp(struct student stu[], int n, int *len);
void StudentDel(struct student stu[], int n, int *len);
void StudentFin(struct student stu[], int n);
void StudentCha(struct student stu[], int n, int *len);
void show_student(int *len);
#endif
main.c代码
#include "find.h"
int len = 0;
int main(int argc, const char *argv[])
{
void StudentInp();
void StudentDel();
void StudentFin();
void StudentCha();
void show_student();
int n, i;
A:
printf("***请选择你的操作***\n");
printf("***1.增加学生信息***\n");
printf("***2.删除学生信息***\n");
printf("***3.修改学生信息***\n");
printf("***4.查找学生信息***\n");
printf("*****5.退出界面*****\n");
scanf("%d",&i);
switch(i)
{
case 1: printf("请输入增加学生信息的个数");
scanf("%d", &n);
StudentInp(stu, n, &len);
goto A;
case 2: printf("请输入删除学生的位数");
scanf("%d", &n);
StudentDel(stu, n, &len);
goto A;
case 3: printf("请输入修改学生的位数");
scanf("%d", &n);
StudentCha(stu, n, &len);
goto A;
case 4: printf("请输入查找学生的位数");
scanf("%d", &n);
StudentFin(stu, n);
goto A;
default:printf("没有所选功能,请重新选择");
goto A;
case 5: break;
}
return 0;
}
实现效果
***请选择你的操作***
***1.增加学生信息***
***2.删除学生信息***
***3.修改学生信息***
***4.查找学生信息***
*****5.退出界面*****
1
请输入增加学生信息的个数2
请输入第1个学生的信息请输入学生的名字:21
请输入学生的学号:1
请输入学生的年龄:1
请输入第2个学生的信息请输入学生的名字:22
请输入学生的学号:2
请输入学生的年龄:2
姓名:21 学号:1 年龄:1
姓名:22 学号:2 年龄:2
***请选择你的操作***
***1.增加学生信息***
***2.删除学生信息***
***3.修改学生信息***
***4.查找学生信息***
*****5.退出界面*****
2
请输入删除学生的位数1
姓名:22 学号:2 年龄:2
***请选择你的操作***
***1.增加学生信息***
***2.删除学生信息***
***3.修改学生信息***
***4.查找学生信息***
*****5.退出界面*****
1
请输入增加学生信息的个数2
请输入第2个学生的信息请输入学生的名字:21
请输入学生的学号:1
请输入学生的年龄:1
请输入第3个学生的信息请输入学生的名字:23
请输入学生的学号:3
请输入学生的年龄:3
姓名:22 学号:2 年龄:2
姓名:21 学号:1 年龄:1
姓名:23 学号:3 年龄:3
***请选择你的操作***
***1.增加学生信息***
***2.删除学生信息***
***3.修改学生信息***
***4.查找学生信息***
*****5.退出界面*****
3
请输入修改学生的位数2
请输入修改后的名字:22
请输入修改后的学号:2
请输入修改后的年龄:2
姓名:22 学号:2 年龄:2
姓名:22 学号:2 年龄:2
姓名:23 学号:3 年龄:3
***请选择你的操作***
***1.增加学生信息***
***2.删除学生信息***
***3.修改学生信息***
***4.查找学生信息***
*****5.退出界面*****
3
请输入修改学生的位数1
请输入修改后的名字:21
请输入修改后的学号:1
请输入修改后的年龄:1
姓名:21 学号:1 年龄:1
姓名:22 学号:2 年龄:2
姓名:23 学号:3 年龄:3
***请选择你的操作***
***1.增加学生信息***
***2.删除学生信息***
***3.修改学生信息***
***4.查找学生信息***
*****5.退出界面*****
2
请输入删除学生的位数2
姓名:21 学号:1 年龄:1
姓名:23 学号:3 年龄:3
***请选择你的操作***
***1.增加学生信息***
***2.删除学生信息***
***3.修改学生信息***
***4.查找学生信息***
*****5.退出界面*****
4
请输入查找学生的位数2
姓名:23 学号:3 年龄:3
***请选择你的操作***
***1.增加学生信息***
***2.删除学生信息***
***3.修改学生信息***
***4.查找学生信息***
*****5.退出界面*****
5
ubuntu@ubuntu:~/vim/student_inf