1.学生信息基本操作(结构体)
编写程序用来记录n个学生的学号(num)、姓名(name)和成绩(score)。
【要求】
1、要求使用结构,从键盘获得数据输入,同时计算全班平均分;
2、输出显示全部学生的信息和全班平均分;
3、查找最高分、最低分学生和不及格学生并输出显示其信息;
【思路】
1、定义一个结构体,动态申请一个结构体数组,每个数组元素记录一个学生的信息;
2、函数完成输出信息
片段一:
int num;
char name[10];
int score;
片段二:
struct Student stu[n];
float average=0;
int flag=0;
for (int i=0;i<n;i++)
{
cin>>stu[i].num>>stu[i].name>>stu[i].score;
if (stu[i].score<60)
{
flag=1;
}
average+=stu[i].score;
}
片段三:
for (int i=0;i<n;i++)
{
output_message(stu[i]);
}
cout<<"\naverage="<<average/(n*1.0)<<endl;
片段四:
int max_index=0;
int max_score=0;
int min_index=0;
int min_score=1000;
if (flag)
{
cout<<"\nFail students:\n";
output_title();
}
for (int i=0;i<n;i++)
{
if (stu[i].score<60)
{
output_message(stu[i]);
}
}
for (int i=0;i<n;i++)
{
if (min_score>stu[i].score)
{
min_score=stu[i].score;
min_index=i;
}
if (max_score<stu[i].score)
{
max_score=stu[i].score;
max_index=i;
}
}
cout<<"\nmax_score student:\n";
output_title();
output_message(stu[max_index]);
cout<<"\nmin_score student:\n";
output_title();
output_message(stu[min_index]);
2. 雇员排序(结构数组排序)
结构数组Person中存放着雇员信息,每个雇员的信息包含姓名,工号和工资。
请根据工资以升序排列的方式输出所有雇员的信息。
要求:使用索引对排序进行优化
片段一:
for (int k = 0; k < 6; k++)
{
index[k]=&allone[k];
}
for (i=0;i<5;i++)
{
for (j=0;j<5-i;j++)
{
if (index[j]->salary>index[j+1]->salary)
{
temp=index[j];
index[j]=index[j+1];
index[j+1]=temp;
}
}
}