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

📄 c pro5.cpp

📁 一个学生信息管理系统
💻 CPP
📖 第 1 页 / 共 2 页
字号:
			scanf("%c",&b);
			
		}
		if(b=='y')
			search_grade();
		else if (b=='n')
			menu_jiansuo();
		return ;
}

void search_another()                                       //按其他信息查找
{
	int a;
	printf("\t\t  1------- 按性别查找;\n");
	printf("\t\t  2------- 按地区查找;\n");
	printf("\t\t  3------- 按课程编号查找;\n");
	printf("\t\t  4------- 按成绩查找;\n");
	printf("\t\t  5------- 返回上级菜单;\n");
	scanf("%d",&a);
	printf("\n\t     请输入您的选择:");
	switch(a)
	{
	case 1:
		search_sex();
		break;
	case 2:
		search_area();
		break;
	case 3:
		search_kecheng();
		break;
	case 4:
		search_score();
		break;
	case 5:
		menu_jiansuo();
		break;
	default :
		printf("输入错误!请重新输入!\n");
		search_another();
	}
	return ;
}


void search_sex()                               //按性别查找
{
	char a,b='q',c='q';
	int i,j,n=0;
	scanf("%c",&a);
	printf("请输入性别(男m/女f)");
	scanf("%c",&a);
	for(i=1;i<=M-1;i++)
	{
		if(stu0[i].sex==a)
			n=1;
	}
	if(n=1)
	{
		printf("\t符合条件的学生有:\n");
	    for(i=1;i<=M-1;i++)
		{
			if(stu0[i].sex==a)
			{
				printf("\t学号:%d 姓名:%s 班级:%s  性别:%c  地区:%s  通信地址:%s\n",stu0[i].number,stu0[i].name,stu0[i].grade,stu0[i].sex,stu0[i].area,stu0[i].adress);
				for(j=1;j<=N-1;j++)
					{
						if(stu0[i].mark[j].kecheng!=200)
							n++;
					}
					if(n!=0)
					{
						printf("\t该学生的课程编号及成绩为:\n");
						for(j=1;j<=N-1;j++)
						{
							if(stu0[i].mark[j].kecheng!=200)
								printf("\t课程编号为%d,成绩为%d\n",stu0[i].mark[j].kecheng,stu0[i].mark[j].score);
						}
					}
					else
						printf("该学生还未输入课程编号及成绩!\n");
			}
		}
		while((c!='y')&&(c!='n'))
		{	scanf("%c",&c);
			printf("是否继续按性别查找?(y/n)");
			scanf("%c",&c);
		}
		if(c=='y')
			search_sex();
		else
		{
			while((b!='y')&&(b!='n'))
			{	scanf("%c",&b);
				printf("是否返回上级菜单?(y/n)");
				scanf("%c",&b);
			}
			if(b=='y')
				menu_jiansuo();
		}
	}
	else
	{
		printf("没有符合条件的学生!\n");
		while((c!='y')&&(c!='n'))
		{	scanf("%c",&c);
			printf("是否继续按性别查找?(y/n)");
			scanf("%c",&c);
		}
		if(c=='y')
			search_sex();
		else
		{
			while((b!='y')&&(b!='n'))
			{	
				printf("是否返回上级菜单?(y/n)");
				scanf("%c",&b);
			}
			if(b=='y')
				menu_jiansuo();
		}
	}

	return ;
}


	
void search_area()                              //按地区查找
{
	char a[20],c='q',b='q';
	int i,j,n=0;
	printf("请输入地区:");
	getchar();
	gets(a);
	for(i=1;i<=M-1;i++)
	{
		if(strcmp(stu0[i].area,a)==0)
			n=1;
	}
	if(n=1)
	{
		printf("\t符合条件的学生有:\n");
		for(i=1;i<=M-1;i++)
		{
			if(strcmp(stu0[i].area,a)==0)
			{
					printf("\t学号:%d 姓名:%s 班级:%s  性别:%c  地区:%s  通信地址:%s\n",stu0[i].number,stu0[i].name,stu0[i].grade,stu0[i].sex,stu0[i].area,stu0[i].adress);
				for(j=1;j<=N-1;j++)
					{
						if(stu0[i].mark[j].kecheng!=200)
							n++;
					}
					if(n!=0)
					{
						printf("\t该学生的课程编号及成绩为:\n");
						for(j=1;j<=N-1;j++)
						{
							if(stu0[i].mark[j].kecheng!=200)
								printf("\t课程编号为%d,成绩为%d\n",stu0[i].mark[j].kecheng,stu0[i].mark[j].score);
						}
					}
					else
						printf("该学生还未输入课程编号及成绩!\n");
			}
		}
		while((c!='y')&&(c!='n'))
		{	
			printf("是否继续按地区查找?(y/n)");
			scanf("%c",&c);
		}
		if(c=='y')
			search_area();
		else
		{
			while((b!='y')&&(b!='n'))
			{	scanf("%c",&b);
				printf("是否返回上级菜单?(y/n)\n");
				scanf("%c",&b);
			}
			if(b=='y')
				menu_jiansuo();
		}
	}
	else
	{
		printf("没有符合条件的学生!\n");
		while((c!='y')&&(c!='n'))
		{	
			printf("是否继续按地区查找?\n");
			scanf("%c",&c);
		}
		if(c=='y')
			search_area();
		else
		{
			while((b!='y')&&(b!='n'))
			{	scanf("%c",&b);
				printf("是否返回上级菜单?(y/n)\n");
				scanf("%c",&b);
			}
			if(b=='y')
				menu_jiansuo();
		}
	}

	return ;
}



