新微赢技术网

标题: 初学者的一个很简单的程序(错了) [打印本页]

作者: 乄獨萊◇獨徍    时间: 2009-11-3 01:07
标题: 初学者的一个很简单的程序(错了)
初学者
打印职工信息
错误太多了

#include <stdio.h>
#include <string.h>
#define N 3
class Employee{
private :
char no[10];
char name[10];
char depart[10];
int age;
double salary;
public:
Employee();
void Creat(char na[],char n[],char de[],int ag,double sal);
void Display();
void Display(char n[]);
};
void Employee::Creat(Employee employ[N])
{
int i;
for(i=0;i<N;i++)
{
cout<<"input no:"<<endl;
cin>>employ[i].no;
cout<<"input name:"<<endl;
cin>>employ[i].name;
cout<<"input depart:"<<endl;
cin>>employ[i].depart;
cout<<"input age:"<<endl;
cin>>employ[i].age;
cout<<"input salary:"<<endl;
cin>>employ[i].salary;
}
}
void Employee::Display()
{
cout<<name<<no<<depart<<age<<salary<<endl;
}
void Display(char no[])
{
cout<<no<<name<<depart<<age<<salary<<endl;
}
void Display(char depart[])
{
cout<<depart<<no<<name<<age<<salary<<endl;
}
void main()
{
int i;
Employee employee[N];
Creat(employee);
cout<<"display all"<<endl;
for(i=0;i<N;i++)
employee[i].display();
cout<<"display according to no."<<endl;
for(i=0;i<N;i++)
employee[i].display(employee[i].no);
cout<<"display according to depart."<<endl;
for(i=0;i<N;i++)
employee[i].display(employee[i].depart);

}
作者: 阿咏    时间: 2009-11-3 01:07
本人刚刚该了一下
可是还是有误

麻烦哪位大虾帮忙改下
本人是初学 不明白啊


#include <iostream.h>
class Employee{
public:
char no[10];
char name[10];
char depart[10];
int age;
double salary;
Employee();
void Creat();
void Display();
void Display(char n[]);
};
void Employee::Creat()
{
int i;
for(i=0;i<N;i++)
{
cout<<"input no:"<<endl;
cin>>no;
cout<<"input name:"<<endl;
cin>>name;
cout<<"input depart:"<<endl;
cin>>depart;
cout<<"input age:"<<endl;
cin>>age;
cout<<"input salary:"<<endl;
cin>>salary;
}
}
void Employee::Display()
{
cout<<name<<no<<depart<<age<<salary<<endl;
}
void Employee::Display(char no[])
{
cout<<no<<name<<depart<<age<<salary<<endl;
}
void main()
{
int i;
Employee employee[N];
for(i=0;i<N;i++)
employee[i].Creat();
cout<<"display all"<<endl;
for(i=0;i<N;i++)
employee[i].Display();
cout<<"display according to no."<<endl;
for(i=0;i<N;i++)
employee[i].Display(employee[i].no);
cout<<"display according to depart."<<endl;
for(i=0;i<N;i++)
employee[i].Display(employee[i].depart);

}

报错main.obj : error LNK2001: unresolved external symbol "public: __thiscall Employee::Employee(void)" (??0Employee@@QAE@XZ)
Debug/zhigong1.exe : fatal error LNK1120: 1 unresolved externals
作者: ※随风飘荡※    时间: 2009-11-3 01:07
从你的程序中应该是用creat()实现拷贝构造函数的功能,但系统会在你编译的过程中自动生成一个默认的拷贝构造函数,...我觉的你应该把creat()去掉,把类的对象的初始化在 Employee()中实现.....
作者: 晒月亮的蜻蜓    时间: 2009-11-3 01:07
如果楼主想利用默认构造函数的话,应当把类声明中的Employ()函数声明去掉。因为你一旦声明了它,默认的构造函数就不会起作用,而楼主还没有实现。
如果不想用默认构造函数,楼主就需要为Employe()写一个实现体。
作者: 红星    时间: 2009-11-3 01:07
我把默认的构造函数 Employee();
删掉后还是不行啊
作者: √碧水寒潭    时间: 2009-11-3 01:07
你先把构造函数定义改成Employee::Emplyee(int N)
              {creat(N);}
把creat()函数定义如下void Employee::creat(int N){实体与你的一样}
作者: 成熟之惑    时间: 2009-11-3 01:07
还是不行

错误越来越多了
作者: 逊一    时间: 2009-11-3 01:07
而且我把成员变量定义为私有
他也报错
作者: 兲外☆飛唬    时间: 2009-11-3 01:07
好多都是语法上的错误,你再仔细看看

而且最开始缺少#include <iostream.h>
作者: Kdsffsd    时间: 2009-11-3 01:07
#include <iostream.h>
#define N 3
class Employee{
public:
char no[10];
char name[10];
char depart[10];
int age;
double salary;
Employee(){}

void Creat();
void Display();
void Display(char n[]);
};
void Employee::Creat()
{
int i;
for(i=0;i<N;i++)
{
cout<<"input no:"<<endl;
cin>>no;
cout<<"input name:"<<endl;
cin>>name;
cout<<"input depart:"<<endl;
cin>>depart;
cout<<"input age:"<<endl;
cin>>age;
cout<<"input salary:"<<endl;
cin>>salary;
}
}
void Employee::Display()
{
cout<<name<<no<<depart<<age<<salary<<endl;
}
void Employee::Display(char no[])
{
cout<<no<<name<<depart<<age<<salary<<endl;
}
void main()
{
int i;
Employee employee[N];
for(i=0;i<N;i++)
{
employee[i].Creat();
cout<<"display all"<<endl;
}
for(i=0;i<N;i++)
{
employee[i].Display();
cout<<"display according to no."<<i<<endl;
}
for(i=0;i<N;i++)
{
employee[i].Display(employee[i].no);
cout<<"display according to depart."<<endl;
}
for(i=0;i<N;i++)
{
employee[i].Display(employee[i].depart);
}

}
看这个行不




欢迎光临 新微赢技术网 (http://bbs.weiying.cn/) Powered by Discuz! X3.2