简单的教务系统

2023-12-15 05:30:16

#include <stdio.h>
#include <string.h>
#define N 20
int i,j,n,m,lll=0,renshu=6;
double zcj[N]={0};
 struct stu{ 
    char num[10]; //学号
    char name[10]; //姓名
    char sex; //姓别
	double score[3]; //3 门课的成绩
	double sum; //3 门课的总分
	double aver; //3 门课的平均分
}temp,STU[N]={{"115101", "LiMin", 'M', {76,78,82}},
		  {"115102", "WangRui", 'F', {80,85,89}},
		  {"115103", "ZhaoQin", 'F', {65,75,80}},
		  {"115104", "ZhouYu", 'M', {95,92,88}},
		  {"115105", "GuoHui", 'M', {70,73,74}},
		  {"115106", "ZengPin", 'F', {87,90,94}}};;
char num1[7]={'1','2','3','a','b','c','\0'};
char zum[7];
void xhcz(){//按学号查找学生
	printf("**************************************************************\n");
	printf("\t\t     按学号查找学生记录\n");
	printf("**************************************************************\n");
for(i=0;i<renshu;i++){
		for(j=0;j<3;j++){
			zcj[i]+=STU[i].score[j];
		}
	}
char xx[N];
printf("请输入待查找的学生学号:");
scanf("%s",xx);
int sss=0;
	printf("学号\t姓名\t性别\t3门课成绩\t\t\t\t\t总分\t\t平均分\n"); 
	for(i=0;i<renshu;i++){
		if(strcmp(xx,STU[i].num)==0){
		printf("%s\t",STU[i].num);
		printf("%s\t",STU[i].name);
		printf("%c\t",STU[i].sex);
		for(j=0;j<3;j++){
			printf("%lf\t",STU[i].score[j]);
		}
		printf("%lf\t%lf\n\n",zcj[i],zcj[i]/3);
		sss=1;
		break;
		}
	}
	if(sss==0)printf("查找失败,没有指定学号的学生\n\n");
	return; 

}
void xmcz(){//按姓名查找学生
    for(i=0;i<renshu;i++){
		for(j=0;j<3;j++){
			zcj[i]+=STU[i].score[j];
		}
	}
    printf("**************************************************************\n");
	printf("\t\t     按姓名查找学生记录\n");
	printf("**************************************************************\n");
	char xx[N];
	printf("请输入待查找的学生姓名:");
	scanf("%s",xx); 
	int sss=0;
	printf("学号\t姓名\t性别\t3门课成绩\t\t\t\t\t总分\t\t平均分\n"); 
	for(i=0;i<renshu;i++){
		if(strcmp(xx,STU[i].name)==0){
		printf("%s\t",STU[i].num);
		printf("%s\t",STU[i].name);
		printf("%c\t",STU[i].sex);
		for(j=0;j<3;j++){
			printf("%lf\t",STU[i].score[j]);
		}
		printf("%lf\t%lf\n\n",zcj[i],zcj[i]/3);
		sss=1;
		break;
		}
	}
	if(sss==0)printf("查找失败,没有指定姓名的学生\n\n");
	return ;
}
void pjfj(){//按平均分降序排序
	printf("**************************************************************\n");
	printf("\t\t按平均分降序排序的学生记录\n");
	printf("**************************************************************\n");
	printf("学号\t姓名\t性别\t3门课成绩\t\t\t\t\t总分\t\t平均分\n"); 
for(i=0;i<renshu;i++){
		for(j=0;j<3;j++){
			zcj[i]+=STU[i].score[j];
		}
	}
	for(i=0;i<renshu-1;i++){
		for(j=i+1;j<renshu;j++){
			if(zcj[i]<zcj[j]){
				double l=zcj[i];
				zcj[i]=zcj[j];
				zcj[j]=l;
				temp=STU[j];
				STU[j]=STU[i];
				STU[i]=temp;
			}
		}
	}
	for(i=0;i<renshu;i++){
		printf("%s\t",STU[i].num);
		printf("%s\t",STU[i].name);
		printf("%c\t",STU[i].sex);
		for(j=0;j<3;j++){
			printf("%lf\t",STU[i].score[j]);
		}
		printf("%lf\t%lf\n",zcj[i],zcj[i]/3);
	}
	return ;
}
void lzzg(){//出总分最高的学生记录
	printf("**************************************************************\n");
	printf("\t\t  总分最高的学生记录\n");
	printf("**************************************************************\n");
	printf("学号\t姓名\t性别\t3门课成绩\t\t\t\t\t总分\t\t平均分\n"); 
	for(i=0;i<renshu;i++){
		for(j=0;j<3;j++){
			zcj[i]+=STU[i].score[j];
		}
	}
	int x=0;
	for(i=0;i<renshu;i++){
		if(zcj[i]>zcj[x])x=i;//x为最高 
	}
		printf("%s\t",STU[x].num);
		printf("%s\t",STU[x].name);
		printf("%c\t",STU[x].sex);
		for(j=0;j<3;j++){
			printf("%lf\t",STU[x].score[j]);
		}
		printf("%lf\t%lf\n",zcj[x],zcj[x]/3);
		return; 
	}
