主题:请高手帮忙2
目的: 练习 OOA, OOD, OOP 和设计模式, 并使用C++或者Java开发一个EDP(事件驱动) 系统。
要求:
EDP是现代软件开发的基础架构,本次实验要求在不使用现有技术条件下,设计和实现C++/Java的事件驱动架构。并提供事件驱动和事件处理方法。
(1) 设计所有事件的父类名为Event;
(2) 设计事件句柄,并使用虚函数实现,该句柄应至少有一个事件参数(Event event);
(3) 设计EventHandler 类封装事件句柄函数,设计EventHandlerList 类 用于保存 EventHandlers. EventHandlerList至少实现三种方法: Add(将EventHandlers加入列表); PrepareEvent 在分发前准备事件; Dispatch 调用EventHandlers 处理准备好的事件
(4) 使用上面定义好的类 重写下面基于文本的计算程序.
#include <iostream>
using namespace std;
// event handlers
void add () { // "+" event handler
int in1,in2;
cout << "Please enter two integers: \n";
cin >> in1 >> in2;
cout << "The result is: " << in1 + in2 << "\n";
}
void sub () { // "-" event handler
int in1,in2;
cout << "Please enter two integers: \n";
cin >> in1 >> in2;
cout << "The result is: " << in1 - in2 << "\n";
}
int main() {
// Initialization
char s = '+';
while(1) { // event loop
cout << "Please select an operation (+,-,q): \n";
cin >> s; // event
switch(s){ //event mapper
case '+': add(); break; //event mapping
case '-': sub(); break; //event mapping
case 'q': exit(1); break; //event mapping
}
}
return(1);
}
要求:
EDP是现代软件开发的基础架构,本次实验要求在不使用现有技术条件下,设计和实现C++/Java的事件驱动架构。并提供事件驱动和事件处理方法。
(1) 设计所有事件的父类名为Event;
(2) 设计事件句柄,并使用虚函数实现,该句柄应至少有一个事件参数(Event event);
(3) 设计EventHandler 类封装事件句柄函数,设计EventHandlerList 类 用于保存 EventHandlers. EventHandlerList至少实现三种方法: Add(将EventHandlers加入列表); PrepareEvent 在分发前准备事件; Dispatch 调用EventHandlers 处理准备好的事件
(4) 使用上面定义好的类 重写下面基于文本的计算程序.
#include <iostream>
using namespace std;
// event handlers
void add () { // "+" event handler
int in1,in2;
cout << "Please enter two integers: \n";
cin >> in1 >> in2;
cout << "The result is: " << in1 + in2 << "\n";
}
void sub () { // "-" event handler
int in1,in2;
cout << "Please enter two integers: \n";
cin >> in1 >> in2;
cout << "The result is: " << in1 - in2 << "\n";
}
int main() {
// Initialization
char s = '+';
while(1) { // event loop
cout << "Please select an operation (+,-,q): \n";
cin >> s; // event
switch(s){ //event mapper
case '+': add(); break; //event mapping
case '-': sub(); break; //event mapping
case 'q': exit(1); break; //event mapping
}
}
return(1);
}