7.9
#include <iostream>
using namespace std;
const int SLEN=30;
struct student{
char fullname[SLEN];
char hobby[SLEN];
int ooplevel;
};
int getinfo(student pa[],int n);
void display1(student st);
void display2(const student *ps);
void display3(const student pa[],int n);
void main79()
{
cout<<"Enter class size: ";
int class_size;
cin>>class_size;
while(cin.get()!='\n')
continue;
student *ptr_stu=new student[class_size];
int entered=getinfo(ptr_stu,class_size);
for(int i=0;i<entered;i++)
{
display1(ptr_stu[i]);
display2(&ptr_stu[i]);
}
display3(ptr_stu,entered);
delete ptr_stu;
cout<<"Done\n";
system("pause");
}
int getinfo(student pa[],int n)
{
int count=0;
for(int i=0;i<n;i++)
{
cout<<"Please enter the fullname:";
cin>>pa[i].fullname;
cout<<"\nPlease enter the hobby:";
cin>>pa[i].hobby;
cout<<"\nPlease enter the ooplevel:";
cin>>pa[i].ooplevel;
count++;
}
cout<<"\nEnter end!";
return count;
}
void display1(student st) //按值传递
{
cout<<"\ndisplay1:FullName:"<<st.fullname<<"\nhobby:"<<st.hobby
<<"\nooplevel:"<<st.ooplevel<<endl;
}
void display2(const student *ps) //传递地址,引用
{
cout<<"\ndispaly2:FullName:"<<ps->fullname<<"\nhobby:"<<ps->hobby
<<"\nooplevel:"<<ps->ooplevel<<endl;
}
void display3(const student pa[],int n)
{
cout<<"\ndispaly3:"<<endl;
for(int i=0;i<n;i++)
cout<<i<<"::FullName:"<<pa[i].fullname<<"\nhobby:"<<pa[i].hobby
<<"\nooplevel:"<<pa[i].ooplevel<<endl;
}