第二周学习
1.构造函数的名称和类名一样。
2.私有变量:private:变量
公有:函数
3.调用成员函数用:对象名.函数名
代码如下:
#include<iostream>
using namespace std;
class Box {
private: //私有变量可以理解为属性,也就是说Box这个类都有长宽高这三个属性
int x,y,z; //x,y,z私有变量,只有类内可以访问,公有的变量或者函数类外也可以访问
public:
Box(){}
//构造函数
Box(int a=0,int b=0,int c=0) { //构造函数的名称和类名是一样的,构造函数所带的参数默认为0,传来的参数可以把默认的参数值覆盖
x=a;
y=b;
z=c;
cout<<"x="<<x<<" "<<"y="<<y<<" "<<"z="<<z<<"\n";
}
//成员函数
int ask_s(){ //函数里面不需要传进来什么数
return 2*(x*y+y*z+x*z); //x,y,z=a,b,c=0,0,0
}
int ask_v(){
return x*y*z;
}
};
int main(){
Box box1(0,0,0); //Box:类 box1:对象(实例) 人是一类生物,也是一个类,a这个个体就是人的一个实例 Box box1()表示调用构造函数
cout<<"s="<<box1.ask_s()<<"\n"; //对象名.函数名(参数)去调用成员函数,调用后的值就是函数返回值,这里返回的表面积值为0
cout<<"v="<<box1.ask_v()<<"\n";
Box box2(10,0,0); //构造之后box2的x,y,z就有了值 类有成员变量和成员函数,box2是类的一个对象,它就有它自己的变量值和成员函数
cout<<"s="<<box2.ask_s()<<"\n"; //人这个类都有身高、体重(属性/变量),人可以搬东西(动作/函数),那每个个体都有自己的身高、体重值和可以实现的动作
cout<<"v="<<box2.ask_v()<<"\n";
Box box3(10,20,0);
cout<<"s="<<box3.ask_s()<<"\n";
cout<<"v="<<box3.ask_v()<<"\n";
Box box4(10,20,30);
cout<<"s="<<box4.ask_s()<<"\n";
cout<<"v="<<box4.ask_v()<<"\n";
return 0;
}
也可以换一种编写成员函数的方式:

二 、类与对象(指针变量)
、
1.对象数组的命名
2.
代码如下:
#include<iostream>
#include<string>
using namespace std;
class Stu {
public:
string id;
float score;
Stu(){}
Stu(string stu_id,float stu_score){
id=stu_id;
score=stu_score;
}
};
Stu max(Stu *x){ //x是Stu的指针类型,x=stus数组的地址,x[i]表示stus[i]
float maxn=0;
int ans=0;//ans记录分数最高的学生的下标
for(int i=0;i<5;i++){
if(x[i].score>maxn){
ans=i;
maxn=x[i].score;
}
}
return x[ans];
}
int main(){
Stu stus[5];//对象数组,包含5个学生个体
for(int i=0;i<5;i++){
string a;![]()
float b;
cin>>a>>b;
stus[i]=Stu(a,b);
}
Stu person=max(stus);
cout<<person.id<<" "<<person.score<<"\n";
return 0;
}
天梯赛:1.

1 #include<iostream> 2 #include<algorithm> 3 using namespace std; 4 int main(){ 5 int a[100000]; 6 int n; 7 cin>>n; 8 for(int i=1;i<=n;i++){ 9 cin>>a[i]; 10 } 11 sort(a+1,a+1+n); 12 for(int i=1;i<=n;i++){ 13 cout<<a[i]<<' '; 14 } 15 cout<<endl; 16 return 0; 17 }
#include<iostream>
#include<algorithm>
using namespace std;
int main(){
int n;
cin>>n;
int a[100005];//原本写a[n],但是4、5两行表示 n为变量,所以在[]内放一个足够大的数字
for(int i=1;i<=n;i++){
cin>>a[i];//i表示第几个数
}
sort(a+1,a+1+n);//sort自动排序完成
for(int i=1;i<=n;i++)//要把排序后的数字挨着挨着表示出来
{
cout<<a[i]<<' ';//一个一个输出排序后的数字//回忆for循环的执行顺序
}
cout<<endl;
return 0;
}
2

3、
4.
5. 水仙花数
所有各位数的立方和等于本身的三位数,例如 153=13+53+33 .
输入格式
无
输出格式
按从小到大的顺序输出满足条件的三位十进制数,每个数占一行
代码如下:
#include<iostream>
using namespace std;
bool check(int x){
int a=x;
int sum=0;
while(a){
int num=a%10;
sum=sum+num*num*num;
a/=10;
}
if(sum==x)
return true;
else return false;
}
int main(){
for(int i=100;i<=999;i++){
if(check(i)){
cout<<i<<endl;
}
}
}

浙公网安备 33010602011771号