老师的最爱:成绩输入,成绩汇总,成绩排名(第一与最后),成绩查找C++程序

这是一个C++编写的程序,能够输入、汇总、排名和查找个人成绩,适用于教师管理学生成绩。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本程序由博主自己编成,姓名可以按照自己的姓名来编辑。

#include <bits/stdc++.h>
using namespace std;
const int MAX_R=100; //最大学生数
const int MAX_C=10; //最大课程数
float scores[MAX_R][MAX_C];
float sum[MAX_R],aver[MAX_R]; //总分、平均分
long id[MAX_R]; //存放学号
char name[MAX_R][15]; //存放姓名
int m; //存放课程数
int input()
{
	int i,n=0;
	float t;
	do{
		cout <<"输入课程数(<=" <<MAX_C <<"):";
		cin >>m;
	}while(m<1 || m>10);
	cout <<"输入第 " <<n+1 <<" 个学生的学号(0 表示输入结束):";
	cin >>id[n];
	while(id[n] && n<MAX_R){
	cout <<"输入第 " <<n+1 <<" 个学生的姓名:";
	cin >>name[n];
	t=0;
	for(i=0; i<m; i++){
		cout <<"输入第 " <<n+1 <<" 个学生的第 " <<i+1 <<" 门课的成绩:";
		cin >>scores[n][i];
		t+=scores[n][i];
	}
	sum[n]=t;
	aver[n]=t/m;
	n++;
	cout <<"输入第 " <<n+1 <<" 个学生的学号(0 表示输入结束):";
	cin >>id[n];
	}
	return n;
}
void compute(int n) //计算个人总分和平均分
{
	int i,j;
	float t;
	cout <<setw(10) <<"学号" <<setw(10) <<"姓名" <<setw(8) <<"总分" <<setw(8) <<"平均分\n";
	for(i=0; i<n; i++){
	t=0;
		for(j=0;j<m;j++){
			t+=scores[i][j];
		}
		sum[i]=t;
		aver[i]=t/m;
		cout <<setw(10) <<id[i] <<setw(10) <<name[i] <<setw(8) <<sum[i] <<setw(8) <<aver[i] <<endl;
	}
}
void displayFirst(int n)
{
	int i,k;
	float t=-1;
	for(i=0; i<n; i++)
	if(sum[i]>t)
	t=sum[i], k=i;
	cout <<"总分第一名:\n";
	cout <<id[k] <<" " <<name[k] <<" " <<sum[k] <<" " <<aver[k] <<endl;
}
void displayLast(int n)
{
	int i,k;
	float t=100000;
	for(i=0; i<n; i++)
	if(sum[i]<t)
	t=sum[i], k=i;
	cout <<"总分最后一名:\n";
	cout <<id[k] <<" " <<name[k] <<" " <<sum[k] <<" " <<aver[k] <<endl;
}
void search(int n)
{
	long xh=0;
	char nm[15]={0};
	int i;
	cout<<"输入要查找学生的学号或姓名:";
	cin >>nm;
	xh=atol(nm);
	for(i=0; i<n; i++){
		if(id[i]==xh || strcmp(name[i],nm)==0){
			break;
		}
	}
	if(i<n){
	cout <<"学号:"<<id[i] <<" 姓名:" <<name[i]<<" 总分:" <<sum[i] <<" 平均分:" <<aver[i] <<endl;
	}
	else{
		cout <<"没有你要找的学生信息\n";
	}
}
int main(){
	int menu_id=5;
	int n=0;
	char ch;
	while(1){
	cout<<"*********我的成绩管理系统*********"<<endl;
	cout<<"本程序由XXX设计,版权所有,不得抄袭!"<<endl;
	cout<<"1. 输入成绩"<<endl;
	cout<<"2. 汇总成绩"<<endl;
	cout<<"3. 最高分和最低分"<<endl;
	cout<<"4. 查询个人成绩信息"<<endl;
	cout<<"5. 退出系统"<<endl;
	cout<<"请选择(输入以上数字编号)";
	cin>>menu_id;
	switch(menu_id){
		case 1:{
			n=input();
			cout <<n <<endl;
			break;
		}
		case 2:{
			compute(n);
			cout<<"已经完成汇总!\n";
			break;
		}
		case 3:{
			displayFirst(n);
			displayLast(n);
			break;
		}
		case 4:{
			search(n);
			break;
		}
		default:{
			break;
		}
	}
	if(menu_id==5){
	break;	
	}
	cout <<"打一键继续……\n";
	cin.ignore();
	cin.get(ch);
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值