//p200 //定义结构体变量 student1,student2,对student2初始化并把其值赋给student1,输出student1的各个成员 #include <iostream> using namespace std; struct Date//声明结构体类型Date { int month; int day; int year; }; struct Student//声明结构体类型Student { int num; char name[20]; char sex; Date birthday;//声明 birthday为Date类型的成员 float score; }student1,student2={10002,"Wang Li",'f',5,23,1992,89.5}; int main() { student1=student2;//将student2各成员的值赋给student1的相应成员并输出 cout<<student1.num<<endl; cout<<student1.name<<endl; cout<<student1.sex<<endl; cout<<student1.birthday.month<<'/'<<student1.birthday.day<<'/' <<student1.birthday.year<<endl; cout<<student1.score<<endl; return 0; }
运行结果:
//p202 //结构体数组举例,对三个候选人进行投票统计 #include <iostream> using namespace std; struct Person//声明结构体类型Person { char name[20]; int count; }; int main() { Person leader[3]={"Li",0,"Zhang",0,"Sun",0};//定义Person类型的数组,内容为3个候选人名单及票数 int i,j; char leader_name[20]; for(i=0;i<10;i++) { cin>>leader_name; for(j=0;j<3;j++) if(strcmp(leader_name,leader[j].name)==0)//如果与某一候选人姓名相同,则给他加一票 leader[j].count++; } cout<<endl; for(i=0;i<3;i++) cout<<leader[i].name<<":"<<leader[i].count<<endl; return 0; }运行结果:
//p204 //指向结构体变量的指针,定义指针变量p指向结构变量stu,通过指针变量输出各成员的值 #include <iostream> #include <string> using namespace std; int main() { struct Student//声明结构体类型Student { int num; string name; char sex; float score; }; Student stu;//定义Student类型的变量stu Student *p=&stu;//定义p为指向Student类型数据的指针变量并指向stu stu.num=10301; stu.name="Wang Fang"; stu.sex='f'; stu.score=89.5; cout<<stu.num<<" "<<stu.name<<" "<<stu.sex<<" "<<stu.score<<endl; cout<<(*p).num<<" "<<(*p).name<<" "<<(*p).sex<<" "<<(*p).score<<endl; return 0; }运行结果:
//206 //建立一个链表,由三个学生数据的结点组成,输出各结点中的数据 #define NULL 0 #include <iostream> using namespace std; struct student { int num; float score; struct student *next; }; int main() { student a,b,c,*head,*p; a.num=31001;//对结点a的num和score成员赋值 a.score=89.5; b.num=31003;//对b赋值 b.score=90; c.num=31007;//对c赋值 c.score=85; head=&a;//将结点a的的起始地址赋予头指针head a.next=&b;//将结点b的起始地址赋予a结点的next成员 b.next=&c;//将结点c的起始地址赋予b结点的next成员 c.next=NULL;//结点c的next成员不存放其他结点地址 p=head;//使p指针指向a结点 do { cout<<p->num<<" "<<p->score<<endl;//输出p指向结点的数据 p=p->next;//使p指向下一个结点 }while(p!=NULL);//输出完c结点后p的值为NULL return 0; }运行结果:
//p208 //用结构体变量作函数参数 #include <iostream> #include <string> using namespace std; struct Student//声明结构体类型Student { int num; string name; float score[30]; }; int main() { void print(Student);//函数声明,形参类型为结构体Student Student stu;//定义结构体变量stu并对各变量赋值 stu.num=12345; stu.name="Li Fang"; stu.score[0]=67.5; stu.score[1]=89; stu.score[2]=78.5; print (stu);//调用print函数,实参为结构体类型,输出stu各成员的值 return 0; } void print(Student stu)//定义print函数,形参为结构体类型 { cout<<stu.num<<" "<<stu.name<<" "<<stu.score[0]<<" " <<stu.score[1]<<" "<<stu.score[2]<<endl; }运行结果:
//p208 //用指向结构体变量的指针作实参 #include <iostream> #include <string> using namespace std; struct Student { int num; string name; float score[3]; }stu={123456,"Li Fang",67.5,89,78.5}; int main() { void print(Student *);//函数声明,形参为指向Student类型数据的指针变量 Student *pt=&stu;//定义基类型为Student的指针变量pt,并指向stu print(pt);//实参为指向结构体变量stu的指针变量 return 0; } void print(Student *p)//定义函数,形参p是基类型为Student的指针变量 { cout<<p->num<<" "<<p->name<<" "<<p->score[0]<<" " <<p->score[1]<<" "<<p->score[2]<<endl; }运行结果:
//p209 //用结构体变量的引用作函数参数 #include <iostream> #include <string> using namespace std; struct Student { int num; string name; float score[3]; }stu={12345,"Li Li",67.5,89,78.5}; int main() { void print(Student &);//函数声明 print(stu);//实参为结构体Student变量 return 0; } void print(Student &stud)//函数定义形参为结构体Student变量的引用 { cout<<stud.num<<" "<<stud.name<<" "<<stud.score[0]<<" " <<stud.score[1]<<" "<<stu.score[2]<<endl; }运行结果:
//p211 //用new和delete运算符进行动态分配和撤销存储空间 #include <iostream> #include <string> using namespace std; struct Student//声明结构体类型Student { string name; int num; char sex; }; int main() { Student *p;//定义指向结构体类型Student的数据的指针变量p p=new Student;//用new运算符开辟一个存放Student型数据的空间,把地址赋给p p->name="Wang Fang";//向结构体变量的成员赋值 p->num=10123; p->sex='m'; cout<<p->name<<endl;//输出各成员的值 cout<<p->num<<endl; cout<<p->sex<<endl; delete p;//撤销该空间 return 0; }运行结果:
作者:kuangxiaoguo0123 发表于2013-5-1 16:22:05 原文链接
阅读:44 评论:0 查看评论