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

📄 自动化0605姜楠200682091.c

📁 这是一个完整的c语言做的学生成绩管理平台
💻 C
📖 第 1 页 / 共 3 页
字号:
		system("cls");
		printf("		*****************************\n");
		printf("		*****************************\n");
		printf("		请输入您所想要查找学生的方式:\n");
		printf("		(1)__按照学号查找\n");
		printf("		(2)__按照姓名查找\n");
		printf("		(3)__退出\n");
		printf("		*****************************\n");
		printf("		*****************************\n");
		printf("		您选:");
		scanf("%s",search);
		if(strcmp(search,"1")==0)
			search_1();
		else if(strcmp(search,"2")==0)
			search_2();
		else if(strcmp(search,"3")==0)
		{
			wait();
			return;
		}
		else
		{
			printf("		您的输入有问题或查无此人!\n");
			printf("		请重新输入!\n");
			wait();
		}
	}
}
void search_doc()//用来在在功能函数中选择所要操作的文件
{
	char r[N];
	int y;
	while(1)
	{
		wait();
		system("cls");
		printf("\t\t**************************************************\n");
		printf("\t\t*********************Input_Name*******************\n");
		printf("\t\t**************************************************\n");
		printf("\t\t请选择您要操作的文件名:");
		scanf("%s",fname1);
		y=0;
		if((fp1=fopen(fname1,"rb+"))==NULL)
		{
			y=1;
			printf("\t\t该文件不存在!\n");
			printf("\t\t您是否要继续?\n\t\t(1)__返回\t\t(其他)__继续\n");
			printf("\t\t您选:");
			scanf("%s",r);
			if(strcmp(r,"1")==0)
			{
				kk=1;
				break;
			}
		}
		if(y==0)
			break;
	}
}
void search_1()//按照学号查找
{
	char sco[N],r[N];
	int i,j,k=0;
	while(1)//这个循环为了重复查找使用的
	{
		k=0;
		kk=0;
		search_doc();
		if(kk!=0)
		{
			printf("\t\t无此文件\n");
			wait();
			system("cls");
			break;
		}
		while(1)//查找的正文
		{
			printf("\t\t**************************************************\n");
			printf("\t\t*****************Search By Number*****************\n");
			printf("\t\t**************************************************\n");
			printf("\t\t请输入学生的学号:");
			scanf("%s",sco);
			for(i=0;;i++)
			{
				fread(&infor,sizeof(XX),1,fp1);//循环读出数据
				if(feof(fp1))
					break;
				if(strcmp(sco,infor.number)==0)
				{
					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");
					k++;
					break;
				}
			}
			if(k!=0)
				break;
			else
			{
				printf("\t\t查无此人!\n");
				break;
			}
		}
		fclose(fp1);
		printf("\t\t是否继续按照学号进行查找?\n\t\t(1)__返回查询主菜单\t\t(其他)__继续本功能\n");//学号查找功能是否继续
		printf("\t\t");
		scanf("%s",r);
		if(strcmp(r,"1")==0)
		{
			wait();
			break;
		}
	}
}
void search_2()//按照名字查找
{
	char sco[N],r[N];
	int i,j,k=0;
	while(1)//这个循环为了重复查找使用的
	{
		k=0;
		kk=0;
		search_doc();
		if(kk!=0)
		{
			printf("\t\t无此文件\n");
			wait();
			system("cls");
			break;
		}
		printf("\t\t**************************************************\n");
		printf("\t\t*****************Search_By_Name*******************\n");
		printf("\t\t**************************************************\n");
		while(1)//查找的正文
		{
			printf("\t\t请输入学生的姓名:");
			scanf("%s",sco);
			for(i=0;feof(fp1)==0;i++)
			{
				fread(&infor,sizeof(XX),1,fp1);
				if(strcmp(sco,infor.name)==0)
				{
					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");
					k++;
					break;
				}
			}
			if(k!=0)
				break;
			else
			{
				printf("\t\t查无此人!\n");
				break;
			}
		}	
		fclose(fp1);
		printf("\t\t是否继续按照姓名进行查找?\n\t\t(1)__返回查询主菜单\t\t(其他)__继续\n");
		printf("\t\t");
		scanf("%s",r);
		if(strcmp(r,"1")==0)
			break;
	}
}
void add()//新增学生信息函数
{
	char add[N];
	int n,k;
	while(1)//这个循环为了重复增加使用的
	{
		search_doc();		
		printf("\t\t**************************************************\n");
		printf("\t\t*****************Add_Information******************\n");
		printf("\t\t**************************************************\n");
		fseek(fp1,0,2);//将文件指针指向文件的最后
		printf("\t\t请输入新增学生的学号(学号小于8位):");
		scanf("%s",infor.number);
		n=check_number3(infor.number);
		if(n==0)
		{
			printf("\t\t请认真核对您的输入!\n");
			wait();
			system("cls");
			continue;
		}
		printf("\t\t请输入新增学生的姓名(汉字小于4个):");
		scanf("%s",infor.name);
		printf("\t\t请输入新增学生的数学成绩:");//学生成绩输入
		scanf("%s",add);
		infor.score[0]=check_number4(add);
		if(infor.score[0]==-1)
		{
			printf("\t\t请认真核对您的输入!\n");
			wait();
			system("cls");
			continue;
		}
		printf("\t\t请输入新增学生的语文成绩:");
		scanf("%s",add);
		infor.score[1]=check_number4(add);
		if(infor.score[1]==-1)
		{
			printf("\t\t请认真核对您的输入!\n");
			wait();
			system("cls");
			continue;
		}
		printf("\t\t请输入新增学生的英语成绩:");
		scanf("%s",add);
		infor.score[2]=check_number4(add);
		if(infor.score[2]==-1)
		{
			printf("\t\t请认真核对您的输入!\n");
			wait();
			system("cls");
			continue;
		}
		infor.sum=0.0;
		for(k=0;k<3;k++)
		infor.sum+=infor.score[k];
		infor.average=infor.sum/3.0;
		if(fwrite(&infor,sizeof(XX),1,fp1)!=1)
			printf("\nfile write error!\n\n");
		printf("\t\t新增信息已经写入您所指定的文件当中!\n");
		printf("\t\t您是否还要继续添加?\n\t\t(1)__退出\t\t(其他)__继续\n");//判断是否继续在该文件中进行增加信息
		printf("\t\t您选:");
		scanf("%s",add);
		if(strcmp(add,"1")==0)
			break;
	}
	fclose(fp1);
}
void drop(void)//删除函数
{
	int i,temp=0;
	char d[N],add[N];
	while(1)
	{
		search_doc();
		printf("\t\t**************************************************\n");
		printf("\t\t*****************drop_Information******************\n");
		printf("\t\t**************************************************\n");
		printf("\t\t请输入您要删除的信息的学生学号:");
		scanf("%s",d);
		for(i=0;;i++)
		{
			fread(&xx[i],sizeof(XX),1,fp1);
			if(feof(fp1))
				break;
			if(strcmp(xx[i].number,d)==0)
			{
				temp++;
				i=i-1;
			}
		}
		fclose(fp1);
		if(temp==0)//输入错误或没有该学生的信息
		{
			printf("\t\t对不起!没有您想要删除的记录!\n");
			printf("\t\t还要继续删除操作?\n\t\t(1)__yes\t\t(其他键)__no\n");//判断是否继续在该文件中进行增加信息
			printf("\t\t您选:");
			scanf("%s",add);
			if(strcmp(add,"1")!=0)
				break;
		}
		else//有该学生的信息
		{
			printf("\t\t您是否保存修改?\n\t\t(1)__yes\t\t(其他键)__no\n");//判断是否继续在该文件中进行增加信息
			printf("\t\t您选:");
			scanf("%s",add);
			if(strcmp(add,"1")==0)
			{
				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");
			}
			wait();
			break;
		}
	}
}
void hgrade()//优秀统计
{
	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)
			hgrade_1();		
		else if(strcmp(search,"2")==0)
			hgrade_2();
		else if(strcmp(search,"3")==0)
		{
			wait();
			return;
		}
		else
		{
			printf("\t\t您的输入有误!\n");
			printf("\t\t请重新输入!\n");
			wait();
		}
	}
}
void hgrade_1()//平均成绩统计
{
	int j;
	int hg=0;
	kk=0;
	search_doc();
	while(1)//查找的正文
	{
		if(kk!=0)
			break;		
		fread(&infor,sizeof(XX),1,fp1);//循环读出数据
		if(feof(fp1))
			break;
		if(infor.average>=GOOD)
		{
			hg++;
			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(hg==0&&kk==0)
		printf("\t\t很遗憾,平均分没有优秀的!\n");
	else
		printf("\t\t优秀的人数为%d\n",hg);
	if(kk==0)
	{
		fclose(fp1);
		printf("\t\t按任意键返回统计菜单\n");
		getchar();
		getchar();
	}
}
void hgrade_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)
			hgrade_2_1();
		else if(strcmp(search,"2")==0)
			hgrade_2_2();
		else if(strcmp(search,"3")==0)
			hgrade_2_3();
		else if(strcmp(search,"4")==0)
		{
			wait();
			return;
		}
		else
		{
			printf("\t\t您的输入有问题或查无此人!\n");
			printf("\t\t请重新输入!\n");
			wait();
		}
	}
}
void hgrade_2_1()//数学优秀学生信息
{
	int j;
	char r[N];
	int hg=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]>GOOD)
			{
				hg++;
				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(hg==0)
			printf("\t\t很遗憾,数学成绩没有优秀的!\n");
		else
			printf("\t\t优秀的人数为%d\n",hg);
		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 hgrade_2_2()//语文优秀学生查找
{
	int j;
	char r[N];
	int hg=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]>GOOD)
			{
				hg++;
				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(hg==0)
			printf("\t\t很遗憾,语文成绩没有优秀的!\n");
		else
			printf("\t\t优秀的人数为%d\n",hg);
		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 hgrade_2_3()//英语优秀学生信息
{
	int j;
	char r[N];
	int hg=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]>GOOD)
			{
				hg++;
				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(hg==0)
			printf("\t\t很遗憾,英语没有优秀的!\n");
		else
			printf("\t\t优秀的人数为%d\n",hg);
		printf("\t\t是否继续?\n\t\t(1)__yes\t\t(其他键)__no\n");
		scanf("%s",r);
		if(strcmp(r,"1")!=0)
			break;
	}
}
void lgrade()//不及格统计主菜单
{
	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您选:");

⌨️ 快捷键说明

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