急!求用C++编写一个使用结构体数组实现添加,删除,修改,查询功能的程序!在MFC中实现!

就是要做一个电子地图,实现点的添加,删除,修改,查询功能,变量有XY坐标,点的ID,点的name。在MFC中编写,使用结构体数组,数组的容量没有固定值。调用数据通过接口函... 就是要做一个电子地图,实现点的添加,删除,修改,查询功能,变量有XY坐标,点的ID,点的name。在MFC中编写,使用结构体数组,数组的容量没有固定值。调用数据通过接口函数。真心求解答,谢谢大家,急!!! 展开
 我来答
laienzb4
2013-08-11 · TA获得超过201个赞
知道小有建树答主
回答量:120
采纳率:100%
帮助的人:66.2万
展开全部
直接用MFC 的 CArray就可以了
实例伪代码:
Class MyPoint 或 struct MyPoint
{
XY坐标;
点的ID;
点的NAME:
}

定义数组
CArray<Mypoint,&Mypoint> m_arrMyPoint;
需要动态添加时
MyPoint point;
point.XY坐标 = 某值;
point.点的ID = 某值;
point.点的name = 某值;

添加:
m_arrMyPoint.Add(point);
m_arrMyPoint.InsertAt(位置,point);

删除:
m_arrMyPoint.RemoveAt(位置,删除数量);

修改:
MyPoint newPoint;
m_arrMyPoint.SetAt(位置,newPoint);
或直接赋值:
m_arrMypoint.GetAt(位置).某值 = 新值;

查询:
这个没有现成功能,自己写个条件遍历吧
for(int i=0; i<m_arrMyPoint.GetSize(); i++)
{
if(m_arrMyPoint.GetAt(i).某值 == 某条件)
{
处理代码。。。
}
}
更多追问追答
追问
你好,可以稍微详细点吗,是否可以举个真实代码的例子。稍微多一点注释。万分感谢!
追答
其实已经很详细了,CArray这样的工具类是很简单的,根据你的要求,只要掌握Add,InsertAt,SetAt,GetAt,RemoveAt 这几个函数就可以了。
那我稍微再改下:

Class MyPoint 或 struct MyPoint //定义点结构体
{
CPos m_pos ; //XY坐标;
UINT m_posID; //点的ID;
CString m_strPosName;点的NAME:
}

CArray m_arrMyPoint; //定义结构体类型数组
需要动态添加时
MyPoint point;
point.m_pos.x = 100;point.m_pos.y = 50; // 假设XY坐标为100,50
point.posID= 99; //点的ID
point.m_strPosName = "A点"; //点的name

添加:
m_arrMyPoint.Add(point); //将点结构体point加入数组末尾,
m_arrMyPoint.InsertAt(0,point); //将点结构体插入数组中0位置

删除:
m_arrMyPoint.RemoveAt(0,1); //从0位置起删除1个结构体

修改:
MyPoint newPoint; //新点结构
m_arrMyPoint.SetAt(0,newPoint); //将原位置为0的point 替换为 newpoint
或直接赋值:
m_arrMypoint.GetAt(0).m_strPosName = "B点"; //直接根据索引0修改该点名称

查询:
这个没有现成功能,自己写个条件遍历吧
for(int i=0; i<m_arrMyPoint.GetSize(); i++) //遍历整个数组
{
if(m_arrMyPoint.GetAt(i).m_strPosName == "X点") //假设查询数组中名称为X点的结构体
{
处理代码。。。 //可对该点属性进行任何处理
}
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式