实验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;
}
}