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

📄 自动化0605姜楠200682091.c

📁 这是一个完整的c语言做的学生成绩管理平台
💻 C
📖 第 1 页 / 共 3 页
字号:
		scanf("%s",search);
		if(strcmp(search,"1")==0)
			lgrade_1();
		else if(strcmp(search,"2")==0)
			lgrade_2();
		else if(strcmp(search,"3")==0)
			lgrade_3();
		else if(strcmp(search,"4")==0)
		{
			wait();
			return;
		}
		else
		{
			printf("\t\t您的输入有问题或查无此人!\n");
			printf("\t\t请重新输入!\n");
			wait();
		}
	}
}
void lgrade_1()//数学不及格学生信息
{
	int j;
	char r[N];
	int lg=0;
	kk=0;
	while(1)//这个循环为了重复查找使用的
	{
		search_doc();
		if(kk!=0)
			break;		
		while(1)
		{
			fread(&infor,sizeof(XX),1,fp1);
			if(feof(fp1))
				break;
			if(infor.score[0]<BAD)
			{
				lg++;
				printf("\t\t学号\t姓名\t数学\t语文\t英语\t总分\t平均分\n");
				printf("\t\t%s",infor.number);
				printf("\t%s",infor.name);
				for(j=0;j<3;j++)
					printf("\t%.1f",infor.score[j]);
				printf("\t%.1f\t",infor.sum);
				printf("%.1f",infor.average);
				printf("\n");
			}
		}
		if(lg==0)
			printf("\t\t恭喜!没有不及格的!\n");
		else
			printf("\t\t不及格的人数为%d\n",lg);
		printf("\t\t是否继续?\n\t\t(1)__yes\t\t(其他键)__no\n");
		printf("\t\t您选:");
		scanf("%s",r);
		if(strcmp(r,"1")!=0)
			break;
	}
}			
void lgrade_2()//语文不及格学生信息
{
	int j;
	char r[N];
	int lg=0;
	kk=0;
	while(1)//这个循环为了重复查找使用的
	{
		search_doc();
		if(kk!=0)
			break;		
		while(1)
		{
			fread(&infor,sizeof(XX),1,fp1);
			if(feof(fp1))
				break;
			if(infor.score[1]<BAD)
			{
				lg++;
				printf("\t\t学号\t姓名\t数学\t语文\t英语\t总分\t平均分\n");
				printf("\t\t%s",infor.number);
				printf("\t%s",infor.name);
				for(j=0;j<3;j++)
					printf("\t%.1f",infor.score[j]);
				printf("\t%.1f\t",infor.sum);
				printf("%.1f",infor.average);
				printf("\n");
			}
		}
		if(lg==0)
			printf("\t\t恭喜!没有不及格的!\n");
		else
			printf("\t\t不及格的人数为%d\n",lg);
		printf("\t\t是否继续?\n\t\t(1)__yes\t\t(其他键)__no\n");
		printf("\t\t您选:");
		scanf("%s",r);
		if(strcmp(r,"1")!=0)
			break;
	}
}						
void lgrade_3()//英语不及格学生信息
{
	int j;
	char r[N];
	int lg=0;
	kk=0;
	while(1)//这个循环为了重复查找使用的
	{
		search_doc();
		if(kk!=0)
			break;		
		while(1)
		{
			fread(&infor,sizeof(XX),1,fp1);
			if(feof(fp1))
				break;
			if(infor.score[2]<BAD)
			{
				lg++;
				printf("\t\t学号\t姓名\t数学\t语文\t英语\t总分\t平均分\n");
				printf("\t\t%s",infor.number);
				printf("\t%s",infor.name);
				for(j=0;j<3;j++)
					printf("\t%.1f",infor.score[j]);
				printf("\t%.1f\t",infor.sum);
				printf("%.1f",infor.average);
				printf("\n");
			}
		}
		if(lg==0)
			printf("\t\t恭喜!没有不及格的!\n");
		else
			printf("\t\t不及格的人数为%d\n",lg);
		printf("\t\t是否继续在此文件中操作?\n\t\t(1)__yes\t\t(其他键)__no\n");
		printf("\t\t您选:");
		scanf("%s",r);
		if(strcmp(r,"1")!=0)
			break;
	}
}						
void average()//班级平均成绩统计
{
	double a_sum=0.0,a_aver,a_sum1=0.0;
	int a_i=0;
	while(1)
	{
		kk=0;
		search_doc();
		if(kk==0)
			break;
		else 
			return;
	}
	while(1)
	{
		fread(&infor,sizeof(XX),1,fp1);
		if(feof(fp1))
			break;
		a_sum+=infor.average;
		a_sum1+=infor.sum;
		a_i++;
	}
	if(a_i!=0)
	{
		a_aver=a_sum/a_i;
		printf("\t\t单科平均成绩为%.1f\n",a_aver);
		a_aver=a_sum1/a_i;
		printf("\t\t每个人的总平均成绩为%.1f\n",a_aver);
	}
	else
		printf("\t\t该文件中没有数据!\n");
}
void order()//对某个文件中信息排序主菜单
{
	char search[N];
	while(1)
	{
		system("cls");
		printf("\t\t*****************************\n");
		printf("\t\t*****************************\n");
		printf("\t\t请输入您所想要的排序内容:\n");
		printf("\t\t(1)__学生总成绩降序排序\n");
		printf("\t\t(2)__单科成绩降序排序\n");
		printf("\t\t(3)__退出\n");
		printf("\t\t*****************************\n");
		printf("\t\t*****************************\n");
		printf("\t\t您选:");
		scanf("%s",search);
		if(strcmp(search,"1")==0)
			order_1();		
		else if(strcmp(search,"2")==0)
			order_2();
		else if(strcmp(search,"3")==0)
		{
			wait();
			return;
		}
		else
		{
			printf("\t\t您的输入有误!\n");
			printf("\t\t请重新输入!\n");
			wait();
		}
	}
}
void order_1()//总成绩排序函数/////////////////////////////
{
	int i,j,k;
	char h[N];
	kk=0;
	search_doc();
	while(1)//查找的正文
	{
		if(kk!=0)
		{
			printf("\t\t无此文件\n");
			wait();
			system("cls");
			break;
		}
		for(i=0;;i++)
		{
			fread(&xx[i],sizeof(XX),1,fp1);
			if(feof(fp1))
				break;
		}
		for(k=0;k<i-1;k++)
			for(j=0;j<i-1-k;j++)
				if(xx[j].sum<xx[j+1].sum)
				{
					infor=xx[j];
					xx[j]=xx[j+1];
					xx[j+1]=infor;
				}
		fclose(fp1);		
		g=i;
		if((fp=fopen(fname1,"wb"))==NULL)
		{
			printf("Cannot open the file!\n");
				return;
		}
		for(i=0;i<g;i++)
		{
			if(fwrite(&xx[i],sizeof(XX),1,fp)!=1)
			printf("\nfile write error!\n\n");
		}
		fclose(fp);
		printf("\t\t是否输出排序结果?\n\t\t(1)__yes\t\t(其他键)__no\n");
		printf("\t\t您选:");
		scanf("%s",h);
		if(strcmp(h,"1")==0)
		{
			read_1();
			printf("\t\t按回车键回小菜单!\n");
			getchar();
			getchar();
			break;
		}
		else
			break;
	}
}
void order_2()//单科排序小菜单
{
	char search[N];
	while(1)
	{
		system("cls");
		printf("\t\t*****************************\n");
		printf("\t\t*****************************\n");
		printf("\t\t请输入您的选择:\n");
		printf("\t\t(1)__数学成绩降序\n");
		printf("\t\t(2)__语文成绩降序\n");
		printf("\t\t(3)__英语成绩降序\n");
		printf("\t\t(4)__退出\n");
		printf("\t\t*****************************\n");
		printf("\t\t*****************************\n");
		printf("\t\t您选:");
		scanf("%s",search);
		if(strcmp(search,"1")==0)
			order_2_1();
		else if(strcmp(search,"2")==0)
			order_2_2();
		else if(strcmp(search,"3")==0)
			order_2_3();
		else if(strcmp(search,"4")==0)
		{
			wait();
			return;
		}
		else
		{
			printf("\t\t您的输入有误!\n");
			printf("\t\t请重新输入!\n");
			wait();
		}
	}
}
void order_2_1()//按照数学成绩排序
{
	int i,j,k;
	char h[N];
	kk=0;
	search_doc();
	while(1)//查找的正文
	{
		if(kk!=0)
		{
			printf("\t\t无此文件\n");
			wait();
			system("cls");
			break;
		}
		for(i=0;;i++)
		{
			fread(&xx[i],sizeof(XX),1,fp1);
			if(feof(fp1))
				break;
		}
		for(k=0;k<i-1;k++)
			for(j=0;j<i-1-k;j++)
				if(xx[j].score[0]<xx[j+1].score[0])
				{
					infor=xx[j];
					xx[j]=xx[j+1];
					xx[j+1]=infor;
				}
		fclose(fp1);		
		g=i;
		if((fp=fopen(fname1,"wb"))==NULL)
		{
			printf("Cannot open the file!\n");
				return;
		}
		for(i=0;i<g;i++)
		{
			if(fwrite(&xx[i],sizeof(XX),1,fp)!=1)
			printf("\nfile write error!\n\n");
		}
		fclose(fp);
		printf("\t\t是否输出排序结果?\n\t\t(1)__yes\t\t(其他键)__no\n");
		printf("\t\t您选:");
		scanf("%s",h);
		if(strcmp(h,"1")==0)
		{
			read_1();
			printf("\t\t按回车键回小菜单!\n");
			getchar();
			getchar();
			break;
		}
		else
			break;
	}
}
void order_2_2()//按照语文成绩排序
{
	int i,j,k;
	char h[N];
	kk=0;
	search_doc();
	while(1)//查找的正文
	{
		if(kk!=0)
		{
			printf("\t\t无此文件\n");
			wait();
			system("cls");
			break;
		}
		for(i=0;;i++)
		{
			fread(&xx[i],sizeof(XX),1,fp1);
			if(feof(fp1))
				break;
		}
		for(k=0;k<i-1;k++)
			for(j=0;j<i-1-k;j++)
				if(xx[j].score[1]<xx[j+1].score[1])
				{
					infor=xx[j];
					xx[j]=xx[j+1];
					xx[j+1]=infor;
				}
		fclose(fp1);		
		g=i;
		if((fp=fopen(fname1,"wb"))==NULL)
		{
			printf("Cannot open the file!\n");
				return;
		}
		for(i=0;i<g;i++)
		{
			if(fwrite(&xx[i],sizeof(XX),1,fp)!=1)
			printf("\nfile write error!\n\n");
		}
		fclose(fp);
		printf("\t\t是否输出排序结果?\n\t\t(1)__yes\t\t(其他键)__no\n");
		printf("\t\t您选:");
		scanf("%s",h);
		if(strcmp(h,"1")==0)
		{
			read_1();
			printf("\t\t按回车键回小菜单!\n");
			getchar();
			getchar();
			break;
		}
		else
			break;
	}
}
void order_2_3()//按照英语成绩排序
{
	int i,j,k;
	char h[N];
	kk=0;
	search_doc();
	while(1)//查找的正文
	{
		if(kk!=0)
		{
			printf("\t\t无此文件\n");
			wait();
			system("cls");
			break;
		}
		for(i=0;;i++)
		{
			fread(&xx[i],sizeof(XX),1,fp1);
			if(feof(fp1))
				break;
		}
		for(k=0;k<i-1;k++)
			for(j=0;j<i-1-k;j++)
				if(xx[j].score[2]<xx[j+1].score[2])
				{
					infor=xx[j];
					xx[j]=xx[j+1];
					xx[j+1]=infor;
				}
		fclose(fp1);		
		g=i;
		if((fp=fopen(fname1,"wb"))==NULL)
		{
			printf("Cannot open the file!\n");
				return;
		}
		for(i=0;i<g;i++)
		{
			if(fwrite(&xx[i],sizeof(XX),1,fp)!=1)
			printf("\nfile write error!\n\n");
		}
		fclose(fp);
		printf("\t\t是否输出排序结果?\n\t\t(1)__yes\t\t(其他键)__no\n");
		printf("\t\t您选:");
		scanf("%s",h);
		if(strcmp(h,"1")==0)
		{
			read_1();
			printf("\t\t按回车键回小菜单!\n");
			printf("\t\t");
			getchar();
			getchar();
			break;
		}
		else
			break;
	}
}
void read_1()//读取信息文件
{
	int j,r;
	char c[N];
	if((fp1=fopen(fname1,"rb"))==NULL)
	{
		printf("\t\t该文件不存在!\n");
		while(1)
		{
			printf("\t\t您想继续吗?\n\t\tYES---(1)\t\tNO---(2)\n");
			scanf("%s",c);
			r=check_number1(c);
			if(r==1)
				break;
			else if(r==2)
				break;
			else
				printf("\t\t输入有误请重新输入!\n");
		}
		if(flag==1&&r==1)
			teacher_menu();
		else if(flag==2&&r==1)
			student_menu();
		else
		{
			fclose(fp1);
			exit(0); 
		}
	}
	while(1)
	{
	    fread(&infor,sizeof(XX),1,fp1);
		if(feof(fp1))
			break;
		printf("\t\t学号\t姓名\t数学\t语文\t英语\t总分\t平均分\n");
		printf("\t\t%s",infor.number);
		printf("\t%s",infor.name);
		for(j=0;j<3;j++)
			printf("\t%.1f",infor.score[j]);
		printf("\t%.1f\t",infor.sum);
		printf("%.1f",infor.average);
		printf("\n");
	}
	fclose(fp1);
}
void end()//结束
{
	system("cls");
	printf("\n\n\n\n");
	printf("\t************************************************************\n");
	printf("\t************************************************************\n");
	printf("\t*****************欢迎您再次使用我们的系统*******************\n");
	printf("\t************************************************************\n");
	printf("\t************************************************************\n");
	exit(0);
}
void welcome()//开始
{
	printf("\n\n\n");
	printf("\t************************************************************\n");
	printf("\t************************************************************\n");
	printf("\t***欢**********迎***********您***********使***********用****\n");
	printf("\t************************************************************\n");
	printf("\t************************************************************\n");
	printf("\t**************************WELCOME***************************\n");
}






		

⌨️ 快捷键说明

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