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

📄 学生成绩管理系统.cpp

📁 学生成绩管理系统 帮助初学者认真学习c++。
💻 CPP
字号:
// 学生成绩管理系统.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"

#include<iostream> 
#include<cstdio> 
using namespace std; 

const int Max=5;//字符串最大长度 

class Student;//类声明 
void setData(Student &s);//设置对象s的数据 
void count(Student &s);//计算对象s的总分,平均分 
void sort(Student S[],int N);//把长度为N的对象数组S,按平均分排序 
double getAverage(Student S[],int N);//计算全班的平均分 
void print(Student &s);//打印信息 
int search(Student S[],int N,char *n);//从长度为M的对象数组中,查找学号n的位置 
class Student 
{
public:
	char number[Max]; //学号
	char name[Max];	//姓名
	double chinese; //语文成绩
	double math;	//数学成绩
	double english; //英语成绩
	double total;	//总分
	double average;	//平均分
	int rank;//只有比较才不为了0 
}; 

void setData(Student &s) //成绩录入模块
{ 
	cout<<"输入学号,姓名,语文,数学,英语成绩:";//录入数据 
	cin>>s.number>>s.name>>s.chinese>>s.math>>s.english; 
	s.total=0;//初始化 
	s.average=0; 
	s.rank=0; 
} 

void count(Student &s)//成绩统计
{ 
	s.total=s.chinese+s.math+s.english; 
	s.average=s.total/3; 
} 

void sort(Student S[],int N)//插入法排序 (成绩排名)
{ 
	int index; 
	Student inserter; 
	for(int i=1;i<N;i++) 
	{ 
		inserter=S[i]; 
		index=i-1; 
		while(index>=0&&inserter.average>S[index].average) 
		{ 
			S[index+1]=S[index]; 
			index--; 
		} 
		S[index+1]=inserter; 
	} 
	for(int j=0;j<N;j++) 
		S[j].rank=j+1;//设置排名 
} 

double getAverage(Student S[],int N) 
{ 
	double Average=0; 
	for(int i=0;i<N;i++) 
		Average+=(S[i].chinese+S[i].math+S[i].english); 
	Average/=(N*3); 
	return Average; 
} 

void print(Student &s) //输出结果
{ 
	cout<<"排名"<<"\t"<<"学号"<<"\t"<<"姓名"<<"\t"<<"语文:"<<"\t" 
		<<"数学:"<<"\t"<<"英语:"<<"\t"<<"总分"<<"\t"<<"平均分"<<endl; 
	cout<<s.rank<<"\t"<<s.number<<"\t"<<s.name<<"\t"<<s.chinese<<"\t" 
		<<s.math<<"\t"<<s.english<<"\t"<<s.total<<"\t"<<s.average<<endl; 
} 

int search(Student S[],int N,char *n) //成绩查询模块
{ 
	for(int i=0;i<N;i++) 
	{ 
		if(strcmp(S[i].number,n)==0) 
			return i; 
	} 
	return -1; 
} 

int main() //系统集成
{ 
	const int M=3; 
	Student S[M]; 
	for(int i=0;i<M;i++) 
	{ 
		cout<<"下面输入第"<<i+1<<"位同学的数据:"<<endl; 
		setData(S[i]); 
		count(S[i]); 
		cout<<endl; 
	} 
	sort(S,M); 
	int order=1; 
	while(order!=4) 
	{ 
		cout<<"*****************************命令菜单******************************"<<endl; 
		cout<<"1.打印所有排名"<<endl; 
		cout<<"2.打印出成绩在全班平均分以上的学生名单和数据信息"<<endl; 
		cout<<"3.任意输入一个学号,查找出该学生在班级中的排名及其考试成绩"<<endl; 
		cout<<"4.退出系统"<<endl; 
		cout<<"*******************************************************************"<<endl; 
		cout<<"输入命令选择:"; 
		cin>>order; 
		switch(order) 
		{ 
		case 1: 
			{ 
				for(int j=0;j<M;j++) 
					print(S[j]); 
			} 
			break; 
		case 2: 
			{ 
				double compare=getAverage(S,M); 
				for(int k=0;k<M;k++) 
					if(S[k].average>compare) 
						print(S[k]); 
			} 
			break; 
		case 3: 
			{ 
				char code[Max]; 
				cout<<"输入您要查找的学号:"; 
				cin>>code; 
				int result=search(S,M,code); 
				if(result==-1) 
					cout<<"您输入的学号不存在!!!"<<endl; 
				else 
					print(S[result]); 
			} 
			break; 
		case 4:
			break; 
		default:
			cout<<"输入的命令不存在!!!"<<endl; 
		} 
	} 
	return 0; 
} 

⌨️ 快捷键说明

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