永发信息网

能不能帮我看下这个头文件怎么加入?

答案:1  悬赏:40  手机版
解决时间 2021-04-17 00:00

#ifndef HEAD_HPP
#define HEAD_HPP
#include<iostream>
#include<iomanip>
#include<string.h>
using namespace std;
class JIADIAN {
protected:
int ab; // ab=1代表电视机 ab=2代表DVD ab=3代表DVDTV
char *pingming; //声明品名字符串
char *yanse; //声明颜色字符串
int xinghao; //声明型号的大小
char *changjia; //声明厂家字符串
int value; //声明价格
public:
JIADIAN(char*,char*,int ,char*, int); //基类构造函数
~JIADIAN(); //基类析构函数
virtual void print(); //定义打印虚函数
int getkind(); //定义取种类函数
char* getpingming(); //定义取品名指针函数
JIADIAN operator =(JIADIAN &); //声明=号赋值重载运算函数
};
class TV: public JIADIAN { //电视机类公有继承基类
public:
TV(char*, char*,int ,char*,int); //电视机类构造函数
~TV(); //电视机类析构函数
void print(); //打印函数
};
class DVD: public JIADIAN { // DVD类
public:
DVD(char*,char*,int ,char*,int); // DVD类构造函数
~DVD(); //DVD类析构函数
void print(); //打印函数
};
class DVDTV: public JIADIAN { // 带有DVD的电视机类
public:
DVDTV(char*,char*,int , char*,int); // 带有DVD类的电视机类构造函数
~DVDTV(); // 带有DVD类的电视机类析构函数
void print(); // 打印函数
};
#endif

#include"tou.h" //把头文件包含进来(这里有问题,帮我看看)
JIADIAN::JIADIAN(char *PINGMING=NULL,char *YANSE=NULL,int XINGHAO=20 ,
char *CHANGJIA=NULL, int VALUE=2000) //家电类的构造函数,初始化参数
{
pingming=new char[20]; // 创建品名的字符长度不超过20个
strcpy(pingming,PINGMING); // 把输入的品名输入到内存中
yanse=new char[20]; // 创建颜色的字符长度不超过20个
strcpy(yanse, YANSE); // 把输入的颜色字符串输入
xinghao=XINGHAO; // 把输入的型号字符输入到内存中
changjia=new char[20]; // 创建厂家的字符长度不超过20个字符
strcpy(changjia, CHANGJIA); // 输入的厂家字符输入到内存中
value=VALUE;
return ;
}
JIADIAN::~JIADIAN() // 家电类的析构函数
{
delete pingming; //分别释放输入的品名、颜色、厂家的内存单元
delete yanse;
delete changjia;
return ;
}
char* JIADIAN::getpingming() // 定义基类的取品名函数
{return pingming;}
int JIADIAN::getkind() // 定义基类的getkind函数
{return ab;}
JIADIAN JIADIAN ::operator=(JIADIAN& jiadian) // 定义基类的=号赋值重载运算函数
{
this->ab=jiadian.ab;
strcpy(this->pingming,jiadian.pingming);
strcpy(this->pingming,jiadian.yanse);
this->xinghao=jiadian.xinghao;
strcpy(this->pingming,jiadian.changjia);
this->value=jiadian.value;
return *this;
}
void JIADIAN:: print()
{ return ;}

TV::TV(char *PINGMING=NULL, char *YANSE=NULL, int XINGHAO=20, char *CHANGJIA=NULL, int VALUE=1000): //定义电视机类的构造函数,假定电视机类的价格是1000元
JIADIAN(PINGMING, YANSE, XINGHAO, CHANGJIA, VALUE)
{ ab=1;
return ;
}
TV ::~TV() //定义电视机类的析构函数
{return ;}

