终于搬完家了,现在程序的基本界面已经基本上完成了,剩下的是函数的设计代码部分了,本来打算设计成互动模式的,就是做成个小游戏,现在看来还是先把核心的部分搞好后看情况而定了,有时间就搞。
设计界面的时候碰到了了个小麻烦。就是随机产生4个数的问题
我的代码为这样的:
void CMy24pointDlg::OnStart()
{
// TODO: Add your control notification handler code here
//产生4个随机数
for(int i=0;i<4;i++)
{
srand( (unsigned)time( NULL ) );
num[i]=rand()%13;
}
//把随机数放到对话框上
SetDlgItemInt(IDC_NUM1,num[0],FALSE);
SetDlgItemInt(IDC_NUM2,num[1],FALSE);
SetDlgItemInt(IDC_NUM3,num[2],FALSE);
SetDlgItemInt(IDC_NUM4,num[3],FALSE);
}
产生的4个随机数老是一样子的。
然后改为
srand( (unsigned)time( NULL ) );
for(int i=0;i<4;i++)
{
num[i]=rand()%13;
}
这样问题就解决了
我用的那种方法产生随机数的播种函数每次产生的种子是一样的所以每次产生的随机数也是一样的。
特别感谢论坛上的几位兄弟的帮忙。
由于手头没有堆栈的基本操作函数,我就写了一个
#include <iostream.h>
#include <stdlib.h>
#include <string.h>
const MAXNUM=100;
class stack
{
private:
int top;//指向栈顶的
char stacklist[MAXNUM];
public:
stack()
{
top=-1;
}
//~stack();
void Initstack();// 初始化 s 为空栈
void Push(char x); // 将元素 x 插入 s 的栈顶
char Pop();// 删除 s 中的栈顶元素
bool SEmpty();// 若栈 s 为空则返回 TRUE,否则返回 FALSE
char GetTop();// 返回 s 中的栈顶元素
void ClearStack();// 将栈 s 清空
int StackLength();// 返回栈 s 中元素个数
void StackList();//显示栈里的元素
//void DestroyStack();// 销毁栈 s 结构
};
//对栈进行操作
void stack::Initstack()
{
top=-1;
}
void stack::Push(char x)
{
if(top==MAXNUM-1)
{
cerr<<"栈已近满了"<<endl;
}
else
{
top++;
stacklist[top]=x;
}
}
char stack::Pop()
{
if(top==-1)
{
cerr<<"栈已近空了"<<endl;
exit(1);
}
else
{
return stacklist[top];
top--;
}
}
bool stack::SEmpty()
{
if(top==-1)
{
return 1;
}
else
{
return 0;
}
}
char stack::GetTop()
{
if(-1==top)
{
cerr<<"栈已近空了"<<endl;
exit(1);
}
else
{
return stacklist[top];
}
}
void stack::ClearStack()
{
if(-1==top)
{
cerr<<"栈已近空了"<<endl;
exit(1);
}
else
{
top=-1;
}
}
int stack::StackLength()
{
return top+1;
}
void stack::StackList()
{
//CString str;
if(-1==top)
{
cerr<<"栈已近空了"<<endl;
exit(1);
}
else
{
char* str=new char[top];
for(int i=0;i<top;i++)
{
//str=str+stacklist[i];
str[i]=stacklist[i];
}
cout<<str<<endl;
delete[] str;
}
}
/*void stack::DestroyStack()
{
}*/
还有两个关键性问题下次再完成了
1)后缀表达式的求值
2)中最表达式变后缀