题目链接:
http://cxsjsxmooc.openjudge.cn/2018t3fallw2/
(1)学生信息处理程序
#include <iostream>
#include <string>
#include <cstdio>
#include <cstring>
#include <sstream>
#include <cstdlib>
using namespace std;
class Student {
private:
char name[22];
char c;
int age, studentID;
double first, second, third, fouth, average;
public:
void input()
{
cin.getline(name, 22, ',');//因为有空格,所以才要采用这种方式对名字进行输入;
cin >> age >> c >> studentID >> c;
cin >> first >> c >> second >> c >> third >> c >> fouth;
}
void calculate()
{
average = (first + second + third + fouth) / 4;
}
void output()
{
cout << name << ',';
cout << age << ',' << studentID << ',' << average << endl;
}
};
int main() {
Student student; // 定义类的对象
student.input(); // 输入数据
student.calculate(); // 计算平均成绩
student.output(); // 输出数据
}
(2)奇怪的类复制
#include <iostream>
using namespace std;
class Sample {
public:
int v;
// 在此处补充你的代码
Sample(){
}; //无参数构造函数
Sample(int n){
v = n;
}; //有参构造函数
Sample(Sample & c){
v = c.v + 2;
}; //复制构造函数
};
void PrintAndDouble(Sample o)
{
cout << o.v;
cout << endl;
}
int main()
{
Sample a(5);
Sample b = a;
PrintAndDouble(b);
Sample c = 20;
PrintAndDouble(c);
Sample d;
d = a;
cout << d.v;
return 0;
}
(3)超简单的复数类
#include <iostream>
#include <cstring>
#include <cstdlib>
using namespace std;
class Complex {
private:
double r, i;
public:
void Print() {
cout << r << "+" << i << "i" << endl;
}
// 在此处补充你的代码
Complex(){};
Complex(char x[]){
r = x[0]-'0';
i = x[2]-'0';
};
};
int main() {
Complex a;
a = "3+4i"; a.Print();
a = "5+6i"; a.Print();
return 0;
}
(4)哪来的输出
#include <iostream>
using namespace std;
class A {
public:
int i;
A(int x) { i = x; }
// 在此处补充你的代码
};
int main()
{
A a(1);
A * pa = new A(2);
delete pa;
return 0;
}