叶--落 2017-10-11 03:22 采纳率: 100%
浏览 730
已结题

mfc树、列表控件、xml文件练习

1、按头文件Models.h的要求对数据进行统一管理,所有的操作通过gModelMgr的接口函数,不能修改或添加数据结构和接口函数;
2、完成gModelMgr的接口函数的实现;
3、数据存储按Models.xml的格式要求;
4、编辑界面参考模型开发工具的原子行为,模型按分类用树控件显示,模型参数采用列表控件显示,所有模型不能重名,每个模型的参数不能重名,模型的所有数据均可编辑;
5、模型改名或改分类界面要随着变化,要实现局部变化,禁止采用全部重新加载方式;
6、分类、模型、参数支持拖动改变先后顺序,也要实现局部变化,禁止采用全部重新加载方式。

头文件:
#pragma once

#include
#include

//参数信息
class ZParam
{
public:
std::string m_Name; //参数名
std::string m_Value; //参数值
};

//模型信息
class ZModel
{
public:
std::string m_Catalog; //模型分类
std::string m_Name; //模型名称
std::string m_Description; //模型描述
std::list m_ParamList; //参数列表
};

//模型管理器
class ZModelMgr
{
private:
std::list m_ModelList; //模型列表
public:
//加载数据
bool Load(const char *xmlfile);
//保存数据
void Save(const char *xmlfile);
//添加模型(tmpModel为临时数据,添加后返回模型列表中的模型)
ZParam &AddModel(const ZParam &tmpModel);
//修改模型(model为模型列表中的模型,tmpModel为修改后的临时数据)
void ModifyModel(ZParam &model, const ZParam &tmpModel);
//删除模型(model为模型列表中的模型)
void DeleteModel(ZParam &model);
};

//全局模型管理器实例
extern ZModelMgr gModelMgr;

XML文件参考:
<?xml version="1.0" encoding="utf-8"?>
<模型列表>
<模型>
<模型分类>分类1</模型分类>
<模型名称>模型1</模型名称>
<模型描述>描述1</模型描述>
<参数列表>
<参数>
<参数名>参数1</参数名>
<参数值>值1</参数值>
</参数>
<参数>
<参数名>参数2</参数名>
<参数值>值2</参数值>
</参数>
<!-- …… -->
</参数列表>
</模型>
<模型>
<模型分类>分类2</模型分类>
<模型名称>模型2</模型名称>
<模型描述>描述2</模型描述>
<参数列表>
<参数>
<参数名>参数1</参数名>
<参数值>值1</参数值>
</参数>
<参数>
<参数名>参数2</参数名>
<参数值>值2</参数值>
</参数>
<!-- …… -->
</参数列表>
</模型>
<!-- …… -->
</模型列表>

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥50 树莓派安卓APK系统签名
    • ¥15 maple软件,用solve求反函数出现rootof,怎么办?
    • ¥65 汇编语言除法溢出问题
    • ¥15 Visual Studio问题
    • ¥15 state显示变量是字符串形式,但是仍然红色,无法引用,并显示类型不匹配
    • ¥20 求一个html代码,有偿
    • ¥100 关于使用MATLAB中copularnd函数的问题
    • ¥20 在虚拟机的pycharm上
    • ¥15 jupyterthemes 设置完毕后没有效果
    • ¥15 matlab图像高斯低通滤波