void xsjl(){//列出所以学生记录
	printf("**************************************************************\n");
	printf("\t\t\t所以学生记录\n");
	printf("**************************************************************\n");
	printf("学号\t姓名\t性别\t3门课成绩\t\t\t\t\t总分\t\t平均分\n"); 
	for(i=0;i<renshu;i++){
		double ssum=0;
		printf("%s\t",STU[i].num);
		printf("%s\t",STU[i].name);
		printf("%c\t",STU[i].sex);
		for(j=0;j<3;j++){
			printf("%lf\t",STU[i].score[j]);
			ssum+=STU[i].score[j];
		}
		printf("%lf\t%lf\n",ssum,ssum/3);
	}
	return ;
}
void gaimima(){//改密码 
	printf("请输入原来的密码:");
	for(i=0;i<6;i++){
		scanf("%c",&zum[i]);
	}
	putchar('\n');
	printf("请输入新密码:");
	for(i=0;i<6;i++){
		scanf("%c",&num1[i]);
	}
	printf("修改密码成功\n\n");
	return;
}
void dayin(){//打印标识选择 

	        printf("密码正确,进入系统\n\n\n"); 
			printf("******************************\n");
			printf("\t学生成绩管理系统\n");
			printf("******************************\n");
			printf("1.修改密码\n");
			printf("2.列出所以学生记录\n");
			printf("3.列出总分最高的学生记录\n");
			printf("4.按平均分降序排序\n");
			printf("5.按姓名查找学生\n");
			printf("6.按学号查找学生\n");
			printf("7.退出学生成绩管理系统\n");
			printf("******************************\n\n");
}
void czxx(){//操作选项 
    while(1){
	printf("请输入选项值:");
	scanf("%d",&j);
	switch(j){
		case 1:gaimima();break;//修改密码
		case 2:xsjl();break;//列出所以学生记录
		case 3:lzzg();break;//出总分最高的学生记录
		case 4:pjfj();break;//按平均分降序排序
		case 5:xmcz();break;//按姓名查找学生
		case 6:xhcz();break;//按学号查找学生
//		case 7:exit(0);break;//退出学生成绩管理系统
		}
	}
} 
int main(){
	printf("进入学生成绩管理系统,请输入6位密码:\n");
	for(i=2;i>=0;i--){
		gets(zum);
		if(strcmp(num1,zum)==0){
			dayin();//打印标识选择
			czxx();//操作选项
		}
		else{
			printf("密码错误,还剩%d次机会\n\n",i);
		}
	}
	return 0;
}

文章来源:https://blog.csdn.net/2301_80207329/article/details/135006495
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。