学生成绩管理系统
程序:
#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;
}
运行结果: