学生成绩管理系统

这是当时大一第一学期做了一回枪手临时赶出来的,bug未曾测试,仅供参考!


#include<stdio.h>
#include<string.h>
struct mystruct{
	char name[20];
	int  number,Eng,math,phy,cyuyan,jixie,zongfen,pingjun;
};
void input(mystruct student[],int m);
void xiugai(mystruct student[],int m);
void chaxun(mystruct student[],int m);
void tongji(mystruct student[],int m);
void shuchu(mystruct student[],int m);
bool com(mystruct a,mystruct b);
int main(){
	int n,m;
	printf("请输入班级学生数: \n");
	scanf("%d",&n);
	mystruct *student=new mystruct[n];
	printf("请按顺序输入全部学生信息,姓名,学号,英语,高数,大学物理,C语言,机械制图:\n");
	input(student,n);
	printf("请输入您所需功能,0代表信息修改,1代表成绩查询,2代表成绩统计,3代表成绩输出,-1结束 \n");
	while(scanf("%d",&m)){
		if(m==-1) break;
	if(m==0) xiugai(student,n);
	else if(m==1) chaxun(student,n);
	else if(m==2) tongji(student,n);
	else if (m==3) shuchu(student,n);
	else {
		printf("请重新输入!!!!\n");
	}
	printf("请继续输入,0代表信息修改,1代表成绩查询,2代表成绩统计,3代表成绩输出,-1结束\n");
	}
	return 0;
}
void input(mystruct student[],int m){
	int i;
	for(i=0;i<m;++i){
		scanf("%s%d%d%d%d%d%d",student[i].name,&student[i].number,&student[i].Eng,&student[i].math,&student[i].phy,&student[i].cyuyan,&student[i].jixie);
		student[i].zongfen=student[i].Eng+student[i].math+student[i].phy+student[i].cyuyan+student[i].jixie;
		student[i].pingjun=student[i].zongfen/5;
	}
}

void xiugai(mystruct student[],int m){
	printf("请输入想要修改的学生学号,-1停止修改\n");
	int k,j;
	while(scanf("%d",&k)){
		if(k==-1) break;
		printf("请输入想要修改的信息,0代表英语,1代表高数,2代表大学物理,3代表C语言,4代表机械制图,-1停止修改\n");
		while(scanf("%d",&j)&&j!=-1){
		  for(int i=0;i<m;++i){
			if(k==student[i].number){
				printf("请输入修改值\n");
				int tmp;
				scanf("%d",&tmp);
				if(j==0) student[i].Eng=tmp;
				else if(j==1) student[i].math=tmp;
				else if(j==2) student[i].phy=tmp;
				else if(j==3) student[i].cyuyan=tmp;
				else if (j==4) student[i].jixie=tmp;
				else{
					printf("请重新输入\n");
					break;
				}
				break;
			}
		 }
		  printf("请继续输入想要修改的信息,0代表英语,1代表高数,2代表大学物理,3代表C语言,4代表机械制图,-1停止修改\n");
		}
		printf("请继续输入学生学号,-1结束修改\n");
	}
}
void chaxun(mystruct student[],int m){
	printf("请选择查询项目,0代表学生信息,1代表某课程最高分最低分,-1结束查询\n");
	int k,i,j,num;
	while(scanf("%d",&k)){
		if(k==-1) break;
		if(k==0){
			printf("请选择查询模式,输入0按姓名查询,1按学号查询\n");
			scanf("%d",&j);
			if(j==0){
				char names[20];
				printf("请输入名字: \n");
				scanf("%s",names);
				for(i=0;i<m;++i){
					if(strcmp(student[i].name,names)==0){
						printf("姓名:%s  学号:%d  英语:%d\n",names,student[i].number,student[i].Eng);
						printf("高数:%d  大学物理:%d  C语言:%d  机械制图:%d\n",student[i].math,student[i].phy,student[i].cyuyan,student[i].jixie);
						break;
					}
					if(i==m-1) printf("查无此人!!!\n");
				}
			}
			else if(j==1) {
				printf("请输入学号:\n");
				scanf("%d",&num);
				for(i=0;i<m;++i){
					if(student[i].number==num){
						printf("姓名:%s  学号:%d  英语:%d\n",student[i].name,student[i].number,student[i].Eng);
						printf("高数:%d  大学物理:%d  C语言:%d  机械制图:%d\n",student[i].math,student[i].phy,student[i].cyuyan,student[i].jixie);
						break;
					}
					if(i==m-1) printf("查无此人!!!\n");
				}
			}
			else printf("错误输入!!!\n");
		}
		else if(k==1){
			printf("请输入想查询的课程,0代表英语,1代表高数,2代表大学物理,3代表C语言,4代表机械制图,-1结束查询\n");
			while(scanf("%d",&j)){
				if(j==-1) break;
				int max=0,min=100;
				if(j==0){
					for(i=0;i<m;++i){
						if(student[i].Eng>max) max=student[i].Eng;
						if(min>student[i].Eng) min=student[i].Eng;
					}
					printf("英语最高分是:%d   最低分:%d\n",max,min);
				}
				else if(j==1){
					for(i=0;i<m;++i){
						if(student[i].math>max) max=student[i].math;
						if(min>student[i].math) min=student[i].math;
					}
					printf("高数最高分是:%d   最低分:%d\n",max,min);
				}
				else if(j==2){
					for(i=0;i<m;++i){
						if(student[i].phy>max) max=student[i].phy;
						if(min>student[i].phy) min=student[i].phy;
					}
					printf("大学物理最高分是:%d   最低分:%d\n",max,min);
				}
				else if(j==3){
					for(i=0;i<m;++i){
						if(student[i].cyuyan>max) max=student[i].cyuyan;
						if(min>student[i].cyuyan) min=student[i].cyuyan;
					}
					printf("C语言最高分是:%d   最低分:%d\n",max,min);
				}
				else if(j==4){
					for(i=0;i<m;++i){
						if(student[i].jixie>max) max=student[i].jixie;
						if(min>student[i].jixie) min=student[i].jixie;
					}
					printf("机械制图最高分是:%d   最低分:%d\n",max,min);
				}
				else printf("错误输入!!!\n");
				printf("请继续输入想查询的课程,0代表英语,1代表高数,2代表大学物理,3代表C语言,4代表机械制图,-1结束查询\n");
			}
		}
		printf("请继续选择查询项目,0代表学生信息,1代表某课程最高分最低分,-1结束查询\n");
	}
}
void tongji(mystruct student[],int m){
	for(int i=0;i<m;++i){
		for(int j=i;j<m;++j){
			if(student[i].zongfen<student[j].zongfen){
				mystruct c=student[i];
				student[i]=student[j];
				student[j]=c;
			}
		}
	}
	char xing[]={"姓名"},mingci[]={"名次"},zong[]={"总分"},ping[]={"平均分"};
	printf("%10s%10s%10s%10s\n",mingci,xing,zong,ping);
	for(int i=0;i<m;++i){
		printf("%10d%10s%10d%10d\n",i+1,student[i].name,student[i].zongfen,student[i].pingjun);
	}
}
void shuchu(mystruct student[],int m){
	for(int i=0;i<m;++i){
		printf("姓名:%s  学号:%d  英语:%d\n",student[i].name,student[i].number,student[i].Eng);
		printf("高数:%d  大学物理:%d  C语言:%d  机械制图:%d\n",student[i].math,student[i].phy,student[i].cyuyan,student[i].jixie);
		printf("总分:%d  平均分:%d\n\n",student[i].zongfen,student[i].pingjun);
	}
}


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值