设为首页收藏本站

新微赢技术网

 找回密码
 注册
搜索
热搜: 回贴
查看: 1635|回复: 9
打印 上一主题 下一主题

初学者的一个很简单的程序(错了)

[复制链接]
跳转到指定楼层
1#
发表于 2009-11-3 01:07:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
初学者
打印职工信息
错误太多了

#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);

}
2#
发表于 2009-11-3 01:07:16 | 只看该作者
本人刚刚该了一下
可是还是有误

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


#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
回复 支持 反对

使用道具 举报

3#
发表于 2009-11-3 01:07:19 | 只看该作者
从你的程序中应该是用creat()实现拷贝构造函数的功能,但系统会在你编译的过程中自动生成一个默认的拷贝构造函数,...我觉的你应该把creat()去掉,把类的对象的初始化在 Employee()中实现.....
回复 支持 反对

使用道具 举报

4#
发表于 2009-11-3 01:07:22 | 只看该作者
如果楼主想利用默认构造函数的话,应当把类声明中的Employ()函数声明去掉。因为你一旦声明了它,默认的构造函数就不会起作用,而楼主还没有实现。
如果不想用默认构造函数,楼主就需要为Employe()写一个实现体。
回复 支持 反对

使用道具 举报

5#
发表于 2009-11-3 01:07:23 | 只看该作者
我把默认的构造函数 Employee();
删掉后还是不行啊
回复 支持 反对

使用道具 举报

6#
发表于 2009-11-3 01:07:25 | 只看该作者
你先把构造函数定义改成Employee::Emplyee(int N)
              {creat(N);}
把creat()函数定义如下void Employee::creat(int N){实体与你的一样}
回复 支持 反对

使用道具 举报

7#
发表于 2009-11-3 01:07:26 | 只看该作者
还是不行

错误越来越多了
回复 支持 反对

使用道具 举报

8#
发表于 2009-11-3 01:07:27 | 只看该作者
而且我把成员变量定义为私有
他也报错
回复 支持 反对

使用道具 举报

9#
发表于 2009-11-3 01:07:32 | 只看该作者
好多都是语法上的错误,你再仔细看看

而且最开始缺少#include <iostream.h>
回复 支持 反对

使用道具 举报

10#
发表于 2009-11-3 01:07:38 | 只看该作者
#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);
}

}
看这个行不
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

申请友链|小黑屋|最新主题|手机版|新微赢技术网 ( 苏ICP备08020429号 )  

GMT+8, 2024-11-18 04:49 , Processed in 0.077841 second(s), 9 queries , Gzip On, Memcache On.

Powered by xuexi

© 2001-2013 HaiAn.Com.Cn Inc. 寰耽

快速回复 返回顶部 返回列表