学生成绩管理系统

学生成绩管理系统
学生成绩管理系统
学生成绩管理系统
学生成绩管理系统
学生成绩管理系统
学生成绩管理系统
学生成绩管理系统
学生成绩管理系统
学生成绩管理系统
学生成绩管理系统
程序:
#include
#include
using namespace std;

const int Max = 5;

class student;
void setdata(student &s);
void sort(student s[], int m);
double getaverage(student s[], int m);
void print(student &s);
int search(student s[], int m, char *n);

class student
{
public:
char number[Max];
char name[Max];
double chinese;
double math;
double english;
double total;
double average;
int rank;
};

void setdata(student &s)
{
cout << “请输入学号、姓名、语文、数学、英语成绩:” <<endl;
cin >> s.number >> s.name >> s.chinese >> s.math >> s.english;
s.total = s.average = 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 m)//插入法排序
{
int index;
student inserter;
for (int i = 1; i < m; 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 < m; j++)
s[j].rank = j + 1;
}

double getaverage(student s[], int m)
{
double average = 0;
for (int i = 0; i < m; i++)
average += (s[i].chinese + s[i].math + s[i].english);
average /= (m * 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 m, char *n)
{
for (int i = 0; i < m; 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;

}

运行结果:
学生成绩管理系统