用VC++6.0实现:
1)学生基础信息包括:学号、姓名、年龄、性别等;
2)学生信息录入功能——输入; (可选项:学生信息以文件保存)
3)学生信息按照年龄排序功能;
4)排序后的结果保存在“date.txt”文件中;
#include<iostream.h>
#include<fstream.h>
#include<stdlib.h>
#define N 5 //学生数目 假如五十个学生 直接修改N的值即可
struct Student //对大程序来说,结构体的定义一般放在外部,甚至头文件中
{ int xuehao;
char name[20];
int math;
int physics;
int english;
};
void sort(Student stu[],int len)
//排序函数,stu需要排序的结构体数组,len数组长度
{
int i,j;
Student t;
for(i=0;i<len;i++)
for(j=len-1;j>i;j--)
{ if(stu[i].physics>stu[j].physics)
{ t=stu[i];
stu[i]=stu[j];
stu[j]=t;
}
}
}
void show(Student stu[],int len)
//显示数组相关信息
{
int i;
cout<<"学生的:学号 姓名 数学成绩 物理成绩 英语成绩"<<endl;
for(i=0;i<len;i++)
{
cout<<'\t'<<stu[i].xuehao<<'\t'<<stu[i].name
<<'\t'<<stu[i].math<<'\t'<<" "<<stu[i].physics<<'\t'<<" "<<stu[i].english<<endl;
cout<<endl;
}
}
void main()
{
Student stu_a[N]={ {1,"笑笑",70,80,90},{2,"哭哭",60,70,80},
{3,"皮皮",90,81,70},{4,"壮壮",95,50,81},
{5,"妞妞",60,98,73}};
cout<<"A学生组的基础信息是:"<<endl;
show(stu_a,N);
cout<<"对A学生组按物理成绩排序后的结果:"<<endl;
sort(stu_a,N);
show(stu_a,N);
//将排序后的结果输出到文件data.txt处;
ofstream fout("data.txt");
if(!fout)
{ cout<<"Can't open the file\n"; exit(1); }
int i;
for(i=0;i<N;i++)
{
fout<<stu_a[i].xuehao<<'\t'<<stu_a[i].name<<'\t'
<<stu_a[i].math<<'\t'<<" "<<stu_a[i].physics<<'\t'<<'\t'<<stu_a[i].english<<endl;
fout<<endl;
}
fout.close();
//从data.txt文件中读入学生组信息,存储在B学生组中
Student stu_b[N];
ifstream fin("data.txt");
if(!fin)
{ cerr<<"Error open the file\n"; exit(1); }
for(i=0;i<N;i++)
{ fin>>stu_b[i].xuehao>>stu_b[i].name>>
stu_b[i].math>>stu_b[i].physics>>stu_b[i].english;
}
fin.close();
cout<<"从文件中读入的B学生组的基础信息如下:"<<endl;
show(stu_b,N);
}