简易的C语言学生管理系统,对能够对学生进行增删改查,没有对错误输入进行校验。
#include <stdio.h>
#include <string.h>
typedef struct {
int id;
char sex[5];
int age;
int grade;
int class;
char name[20];
}Student;
void clearBuffer()
{ char c;
while((c=getchar())!='\n');
}
//添加学生
int createStudent(Student * students,int size){
int lenth;
int flag=1;
//printf("sss%d,%d\n",students[0].id!=-1,size);
for(int i=0;i<size;i++){
if(students[i].id==-1){
lenth=i;
flag=0;
break;
}
}
if(flag){
printf("储存空间已满\n");
return 1;
}
clearBuffer();
printf("请输入性别\n");
scanf(" %s",students[lenth].sex);
clearBuffer();
printf("请输入年龄\n");
scanf(" %d",&students[lenth].age);
clearBuffer();
printf("请输入年级\n");
scanf(" %d",&students[lenth].grade);
clearBuffer();
printf("请输入班级\n");
scanf(" %d",&students[lenth].class);
clearBuffer();
printf("请输入姓名\n");
scanf(" %s",students[lenth].name);
clearBuffer();
students[lenth].id=lenth;
return 0;
}
//删除学生
int deleteStudent(Student *students,int size){
printf("请输入要删除的学生id\n");
int num=0;
scanf(" %d",&num);
if(students[num].id==-1||num>=size){
printf("请确认是否存在这名学生\n");
return 1;
}
students[num].id=-1;
return 0;
}
//修改学生
int changeStudent(Student *students,int size){
printf("请输入修改的学生id\n");
int lenth=0;
scanf(" %d",&lenth);
if(students[lenth].id==-1||lenth>=size){
printf("请确认是否存在这名学生\n");
return 1;
}
clearBuffer();
printf("请输入性别\n");
scanf(" %s",students[lenth].sex);
clearBuffer();
printf("请输入年龄\n");
scanf(" %d",&students[lenth].age);
clearBuffer();
printf("请输入年级\n");
scanf(" %d",&students[lenth].grade);
clearBuffer();
printf("请输入班级\n");
scanf(" %d",&students[lenth].class);
clearBuffer();
printf("请输入姓名\n");
scanf(" %s",students[lenth].name);
return 0;
}
//查看所有学生
void allStudent(Student *students,int size){
for(int i=0;i<size;i++){
if(students[i].id!=-1){
printf("id:%d,性别:%s,年龄:%d,年级:%d,班级:%d,姓名:%s\n",students[i].id,
students[i].sex,students[i].age,students[i].grade,students[i].class,students[i].name);
}
}
}
int main(int argc, const char *argv[])
{
printf("请输入容纳的学生总量");
int allS=0;
scanf(" %d",&allS);
int menu=1;
Student students[allS];
int size=sizeof(students)/sizeof(students[0]);
for(int i=0;i<size;i++){
students[i].id=-1;
}
while(menu){
printf("'1'添加学生,'2'删除学生,'3'修改学生,'4'查看所有学生,'0退出',请输入数字选项:\n");
scanf(" %d",&menu);
switch(menu){
case 1:
if(createStudent(students,size)==0)printf("添加成功\n");
break;
case 2:
if(deleteStudent(students,size)==0)printf("删除成功\n");
break;
case 3:
if(changeStudent(students,size)==0)printf("修改成功\n");
break;
case 4:
allStudent(students,size);
break;
case 0:
break;
default:
printf("无效指令\n");
}
}
return 0;
}
实现效果: