注:本次上机单人一组
需求分析:
两个软件均为标准Win32应用,使用基本的Win32 API写成.
(一)马踏棋盘
本软件功能是在国际象棋棋盘上搜索马从一格不重复的跳遍所有格路径.执行时界面如下(已求出一组解):
菜单:
"选项"可以决定是否启用演示回溯的功能;
"速度"菜单调整动画的速度;
"帮助"显示本软件的其他内容.
用户区:
显示一个国际象棋的棋盘,在其中一格单击则开始从此格开始演示.
本软件界面友好,不难操作,单击一格后会提示搜索使用时间,此时按任意键继续.
其中蓝色的矩形表示起始处,格中的数据表示跳马的顺序
也可使用演示功能:
此时搜索在发生回溯时挂起,直到滑鼠左键被按下.
速度调整可在任意时进行.
关于对话框显示了作者的情况.
(二)表达式求值
本软件功能在计算数值表达式的值,执行时界面如右:
操作简单,键盘输入和滑鼠点击按钮都支持.
支持的运算:加,减,乘,除,乘方;
操作域:实型(不能过大);
程序的容错能力较强,并能准确的分析错误原因.
概要设计:
栈的接口(简单起见使用C++编写)及元素声明
struct _point
{
int x, y;
};
template
class _stack
{
T* data;元素存放的动态数组
unsigned length, ptr; // 最大长度和当前栈顶的索引
public:
_stack();
~_stack();
void clear(清栈
bool empty(判断栈是否为空
void push(T e)压栈