C++实训(2.1)

源程序:

#include <iostream>
#include <string>
#define N 4
using namespace std;

class student
{
private:
int num;
string name;
string sex;
int age;
public:
student() {};
student(int n, string na, string se, int ag);
friend void straightinsertsort(student stud[], int n);
void show();
};

student::student(int n, string na, string se, int ag)
{
num = n;
name = na;
sex = se;
age = ag;
}
//按姓名排序-直接插入排序
void straightinsertsort(student stud[], int n)
{
int i, j;
student temp;
printf("\n\t按学生姓名排序\n\n");
for (i = 1; i < n; i++)
{
temp = stud[i];
j = i - 1;
while ((j >= 0) && temp.name < stud[j].name)
{
stud[j + 1] = stud[j];
j--;
}
stud[j + 1] = temp;
}
}

//显示结果
void student::show()
{
std::cout << num << "\t" << name << "\t" << sex << "\t" << age << endl;
}

//主函数
int main()
{
student stu[N] = {student(1001,"zhangs","m",20),
student(1002,"lisi","f",21),
student(1003,"wangwu","m",20),
student(1004,"zhaoliu","f",19) };

int len = sizeof(stu) / sizeof(stu[0]);
straightinsertsort(stu, len);
cout << "学号" << "\t" << "姓名" << "\t" << "性别" << "\t" << "年龄" << endl;
for (int i = 0; i < len; i++)
{
stu[i].show();
cout << endl;
}
return 1;
}

运行结果:

posted @ 2020-06-14 21:34  bobo哥  阅读(141)  评论(0编辑  收藏  举报