7.26作业

学生管理系统(初级)

结构体

typedef struct student
{
	int id;					     	//学号  
	char name[20];					//姓名 
	int age;						//年龄 
	char sex[10];					//性别   
	double grade;					//总分 
}student;

主函数

int main(int argc, const char *argv[])
{
	int id,age,choice;
	char name[20],sex[10];
	double grade;
	while (1) {
		printf("------学生管理系统------\n");
		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:
			printf("输入学生ID: ");
			scanf("%d", &id);
			printf("输入学生姓名: ");
			scanf("%s", name);
			printf("输入学生年龄: ");
			scanf("%d", &age);
			printf("输入学生性别: ");
			scanf("%s", sex);
			printf("输入学生成绩: ");
			scanf("%lf", &grade);
			addStudent(id, name,age,sex,grade);
			break;
		case 2:
			printf("输入要删除的学生ID: ");
			scanf("%d", &id);
			deleteStudent(id);
			break;
		case 3:
			printf("输入要修改的学生ID: ");
			scanf("%d", &id);
			printf("输入姓名: ");
			scanf("%s", name);
			printf("输入年龄: ");
			scanf("%d",&age);
			printf("输入性别: ");
			scanf("%s", sex);
			printf("输入成绩: ");
			scanf("%lf", &grade);
			updateStudent(id,name,age,sex,grade);
			break;
		case 4:
			printf("输入要查询的学生ID: ");
			scanf("%d", &id);
			queryStudent(id);
			break;
		case 5:
			showAllStudents();
			break;
		case 6:
			return 0;
		default:
			printf("无效选择,请重新输入!\n");
		}
	}
	return 0;
}

添加学生信息

void addStudent(int id,char name[20],int age,char sex[10],double grade){
	if(stu_count < MAX){
		for(int i=0;i<=stu_count;i++){
			if(stu[i].id == id){
				printf("Id重复,请重新选择\n");
				return ;
			}
		}
		stu[stu_count].id = id;
		strcpy(stu[stu_count].name,name);
		stu[stu_count].age = age;
		strcpy(stu[stu_count].sex,sex);
		stu[stu_count].grade = grade;
		stu_count++;
		printf("学生添加成功!\n");
	}else{
		printf("学生数量已满,无法再添加学生!");
	}
}

删除学生信息

void deleteStudent(int id){
	int found = 0;
	for(int i=0;i<stu_count;i++){
		if(stu[i].id == id){
			found = 1;
			for(int j=i;j<stu_count;j++){
				stu[j]=stu[j+1];
			}
			stu_count--;
			printf("学生信息删除成功!\n");
			break;
		} 
	}
	if(found != 1){
		printf("未找到id为%d的学生!\n",id);
	}
}

修改学生信息

void updateStudent(int id,char name[20],int age,char sex[10],double grade){
	int found = 0;
	for(int i=0;i<stu_count;i++){
		if(stu[i].id == id){
			found = 1;
			stu[i].id = id;
			strcpy(stu[i].name,name);
			stu[i].age = age;
			strcpy(stu[i].sex,sex);
			stu[i].grade = grade;
			printf("学生数据修改成功!\n");
			break;
		}
	}
	if(found != 1){
		printf("未找到id为%d的学生!\n",id);
	}
}

查询学生信息

void queryStudent(int id){
	int found = 0;
	for(int i=0;i<stu_count;i++){
		if(stu[i].id == id){
			found = 1;
			printf("Id为%d的学生信息:\n",stu[i].id);
			printf("\t\t姓名:%s\n",stu[i].name);
			printf("\t\t年龄:%d\n",stu[i].age);
			printf("\t\t性别:%s\n",stu[i].sex);
			printf("\t\t总分:%.2lf\n",stu[i].grade);
			break;
		}
	}
	if(found != 1){
		printf("未找到id为%d的学生!\n",id);
	}
}

查询全部学生信息

void showAllStudents() {
	if (stu_count == 0) {
		printf("没有学生信息!\n");
	} else {
		for (int i = 0; i < stu_count; i++) {
			printf("ID: %d\n 姓名: %s\n 年龄: %d\n 性别: %s\n 成绩: %.2f\n", stu[i].id, stu[i].name,stu[i].age,stu[i].sex, stu[i].grade);
		}
	}
}

完成代码

