实验8 结构体的应用 【实验目的】 1掌握结构的概念、定义及应用; 2掌握结构变量的定义和初始化; 3掌握结构成员的访问、结构赋值的含义以及结构与指针、函数的关系。 【实验内容】 ⒈输入你的学号、姓名、性别、年龄、出生日期,然后输出。 #include <iostream.h> #include <iomanip.h> struct date //定义出生日期结构体类型 {short year; short month; short day;}; struct man {char num[5]; char name[20]; char sex; int age; struct date birthday;}; void main( ) { man emply1; cout<<"input num,name,sex,age,birthday(year,month,day):"<<endl; cin>>emply1.num>>emply1.name>>emply1.sex>>emply1.age; cin>>emply1.birthday.year>>emply1.birthday.month; cin>>emply1.birthday.day; cout<<setw(5)<<"num"<<setw(10)<<"name"<<setw(5)<<"sex"; cout<<setw(5)<<"age"<<setw(13)<<"birthday"<<endl; cout<<setw(5)<<emply1.num<<setw(10)<<emply1.name<<setw(5)<<emply1.sex; cout<<setw(5)<<emply1.age<<setw(8)<<emply1.birthday.year<<'.'; cout<<emply1.birthday.month<<'.'<<emply1.birthday.day<<endl; } ⒉打印出你宿舍的通讯录。该通讯录包括:姓名、住址、电话、E-mail等。 #include<iostream.h> #define N 4 void main() { struct student {char name[20]; char adress[80]; char phone[20]; char email[30];} ; struct student st[N]; int i; cout<<"请输入"<<N<<" 个学生的姓名、地址、电话和E-mail"<<endl; for (i=0;i<N;i++) {cin>>st[i].name>>st[i].adress>>st[i].phone>>st[i].email;} cout<<"\nName\tadress\t\tphone\t\tE-mail\n"; cout<<"--------------------------------------------\n"; for (i=0;i<N;i++) cout<<st[i].name<<'\t'<<st[i].adress <<'\t'<<st[i].phone<<'\t'<<st[i].email<<endl; } ⒊编写程序先完成一名职工的姓名、性别、出生年月、基本工资的初始化。再从键盘输入其奖金金额,最后输出该职工的姓名、性别、年龄、实际领取工资等信息。 #include<iostream.h> struct Date {int year; int month;}; struct Person { char name[20]; char sex[4]; Date birth; float money; float salary; }p={"王建国","男",{1966,10},896,0}; void main() { float num; cout<<p.name<<","<<p.sex<<",基本工资:" <<p.money<<endl<<"请输入奖金金额:"; cin>>num; p.salary= p. money+num; cout<< p.name <<",年龄"<<2005- p. birth.year; cout<<",应领"<< p.salary<<"元"<<endl;} ⒋已知6个学生的学号、姓名、性别及C++成绩。 按其C++成绩由高到低的顺 序排列输出。 #include <iostream.h> #define N 6 struct student //定义学生信息结构体类型 {char num[5]; char name[10]; char sex; int age; float cscore;}; struct student st[N]; void main() {struct student temp; cout<<"请输入学号,姓名,性别,年龄,C++分数"<<endl; for (int k=0;k<N;k++) {cin>>st[k].num>>st[k].name>>st[k].sex>>st[k].age>>st[k].cscore;} cout<<endl; for (int i=0;i<N-1;i++) {for (int j=i+1;j<=N-1;j++) if(st[i].cscore<st[j].cscore) {temp=st[j]; st[j]=st[i]; st[i]=temp; } } cout<<"No. name sex age cscore"<<endl; cout<<"--------------------------------------"<<endl; for (int l=0;l<N;l++) {cout<<st[l].num<<" "<<st[l].name <<" "<<st[l].sex<<" "<<st[l].age <<" "<<st[l].cscore<<endl; } }