VC++里面如何使用随机数?

时间:2022-06-24 03:31:37
小弟刚开始学习VC++,感觉跟以前接触的编程完全不同了…
用的是VS2008,感觉有点类似VB的。
Windows编程方法也摸索了一下,也感觉很多,MFC看不懂,太复杂了。
现在想学习它,需要一些小实例,不太难,可以一步一步照着做的,以便熟悉这种编程方法,也找不到……
我就想起以前有个程序,是按一下按钮,一个TextBox就变一下位置,所以在Click事件中写了这个:
 int x,y;
 x=Random();
 textBox1->Location->X=x;

结果错误一大堆……

1>------ 已启动生成: 项目: godmoon, 配置: Debug Win32 ------
1>正在编译...
1>godmoon.cpp
1>.\godmoon.cpp(6) : error C2143: 语法错误 : 缺少“;”(在“using”的前面)
1>e:\users\godmoon\documents\visual studio 2008\projects\godmoon\godmoon\Form1.h(104) : error C2440: “=”: 无法从“System::Random”转换为“int”
1>        没有可用于执行该转换的用户定义的转换运算符,或者无法调用该运算符
1>e:\users\godmoon\documents\visual studio 2008\projects\godmoon\godmoon\Form1.h(105) : error C2819: “System::Drawing::Point”类型没有重载成员“operator ->”
1>        c:\windows\microsoft.net\framework\v2.0.50727\system.drawing.dll : 参见“System::Drawing::Point”的声明
1>        是否要改用“.”?
1>e:\users\godmoon\documents\visual studio 2008\projects\godmoon\godmoon\Form1.h(105) : error C2232: “->System::Drawing::Point::X”: 左操作数有“class”类型,使用“.”
1>.\godmoon.cpp(19) : fatal error C1075: 与左侧的 大括号“{”(位于“e:\users\godmoon\documents\visual studio 2008\projects\godmoon\godmoon\Form1.h(2)”)匹配之前遇到文件结束
1>生成日志保存在“file://e:\Users\GodMoon\Documents\Visual Studio 2008\Projects\godmoon\godmoon\Debug\BuildLog.htm”
1>godmoon - 5 个错误,0 个警告
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========

前面几个错误,缺少;的我也不知道是怎么回事,可能是代码弄乱了……可以华丽地无视了。。。
重要的是这个错误:error C2440: “=”: 无法从“System::Random”转换为“int”
跨过这道坎,小弟感激不尽呀!~

10 个解决方案

#1


srand()  
  rand()  
   
  #include   <stdlib.h>  
  #include   <stdio.h>  
  #include   <time.h>  
   
  void   main(   void   )  
  {  
        int   i;  
   
        /*   Seed   the   random-number   generator   with   current   time   so   that  
          *   the   numbers   will   be   different   every   time   we   run.  
          */  
        srand(   (unsigned)time(   NULL   )   );  
   
        /*   Display   10   numbers.   */  
        for(   i   =   0;       i   <   10;i++   )  
              printf(   "     %6d\n",   rand()   );  
  }   

#2


VC和VB差别可大多了啊

#3


可以试试BOOL SetWindowPos(
  HWND hWnd,             // handle to window
  HWND hWndInsertAfter,  // placement-order handle
  int X,                 // horizontal position
  int Y,                 // vertical position
  int cx,                // width
  int cy,                // height
  UINT uFlags            // window-positioning options
);
还有要判断下x=Random()的值

#4


学VB的转VC是一个痛苦的过程。。嘿

#5


引用 1 楼 hellward 的回复:
srand() 
  rand() 
 
  #include  <stdlib.h> 
  #include  <stdio.h> 
  #include  <time.h> 
 
  void  main(  void  ) 
  { 
        int  i; 
 
        /*  Seed  the  random-number  generator  with  current  time  so  that 
          *  the  numbers  will  be  different  every  time  we  run. 
          */ 
        srand(  (unsigned)time(  NULL  )  ); 
 
        /*  Display  10  numbers.  */ 
        for(  i  =  0;      i  <  10;i++  ) 
              printf(  "    %6d\n",  rand()  ); 
  } 


这个我是以前用的方法,但是如果用到VC++里面,貌似就没用了。

#6


上面的这些代码应该可用,不知道你是怎么貌似没用的。

#7


引用 6 楼 coderofvc 的回复:
上面的这些代码应该可用,不知道你是怎么貌似没用的。


如果这样丢进去,还是没办法改变TextBox1的坐标值呀。

#8


引用 7 楼 sytzz 的回复:
引用 6 楼 coderofvc 的回复:
上面的这些代码应该可用,不知道你是怎么貌似没用的。


如果这样丢进去,还是没办法改变TextBox1的坐标值呀。


那可能是你其它的代码无效,不是这些代码没效。。

#9


你直接用C语言的rand()函数,
移动窗口用MoveWindow或者SetWindowPos 

#10


在 Button 的 onclick 添加 SetWinowPos
随机数可以用C\C++的rand函数取得

#1


srand()  
  rand()  
   
  #include   <stdlib.h>  
  #include   <stdio.h>  
  #include   <time.h>  
   
  void   main(   void   )  
  {  
        int   i;  
   
        /*   Seed   the   random-number   generator   with   current   time   so   that  
          *   the   numbers   will   be   different   every   time   we   run.  
          */  
        srand(   (unsigned)time(   NULL   )   );  
   
        /*   Display   10   numbers.   */  
        for(   i   =   0;       i   <   10;i++   )  
              printf(   "     %6d\n",   rand()   );  
  }   

#2


VC和VB差别可大多了啊

#3


可以试试BOOL SetWindowPos(
  HWND hWnd,             // handle to window
  HWND hWndInsertAfter,  // placement-order handle
  int X,                 // horizontal position
  int Y,                 // vertical position
  int cx,                // width
  int cy,                // height
  UINT uFlags            // window-positioning options
);
还有要判断下x=Random()的值

#4


学VB的转VC是一个痛苦的过程。。嘿

#5


引用 1 楼 hellward 的回复:
srand() 
  rand() 
 
  #include  <stdlib.h> 
  #include  <stdio.h> 
  #include  <time.h> 
 
  void  main(  void  ) 
  { 
        int  i; 
 
        /*  Seed  the  random-number  generator  with  current  time  so  that 
          *  the  numbers  will  be  different  every  time  we  run. 
          */ 
        srand(  (unsigned)time(  NULL  )  ); 
 
        /*  Display  10  numbers.  */ 
        for(  i  =  0;      i  <  10;i++  ) 
              printf(  "    %6d\n",  rand()  ); 
  } 


这个我是以前用的方法,但是如果用到VC++里面,貌似就没用了。

#6


上面的这些代码应该可用,不知道你是怎么貌似没用的。

#7


引用 6 楼 coderofvc 的回复:
上面的这些代码应该可用,不知道你是怎么貌似没用的。


如果这样丢进去,还是没办法改变TextBox1的坐标值呀。

#8


引用 7 楼 sytzz 的回复:
引用 6 楼 coderofvc 的回复:
上面的这些代码应该可用,不知道你是怎么貌似没用的。


如果这样丢进去,还是没办法改变TextBox1的坐标值呀。


那可能是你其它的代码无效,不是这些代码没效。。

#9


你直接用C语言的rand()函数,
移动窗口用MoveWindow或者SetWindowPos 

#10


在 Button 的 onclick 添加 SetWinowPos
随机数可以用C\C++的rand函数取得