售后服务管理系统 合院何浩.docx
《售后服务管理系统 合院何浩.docx》由会员分享,可在线阅读,更多相关《售后服务管理系统 合院何浩.docx(18页珍藏版)》请在冰点文库上搜索。
售后服务管理系统合院何浩
#include
#include
#include
#include//输入/输出文件流类
usingnamespacestd;
constintMaxr=100;//最多的被服务人员(有公司的服务人员数决定)
constintMaxb=100;//最多的项目
constintMaxbor=5;//每位被服务人员每次进行的最多服务项目
//被服务人员类,实现对被服务人员的信息的描述
classService
{
private:
inttag;//删除标记1:
已删0:
未删
intno;//被服务人员编号
charname[10];//被服务人员姓名
intborProject[Maxbor];//所服务项目
public:
Service(){}
char*getname(){returnname;}//获取姓名
intgettag(){returntag;}//获取删除标记
intgetno(){returnno;}//获取被服务人员编号
voidsetname(charna[])//设置姓名
{
strcpy(name,na);
}
voiddelProject(){tag=1;}//设置删除标记1:
已删0:
未删
voidaddService(intn,char*na)//增加被服务人员
{
tag=0;
no=n;
strcpy(name,na);
for(inti=0;iborProject[i]=0;
}
voidborrowProject(intProjectid)//服务操作
{
for(inti=0;i{
if(borProject[i]==0)
{
borProject[i]=Projectid;
return;
}
}
}
intretProject(intProjectid)//已经服务对象
{
for(inti=0;i{
if(borProject[i]==Projectid)
{
borProject[i]=0;
return1;
}
}
return0;
}
voiddisp()//读出被服务人员信息
{
cout<[";
for(inti=0;iif(borProject[i]!
=0)
cout<cout<<"]"<}
};
//被服务人员类库,实现建立被服务人员的个人资料
classRDatabase
{
private:
inttop;//被服务人员记录指针
Serviceread[Maxr];//被服务人员记录
public:
RDatabase()//构造函数,将Service.txt读到read[]中
{
Services;
top=-1;
fstreamfile("Service.txt",ios:
:
in);//打开一个输入文件
while
(1)
{
file.read((char*)&s,sizeof(s));
if(!
file)break;
top++;
read[top]=s;
}
file.close();//关闭Service.txt
}
voidclear()//删除所有被服务人员信息
{
top=-1;
}
intaddService(intn,char*na)//添加被服务人员时先查找是否存在
{
Service*p=query(n);
if(p==NULL)
{
top++;
read[top].addService(n,na);
return1;
}
return0;
}
Service*query(intServiceid)//按编号查找
{
for(inti=0;i<=top;i++)
if(read[i].getno()==Serviceid&&
read[i].gettag()==0)
{
return&read[i];
}
returnNULL;
}
voiddisp()//输出所有被服务人员信息
{
for(inti=0;i<=top;i++)
read[i].disp();
}
voidServicedata();//被服务人员库维护
~RDatabase()//析构函数,将read[]写到Service.txt文件中
{
fstreamfile("Service.txt",ios:
:
out);
for(inti=0;i<=top;i++)
if(read[i].gettag()==0)
file.write((char*)&read[i],sizeof(read[i]));
file.close();
}
};
voidRDatabase:
:
Servicedata()
{
charchoice;
charrname[20];
intServiceid;
Service*r;
while(choice!
='0')
{
cout<<"\n\n\t\t\t服务维护\n\n\n\t\t1新增\n\n\t\t2更改\n\n\t\t3删除\n\n\t\t4查找\n\n\t\t5显示\n\n\t\t6全删\n\n\t\t0退出"<cin>>choice;
switch(choice)
{
case'1':
cout<<"输入被服务人员编号:
";
cin>>Serviceid;
cout<<"输入被服务人员姓名:
";
cin>>rname;
addService(Serviceid,rname);
break;
case'2':
cout<<"输入被服务人员编号:
";
cin>>Serviceid;
r=query(Serviceid);
if(r==NULL)
{
cout<<"该人员不存在"<break;
}
cout<<"输入新的姓名:
";
cin>>rname;
r->setname(rname);
break;
case'3':
cout<<"输入被服务人员编号:
";
cin>>Serviceid;
r=query(Serviceid);
if(r==NULL)
{
cout<<"该被服务人员不存在"<break;
}
r->delProject();
break;
case'4':
cout<<"读入被服务人员编号:
";
cin>>Serviceid;
r=query(Serviceid);
if(r==NULL)
{
cout<<"该人员不存在"<break;
}
r->disp();
break;
case'5':
disp();
break;
case'6':
clear();
break;
default:
cout<<"输入错误,请从新输入:
";break;
}
}
}
//项目类,实现对项目的描述,项目的编号,项目名称等
classProject
{
private:
inttag;//删除标记1:
已删0:
未删
intno;//项目编号
charname[20];//项目名称
intonshelf;//是否再架1:
未服务2:
已服务
public:
Project(){}
char*getname(){returnname;}//获取姓名
intgetno(){returnno;}//获取项目编号
intgettag(){returntag;}//获取删除标记
voidsetname(charna[])//设置项目名称
{
strcpy(name,na);
}
voiddelProject(){tag=1;}//删除项目
voidaddProject(intn,char*na)//增加项目
{
tag=0;
no=n;
strcpy(name,na);
onshelf=1;
}
intborrowProject()//服务操作
{
if(onshelf==1)
{
onshelf=0;
return1;
}
return0;
}
voidretProject()//已服务操作
{
onshelf=1;
}
voiddisp()//输出项目
{
cout<<<(onshelf==1?
"欢迎使用本程序":
"请服务下一位")<}
};
//项目库类,实现对项目的维护,查找,删除等
classBDatabase
{
private:
inttop;//项目记录指针
ProjectProject[Maxb];//项目记录
public:
BDatabase()//构造函数,将Project.txt读到Project[]中
{
Projectb;
top=-1;
fstreamfile("Project.txt",ios:
:
in);
while
(1)
{
file.read((char*)&b,sizeof(b));
if(!
file)break;
top++;
Project[top]=b;
}
file.close();
}
voidclear()//全删
{
top=-1;
}
intaddProject(intn,char*na)//增加项目
{
Project*p=query(n);
if(NULL==p)
{
top++;
Project[top].addProject(n,na);
return1;
}
return0;
}
Project*query(intProjectid)//查找项目
{
for(inti=0;i<=top;i++)
if(Project[i].getno()==Projectid&&Project[i].gettag()==0)
{
return&Project[i];
}
returnNULL;
}
voidProjectdata();//项目库维护
voiddisp()
{
for(inti=0;i<=top;i++)
if(Project[i].gettag()==0)
Project[i].disp();
}
~BDatabase()//析构函数,将Project[]写到Project.txt文件中
{
fstreamfile("Project.txt",ios:
:
out);
for(inti=0;i<=top;i++)
if(Project[i].gettag()==0)
file.write((char*)&Project[i],sizeof(Project[i]));
file.close();
}
};
voidBDatabase:
:
Projectdata()
{
charchoice;
charbname[40];
intProjectid;
Project*b;
while(choice!
='0')
{
cout<<"\n\n\n\t\t\t项目维护"<cout<<"\t\t1新增服务项目\n\t\t2更改服务项目\n\t\t3删除服务项目\n\t\t4查找服务项目\n\t\t5显示服务项目\n\t\t6全删\n\t\t0退出"<cin>>choice;
switch(choice)
{
case'1':
cout<<"输入项目编号:
"<cin>>Projectid;
cout<<"输入项目名称:
"<cin>>bname;
addProject(Projectid,bname);
break;
case'2':
cout<<"输入项目编号:
"<cin>>Projectid;
b=query(Projectid);
if(b==NULL)
{
cout<<"该项目不存在"<break;
}
cout<<"输入新的项目:
"<cin>>bname;
b->setname(bname);
break;
case'3':
cout<<"读入项目编号:
"<cin>>Projectid;
b=query(Projectid);
if(b==NULL)
{
cout<<"该项目不存在"<break;
}
b->delProject();
break;
case'4':
cout<<"读入项目编号:
"<cin>>Projectid;
b=query(Projectid);
if(b==NULL)
{
cout<<"该项目不存在"<break;
}
b->disp();
break;
case'5':
disp();
break;
case'6':
clear();
break;
default:
cout<<"输入错误,请从新输入:
";
}
}
}
//main()函数的实现,程序的主界面的引导
voidmain()
{
charchoice;
intProjectid,Serviceid;
RDatabaseServiceDB;
Service*r;
BDatabaseProjectDB;
Project*b;
while(choice!
='0')
{
cout<cout<<"\t\t\t1服务\n\n\t\t\t2维修\n\n\t\t\t3项目维护\n\n\t\t\t4消费者维护\n\n\t\t\t0离开"<cin>>choice;
switch(choice)
{
case'1':
cout<<"服务:
请输入被服务人员编号:
";
cin>>Serviceid;
cout<<"服务项目编号:
";
cin>>Projectid;
r=ServiceDB.query(Serviceid);//按编号查找
if(NULL==r)
{
cout<<"不存在该被服务人员,不能进行服务"<break;
}
b=ProjectDB.query(Projectid);
if(b==NULL)
{
cout<<"不存在该服务项目,请进行下一项服务"<break;
}
if(b->borrowProject()==0)
{
cout<<"该项目正在服务,请进行下一项服务"<break;
}
r->borrowProject(b->getno());
break;
case'2':
cout<<"还书\n被服务人员编号:
";
cin>>Serviceid;
cout<<"服务编号:
";
cin>>Projectid;
r=ServiceDB.query(Serviceid);
if(r==NULL)
{
cout<<"不存在该人员,不能进行服务"<break;
}
b=ProjectDB.query(Projectid);
if(b==NULL)
{
cout<<"不存在该项目,不能进行服务·"<break;
}
b->retProject();
r->retProject(b->getno());
break;
case'3':
ProjectDB.Projectdata();
break;
case'4':
ServiceDB.Servicedata();
break;
default:
cout<<"输入错误,请从新输入:
";
}
}
}