void search_kecheng()                                //按课程查找
{
	char b='q',c='q';
	int a,i,j,n=0;
	printf("请输入课程编号(1-%d):",N-1);
	scanf("%d",&a);
	for(i=1;i<=M-1;i++)
	{
		for(j=1;j<=N-1;j++)
		{
			if(stu0[i].mark[j].kecheng==a)
				n=1;
		}
	}
	if(n=1)
	{
		printf("\t符合条件的学生有:\n");
		for(i=1;i<=M-1;i++)
		{
			for(j=1;j<=N-1;j++)
			{
				if(stu0[i].mark[j].kecheng==a)
				{
					printf("\t学号:%d  姓名%s  性别%c  地区%s  通信地址%s",stu0[i].number,stu0[i].name,stu0[i].sex,stu0[i].area,stu0[i].adress);
					printf("\n\t该学生的课程编号及成绩为:\n");
					for(j=1;j<=N-1;j++)
						{
							if(stu0[i].mark[j].kecheng==a)
								printf("\t课程编号为%d,成绩为%d\n",stu0[i].mark[j].kecheng,stu0[i].mark[j].score);
						}
				}
			}
		}
	while((c!='y')&&(c!='n'))
	{	scanf("%c",&c);
		printf("是否继续按课程编号查找?(y/n)");
		scanf("%c",&c);
	}
	if(c=='y')
		search_kecheng();
	else
	{
		while((b!='y')&&(b!='n'))
		{	scanf("%c",&b);
			printf("是否返回上级菜单?(y/n)");
			scanf("%c",&b);
		}
		if(b=='y')
			menu_jiansuo();
	}
	}
	else
		{
			printf("没有符合条件的学生!\n");
			while((c!='y')&&(c!='n'))
			{   scanf("%c",&c);
				printf("是否继续按课程编号查找?(y/n)");
				scanf("%c",&c);
			}
			if(c=='y')
				search_kecheng();
			else
			{
				while((b!='y')&&(b!='n'))
				{   
					printf("是否返回上级菜单?(y/n)");
					scanf("%c",&b);
				}
				if(b=='y')
					menu_jiansuo();
			}
		}
	return ;
}

   
void search_score()                              //按成绩查找
{
	int a=0,i,j,q,n=0,m[N];
	char b='q',c='q';
	for(i=0;i<=N-1;i++)
		m[i]=0;
	printf("请输入成绩\n");
	scanf("%d",&a);
	for(i=1;i<=M-1;i++)
	{
		for(j=1;j<=N;j++)
		{
			if(stu0[i].mark[j].score==a)
				n++;
		}
	}
	if(n!=0)
	{
		printf("符合条件的学生为:\n");
		for(i=1;i<=M-1;i++)
		{
			for(j=1;j<=N-1;j++)
			{
				if(stu0[i].mark[j].score==a)
				{
					printf("学号:%d  姓名%s  性别%c  地区%s  通信地址%s",stu0[i].number,stu0[i].name,stu0[i].sex,stu0[i].area,stu0[i].adress);
					m[j]=stu0[i].mark[j].kecheng;
				}
			}
			

		}
		while((b!='y')&&(b!='n'))
		{   scanf("%c",&b);
			printf("\n是否继续按成绩查找?(y/n)\n");
			scanf("%c",&b);
		}
		if(b=='y')
			search_score();
		else
			menu_jiansuo();
	}
	else
	{
		printf("没有找到有该成绩的学生!!\n");
		while((c!='y')&&(c!='n'))
		{   scanf("%c",&c);
			printf("是否继续按成绩查找?(y/n)");
			scanf("%c",&c);
		}
		if(b=='y')
			search_score();
		else
			menu_jiansuo();
	}
	return ;
}