void TV:: print() //定义电视机类的打印函数
{
cout<<"1 TV"<<" " <<pingming<<" " <<yanse<<" " <<xinghao<<" " <<changjia
<<" " << value<<" "<<endl;
}
DVD::DVD(char *PINGMING=NULL, char *YANSE=NULL, int XINGHAO=20, char *CHANGJIA=NULL, int VALUE=1000): //定义DVD类的构造函数
JIADIAN(PINGMING, YANSE, XINGHAO, CHANGJIA, VALUE)
{ ab=2;
return ;
}
DVD::~DVD() //定义DVD类的析构函数
{return ;}
void DVD:: print() //定义DVD类的打印函数
{
cout<<"2 DVD" << " " <<pingming<< " " <<yanse<<" " <<xinghao<<" "<<changjia
<<" " << value<<" "<<endl;
}
DVDTV::DVDTV(char *PINGMING=NULL, char *YANSE=NULL, int XINGHAO=20, char *CHANGJIA=NULL, int VALUE=1600): //定义带有DVD类的电视机类的构造函数
JIADIAN(PINGMING, YANSE, XINGHAO, CHANGJIA, VALUE)
{
return ;
}
DVDTV::~DVDTV() // 定义带有DVD的电视机类的析构函数
{return ;}
void DVDTV:: print() // 定义带有DVD的电视机类的打印函数
{
cout<<"3 DVDTV" << " " <<pingming<< " " <<yanse<<" " <<xinghao<<" "<<changjia
<<" " << value<<" "<<endl;
}

#include"tou.h"
int main()
{
JIADIAN *scores[10000];//库存的最大容量设定为10000
char pm[20]; //品名的最大字符串长度
char ys[20]; //颜色的最大字符串长度
int xh; //型号为整型变量
char cj[20]; //厂家的最大字符串长度
int i,j,n,a=0;//n为要选择的1 2 3当中的一个,初始化为0,i、j为循环变量 a=0 正常进行功能,a=1输出break前的那个语句。
static int k=0; //k静态全局变量,为库存量,初始化为0
cout<<"********"<<"欢迎进入本公司库存管理系统"<<"********"
<<"********"<<endl;
cout<<"*****请选择: 1 2 3当中的一个*****"<<endl <<"*** 1为查找功能 2为增加功能 3为删除功能***"<<endl;

while(cin>>n&&(n!=7)) // 输入1 2 3 的功能 实现按7键退出的功能
{
switch(n)
{
case 1: //实现按品名进行查找、显示功能
cout<<"请输入要查找的品名: ";
cin>>pm;
for(i=0;i<k;i++) //对库存内的产品进行循环查找
{

if(strcmp(pm,scores[i]->getpingming())==0) // 如果查到所要查找的品名
{scores[i]->print();a=1;} // 打印该种品名的相关信息
}
if(a){a=0;}
else
cout<<"查找不到您所需要的结果!";
break;

case 2: //实现按品名进行增加功能
cout<<"请再次选择所要增加的产品代号"<<" 1 TV; 2 DVD; 3 DVDTV"<<endl;
cout<<"请输入要增加的品名代号: ";
cin>>n;
cout<<"请输入要增加的该产品的品名、颜色、型号、厂家: "<<endl;
switch(n)
{
case 1: // 增加TV
cin>>pm>>ys>>xh>>cj;
scores[k++]=new TV(pm, ys,xh ,cj,1500);
break;
case 2: // 增加DVD
cin>>pm>>ys>>xh>>cj;
scores[k++]=new DVD(pm, ys, xh, cj,500);
break;
case 3: // 增加DVDTV
cin>>pm>>ys>>xh>>cj;
scores[k++]=new DVDTV(pm, ys,xh,cj,1600);
break;
default:
cout<<"不能把这种品名加入本库存中"<<endl;
break;
}
cout<<"增加后的成员如下:"<<endl;
for(i=0;i<k;i++)
scores[i]->print();
break;
case 3: // 实现按品名进行删除功能
cout<< "请输入要删除的产品的代号: "<<endl;
cout<< "1 TV; 2 DVD; 3 DVDTV"<<endl;
cin>>n;
cout<< "请输入要删除的品名: ";
switch(n)
{
case 1:
cin>>pm;
for(i=0;i<k;i++)
{
if(scores[i]->getkind()==1&&strcmp(pm,scores[i]->getpingming())==0)
{
for(j=i;j<k-1;j++)
scores[j]=scores[j+1];
k--;
}
}
break;
case 2:
cin>>pm;
for(i=0;i<k;i++)
{
if(scores[i]->getkind()==2&&strcmp(scores[i]->getpingming(),pm)==0)
{
for(j=i;j<k-1;j++)
scores[j]=scores[j+1];
k--;
}
}
break;
case 3:
cin>>pm;
for(i=0;i<k-1;i++)
{
if(scores[i]->getkind()==3&&strcmp(scores[i]->getpingming(),pm)==0)
{
for(int j=i;j<k-1;j++)
scores[j]=scores[j+1];
k--;
}

}
break;
default:
break;
}
cout<<"删除后的剩余成员如下:"<<endl;
for(i=0;i<k;i++)
scores[i]->print();
break;
default:
break;
}
cout<<"需要退出请按7键或者继续操作."<<endl;
}
//system("pause");
return 0;
}

