⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 studentmanage.c

📁 简单的学生管理系统
💻 C
字号:
#include <stdio.h>
#include <string.h>
//________________________________________________定义结构体
struct student
{
	int NO;
	char name[20];
	int score[3];
	double avg;
};
//________________________________________________声明函数原型
struct student input();
void display(struct student s[],int n);
void sort(struct student s[],int n);
void INSERT(struct student s[],int n);
void DELECT(struct student s[],int n);
//________________________________________________主函数
void main()
{
	int count=0;
	char option1,option2;
	struct student stu[50];
	do
	{
		stu[count]=input();
		count++;
		printf("是否继续输入(Y/N):");
		fflush(stdin);
		option1=getchar();
		putchar('\n');
	}while(option1=='Y'||option1=='y');
	putchar('\n');
//________________________________________________________________________________调用函数块
	printf("\n排序前学生信息\n");
	display(stu,count);
	printf("\n排序后学生信息\n");
	sort(stu,count);
	display(stu,count);
	printf("是否进行插入、删除操作(Y/N):");
	fflush(stdin);
	option1=getchar();
	putchar('\n');
	while(option1=='Y'||option1=='y')
	{
		printf("\n    1.插入 2.删除 :");
		scanf("%d",&option2);
		switch(option2)
		{
			case 1:
				{
					INSERT(stu,count++);
					display(stu,count++);
					break;
				}
			case 2:
				{
					DELECT(stu,count);
					display(stu,--count);
					break;
				}
		}
		printf("是否继续(Y/N):");
		fflush(stdin);
		option1=getchar();
	}
}
//________________________________________________数据录入
struct student input()
{
	int i,sum=0;
	struct student temp;
	printf("请输入学生的信息:\n");
	printf("\n学号:");
	fflush(stdin);
	scanf("%d",&temp.NO);
	printf("\n姓名:");
	fflush(stdin);
	gets(temp.name);
	printf("\n请输入3门课成绩:\n");
	putchar('\n');
	for(i=0;i<3;i++)
	{
		printf("\n第%d门成绩:",i+1);
		scanf("%d",&temp.score[i]);
		sum+=temp.score[i];
	}
	temp.avg=sum/3;
	return temp;
}
//________________________________________________显示信息
void display(struct student s[],int n)
{
	int i;
	printf("\n%-8s%-12s%-10s\n","学号","姓名","平均成绩");
	for(i=0;i<n;i++)
	{
		printf("\n%-8d%-12s%-10.2f\n",s[i].NO,s[i].name,s[i].avg);
	}

}
//_________________________________________________排序
void sort(struct student s[],int n)
{
	struct student temp;
	int i,j;
	for(i=0;i<n;i++)
	{
		for(j=0;j<n-i-1;j++)
		{
			if(s[j].avg<s[j+1].avg)
			{
				temp=s[j];
				s[j]=s[j+1];
				s[j+1]=temp;
			}
		}
	}
}
//___________________________________________________插入
void INSERT(struct student s[],int n)
{
	struct student temp;
	int i,j;
	temp=input();
	for(i=0;i<n;i++)
	{
		if(temp.avg>s[i].avg)
			break;
	}
	for(j=n;j>i;j--)
	{
		s[j]=s[j-1];
	}
	s[i]=temp;
}
//____________________________________________________ 删除
void DELECT(struct student s[],int n)
{
	struct student temp;
	int i,j;
	printf("请输入要删除学生的学号:");
	scanf("%d",&temp.NO);
	for(i=0;i<n;i++)
	{
		if(temp.NO==s[i].NO)
			break;
	}
	for(j=i;j<(n-1);j++)
	{
		s[j]=s[j+1];
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -