Problem A: 类的初体验
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 1553 Solved: 1371
[ Submit][ Status][ Web Board]
Description
定义一个类Data,只有一个double类型的属性和如下3个方法:
1. void init(double d);——初始化属性值。
2. double getValue()——获得属性值。
3. void showValue()——显示属性值。
Input
一个double类型的数值。
Output
输出输入的值2次,每次占一行。
Sample Input
Sample Output
3.14
HINT
Append Code
int main()
{
Data data;
double d;
cin>>d;
data.init(d);
cout<<data.getValue()<<endl;
data.showValue();
}
#include <iostream>
using namespace std;
class Data
{
private:
double i;
public:
void init(double d)
{
i=d;
}
double getValue()
{
return i;
}
void showValue()
{
cout<<i<<endl;
}
};
Problem B: 类的初体验(II)
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 1487 Solved: 1353
[ Submit][ Status][ Web Board]
Description
定义一个类Data,只有一个double类型的属性和如下3个方法:
1. 带1个参数的构造函数——初始化属性值为参数值。
2. double getValue()——获得属性值。
3. void showValue()——显示属性值。
Input
一个double类型的数值。
Output
输出输入的值2次,每次占一行。
Sample Input
Sample Output
3.14
HINT
Append Code
int main()
{
double d;
cin>>d;
Data data(d);
cout<<data.getValue()<<endl;
data.showValue();
}
答案:
#include <iostream>
using namespace std;
class Data
{
private:
double i;
public:
Data(double ii):i(ii)
{
}
double getValue()
{
return i;
}
void showValue()
{
cout<<i<<endl;
}
};
int main()
{
double d;
cin>>d;
Data data(d);
cout<<data.getValue()<<endl;
data.showValue();
}
同上一道题,对构造函数的用法进行练习;
Problem C: 类的初体验(III)
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 1623 Solved: 1395
[ Submit][ Status][ Web Board]
Description
定义一个类Data,只有一个double类型的属性和如下4个方法:
1. 缺省构造函数,将属性初始化为0,并输出“Initialize a data 0”。
2. 带参构造函数,将属性初始化为指定参数,并输出“Initialize a data #”,其中“#”即参数值。
2. double getValue()——获得属性值。
3. void showValue()——显示属性值。
Input
一个double类型的数值。
Output
见样例。
Sample Input
Sample Output
Initialize a data 3.14
3.14
3.14
HINT
Append Code
int main()
{
Data data1;
double d;
cin>>d;
Data data(d);
cout<<data.getValue()<<endl;
data.showValue();
}
#include <iostream>
using namespace std;
class Data
{
private:
double i;
public:
Data(double ii):i(ii)
{
cout<<"Initialize a data "<<i<<endl;
}
Data():i(0)
{
cout<<"Initialize a data 0\n";
}
double getValue()
{
return i;
}
void showValue()
{
cout<<i<<endl;
}
};
int main()
{
Data data1;
double d;
cin>>d;
Data data(d);
cout<<data.getValue()<<endl;
data.showValue();
}
Problem D: 你会定义类吗?
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 2019 Solved: 1547
[ Submit][ Status][ Web Board]
Description
定义一个类Demo,有构造函数、析构函数和成员函数show(),其中show()根据样例的格式输出具体属性值。该类只有一个int类型的成员。
Input
输入只有一个整数,int类型范围内。
Output
见样例。
Sample Input
Sample Output
A data 0 is created!
A data -100 is created!
This is data 10
This is data 0
This is data -100
A data -100 is erased!
A data 0 is erased!
A data 10 is erased!
HINT
Append Code
int main()
{
Demo tmp(10), tmp2;
int d;
cin>>d;
Demo tmp3(d);
tmp.show();
tmp2.show();
tmp3.show();
return 0;
}
#include <iostream>
using namespace std;
class Demo
{
private:
int i;
public:
Demo(int ii=0):i(ii)
{
cout<<"A data "<<i<<" is created!\n";
}
~Demo()
{
cout<<"A data "<<i<<" is erased!\n";
}
void show()
{
cout<<"This is data "<<i<<endl;
}
};
int main()
{
Demo tmp(10), tmp2;
int d;
cin>>d;
Demo tmp3(d);
tmp.show();
tmp2.show();
tmp3.show();
return 0;
}
在类中,构造函数和析构函数都是可以有内容的。
Problem E: 字符的变化
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 1904 Solved: 1335
[ Submit][ Status][ Web Board]
Description
定义一个Character类,具有:
1. char类型的数据成员。
2.构造函数Character(char)。
3. Character toUpper():如果当前字符是英文小写字母时,则变为相应的大写字母;否则保持当前字符不变。注意:不要改变当前对象的属性值。
4. Character toLower():如果当前字符是英文大写字母时,则变为相应的小写字母;否则保持当前字符不变。注意:不要改变当前对象的属性值。
5. void show():显示当前字符,不输出换行。
Input
第1行N>0表示有N个测试用例。
每个测试用例只有1个字符。
Output
见样例。
Sample Input
a
A
1
Sample Output
a A a
A A a
1 1 1
HINT
Append Code
int main()
{
int cases;
char c;
cin>>cases;
cout<<"char"<<" upper"<<" lower"<<endl;
for (int i = 0; i < cases; i++)
{
cin>>c;
Character character(c);
character.show();
cout<<" ";
character.toUpper().show();
cout<<" ";
character.toLower().show();
cout<<endl;
}
}
#include <iostream>
using namespace std;
class Character
{
private:
char c;
public:
Character(char cc):c(cc)
{
}
Character toUpper()
{
if(c>='a'&&c<='z')
c='A'+c-'a';
return *this;
}
Character toLower()
{
if(c>='A'&&c<='Z')
c='a'+c-'A';
return *this;
}
void show()
{
cout<<c;
}
};
int main()
{
int cases;
char c;
cin>>cases;
cout<<"char"<<" upper"<<" lower"<<endl;
for (int i = 0; i < cases; i++)
{
cin>>c;
Character character(c);
character.show();
cout<<" ";
character.toUpper().show();
cout<<" ";
character.toLower().show();
cout<<endl;
}
}