最佳答案
你这个已经是弄好的啊
这个是.h文件
//tou.h
#ifndef HEAD_HPP
#define HEAD_HPP
#include<iostream>
#include<iomanip>
#include<string.h>
using namespace std;
class JIADIAN {
protected:
int ab; // ab=1代表电视机 ab=2代表DVD ab=3代表DVDTV
char *pingming; //声明品名字符串
char *yanse; //声明颜色字符串
int xinghao; //声明型号的大小
char *changjia; //声明厂家字符串
int value; //声明价格
public:
JIADIAN(char*,char*,int ,char*, int); //基类构造函数
~JIADIAN(); //基类析构函数
virtual void print(); //定义打印虚函数
int getkind(); //定义取种类函数
char* getpingming(); //定义取品名指针函数
JIADIAN operator =(JIADIAN &); //声明=号赋值重载运算函数
};
class TV: public JIADIAN { //电视机类公有继承基类
public:
TV(char*, char*,int ,char*,int); //电视机类构造函数
~TV(); //电视机类析构函数
void print(); //打印函数
};
class DVD: public JIADIAN { // DVD类
public:
DVD(char*,char*,int ,char*,int); // DVD类构造函数
~DVD(); //DVD类析构函数
void print(); //打印函数
};
class DVDTV: public JIADIAN { // 带有DVD的电视机类
public:
DVDTV(char*,char*,int , char*,int); // 带有DVD类的电视机类构造函数
~DVDTV(); // 带有DVD类的电视机类析构函数
void print(); // 打印函数
};
#endif

然后这个是cpp文件
#include"tou.h" //把头文件包含进来(这里有问题,帮我看看)
JIADIAN::JIADIAN(char *PINGMING=NULL,char *YANSE=NULL,int XINGHAO=20 ,
char *CHANGJIA=NULL, int VALUE=2000) //家电类的构造函数,初始化参数
{
pingming=new char[20]; // 创建品名的字符长度不超过20个
strcpy(pingming,PINGMING); // 把输入的品名输入到内存中
yanse=new char[20]; // 创建颜色的字符长度不超过20个
strcpy(yanse, YANSE); // 把输入的颜色字符串输入
xinghao=XINGHAO; // 把输入的型号字符输入到内存中
changjia=new char[20]; // 创建厂家的字符长度不超过20个字符
strcpy(changjia, CHANGJIA); // 输入的厂家字符输入到内存中
value=VALUE;
return ;
}
JIADIAN::~JIADIAN() // 家电类的析构函数
{
delete pingming; //分别释放输入的品名、颜色、厂家的内存单元
delete yanse;
delete changjia;
return ;
}
char* JIADIAN::getpingming() // 定义基类的取品名函数
{return pingming;}
int JIADIAN::getkind() // 定义基类的getkind函数
{return ab;}
JIADIAN JIADIAN ::operator=(JIADIAN& jiadian) // 定义基类的=号赋值重载运算函数
{
this->ab=jiadian.ab;
strcpy(this->pingming,jiadian.pingming);
strcpy(this->pingming,jiadian.yanse);
this->xinghao=jiadian.xinghao;
strcpy(this->pingming,jiadian.changjia);
this->value=jiadian.value;
return *this;
}
void JIADIAN:: print()
{ return ;}

