CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

一个难题,先给100分,解决后再追加100分

楼主liaoxiaoping(我是一棵菜,你要说的明白些)2004-09-01 09:50:16 在 VC/MFC / 基础类 提问

我用的是纯C,编译器是BC5.0  
  我现在在屏幕上画了一些点,例如p1,p2,p3...p100;我现在要把每个点的坐标记下来,例如p1(x1,y1),p2(x2,y2)......p100(x100,y100),由于每次画的点不是一个定值,有时画10个,有时画20个.我现在要把点p以及p的x,y值记下来,而且还要把他们对应起来,例如p1(x1,y1)...p20(x20,y20).该怎么实现,给我一个例子.谢谢 问题点数:100、回复次数:22Top

1 楼xteaj(半桶水)回复于 2004-09-01 09:55:38 得分 15

struct   mypoint  
  {  
      int   ID;  
      int   x;  
      int   y;  
  };  
  struct   pointlist  
  {  
        struct   mypoint   data;  
        struct   pointlist   *next;  
  };  
  用链表实现就可以了,链表的添加和查找自己搞定。  
  不行就用std::vector<mypoint>Top

2 楼DentistryDoctor(不在无聊中无奈,就在沉默中变态)回复于 2004-09-01 10:01:57 得分 0

如楼上所说。Top

3 楼flyelf(空谷清音)回复于 2004-09-01 10:07:08 得分 0

没有必要自己写链表,用std::vector   or   std::list即可Top

4 楼rabo(不哭死人)回复于 2004-09-01 10:10:04 得分 0

如果上面说的,你都不会用。那就用结构数组吧。只是效率低一点。Top

5 楼lixiaosan(小三)回复于 2004-09-01 10:17:15 得分 0

CStringArrayTop

6 楼smileconfess()回复于 2004-09-01 10:26:41 得分 0

用链表,比如CObList.Top

7 楼Paris_Luo(不懂)回复于 2004-09-01 10:42:23 得分 0

链表Top

8 楼fackpear(云梦天竺)回复于 2004-09-01 10:53:29 得分 0

支持用链表   效率高啊   呵呵Top

9 楼ayi176(阿义)回复于 2004-09-01 10:54:39 得分 0

用链表吧Top

10 楼ghxmagic(ghxmagic)回复于 2004-09-01 10:58:15 得分 20

struct   mypoint  
  {  
      int       nIndex;  
      CSize   pos;  
  };  
   
  1.   CArray   <mypoint,   mypoint&>   arPoint;  
  或  
  2.   mypoint   *pArrayPoint   =   new   mypoint[NUM];  
        delete   []   mypoint;Top

11 楼liaoxiaoping(我是一棵菜,你要说的明白些)回复于 2004-09-01 11:26:09 得分 0

#include   <stdio.h>  
  #include   <stdlib.h>  
   
  struct  
  {  
      int   ID;  
      int   x;  
      int   y;  
  }mypoint[100];  
   
  int   j=1;  
  void   main()  
  {  
      POINT   pt;  
      GetCursorPos(&pt);  
      mypoint->ID   =   j;  
      mypoint->x     =   pt.x;  
      mypoint->y     =   pt.y;  
      j++;  
  }  
  这样得到的mypoint{{ID:1,x:11,y:22}......}  
  再画一个点,它只是变成了mypoint{{ID:2,x:41,y:52}......}  
  而我要的是:mypoint{{ID:1,x:11,y:22},{ID:2,x:41,y:52}......}  
  该怎么做,解决后就给分,在线等Top

12 楼jazy()回复于 2004-09-01 11:32:59 得分 0

你的mypoint不是数组吗,循环使用mypoint[0],mypoint[1]...就好了Top

13 楼liaoxiaoping(我是一棵菜,你要说的明白些)回复于 2004-09-01 11:37:08 得分 0

怎么循环?  
  j就是要画的点数,而pt.x,pt.y每一次都不样,mypoint[100]怎么加.写一下,怎么样?Top

14 楼crystal521(【云淡风轻】)回复于 2004-09-01 11:54:32 得分 20