#include <stdio.h>
#include <string.h>
#define MAX 100
typedef struct student
{
	int id;					     	//学号  
	char name[20];					//姓名 
	int age;						//年龄 
	char sex[10];					//性别   
	double grade;					//总分 
}student;

student stu[MAX];
int stu_count = 0; 

void addStudent(int id,char name[20],int age,char sex[10],double grade){
	if(stu_count < MAX){
		for(int i=0;i<=stu_count;i++){
			if(stu[i].id == id){
				printf("Id重复,请重新选择\n");
				return ;
			}
		}
		stu[stu_count].id = id;
		strcpy(stu[stu_count].name,name);
		stu[stu_count].age = age;
		strcpy(stu[stu_count].sex,sex);
		stu[stu_count].grade = grade;
		stu_count++;
		printf("学生信息添加成功!\n");
	}else{
		printf("学生数量已满,无法再添加学生!");
	}
}
void updateStudent(int id,char name[20],int age,char sex[10],double grade){
	int found = 0;
	for(int i=0;i<stu_count;i++){
		if(stu[i].id == id){
			found = 1;
			stu[i].id = id;
			strcpy(stu[i].name,name);
			stu[i].age = age;
			strcpy(stu[i].sex,sex);
			stu[i].grade = grade;
			printf("学生信息修改成功!\n");
			break;
		}
	}
	if(found != 1){
		printf("未找到id为%d的学生!\n",id);
	}
}
void deleteStudent(int id){
	int found = 0;
	for(int i=0;i<stu_count;i++){
		if(stu[i].id == id){
			found = 1;
			for(int j=i;j<stu_count;j++){
				stu[j]=stu[j+1];
			}
			stu_count--;
			printf("学生信息删除成功!\n");
			break;
		} 
	}
	if(found != 1){
		printf("未找到id为%d的学生!\n",id);
	}
}
void queryStudent(int id){
	int found = 0;
	for(int i=0;i<stu_count;i++){
		if(stu[i].id == id){
			found = 1;
			printf("Id为%d的学生信息:\n",stu[i].id);
			printf("\t\t姓名:%s\n",stu[i].name);
			printf("\t\t年龄:%d\n",stu[i].age);
			printf("\t\t性别:%s\n",stu[i].sex);
			printf("\t\t总分:%.2lf\n",stu[i].grade);
			break;
		}
	}
	if(found != 1){
		printf("未找到id为%d的学生!\n",id);
	}
}
void showAllStudents() {
	if (stu_count == 0) {
		printf("没有学生信息!\n");
	} else {
		for (int i = 0; i < stu_count; i++) {
			printf("ID: %d\n 姓名: %s\n 年龄: %d\n 性别: %s\n 成绩: %.2f\n", stu[i].id, stu[i].name,stu[i].age,stu[i].sex, stu[i].grade);
		}
	}
}int main(int argc, const char *argv[])
{
	int id,age,choice;
	char name[20],sex[10];
	double grade;
	while (1) {
		printf("------学生管理系统------\n");
		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:
			printf("输入学生ID: ");
			scanf("%d", &id);
			printf("输入学生姓名: ");
			scanf("%s", name);
			printf("输入学生年龄: ");
			scanf("%d", &age);
			printf("输入学生性别: ");
			scanf("%s", sex);
			printf("输入学生成绩: ");
			scanf("%lf", &grade);
			addStudent(id, name,age,sex,grade);
			break;
		case 2:
			printf("输入要删除的学生ID: ");
			scanf("%d", &id);
			deleteStudent(id);
			break;
		case 3:
			printf("输入要修改的学生ID: ");
			scanf("%d", &id);
			printf("输入姓名: ");
			scanf("%s", name);
			printf("输入年龄: ");
			scanf("%d",&age);
			printf("输入性别: ");
			scanf("%s", sex);
			printf("输入成绩: ");
			scanf("%lf", &grade);
			updateStudent(id,name,age,sex,grade);
			break;
		case 4:
			printf("输入要查询的学生ID: ");
			scanf("%d", &id);
			queryStudent(id);
			break;
		case 5:
			showAllStudents();
			break;
		case 6:
			return 0;
		default:
			printf("无效选择,请重新输入!\n");
		}
	}
	return 0;
}

运行效果

添加学生信息

在这里插入图片描述

查询学生信息

在这里插入图片描述

查询全部学生信息

在这里插入图片描述

修改学生信息

在这里插入图片描述

删除学生信息

在这里插入图片描述

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值