C++创建对象问题!
#include<iostream.h>#include<stdio.h>#include<string.h>#defineN4classEmployee{public:...
#include<iostream.h>
#include<stdio.h>
#include<string.h>
#define N 4
class Employee
{
public:
Employee(){}
Employee(char a[10],char b[5],int i,char d[11],char e[10],float f)
{
strcpy(xm,a);
strcpy(xb,b);
gh=i;
strcpy(dh,d);
strcpy(ks,e);
gz=f;
}
void srxx(int);
void print();
private:
char xm[10],xb[5],dh[11],ks[10];
int gh;
float gz;
};
void Employee::srxx(int i)
{
char a[10],b[5],d[11],e[10];
float j=0;
printf("请输入职工工号为%d的信息:\n",i);
printf("....................>\n");
printf("输入职工姓名:");
scanf("%s\n",a);
printf("输入职工性别:");
scanf("%s\n",b);
printf("请输入职工电话:");
scanf("%s\n",d);
printf("请输入职工所在科室:");
scanf("%s\n",e);
printf("请输入该职工的工资:");
scanf("%f\n",&j);
Employee(a,b,i,d,e,j);
}
void Employee::print()
{
printf("该职工的姓名为:%s\n,性别为:%s\n,工号为:%d\n,电话为:%s\n,科室为:%s\n,工资为:%d\n",a_g.xm,a_g.xb,a_g.gh,a_g.dh,a_g.ks,a_g.gz);
}
void main()
{
Employee a_1,a_2,a_3,a_4;
a_1.srxx(1);
a_2.srxx(2);
a_3.srxx(3);
a_4.srxx(4);
printf("请输入要查询职工的工号:");
scanf("%d",&g); //我是以这种方式锁定对象不对????还是我的对象创建不成功??????
a_g.print();
}
大神们,貌似我的对象申请有问题还是我锁定对象的方式不对~?? 展开
#include<stdio.h>
#include<string.h>
#define N 4
class Employee
{
public:
Employee(){}
Employee(char a[10],char b[5],int i,char d[11],char e[10],float f)
{
strcpy(xm,a);
strcpy(xb,b);
gh=i;
strcpy(dh,d);
strcpy(ks,e);
gz=f;
}
void srxx(int);
void print();
private:
char xm[10],xb[5],dh[11],ks[10];
int gh;
float gz;
};
void Employee::srxx(int i)
{
char a[10],b[5],d[11],e[10];
float j=0;
printf("请输入职工工号为%d的信息:\n",i);
printf("....................>\n");
printf("输入职工姓名:");
scanf("%s\n",a);
printf("输入职工性别:");
scanf("%s\n",b);
printf("请输入职工电话:");
scanf("%s\n",d);
printf("请输入职工所在科室:");
scanf("%s\n",e);
printf("请输入该职工的工资:");
scanf("%f\n",&j);
Employee(a,b,i,d,e,j);
}
void Employee::print()
{
printf("该职工的姓名为:%s\n,性别为:%s\n,工号为:%d\n,电话为:%s\n,科室为:%s\n,工资为:%d\n",a_g.xm,a_g.xb,a_g.gh,a_g.dh,a_g.ks,a_g.gz);
}
void main()
{
Employee a_1,a_2,a_3,a_4;
a_1.srxx(1);
a_2.srxx(2);
a_3.srxx(3);
a_4.srxx(4);
printf("请输入要查询职工的工号:");
scanf("%d",&g); //我是以这种方式锁定对象不对????还是我的对象创建不成功??????
a_g.print();
}
大神们,貌似我的对象申请有问题还是我锁定对象的方式不对~?? 展开
3个回答
展开全部
这几个对象只是在内存中零散的分布 ,并没有存放到一定的结构中(如数组 ),只有通过对象本身的变量标示符来查找。 而且 a_g 将会是一个编译器不认识的标示符,没有定义过 ,不会解析成a_ (g代表的那个数字)。
建议 使用对象数组
建议 使用对象数组
追问
大哥,怎么使用对象数组呢~先谢了哈~
追答
#include
#include
#include
#define N 4
class Employee
{
public:
Employee(){
printf("无参构造函数\n");
}
Employee(char a[10],char b[5],int i,char d[11],char e[10],float f)
{
strcpy(xm,a);
strcpy(xb,b);
gh=i;
strcpy(dh,d);
strcpy(ks,e);
gz=f;
}
void print();
int getgh();
static Employee srxx(int i );
private:
char xm[10],xb[5],dh[11],ks[10];
int gh;
float gz;
};
int Employee::getgh() // 得到工号
{
return this->gh;
}
void Employee::print()
{
printf("该职工的姓名为:%s\n,性别为:%s\n,工号为:%d\n,电话为:%s\n,科室为:%s\n,工资为:%d\n",
this->xm,this->xb,this->gh,this->dh,this->ks,this->gz);
}
Employee Employee :: srxx(int i )
{
char a[10],b[5],d[11],e[10];
float j=0;
printf("请输入职工工号为%d的信息:\n",i);
printf("....................>\n");
printf("输入职工姓名:");
scanf("%s\n",a);
printf("输入职工性别:");
scanf("%s\n",b);
printf("请输入职工电话:");
scanf("%s\n",d);
printf("请输入职工所在科室:");
scanf("%s\n",e);
printf("请输入该职工的工资:");
scanf("%f\n",&j);
return Employee(a,b,i,d,e,j);
}
void main()
{
Employee a[4];
a[1]= Employee::srxx(1);
a[2]= Employee::srxx(2);
a[3]= Employee::srxx(3);
a[4]= Employee::srxx(4);
int g=0;
printf("请输入要查询职工的工号:");
scanf("%d",&g); //我是以这种方式锁定对象不对????还是我的对象创建不成功??????
// 查询的话 很多情况都是要遍历的 ,无法直接定位
int flag=0;
for (int i=0;i<4;i++)
{
if (a[i].getgh()==g)
{
flag=1; //表示找到了
a[i].print();
break;
}
}
if(flag==0)
printf("未找到 。。。。");
}
//没怎么调试 改了一大片 自己在稍微调试下
Storm代理
2023-08-29 广告
2023-08-29 广告
StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,IP...
点击进入详情页
本回答由Storm代理提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询