先定义一个结构  
  struct   MyPoints  
  {  
  int   x;  
  int   y;  
  };  
  在使用时采用动态分配内存的方式  
  MyPoints*   p;  
  p   =   MyPoints*   Malloc(sizeof(MyPoints));  
  p   =   MyPoints*   Relloc(n   *   sizeof(MyPoints));  
  ...  
  free(p);  
   
  或者你也可以使用链表:如   xteaj()所说    
  Top

15 楼zhushizu(从来就没有救世祖)回复于 2004-09-01 12:12:29 得分 0

是呀,我也是想了好久。。关注中。。。Top

16 楼jazy()回复于 2004-09-01 14:19:58 得分 20

struct   mypoint  
  {  
      int   ID;  
      int   x;  
      int   y;  
  };  
   
  int   j   =   0;  
  void   main()  
  {  
      //得到要画的点数MAX_NUM  
      mypoint   *pMyPT   =   new   mypoint[MAX_NUM];  
      for   (j   =   0;   j   <   MAX_NUM;   j++)  
      {  
          //别的操作,改变鼠标位置  
          POINT   pt;  
          GetCursorPos(&pt);  
          pMyPT[j].ID   =   j;   //为扩展考虑,需要一个冗余的ID字段  
          pMyPT[j].x     =   pt.x;  
          pMyPT[j].y     =   pt.y;  
          j++;  
      }  
   
      ...  
   
      delete   []pMyPT;  
      pMyPT   =   NULL;  
  }  
  Top

17 楼evlon(阿牛)回复于 2004-09-01 14:33:23 得分 5

|````````|```````````|```````````````````````````````|  
  |   line1     |       line2       |                                                               |         (1)  
  |________|___________|_______________________________|          
          |                     |  
    |~~~~~~~|  
    |   Point   |         CList<CPoint,CPoint>   myPointList;  
    |_______|  
   
   
  注(1):CPtrList<myPointList*,myPointList*>   myLinesArray;  
  Top

18 楼Hawk_lp(流浪者)回复于 2004-09-01 15:21:26 得分 0

STL用的!  
  Top

19 楼liaoxiaoping(我是一棵菜,你要说的明白些)回复于 2004-09-01 16:06:28 得分 0

我的是BC5.0,和纯C,STL管用吗?Top

20 楼ghxmagic(ghxmagic)回复于 2004-09-01 16:13:34 得分 0

那就用数组吧,  
  new   [].   delete   []   你会吧Top

21 楼bobob(静思)回复于 2004-09-01 16:23:12 得分 20

define   PointNum     100   ;  
  int   i;  
   
  for(i   =   0   ;   纪录点的条件满足   &&   i<PointNum   ;   i++)  
          把当前点纪录到结构体[i];  
   
  最后得到的结构体数组就是你要的东西。  
  Top

22 楼liaoxiaoping(我是一棵菜,你要说的明白些)回复于 2004-09-01 16:47:59 得分 0

问题结局了,不是用的大家的东西,但是是大家的讨论给了我启示.  
  怎么追加分数,我不会,该怎么办?  
  Top

相关问题

  • 求助:VC的怪问题(UP有分)------------------------------先给100分,不够再追加
  • 菜鸟的难题:多系统安装。大虾小虾都来看看。有追加分!
  • 综合性难题,希望大家赐教,有关数据追加,验证重复,报错等.
  • Asp打印问题,可以再追加
  • 再问sql大难题
  • 急!再问简单难题?
  • 谁能提供Greg Lehey的《The Complete FreeBSD》英文电子版下载,小弟先给20分,再追加!
  • 如何改变listbox中的文字颜色,动态追加行先送200分不够再加
  • =========难题。难题======
  • 超级难题!!!先答对者有分

关键词

  • mypoint
  • 数组
  • 链表
  • pt
  • struct
  • std
  • 使用
  • num

得分解答快速导航

  • 帖主:liaoxiaoping
  • xteaj
  • ghxmagic
  • crystal521
  • jazy
  • evlon
  • bobob

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo