栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

学生管理系统,输入输出学生信息及成绩

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

学生管理系统,输入输出学生信息及成绩

#include 
#include 
#include 
#define INIT_SIZE 100
#define SIZE 3

typedef struct Student
{
	char id[15];
	char name[20];
	char sex[10];
	int age;
	double score[SIZE];
	double sum;
	double avg;

}Student,*PStudent;
typedef struct Student_Head
{
	struct Student* arr;//用来保存malloc返回的堆内内存块地址
	int length;//当前空间已使用的个数
	int list_size;//当前空间总大小
}Student_Head,*PStudent_Head;
void Init_Student_Head(struct Student_Head* p)//初始化模块
{
	assert(p != 0);
	if (p == NULL)
	{
		printf("指针为NULLn");
		return;
	}
	p->arr = (struct Student*)malloc(INIT_SIZE * sizeof(struct Student));
	assert(p->arr != NULL);
	p->length = 0;
	p->list_size = INIT_SIZE;
}
bool IsFull(struct Student_Head* p)//判满操作
{
	return p->length == p->list_size;
}
static void Inc(struct Student_Head* p)//扩容操作
{
	p->arr = (struct Student*)realloc(p->arr, p->list_size * sizeof(struct Student) * 2);

	assert(p->arr != NULL);
	//p->length
}

bool Add_Student(PStudent_Head p)//添加学生信息
{
	assert(p != NULL);
	if (p == NULL)
	{
		printf("指针为NULLn");
		return false;
	}
	if(IsFull(p))
	{
		Inc(p);//扩容
	}
	printf("请输入学生学号:");
	scanf_s("%s", &p->arr[p->length].id,15);//下一个要插入的位置
	printf("请输入学生姓名:");
	scanf_s("%s", &p->arr[p->length].name,20);
	printf("请输入学生性别:");
	scanf_s("%s", &p->arr[p->length].sex,10);
	printf("请输入学生年龄:");
	scanf_s("%d", &p->arr[p->length].age);
	printf("请输入学生语文成绩:");
	scanf_s("%lf", &p->arr[p->length].score[0]);
	printf("请输入学生数学成绩:");
	scanf_s("%lf", &p->arr[p->length].score[1]);
	printf("请输入学生英语成绩:");
	scanf_s("%lf", &p->arr[p->length].score[2]);
	p->arr[p->length].sum = p->arr[p->length].score[0] + p->arr[p->length].score[1] + p->arr[p->length].score[2];
	p->arr[p->length].avg = p->arr[p->length].sum / SIZE;
	p->length++;
	return true;
}
void Show(struct Student_Head* p)
{
	printf("学号 姓名 性别 年龄 语文成绩 数学成绩 英语成绩 总成绩 平均成绩n");
	for (int i = 0; i < p->length; i++)
	{
		printf("%s ", p->arr[i].id);
		printf("%s ", p->arr[i].name);
		printf("%s ", p->arr[i].sex);
		printf("%d ", p->arr[i].age);
		printf("%f ", p->arr[i].score[0]);
		printf("%f ", p->arr[i].score[1]);
		printf("%f ", p->arr[i].score[2]);
		printf("%f ", p->arr[i].sum);
		printf("%fn", p->arr[i].avg);
	}
}
int main()
{
	struct Student_Head tmp;
	Init_Student_Head(&tmp);

	int n;
	printf("请输入添加人数:");
	scanf_s("%d", &n);
	
	for (int i = 0; i < n; i++)
	{
		printf("请输入第%d个人的信息:n", i + 1);
		Add_Student(&tmp);
	}
	Show(&tmp);
	return 0;
}

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/657001.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号