3 5 3 5
e) 样例输出
15 7.5
参考程序:
/******************************************************** 2012 IMIS C++ Practice 4 (Object oriented programming) Task 7
Programmed by YE Huanzhuo Lakeside Nov.28, 2012
********************************************************/ #include
class pic {
protected: double w, h; public: pic(double width, double height): w(width), h(height) {} };
class recg:public pic {
public: recg(double width, double height):pic(width, height) {} double area() { return w*h; } };
class tag:public pic {
public: tag(double base, double height):pic(base, height) {} double area() { return w*h/2;
} };
int main() { double w, h; cin>>w>>h; recg A(w, h); cout<>w>>h; tag B(w, h); cout< 8. 人民币类(类型转换) a) 题目描述 人民币类有两种表达形式,如,第1种:1元3角5分;第2种:1.35元。设计一个人民币类RMB,实现求两个金额之差。 b) 输入描述 多组测试用例,每组数据包括两行,第一行3个整数,代表第一个金额,采用的是人民币的第1种表达形式;第二行1个double型数据,代表第二个金额,采用的是人民币的第2种表达形式。 c) 输出描述 对应输出第一个金额减第二个金额的差。结果保留两位小数。 d) 样例输入 2 3 5 1.56 1 1 1 0.91 e) 样例输出 0.79 0.20 参考程序: /******************************************************** 2012 IMIS C++ Practice 4 (Object oriented programming) Task 8 Programmed by YE Huanzhuo Lakeside Nov.28, 2012 ********************************************************/ #include class RMB { double amount; public: RMB(int y, int j, int f): amount(y+j/10.0+f/100.0) {} RMB(double a): amount(a) {} RMB operator - (RMB B); void Show() { cout< int main() { int a, b, c; double m; while(cin>>a>>b>>c>>m) { RMB A(a, b, c), B(m); RMB C=A-B; C.Show(); } return 0; } 9. 教师工资计算(抽象类) a) 题目描述 某学校对教师每月工资的计算公式如下:固定工资+课时补贴。教授的固定工资为5000元,每个课时补贴50元;副教授的固定工资为3000元,每个课时补贴30元;讲师的固定工资为2000元,每个课时补贴20元。定义教师抽象类,派生不同职称的教师类,编写程序求若干教师的月工资。 b) 输入描述 输入有多个测试例组成。每个测试例含一个字符p表示教授,v表示副教授,j表示讲师,接下来一个正整数n表示工作时间。 c) 输出描述 每个测试例对应一行输出教师的工资。 d) 样例输入 p 200 v 250 j 100 e) 样例输出 15000 10500 4000 参考程序: /******************************************************** 2012 IMIS C++ Practice 4 (Object oriented programming) Task 9 Programmed by YE Huanzhuo Lakeside Nov.28, 2012 ********************************************************/ #include class teacher { protected: int num; public: teacher(int n): num(n) {} virtual int amount()=0; }; class professor:public teacher { public: professor(int n): teacher(n) {} int amount() { return 5000+50*num; } }; class a_pro:public teacher { public: a_pro(int n): teacher(n) {} int amount() { return 3000+30*num; } }; class lect:public teacher { public: lect(int n): teacher(n) {} int amount() { return 2000+20*num; } }; int main() { char c; int n; while(cin>>c>>n) { switch(c) { case 'p': { professor p(n); cout<