📄 struct.cpp
字号:
#include <iostream.h>
//【例5.1】设计一个结构person,其成员为姓名、工号以及工资。另外设计两个函数用于输入和输出某个person。
struct person{
char name[20];
unsigned long id;
float salary;
};
person GetPerson()
{
person temp;
cout<<"请输入姓名:";
cin>>temp.name;
cout<<"请输入编号:";
cin>>temp.id;
cout<<"请输入工资:";
cin>>temp.salary;
return temp;
}
void print(person p)
{
cout<<p.name<<'\t'<<p.id<<'\t'<<p.salary<<'\n';
}
void main()
{
person worker;
worker=GetPerson();
print(worker);
}
//【例5.2】构造一个表示复数的结构体,并设计两个函数,分别实现两个复数的相加和交换。
struct complex{
float real; //定义实部
float imag; //定义虚部
};
void swap(complex c1,complex c2)
{
complex temp;
temp=c1;
c1=c2;
c2=temp;
}
complex add(complex c1,complex c2)
{
complex temp;
temp.real=c1.real+c2.real;
temp.imag=c1.imag+c2.imag;
return temp;
}
void main5_2()
{
complex com1={5,8},com2={6,7},com3;
com3=add(com1,com2);
cout<<"com1="<<com1.real<<"+"<<com1.imag<<"i\n";
cout<<"com2="<<com2.real<<"+"<<com2.imag<<"i\n";
cout<<"com1+com2="<<com3.real<<"+"<<com3.imag<<"i\n";
cout<<"调用函数swap(com1,com2):\n";
swap(com1,com2); //A
cout<<"com1="<<com1.real<<"+"<<com1.imag<<"i\n";
cout<<"com2="<<com2.real<<"+"<<com2.imag<<"i\n";
}
//【例5.3】为全班30个学生建立一个通讯录,完成数据的输入输出。
struct message{
char name[20]; //定义实部
char sex;
int age;
char tel[10];
};
message input(message m1)
{
cout<<"输入姓名、性别、年龄和电话号码:";
cin>>m1.name>>m1.sex>>m1.age>>m1.tel;
return m1;
}
void output(message m1)
{
cout<<m1.name<<'\t'<<m1.sex<<'\t'<<m1.age<<'\t'<<m1.tel<<'\n';
}
void main5_3()
{
message class1[30];
for(int i=0;i<3;i++)
class1[i]=input(class1[i]); //A
cout<<"姓名\t性别\t年龄\t电话\n";
for(i=0;i<3;i++)
output(class1[i]);
}
//【例5.4】静态成员的初始化及应用
#include <iostream.h>
struct test{
static int x;
float y;
};
int test::x=5;
void main5_4()
{
cout<<"test::x="<<test::x<<'\n';
test t1,t2;
cout<<"t1.x="<<t1.x<<'\t'<<"t2.x="<<t2.x<<'\n';
t1.x=10;
cout<<"t1.x="<<t1.x<<'\t'<<"t2.x="<<t2.x<<'\n';
t2.x=20;
cout<<"t1.x="<<t1.x<<'\t'<<"t2.x="<<t2.x<<'\n';
test::x=30;
cout<<"t1.x="<<t1.x<<'\t'<<"t2.x="<<t2.x<<'\n';
test t3={40};
cout<<"t3.x="<<t3.x<<'\t'<<"t3.y="<<t3.y<<'\n';
}
//【例5.5】应用枚举类型编程,根据给定的日期,计算下一天的日期(星期几)。
#include <string.h>
enum weekday{
Sun,Mon,Tue,Wed,Thu,Fri,Sat
};
weekday day_next(weekday d)
{
weekday dn;
switch(d)
{
case Sun:dn=Mon;break;
case Mon:dn=Tue;break;
case Tue:dn=Wed;break;
case Wed:dn=Thu;break;
case Thu:dn=Fri;break;
case Fri:dn=Sat;break;
case Sat:dn=Sun;break;
}
return dn;
}
void main5_5()
{
int i;
weekday week;
char str[20];
cout<<"请输入一个值(0:sun,1:Mon,...,6:sat):\n";
cin>>i;
if(i<=0||i>6)
{
cout<<"输入值不对!";
return;
}
week=(weekday)i;
week=day_next(week);
switch(week)
{
case Sun:strcpy(str,"明天是星期天!");break;
case Mon:strcpy(str,"明天是星期一!");break;
case Tue:strcpy(str,"明天是星期二!");break;
case Wed:strcpy(str,"明天是星期三!");break;
case Thu:strcpy(str,"明天是星期四!");break;
case Fri:strcpy(str,"明天是星期五!");break;
case Sat:strcpy(str,"明天是星期六!");break;
}
cout<<str<<'\n';
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -