| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 836 人关注过本帖
标题:主函数调用时,被调函数定义不明,什么问题
只看楼主 加入收藏
wl1259472421
Rank: 1
来 自:南京
等 级:新手上路
帖 子:16
专家分:3
注 册:2013-3-18
结帖率:80%
收藏
已结贴  问题点数:20 回复次数:3 
主函数调用时,被调函数定义不明,什么问题
这是一个多文件的程序。三个文件,第一个是person.h,定义了类的成员。第二个是person.cpp,实现类。第三个是主函数文件。为什么会在编译时出现被调函数定义不明呢?  代码在下面,可以编译下看!
//person.h           
class person
{
private:
    char num[10];                            //编号
    char type[20];                            //人员类型
    char name[20];                            //姓名
    char sex[10];                            //性别
    char age[10];                            //年龄
    char zhiwu[20];                            //职务
    char zhicheng[20];                        //职称
    char zzmm[20];                            //政治面貌
    char zgxl[20];                            //最高学历
    char rzsj[20];                            //任职时间
    char lysj[30];                            //来院时间
    static int bianhao;                        //计数器
public:
    void setperson(char *tyoe1,char *name1,char *sex1,char *age1,char *zhiwu1,char *zhicheng1,char *zzmm1,char *zgxl1,char *rzsj1,char *lysj1);
    static int& getbianhao() {return bianhao;};
    char *gettype()        {return type;};
    char *getname()        {return name;};
    char *getsex()        {return sex;};
    char *getage()        {return age;};
    char *getzhiwu()    {return zhiwu;};
    char *getzhicheng()    {return zhicheng;};
    char *getzzmm()        {return zzmm;};
    char *getzgxl()        {return zgxl;};
    char *getrzsj()        {return rzsj;};
    char *getlysj()        {return lysj;};
    char *getnum()        {return num;};

    void tjry();
    void find();
    void output();
    void shanchu();
    void xiugai();
    void tongji();
};
person p[100];
person pp[100];
int k;
int k1;
int person::bianhao=0;
//person.cpp
#include<iostream>
#include<fstream>
#include<cstring>
#include<iomanip>
#include"person.h"
using namespace std;
//#######################################################################################

void person::setperson(char *type1,char *name1,char *sex1,char *age1,char *zhiwu1,char *zhicheng1,char *zzmm1,char *zgxl1,char *rzsj1,char *lysj1)
{
    int static j=1;
    strcpy(type,type1);
    strcpy(name,name1);
    strcpy(sex,sex1);
    strcpy(age,age1);
    strcpy(zhiwu,zhiwu1);
    strcpy(zhicheng,zhicheng1);
    strcpy(zzmm,zzmm1);
    strcpy(zgxl,zgxl1);
    strcpy(rzsj,rzsj1);
    strcpy(lysj,lysj1);
    bianhao++;
    ofstream file("添加人员.txt",ios_base::app);
    file<<p[j].getbianhao()<<endl;
    file<<p[j].gettype()<<endl;
    file<<p[j].getname()<<endl;
    file<<p[j].getsex()<<endl;
    file<<p[j].getage()<<endl;
    file<<p[j].getzhiwu()<<endl;
    file<<p[j].getzhicheng()<<endl;
    file<<p[j].getzzmm()<<endl;
    file<<p[j].getzgxl()<<endl;
    file<<p[j].getrzsj()<<endl;
    file<<p[j].getlysj()<<endl;
    j++;
    file.close();
}

//#######################################################################################

void person::tongji()             //统计人员信息
{
    int a=0,b=0,c=0,d=0,k=1;
    ifstream filem("添加人员.txt",ios_base::in);
    while(!filem.eof())
    {
        filem>>pp[k].getnum();
        filem>>pp[k].gettype();
        filem>>pp[k].getname();
        filem>>pp[k].getsex();
        filem>>pp[k].getage();
        filem>>pp[k].getzhiwu();
        filem>>pp[k].getzhicheng();
        filem>>pp[k].getzzmm();
        filem>>pp[k].getzgxl();
        filem>>pp[k].getrzsj();
        filem>>pp[k].getlysj();
        if(strcmp(pp[k].gettype(),"行政人员")==0||strcmp(pp[k].gettype(),"教师")==0||strcmp(pp[k].gettype(),"一般员工")==0)
            a++;
        if(strcmp(pp[k].getzzmm(),"党员")==0)
            b++;
        if(strcmp(pp[k].getsex(),"女")==0)
            c++;
        if(strcmp(pp[k].getzgxl(),"博士")==0)
            d++;
        k++;
    }
    filem.close();
    cout<<setw(8)<<"在职人数"<<setw(12)<<"党员人数"<<setw(12)<<"女工人数"<<setw(12)<<"高学历人数"<<endl;
    cout<<setw(8)<<a<<setw(12)<<b<<setw(12)<<c<<setw(12)<<d<<endl;
}

//#######################################################################################

void person::xiugai()             //修改人员信息
{
    int k=1;
    ifstream filem("添加人员.txt",ios_base::in);
    while(!filem.eof())
    {
        filem>>pp[k].getnum();
        filem>>pp[k].gettype();
        filem>>pp[k].getname();
        filem>>pp[k].getsex();
        filem>>pp[k].getage();
        filem>>pp[k].getzhiwu();
        filem>>pp[k].getzhicheng();
        filem>>pp[k].getzzmm();
        filem>>pp[k].getzgxl();
        filem>>pp[k].getrzsj();
        filem>>pp[k].getlysj();
        k++;
    }
    filem.close();
    cout<<"请输入要修改的人的编号:"<<endl;
    int x,y;
    cin>>x;
    cout<<"请输入编号为"<<x<<"的人需要修改的项目的代号:"<<endl;
    cout<<"1:编号-2:人员类型-3:姓名-4:性别-5:年龄-6:职务-7:职称-8:政治面貌-9:最高学历-10:任职时间-11:来院时间"<<endl;
    cin>>y;
    switch(y)
    {
    case 1:
        {cout<<"请输入新的编号:"; cin>>pp[x].getnum();}    break;
    case 2:
        {cout<<"请输入新的人员类型:"; cin>>pp[x].gettype();}    break;
    case 3:
        {cout<<"请输入新的姓名:";cin>>pp[x].getname();}    break;
    case 4:
        {cout<<"请输入新的性别:";cin>>pp[x].getsex();}    break;
    case 5:
        {cout<<"请输入新的年龄:";cin>>pp[x].getage();}    break;
    case 6:
        {cout<<"请输入新的职务:";cin>>pp[x].getzhiwu();}    break;
    case 7:
        {cout<<"请输入新的职称:";cin>>pp[x].getzhicheng();}    break;
    case 8:
        {cout<<"请输入新的政治面貌:";cin>>pp[x].getzzmm();}    break;
    case 9:
        {cout<<"请输入新的最高学历:";cin>>pp[x].getzgxl();}    break;
    case 10:
        {cout<<"请输入新的任职时间:";cin>>pp[x].getrzsj();}    break;
    case 11:
        {cout<<"请输入新的来院时间:";cin>>pp[x].getlysj();}    break;
    }
    ofstream file1("添加人员.txt",ios_base::trunc);
    for(k=1;k<=bianhao;k++)
    {
        file1<<pp[k].getnum()<<endl;
        file1<<pp[k].gettype()<<endl;
        file1<<pp[k].getname()<<endl;
        file1<<pp[k].getsex()<<endl;
        file1<<pp[k].getage()<<endl;
        file1<<pp[k].getzhiwu()<<endl;
        file1<<pp[k].getzhicheng()<<endl;
        file1<<pp[k].getzzmm()<<endl;
        file1<<pp[k].getzgxl()<<endl;
        file1<<pp[k].getrzsj()<<endl;
        file1<<pp[k].getlysj()<<endl;
    }
    file1.close();
    cout<<"修改并保存完毕"<<endl;
}

//#######################################################################################

void person::shanchu()                    //删除人员信息
{
    int z;
    ifstream filem("添加人员.txt",ios_base::in);
    int k=1;
    while(!filem.eof())
    {
        filem>>pp[k].getnum();
        filem>>pp[k].gettype();
        filem>>pp[k].getname();
        filem>>pp[k].getsex();
        filem>>pp[k].getage();
        filem>>pp[k].getzhiwu();
        filem>>pp[k].getzhicheng();
        filem>>pp[k].getzzmm();
        filem>>pp[k].getzgxl();
        filem>>pp[k].getrzsj();
        filem>>pp[k].getlysj();
        k++;
    }
    filem.close();
    cout<<"请输入要被删除的人员信息编号:"<<endl;
    cin>>z;
    while(z<1 || z>bianhao)
    {
        cout<<"没有找到你要删除的人,请重新输入:"<<endl;cin>>z;
    }
    ofstream file2("添加人员.txt",ios_base::trunc);
    for(k=1;k<=bianhao;k++)
    {
        if(z==k)    break;
        file2<<pp[k].getnum()<<endl;
        file2<<pp[k].gettype()<<endl;
        file2<<pp[k].getname()<<endl;
        file2<<pp[k].getsex()<<endl;
        file2<<pp[k].getage()<<endl;
        file2<<pp[k].getzhiwu()<<endl;
        file2<<pp[k].getzhicheng()<<endl;
        file2<<pp[k].getzzmm()<<endl;
        file2<<pp[k].getzgxl()<<endl;
        file2<<pp[k].getrzsj()<<endl;
        file2<<pp[k].getlysj()<<endl;
    }
    for(k=z+1;k<=bianhao;k++)
    {
        file2<<pp[k-1].getnum()<<endl;
        file2<<pp[k].gettype()<<endl;
        file2<<pp[k].getname()<<endl;
        file2<<pp[k].getsex()<<endl;
        file2<<pp[k].getage()<<endl;
        file2<<pp[k].getzhiwu()<<endl;
        file2<<pp[k].getzhicheng()<<endl;
        file2<<pp[k].getzzmm()<<endl;
        file2<<pp[k].getzgxl()<<endl;
        file2<<pp[k].getrzsj()<<endl;
        file2<<pp[k].getlysj()<<endl;
    }
    file2.close();
    cout<<"删除记录完毕"<<endl;
}

//#######################################################################################

void person::find()                                        //查询人员信息
{
    cout<<"1:按编号查询——2:按姓名查询——请选择(1-2)"<<endl;
    int m;
    cin>>m;
    while(m<1 || m>2)
    {
        cout<<"请重新输入(1-2)"<<endl;    cin>>m;
    }
    switch(m)
    {
    case 1:
        {
            char n[10];
            cout<<"请输入要查找的编号:";
            cin>>n;
            ifstream filem("添加人员.txt",ios_base::in);
            int k=1;
            while(!filem.eof())
            {
                filem>>pp[k].getnum();
                filem>>pp[k].gettype();
                filem>>pp[k].getname();
                filem>>pp[k].getsex();
                filem>>pp[k].getage();
                filem>>pp[k].getzhiwu();
                filem>>pp[k].getzhicheng();
                filem>>pp[k].getzzmm();
                filem>>pp[k].getzgxl();
                filem>>pp[k].getrzsj();
                filem>>pp[k].getlysj();
                if(strcmp(pp[k].getnum(),n)==0)
                {
                    cout<<setw(4)<<"编号"<<setw(9)<<"人员类型"<<setw(8)<<"姓 名"<<setw(5)<<"性别"<<setw(5)<<"年龄"<<setw(5)<<"职务"<<setw(5)<<"职称"<<setw(9)<<"政治面貌"<<setw(10)<<"最高学历"<<setw(10)<<"任职时间"<<setw(10)<<"来院时间"<<endl;
                    cout<<setw(4)<<pp[k].getnum()<<setw(9)<<pp[k].gettype()<<setw(8)<<pp[k].getname()<<setw(5)<<pp[k].getsex()<<setw(5)<<pp[k].getage()<<setw(5)<<pp[k].getzhiwu()<<setw(5)<<pp[k].getzhicheng()<<setw(9)<<pp[k].getzzmm()<<setw(10)<<pp[k].getzgxl()<<setw(10)<<pp[k].getrzsj()<<setw(10)<<pp[k].getlysj()<<endl;
                    break;
                }
                k++;
                if(filem.eof())
                {cout<<"\n      警告:没有要查找的人!!!!!!";}
            }
            filem.close();
        }
        break;
    case 2:
        {
            char nname[20];
            cout<<"请输入要查找的姓名:";
            cin>>nname;
            ifstream filem("添加人员.txt",ios_base::in);
            int k=1;
            while(!filem.eof())
            {
                filem>>pp[k].getnum();
                filem>>pp[k].gettype();
                filem>>pp[k].getname();
                filem>>pp[k].getsex();
                filem>>pp[k].getage();
                filem>>pp[k].getzhiwu();
                filem>>pp[k].getzhicheng();
                filem>>pp[k].getzzmm();
                filem>>pp[k].getzgxl();
                filem>>pp[k].getrzsj();
                filem>>pp[k].getlysj();
                if(strcmp(pp[k].getname(),nname)==0)
                {   
                    cout<<setw(4)<<"编号"<<setw(9)<<"人员类型"<<setw(8)<<"姓 名"<<setw(5)<<"性别"<<setw(5)<<"年龄"<<setw(5)<<"职务"<<setw(5)<<"职称"<<setw(9)<<"政治面貌"<<setw(10)<<"最高学历"<<setw(10)<<"任职时间"<<setw(10)<<"来院时间"<<endl;
                    cout<<setw(4)<<pp[k].getnum()<<setw(9)<<pp[k].gettype()<<setw(8)<<pp[k].getname()<<setw(5)<<pp[k].getsex()<<setw(5)<<pp[k].getage()<<setw(5)<<pp[k].getzhiwu()<<setw(5)<<pp[k].getzhicheng()<<setw(9)<<pp[k].getzzmm()<<setw(10)<<pp[k].getzgxl()<<setw(10)<<pp[k].getrzsj()<<setw(10)<<pp[k].getlysj()<<endl;
                    break;
                }
                k++;
                if(filem.eof())
                    {cout<<"\n      警告:没有要查找的人!!!!!!";}
            }
            while(!filem.eof())
            {
                filem>>pp[k].getnum();
                filem>>pp[k].gettype();
                filem>>pp[k].getname();
                filem>>pp[k].getsex();
                filem>>pp[k].getage();
                filem>>pp[k].getzhiwu();
                filem>>pp[k].getzhicheng();
                filem>>pp[k].getzzmm();
                filem>>pp[k].getzgxl();
                filem>>pp[k].getrzsj();
                filem>>pp[k].getlysj();
                if(strcmp(pp[k].getname(),nname)==0)
                {   
                    cout<<setw(4)<<pp[k].getnum()<<setw(9)<<pp[k].gettype()<<setw(8)<<pp[k].getname()<<setw(5)<<pp[k].getsex()<<setw(5)<<pp[k].getage()<<setw(5)<<pp[k].getzhiwu()<<setw(5)<<pp[k].getzhicheng()<<setw(9)<<pp[k].getzzmm()<<setw(10)<<pp[k].getzgxl()<<setw(10)<<pp[k].getrzsj()<<setw(10)<<pp[k].getlysj()<<endl;
                    continue;
                }
                k++;
            
            }
            filem.close();
        }
        break;
    }
}

//#######################################################################################

void person::tjry()                                  //添加人员信息
{
    int v,l=1;
    char type2[20],name2[20],sex2[10],age2[10],zhiwu2[20],zhicheng2[20],zzmm2[20],zgxl2[20],rzsj2[20],lysj2[30];
    cout<<"请输入要添加的人数"<<endl;
    cin>>k;
    p[1].getbianhao()=pp[k1].getbianhao();
    v=bianhao;
    for(int i=v+1;i<=v+k;i++)
    {
        cout<<"请输入第"<<l<<"个人的信息"<<endl;
        cout<<"人员类型:";    cin>>type2;
        cout<<"姓名:";    cin>>name2;
        cout<<"性别:";    cin>>sex2;
        cout<<"年龄:";    cin>>age2;
        cout<<"职务:";    cin>>zhiwu2;
        cout<<"职称:";    cin>>zhicheng2;
        cout<<"政治面貌:";    cin>>zzmm2;
        cout<<"最高学历:"; cin>>zgxl2;
        cout<<"任职时间:"; cin>>rzsj2;
        cout<<"来院时间:"; cin>>lysj2;
        p[i].setperson(type2,name2,sex2,age2,zhiwu2,zhicheng2,zzmm2,zgxl2,rzsj2,lysj2);
        l++;
    }
}

