2024.7.26

简易的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;

	 
	}

实现效果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值