| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 598 人关注过本帖
标题:电话本管理系统的实现
只看楼主 加入收藏
zhangmohan28
Rank: 2
来 自:山西
等 级:论坛游民
帖 子:12
专家分:13
注 册:2010-8-27
结帖率:100%
收藏
已结贴  问题点数:0 回复次数:2 
电话本管理系统的实现
程序代码:
#ifndef PHONEMANAGER_H
#define PHONEMANAGER_H


#include <vector>
#include "Person.h"
using namespace std;


class CManager
{
private:

    vector<CPerson> m_vMembers;

public:

    void deleteMember(string vName);
    void addMember(CPerson vMember);
    void insertMember();
    bool findMember(string vName);
    void deleteAll();

};

#endif

#ifndef PERSON_H
#define PERSON_H

#include <string>
using namespace std;

class CPerson
{
private:

    string m_sName;
    int m_iPhoneNumber;

public:

    CPerson();
    CPerson(string vName,int vPhoneNumber);
    string getName();
    int getPhoneNumber();

};

#endif

person类中的函数都容易实现
但是manager类中的函数 findMember(string vName);deleteMember(string vName);void insertMember(); 实现起来比较困难
程序代码:
void CManager::deleteMember(string vName)
{
    for( unsigned int i = 0; i<m_vMembers.size(); i++ )
    {
        if( !strcmp(m_vMembers[i].getName().c_str(),vName.c_str()) )
            m_vMembers.erase(m_vMembers[i]);
    }

}


bool CManager::findMember(string vName)
{
    for( unsigned int i = 0; i<m_vMembers.size(); i++ )
    {
        if( !strcmp(m_vMembers[i].getName().c_str(),vName.c_str()) )
        {
            cout<<"你要查找的电话为:"<<endl;
            cout<<m_vMembers[i].getName()<<m_vMembers[i].getPhoneNumber<<endl;
            return true;
        }
    }
            return false;
}


这两个函数是我写的  可是不能实现~比较郁闷  求高手们指点  怎么改这个错误
搜索更多相关主题的帖子: 系统 电话 管理 
2010-11-04 13:32
shadow_rong
Rank: 2
等 级:论坛游民
帖 子:7
专家分:34
注 册:2010-11-1
收藏
得分:20 
没看到你 add函数 ,先写 add函数吧..... 命名规范可以,代码风格不大好...

给电话本增加一个元素,  m_flag  做标志位,在删除电话本的时候,给标志位 填0,这样就实现了删除,你读取的时候查下标记位,就可以。。。

如果你真想做真删除,就不要做成数组,建议做成链表....至少数组你还要移动删除的位置..
2010-11-04 13:47
zhangmohan28
Rank: 2
来 自:山西
等 级:论坛游民
帖 子:12
专家分:13
注 册:2010-8-27
收藏
得分:0 
回复 2楼 shadow_rong
程序代码:
void CManager::addMember(CPerson vMember)
{
    this->m_vMembers.push_back(vMember);
}
add函数还是比较容易实现的 我是想用vector做这个程序  该怎么改delete函数
编译器总是报错 error C2664: 'class CPerson *__thiscall std::vector<class CPerson,class std::allocator<class CPerson> >::erase(class CPerson *)' : cannot convert parameter 1 from 'class C
Person' to 'class CPerson *'
        No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
2010-11-05 09:40
快速回复:电话本管理系统的实现
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016551 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved