⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 struct.cpp

📁 这我们老师对是面向对象程序设计(清华大学出版社)一书制作的PPT
💻 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 + -