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()!=' ') 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 "; 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<<" Please enter the hobby:"; cin>>pa[i].hobby; cout<<" Please enter the ooplevel:"; cin>>pa[i].ooplevel; count++; } cout<<" Enter end!"; return count; } void display1(student st) //按值传递 { cout<<" display1:FullName:"<<st.fullname<<" hobby:"<<st.hobby <<" ooplevel:"<<st.ooplevel<<endl; } void display2(const student *ps) //传递地址,引用 { cout<<" dispaly2:FullName:"<<ps->fullname<<" hobby:"<<ps->hobby <<" ooplevel:"<<ps->ooplevel<<endl; } void display3(const student pa[],int n) { cout<<" dispaly3:"<<endl; for(int i=0;i<n;i++) cout<<i<<"::FullName:"<<pa[i].fullname<<" hobby:"<<pa[i].hobby <<" ooplevel:"<<pa[i].ooplevel<<endl; }