void menu_tongji()                                    //统计
{
	int a=0;
	printf("\n\t         信息统计\n");
	printf("\n\t      1------- 成绩统计\n");
	printf("\n\t      2------- 其他信息统计\n");
	printf("\n\t      3------- 返回上级菜单\n");
	printf("\n\t  请输入您的选择:");
	scanf("%d",&a);
	switch(a)
	{
	case 1:
		tongji_score();
		break;
	case 2:
		tongji_other();
		break;
	case 3:
		menu();
		break;
	default :
		printf("输入错误!请重新输入!\n");
		menu_tongji();
	}
}



void tongji_score()                        //成绩统计
{
	int a=0;
	printf("\n\t  请选择统计的依据:\n");
	printf("\n\t      1------- 班级\n");
	printf("\n\t      2------- 课程\n");
	printf("\n\t      3------- 学号\n");
	printf("\n\t      4------- 返回上级菜单\n");
	scanf("%d",&a);
	printf("\n\t  请输入您的选择:");
	switch(a)
	{
	case 1:
		tongji_score_grade();
		break;
	case 2:
		tongji_score_kecheng();
		break;
	case 3:
		tongji_score_number();
		break;
	case 4:
		menu_tongji();
	default:
		printf("您的输入错误!请重新输入!\n");
		tongji_score();
	}
	return ;
}


void tongji_score_grade()                               //按班级成绩统计
{
	int a=0,b=0,f=0,e=0,i,j;
	char c[16],g='q';
	gets(c);
	printf("\n\t 请输入班级名称:");
	gets(c);
	for(i=1;i<=M-1;i++)
	{
		if(strcmp(c,stu0[i].grade)==0)
			f++;
	}
	if(f!=0)
	{
		printf("\n\t 请输入课程编码:");
		scanf("%d",&a);
		for(i=1;i<=M-1;i++)
		{
			if(strcmp(c,stu0[i].grade)==0)
			{
				b++;
				for(j=1;j<=N-1;j++)
				{
					if(stu0[i].mark[j].kecheng==a)
						e=(e+stu0[i].mark[j].score);
				}
			}
		}
		if(b!=0)
			printf("该班级此门课程的总成绩为%d,平均成绩为%d\n",e,e/b);
		else
			printf("该班级没有学生选择此课程代码的课程");
		while((g!='y')&&(g!='n'))
		{
			scanf("%c",&g);
			printf("是否继续按班级统计成绩?(y/n)");
			scanf("%c",&g);
		
		}
		if(g=='y')
			tongji_score_grade();
		else
			menu_tongji();

	}
	else
	{
		printf("查无此班!\n");
		while((g!='y')&&(g!='n'))
		{   scanf("%c",&g);
			printf("是否重新输入?(y/n)\n");
			scanf("%c",&g);
		}
		if(g=='y')
			tongji_score_grade();
		else
			menu_tongji();
	}
	return ;
}


 
void tongji_score_kecheng()                                  //按课程成绩统计
{
	int a=0,b=0,c=0,i,j;
	char d='q';
	printf("\n\t请输入课程编号");
	scanf("%d",&a);
	for(i=1;i<=M-1;i++)
	{
		for(j=1;j<=N-1;j++)
		{
			if(stu0[i].mark[j].kecheng==a)
			{
				b++;
				c=(c+stu0[i].mark[j].score);
			}
		}
	}
	if(b!=0)
	{
		printf("\n共有%d位学生选择此门课程,总成绩为%d,平均成绩为%d\n",b,c,c/b);
		while((d!='y')&&(d!='n'))
		{   scanf("%c",&d);
			printf("\n\t  是否继续按课程统计?(y/n)");
			scanf("%c",&d);
		}
		if(d=='y')
			tongji_score_kecheng();
		else
			menu_tongji();
	}
	else
	{
		printf("\n\t 查无此课!\n");
		while((d!='y')&&(d!='n'))
		{   scanf("%c",&d);
			printf("\n\t  是否继续按课程统计?(y/n)");
			scanf("%c",&d);
		}
		if(d=='y')
			tongji_score_kecheng();
		else
			menu_tongji();
	}
	return ;
}