TV::TV(char *PINGMING=NULL, char *YANSE=NULL, int XINGHAO=20, char *CHANGJIA=NULL, int VALUE=1000): //定义电视机类的构造函数,假定电视机类的价格是1000元
JIADIAN(PINGMING, YANSE, XINGHAO, CHANGJIA, VALUE)
{ ab=1;
return ;
}
TV ::~TV() //定义电视机类的析构函数
{return ;}

void TV:: print() //定义电视机类的打印函数
{
cout<<"1 TV"<<" " <<pingming<<" " <<yanse<<" " <<xinghao<<" " <<changjia
<<" " << value<<" "<<endl;
}
DVD::DVD(char *PINGMING=NULL, char *YANSE=NULL, int XINGHAO=20, char *CHANGJIA=NULL, int VALUE=1000): //定义DVD类的构造函数
JIADIAN(PINGMING, YANSE, XINGHAO, CHANGJIA, VALUE)
{ ab=2;
return ;
}
DVD::~DVD() //定义DVD类的析构函数
{return ;}
void DVD:: print() //定义DVD类的打印函数
{
cout<<"2 DVD" << " " <<pingming<< " " <<yanse<<" " <<xinghao<<" "<<changjia
<<" " << value<<" "<<endl;
}
DVDTV::DVDTV(char *PINGMING=NULL, char *YANSE=NULL, int XINGHAO=20, char *CHANGJIA=NULL, int VALUE=1600): //定义带有DVD类的电视机类的构造函数
JIADIAN(PINGMING, YANSE, XINGHAO, CHANGJIA, VALUE)
{
return ;
}
DVDTV::~DVDTV() // 定义带有DVD的电视机类的析构函数
{return ;}
void DVDTV:: print() // 定义带有DVD的电视机类的打印函数
{
cout<<"3 DVDTV" << " " <<pingming<< " " <<yanse<<" " <<xinghao<<" "<<changjia
<<" " << value<<" "<<endl;
}