//#######################################################################################

void person::output()             //显示人员信息
{
    ifstream filem("添加人员.txt",ios_base::in);
    int k=1;
    cout<<setw(4)<<"编号"<<setw(9)<<"人员类型"<<setw(8)<<"姓 名"<<setw(5)<<"性别"<<setw(5)<<"年龄"<<setw(5)<<"职务"<<setw(5)<<"职称"<<setw(9)<<"政治面貌"<<setw(10)<<"最高学历"<<setw(10)<<"任职时间"<<setw(10)<<"来院时间"<<endl;
    while(!filem.eof())
    {
        filem>>pp[k].getbianhao();
        filem>>pp[k].gettype();
        filem>>pp[k].getname();
        filem>>pp[k].getsex();
        filem>>pp[k].getage();
        filem>>pp[k].getzhiwu();
        filem>>pp[k].getzhicheng();
        filem>>pp[k].getzzmm();
        filem>>pp[k].getzgxl();
        filem>>pp[k].getrzsj();
        filem>>pp[k].getlysj();
        cout<<setw(4)<<pp[k].getbianhao()<<setw(9)<<pp[k].gettype()<<setw(8)<<pp[k].getname()<<setw(5)<<pp[k].getsex()<<setw(5)<<pp[k].getage()<<setw(5)<<pp[k].getzhiwu()<<setw(5)<<pp[k].getzhicheng()<<setw(9)<<pp[k].getzzmm()<<setw(10)<<pp[k].getzgxl()<<setw(10)<<pp[k].getrzsj()<<setw(10)<<pp[k].getlysj()<<endl;
        k++;
    }
    k1=--k;
    filem.close();
}

//#######################################################################################

void menu()                            //菜单
{
    person pjk;
    int c;
    cout<<endl;
    cout<<"------------------------高校人事管理系统---------------------------"<<endl;
    cout<<"*                                 *"<<endl;
    cout<<"*          1--添加人员信息并保存            *"<<endl;
    cout<<"*          2--删除人员信息               *"<<endl;
    cout<<"*          3--修改人员信息               *"<<endl;
    cout<<"*          4--查询人员信息               *"<<endl;
    cout<<"*          5--统计人员信息               *"<<endl;
    cout<<"*          6--显示所有信息               *"<<endl;
    cout<<"*          7--退出                   *"<<endl;
    cout<<"-------------------------------------------------------------------"<<endl;
    cout<<"           请选择(1-7):                 "<<endl;
    cin>>c;
    switch(c)
    {
    case 1: pjk.tjry();menu();    break;
    case 2: pjk.shanchu();menu();    break;
    case 3: pjk.xiugai();menu();    break;
    case 4: pjk.find();    cout<<endl<<endl; menu();    break;
    case 5: pjk.tongji();menu();    break;
    case 6: pjk.output();menu();    break;
    case 7: exit(1);break;
    }
}

//#######################################################################################

//gxrsgl.cpp
#include<iostream>
#include<fstream>
#include<cstring>
#include<iomanip>
#include"person.h"
using namespace std;
void main()
{
    menu();
}
搜索更多相关主题的帖子: 人员 姓名 private person 
2013-03-18 22:08
yuccn
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:10 
把工程发出来吧,不要这样贴代码。

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2013-03-19 12:11
wl1259472421
Rank: 1
来 自:南京
等 级:新手上路
帖 子:16
专家分:3
注 册:2013-3-18
收藏
得分:0 
回复 2楼 yuccn
谢谢拉,这个我解决了。下次有问题在请教

爱好编程,想让电脑按照我的想法执行指令!
2013-03-19 22:22
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:10 
问题解决 请 结贴

DO IT YOURSELF !
2013-03-20 08:40
快速回复:主函数调用时,被调函数定义不明,什么问题
数据加载中...
 
   



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

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