void tongji_score_number()                       //按个人统计成绩
{
	int a=0,c=0,b=0,i,j;
	char e='q';
	printf("\n\t 请输入学号:");
	scanf("%d",&c);
	for(i=1;i<=M-1;i++)
	{
		if(stu0[i].number==c)
		{
			for(j=1;j<=N-1;j++)
			{
				a++;
				b=b+(stu0[i].mark[j].score);
			}
		}
	}
	if(a!=0)
	{
		printf("\n 该学生共选了%d门课,总成绩为%d,平均成绩为%d\n",a,b,b/a);
		while((e!='y')&&(e!='n'))
		{   scanf("%c",&e);
			printf("是否按学号继续统计?(y/n)");
			scanf("%c",&e);
		}
		if(e=='y')
			tongji_score_number();
		else
			menu_tongji();
	}
	else
	{
		printf("\n\t 该学生没有选课!\n");
		while((e!='y')&&(e!='n'))
		{   scanf("%c",&e);
			printf("是否按学号继续统计?(y/n)");
			scanf("%c",&e);
		}
		if(e=='y')
			tongji_score_number();
		else
			menu_tongji();
	}
	return ;
}



void tongji_other()                                //其他信息统计
{
	int a=0;
	char b='q';
	printf("\n\t   1------- 按性别统计人数;\n");
	printf("\n\t   2------- 按地区统计人数;\n");
	printf("\n\t   3------- 按所选课程统计人数;\n");
	printf("\n\t   4------- 返回上级菜单;\n");
	printf("\n\t     请输入您的选择:");
	scanf("%d",&a);
	switch(a)
	{
	case 1:
		tongji_other_sex();
		break;
	case 2:
		tongji_other_area();
		break;
	case 3:
		tongji_other_kecheng();
		break;
	case 4:
		menu_tongji();
		break;
	default:
		while((b!='y')&&(b!='n'))
		{
			printf("\n\t 输入错误!是否重新输入?(y/n)\n");
			scanf("%c",&b);
		}
		if(b=='y')
			tongji_other();
		else 	
			menu_tongji();
	}
	return ;
}
			


void tongji_other_sex()                              //按性别统计人数
{
	int a=0,b=0,i;
	char c='q';
	for(i=1;i<=M-1;i++)
	{
		if(stu0[i].sex=='m')
			a++;
		else if(stu0[i].sex=='f')
			b++;
	}
	if(a!=0)
		printf("\n所有学生中,男生有%d位,女生有%d位\n",a,b);
	else if(b!=0)
		printf("\n所有学生中,男生有%d位,女生有%d位\n",a,b);
	while((c!='y')&&(c!='n'))
	{   scanf("%c",&c);
		printf("\n\n是否继续按照性别统计?(y/n)\n");
		scanf("%c",&c);
	}
	if(c=='y')
		tongji_other_sex();
	else
		tongji_other();
	return ;
}


void tongji_other_area()                        //按地区统计人数
{
	int a=0,i;
	char b[20],c='q';
	gets(b);
	printf("\n\t  请输入地区名:\n");
    gets(b);
	for(i=1;i<=M-1;i++)
	{
		if(strcmp(stu0[i].area,b)==0)
			a++;
	}
	printf("\n所有学生中,位于%s地区的学生有%d位",b,a);
	while((c!='y')&&(c!='n'))
	{   
		printf("\n\n是否继续按照地区统计?(y/n)\n");
		scanf("%c",&c);
	}
	if(c=='y')
		tongji_other_area();
	else
		tongji_other();
	return ;
}

void tongji_other_kecheng()                    //按所选课程统计人数
{
	int a=0,b=0,i,j;
	char c='q';
	printf("\n\n请输入课程编码:\n");
	scanf("%d",&a);
	for(i=1;i<=M-1;i++)
	{
		for(j=1;j<=N-1;j++)
		{
			if(stu0[i].mark[j].kecheng==a)
				b++;
		}
	}
	printf("\n所有学生中,选课程编码为%d的学生有%d位\n",a,b);
		while((c!='y')&&(c!='n'))
	{   scanf("%c",&c);
		printf("\n是否继续按照课程编码统计?(y/n)\n");
		scanf("%c",&c);
	}
	if(c=='y')
		tongji_other_kecheng();
	else
		tongji_other();
	return ;
}

⌨️ 快捷键说明

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