#include"tou.h"
int main()
{
JIADIAN *scores[10000];//库存的最大容量设定为10000
char pm[20]; //品名的最大字符串长度
char ys[20]; //颜色的最大字符串长度
int xh; //型号为整型变量
char cj[20]; //厂家的最大字符串长度
int i,j,n,a=0;//n为要选择的1 2 3当中的一个,初始化为0,i、j为循环变量 a=0 正常进行功能,a=1输出break前的那个语句。
static int k=0; //k静态全局变量,为库存量,初始化为0
cout<<"********"<<"欢迎进入本公司库存管理系统"<<"********"
<<"********"<<endl;
cout<<"*****请选择: 1 2 3当中的一个*****"<<endl <<"*** 1为查找功能 2为增加功能 3为删除功能***"<<endl;

while(cin>>n&&(n!=7)) // 输入1 2 3 的功能 实现按7键退出的功能
{
switch(n)
{
case 1: //实现按品名进行查找、显示功能
cout<<"请输入要查找的品名: ";
cin>>pm;
for(i=0;i<k;i++) //对库存内的产品进行循环查找
{

if(strcmp(pm,scores[i]->getpingming())==0) // 如果查到所要查找的品名
{scores[i]->print();a=1;} // 打印该种品名的相关信息
}
if(a){a=0;}
else
cout<<"查找不到您所需要的结果!";
break;

case 2: //实现按品名进行增加功能
cout<<"请再次选择所要增加的产品代号"<<" 1 TV; 2 DVD; 3 DVDTV"<<endl;
cout<<"请输入要增加的品名代号: ";
cin>>n;
cout<<"请输入要增加的该产品的品名、颜色、型号、厂家: "<<endl;
switch(n)
{
case 1: // 增加TV
cin>>pm>>ys>>xh>>cj;
scores[k++]=new TV(pm, ys,xh ,cj,1500);
break;
case 2: // 增加DVD
cin>>pm>>ys>>xh>>cj;
scores[k++]=new DVD(pm, ys, xh, cj,500);
break;
case 3: // 增加DVDTV
cin>>pm>>ys>>xh>>cj;
scores[k++]=new DVDTV(pm, ys,xh,cj,1600);
break;
default:
cout<<"不能把这种品名加入本库存中"<<endl;
break;
}
cout<<"增加后的成员如下:"<<endl;
for(i=0;i<k;i++)
scores[i]->print();
break;
case 3: // 实现按品名进行删除功能
cout<< "请输入要删除的产品的代号: "<<endl;
cout<< "1 TV; 2 DVD; 3 DVDTV"<<endl;
cin>>n;
cout<< "请输入要删除的品名: ";
switch(n)
{
case 1:
cin>>pm;
for(i=0;i<k;i++)
{
if(scores[i]->getkind()==1&&strcmp(pm,scores[i]->getpingming())==0)
{
for(j=i;j<k-1;j++)
scores[j]=scores[j+1];
k--;
}
}
break;
case 2:
cin>>pm;
for(i=0;i<k;i++)
{
if(scores[i]->getkind()==2&&strcmp(scores[i]->getpingming(),pm)==0)
{
for(j=i;j<k-1;j++)
scores[j]=scores[j+1];
k--;
}
}
break;
case 3:
cin>>pm;
for(i=0;i<k-1;i++)
{
if(scores[i]->getkind()==3&&strcmp(scores[i]->getpingming(),pm)==0)
{
for(int j=i;j<k-1;j++)
scores[j]=scores[j+1];
k--;
}

}
break;
default:
break;
}
cout<<"删除后的剩余成员如下:"<<endl;
for(i=0;i<k;i++)
scores[i]->print();
break;
default:
break;
}
cout<<"需要退出请按7键或者继续操作."<<endl;
}
//system("pause");
return 0;
}

两个文件放在一个工程里编译下就可以了
我刚才编译了没问题的
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我的世界成就怎么打开,我的世界怎么进冒险模
迷达小寨地址有知道的么?有点事想过去
怎么才能忘了一个人?
求好听的小提琴经典曲,舒缓安静但不是悲伤的
数学可以带计算器么?同上
“不妄求,则心安;不妄做,则身安”翻译成英
三店中路/金北二路(路口)怎么去啊,有知道地
清时期,李鸿章出使各国时曾经为长国歌闹一笑
asp数据库插入问题,帮我看看哪错了··
诗歌常见风格及作用,求应用层各协议及端口号
烧鹅怎么切才对,是先把头切掉还是先把鹅分开
怎么怀孕了四个多月左边下腹会经常痛这是怎么
如何判断一个新手机是否行货(正品)
大王山火车票代售点怎么去啊,有知道地址的么
幻想证123
推荐资讯
为焊工点赞的句子,从零基础学焊工,并且要拿
我们的人生观不同、放的下你的高傲才能撑得你
非常思念一个人,但又害怕与她聊天,该怎么办呢
信阳好光彩照明地址在什么地方,想过去办事
描写友情的古风句子
什么智能手机声音大,智能手机那个声音大
忐忑怎么读音是什么
白居易湖石诗
笛子独秦什么歌曲最适合
小学一年级语文作业教师评语
"士先器识而后文艺"的意思和出处?
电容变小了是不是会导致电机发热,然后不转…
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?