学生成绩管理系统V1.0

某班有最多不超过30人(具体人数由键盘输入)参加某门课程的考试,用一维数组作函数参数 编程实现如下学生成绩管理:

(1)录入每个学生的学号和考试成绩;

(2)计算课程的总分和平均分;

(3)按成绩由高到低排出名次表;

(4)按学号由小到大排出成绩表;

(5)按学号查询学生排名及其考试成绩;

(6)按优秀(90~100)、良好(80~89)、中等(70~79)、及格(60~69)、不及格(0~59)5个类别,统计每个类别的人数以及所占的百分比;

(7)输出每个学生的学号、考试成绩。

#include <iostream>
#include <iomanip>
using namespace std;
void input(int a[], float b[],int);
void caculate(float a[],int);
void sort_in_descending_order_by_score(int a[], float b[],int);
void sort_in_ascending_order_by_number(int a[],float b[],int);
void search(int a[],float b[],int);
void statistic(float a[],int);
int main()
{
	int n;
	cout << "Input student number(n<30):";
	cin >> n;
	int choice;
	int xvehao[30];
	float score[30];
	while (1)
	{
		cout << endl;
		cout << "Management for Students' scores" << endl;
		cout << "1.Input record" << endl;
		cout << "2.Caculate total and average score of course" << endl;
		cout << "3.Sort in descending order by score" << endl;
		cout << "4.Sort in ascending order by number" << endl;
		cout << "5.Search by number" << endl;
		cout << "6.Statistic analysis" << endl;
		cout << "7.List record" << endl;
		cout << "0.Exit" << endl;
		cout << "Please Input your choice:";
		cin >> choice;

		if (choice == 1)input(xvehao, score, n);
		else if (choice == 2)caculate(score, n);
		else if (choice == 3)sort_in_descending_order_by_score(xvehao, score, n);
		else if (choice == 4)sort_in_ascending_order_by_number(xvehao, score, n);
		else if (choice == 5)search(xvehao, score, n);
		else if (choice == 6)statistic(score, n);
		else if (choice == 7)sort_in_ascending_order_by_number(xvehao, score, n);
		else if (choice == 0)break;
		else
		{
			cout << "Please input any number from 0 to 7!"<<endl; continue;
		}
	}
	return 0;
}
void input(int a[], float b[],int n)
{
	int i;
	cout << "Input student's ID, name and score:" << endl;
	for (i = 1; i <= n; i++)
	{
		cin >> a[i] >> b[i];
	}
	
}
void caculate(float a[], int n)
{
	float sum=0,aver;
	int i;
	for (i = 1; i <= n; i++)
	{
		sum += a[i];
	}
	aver = sum / n;
	cout << "sum=" << sum << " , aver=" << fixed << setprecision(2) << aver;
	cout << endl;
}
void sort_in_descending_order_by_score(int a[], float b[], int n)
{
	int i, j,k;
	for (i = 1; i <= n; i++)
	{
		k = i;
		for (j = i+1; j <= n ; j++)
		{
			if (b[k] < b[j])k = j;
		}
		int x = a[i], y = b[i];
		a[i] = a[k]; b[i] = b[k];
		a[k] = x; b[k] = y;
	}
	for (i = 1; i <= n; i++)
	{
		cout << a[i] << " " << b[i] << endl;
	}
}
void sort_in_ascending_order_by_number(int a[], float b[], int n)
{
	int i, j,k;
	for (i = 1; i <= n; i++)
	{
		k = i;
		for (j = i + 1; j <= n; j++)
		{
			if (a[j] < a[k])k = j;
		}
		int x = a[i], y = b[i];
		a[i] = a[k]; b[i] = b[k];
		a[k] = x; b[k] = y;
	}
	for (i = 1; i <= n; i++)
	{
		cout << a[i] << " " << b[i] << endl;
	}
}
void search(int a[], float b[], int n)
{
	int number;
	cin >> number;
	int i,k;
	for (i = 1; i <= n; i++)
	{
		if (a[i] == number)
		{
			cout << a[i] << " " << b[i]<<endl;
			k = 1;
			break;
		}
		else k = 0;
	}
	if (k == 0)cout << "Can't find this student!"<<endl;
}
void statistic(float a[], int n)
{
	int i;
	int A = 0, B = 0, C = 0, D = 0, E = 0, F = 0;
	for (i = 1; i <= n; i++)
	{
		if (a[i] == 100)A++;
		else if (a[i] >= 90 && a[i] <= 99)B++;
		else if (a[i] >= 80 && a[i] <= 89)C++;
		else if (a[i] >= 70 && a[i] <= 79)D++;
		else if (a[i] >= 60 && a[i] <= 69)E++;
		else F++;
	}
	cout << "<60 "  << F<< " " <<fixed<<setprecision(2)<< ((float)F / n) * 100 << "%" << endl;
	cout << "60-69 "  << E<< " " << fixed << setprecision(2) << ((float)E / n) * 100 << "%" << endl;
	cout << "70-79 "  << D<< " " << fixed << setprecision(2) << ((float)D / n) * 100 << "%" << endl;
	cout << "80-89 "  << C<< " " << fixed << setprecision(2) << ((float)C / n) *100<< "%"<<endl;
	cout << "90-99 "  << B<< " " << fixed << setprecision(2) << ((float)B / n) * 100 << "%" << endl;
	cout << "100 "  << A<< " " << fixed << setprecision(2) << ((float)A / n) * 100 << "%" << endl;
}
相关推荐
Amor风信子7 分钟前
华为OD机试真题---跳房子II
java·数据结构·算法
Mr.Z.41117 分钟前
【历年CSP-S复赛第一题】暴力解法与正解合集(2019-2022)
c++
Death20021 分钟前
使用Qt进行TCP和UDP网络编程
网络·c++·qt·tcp/ip
戊子仲秋24 分钟前
【LeetCode】每日一题 2024_10_2 准时到达的列车最小时速(二分答案)
算法·leetcode·职场和发展
邓校长的编程课堂26 分钟前
助力信息学奥赛-VisuAlgo:提升编程与算法学习的可视化工具
学习·算法
郭二哈32 分钟前
C++——list
开发语言·c++·list
sp_fyf_202443 分钟前
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-03
人工智能·算法·机器学习·计算机视觉·语言模型·自然语言处理
Eric.Lee20211 小时前
数据集-目标检测系列- 螃蟹 检测数据集 crab >> DataBall
python·深度学习·算法·目标检测·计算机视觉·数据集·螃蟹检测
黑不溜秋的1 小时前
C++ 语言特性29 - 协程介绍
开发语言·c++
一丝晨光1 小时前
C++、Ruby和JavaScript
java·开发语言·javascript·c++·python·c·ruby