5_43.cpp
上传用户:zipjojo
上传日期:2009-07-20
资源大小:70k
文件大小:2k
- # include<iostream.h>
- #include <iomanip.h>
- # include<string.h>
- struct date
- {
- int year; int month; int day;
- };
- struct friends
- {
- char name[10]; char sex;char tel[12]; date birthday;friends* next;
- };
- int n; //动态分配结构friends的个数
- struct friends* create() //新建链表,此函数返回一个指向链表头的指针
- {
- struct friends* head,*p1,*p2;
- n=0;
- p1=p2=new friends;
- cout<<"Input my friends'name ,with'#' to end:"<<endl;
- cin>>p1->name;
- cout<<"Continue to input my friends'sex(F/M),tel and birthday:"<<endl;
- cin>>p1->sex;
- cin>>p1->tel;
- cin>>p1->birthday.year>>p1->birthday.month>>p1->birthday.day;
- head=NULL;
- while (strcmp(p1->name,"#")!=0)
- {
- n++;
- if(n==1)
- head=p1;
- else
- p2->next=p1;
- p2=p1;
- p1=new friends;
- cout<<"Input my friends'name ,with'#' to end:"<<endl;
- cin>>p1->name;
- if(strcmp(p1->name,"#")!=0)
- {
- cout<<"Continue to input my friends'sex(F/M),tel and birthday:"<<endl;
- cin>>p1->sex;
- cin>>p1->tel;
- cin>>p1->birthday.year>>p1->birthday.month>>p1->birthday.day;
- }
- }
- p2->next=NULL;
- return head;
- }
- void print(struct friends* head) //输出链表
- {
- struct friends* p;
- p=head;
- cout<<setw(11)<<"name"<<setw(5)<<"sex"<<setw(12)<<"telNO."
- <<setw(16)<<"birthday"<<endl;
- while(p!=NULL)
- {
- cout<<setw(11)<<p->name<<setw(4)<<p->sex<<setw(16)<<p->tel<<" ";
- cout<<setw(5)<<p->birthday.year;
- cout<<setw(3)<<p->birthday.month<<" ";
- cout<<setw(2)<<p->birthday.day<<endl;
- p=p->next;
- }
- }
- void main()
- {
- friends*s;
- s=create();
- print(s);
- }