音像管理系统C++代码.docx
《音像管理系统C++代码.docx》由会员分享,可在线阅读,更多相关《音像管理系统C++代码.docx(29页珍藏版)》请在冰豆网上搜索。
音像管理系统C++代码
#include
不要抄袭哦。
。
。
。
。
。
classguke
{
private:
charno[5];//顾客编号
charname[10];//顾客姓名
public:
voidget()//输入顾客资料
{
cout<<"请输入顾客编号:
";
cin>>no;
cout<<"请输入顾客的姓名:
";
cin>>name;
}
voidprint()//打印顾客资料
{
cout<<"顾客编号:
"<cout<<"顾客的姓名:
"<}
char*getno()
{
return(no);
}
char*getname()
{
return(name);
}
};
//影碟类
classdie
{
private:
charcode[20];//影碟编号
chartitle[40];
charstar1[40];//主演1
charstar2[40];//主演2
charproducer[40];//制片人
chardirector[40];//导演
charproductionCo[40];//制片公司
public:
charflag;//标记
die()//利用构造函数,将flag变量默认为'N',即没有借出
{
flag='N';
}
voidget()//输入影碟资料
{
cout<<"请输入影碟编号:
";
cin>>code;
cout<<"请输入影碟名称:
";
cin>>title;
cout<<"请输入主演1:
";
cin>>star1;
cout<<"请输入主演2:
";
cin>>star2;
cout<<"请输入制片人:
";
cin>>producer;
cin>>productionCo;
}
voidprint()
{
cout<<"影碟编号:
"<cout<<"影碟名称:
"<
cout<<"主演1:
"<cout<<"主演2:
"<cout<<"制片人:
"<cout<<"导演:
"<cout<<"制片公司:
"<}
voidgetflag()
{
cout<<"确认要租此碟吗?
[Y/N]";
cin>>flag;
}
char*getcode()
{
return(code);
}
char*gettitle()
{
return(title);
}
char*getstar1()
{
return(star1);
}
char*getstar2()
{
return(star2);
}
char*getproducer()
{
{
return(director);
}
char*getproductionCo()
{
return(productionCo);
}
};
classgukeborrowdie//用于记录租碟情况的类
{
public:
charno[5];//顾客编号
charcode[20];//影碟编号
voidborrowdie()//借碟
{
cout<<"请输入您的编号:
";
cin>>no;
cout<<"请输入您要租的影碟的编号:
";
cin>>code;
}
voidprint()//显示
{
cout<<"您的编号:
"<cout<<"您要租的影碟的编号是:
"<}
};
gukegukesz[500];//(顾客库)
diedian[500];//(影碟库)
gukeborrowdiegkbd[500];//定义租碟记录数组(租碟库)
fstreamfile_guke;
fstreamfile_die;
fstreamfile_gkbd;
intg=0;//记录顾客个数
intdd=0;//记录影碟数量
intb=0;//记录租碟记录
voidcshguke()
{
file_guke.open("guke.txt",ios:
:
in);//打开文件
file_guke.read((char*)&gukesz[0],sizeof(gukesz[0]));//将文件内容读到读者库数组的第一个对象
if(strlen(gukesz[0].getno())==0)
{
cout<<"顾客库信息为空,请建立顾客信息。
"<}
else
{
while(!
file_guke.eof())//否则将文件后面的内容读到顾客库数组后面的对象之中,从而达到初始化的效果
{
g++;//顾客就进行增减
file_guke.read((char*)&gukesz[g],sizeof(gukesz[g]));
if(g>=500)
{
cout<<"顾客库已满!
"<break;
}
}
cout<<"初始化顾客库成功……"<}
file_guke.close();
}
voidcshdie()//初始化影碟库函数
{
file_die.open("diefile.txt",ios:
:
in);
file_die.read((char*)&dian[0],sizeof(dian[0]));
if(strlen(dian[0].getcode())==0)
{
cout<<"影碟库信息为空,请建立影碟信息。
"<}
else
{
while(!
file_die.eof())
{
dd++;
file_die.read((char*)&dian[dd],sizeof(dian[dd]));
if(dd>=500)
{
cout<<"影碟库已满!
"<break;
}
}
cout<<"初始化影碟库成功……"<}
file_die.close();
}
voidcshgkbd()//初始化租碟库
{
file_gkbd.open("gkbd.txt",ios:
:
in);
file_gkbd.read((char*)&gkbd[0],sizeof(gkbd[0]));
if(strlen(gkbd[0].no)==0)
{
cout<<"租碟库信息为空,暂时无租碟情况。
"<}
else
{
while(!
file_gkbd.eof())
{
b++;
file_gkbd.read((char*)&gkbd[b],sizeof(gkbd[b]));
if(b>=500)
{
cout<<"租碟库已满,请速让顾客归还影碟。
"<break;
}
}
cout<<"初始化租碟库成功……"<}
file_gkbd.close();
}
voidborrowdie()//租碟函数
{
intd=0;//逻辑判断值
inti=0;
charflag='y';
gukeborrowdietemp;
while(flag=='y'||flag=='Y')
{
temp.borrowdie();
for(i=0;i{
if(strcmp(temp.no,gukesz[i].getno())==0)
{
d=1;//为1则有此编号,否则无此编号
break;
}
}
if(d==0)
{
cout<<"对不起!
您的编号不存在!
"<return;
}
intd=0,i=0;//恢复初始值,进行书的编号的判断
for(i=0;i
{
if(strcmp(temp.code,dian[i].getcode())==0)
{
d=1;//同上
break;
}
}
if(d==0)
{
cout<<"对不起!
我们这里没有此影碟!
"<return;
}
intj=0;
for(j=0;j
{
if(strcmp(temp.code,gkbd[j].code)==0)
{
cout<<"非常抱歉,此影碟已经租出。
"<return;
}
}
dian[i].getflag();
if(dian[i].flag=='Y'||dian[i].flag=='y')
{
file_gkbd.open("gkbd.txt",ios:
:
app);
dian[i].print();
gkbd[b]=temp;
file_gkbd.write((char*)&gkbd[b],sizeof(gkbd[b]));
b++;
cout<<"租碟成功!
请按时归还!
"<file_gkbd.close();
}
else
{
cout<<"您不中意此影碟吗?
租碟未成功。
"<}
cout<<"要继续租此影碟吗?
[Y/N]";
cin>>flag;
}
}
voidPrintborrowdie()
{
inti=0;
for(i=0;i
{
gkbd[i].print();
cout<}
}
voidborrow()
{
charchoice;
cout<<"1.凭证借碟2.查看借碟情况0.返回上一级菜单"<cout<<"请输入功能代码:
";
cin>>choice;
switch(choice)
{
case'1':
borrowdie();
break;
case'2':
Printborrowdie();
break;
case'0':
return;
break;
default:
cout<<"输入错误,请重新输入:
"<}
}
voidreplacedie()
{
charcode[20];
inti=0,d=0;
cout<<"您要还的影碟的编号是:
";
cin>>code;
for(i=0;i
{
if(strcmp(code,gkbd[i].code)==0)
{
d=1;//逻辑判断,为1则租出,否则没有租出
break;//因为影碟编号具有唯一性,故退出循环
}
}
if(d==0)
{
cout<<"此碟尚未租出或者不存在。
"<return;
}
else
{
cout<<"此碟租出情况如下:
"<gkbd[i].print();
}
charflag;
cout<<"确认要还此碟吗?
[Y/N]";
cin>>flag;
if(flag=='y'||flag=='Y')
{
intp,j=0;
p=b-i;//P为要循环的次数
for(j=0;j<=p;j++)
{
gkbd[i]=gkbd[i+1];
i++;
}
b--;
//以下为观察借碟数组变化的代码
for(i=0;i
{
gkbd[i].print();
cout<}
}
}
voidgkbdwritefile()
{
inti=0;
file_gkbd.open("gkbd.txt",ios:
:
out);
for(i=0;i
{
file_gkbd.write((char*)&gkbd[i],sizeof(gkbd[i]));
}
file_gkbd.close();
}
voidaddguke()
{
if(g>=500)
{
cout<<"客户库已经满,无法添加!
"<return;
}
charflag='y';
intj=0;
intp=0;//逻辑判断值
guketemp;
file_guke.open("gukefile.txt",ios:
:
app);
while(flag=='Y'||flag=='y')
{
p=0;//假设编号为不存在
temp.get();
for(j=0;j{
if(strcmp(temp.getno(),gukesz[j].getno())==0)
{
cout<<"对不起!
此客户编号已经存在!
"<p=1;//为1则存在,为0则不存在
}
}
if(p==0)
{
gukesz[g]=temp;
file_guke.write((char*)&gukesz[g],sizeof(gukesz[g]));//写入客户库
cout<<"\t\t写入客户库成功……"<g++;
}
cout<<"您还要继续吗?
[Y/N]";
cin>>flag;
}
file_guke.close();
}
voidadddie()
{
if(dd>=500)
{
cout<<"影碟库已经满,无法添加!
"<return;
}
charf='Y';
intj=0;
intp=0;
dietemp;
file_die.open("diefile.txt",ios:
:
app);
while(f=='Y'||f=='y')
{
p=0;
temp.get();
for(j=0;j
{
if(strcmp(temp.getcode(),dian[j].getcode())==0)
{
cout<<"对不起!
此影碟编号已经存在!
"<p=1;
}
}
if(p==0)
{
dian[dd]=temp;
file_die.write((char*)&dian[b],sizeof(dian[dd]));
cout<<"\t\t写入影碟库成功……"<dd++;
}
cout<<"要继续吗?
[Y/N]";
cin>>f;
}
file_die.close();
};
voidgukelist()
{
for(intj=0;j{
gukesz[j].print();
cout<}
}
//列出所有影碟
voiddielist()
{
for(intj=0;j
{
dian[j].print();
cout<}
}
//客户编号查找函数
voidgukeFind_no()
{
intj=0;
intp=0;//保存对象下标
intd=0;//逻辑判断值
charflag='Y';
charno[5];
while(flag=='Y'||flag=='y')
{
d=0;//默认为没有找到
cout<<"请输入要查找的客户的客户编号:
";
cin>>no;
for(j=0;j{
if(strcmp(no,gukesz[j].getno())==0)
{
p=j;//将下标传给p
d=1;//为1则找到对象
break;//因为code具有唯一性,故后面的不用找了,所以跳出循环.
}
}
if(d==1)
{
gukesz[p].print();
}
else
{
cout<<"非常抱歉!
没有找到你想要的!
"<}
cout<<"要继续查找吗?
[Y/N]";
cin>>flag;
}
}
//影碟编号查找函数
voiddieFind_code()
{
intj=0;
intp=0;//保存对象
intd=0;//逻辑判断值
charflag='Y';
charcode[20];
while(flag=='Y'||flag=='y')
{
d=0;//默认为没有找到
cout<<"请输入要查找的影碟的编号:
";
cin>>code;
for(j=0;j
{
if(strcmp(code,dian[j].getcode())==0)
{
p=j;//将下标传给p
d=1;//为1则找到对象
break;//因为code具有唯一性,故后面的不用找了,所以跳出循环.
}
}
if(d==1)
{
dian[p].print();
}
else
{
cout<<"非常抱歉!
没有找到你想要的!
"<}
cout<<"要继续查找吗?
[Y/N]";
cin>>flag;
}
}
//客户姓名查找模块
voidgukeFind_name()
{
charname[10];
charflag='Y';
intd=0;//逻辑判断值
while(flag=='Y'||flag=='y')
{
d=0;//默认为没有找到.
cout<<"请输入要查找客户的姓名:
";
cin>>name;
for(inti=0;i{
if(strcmp(name,gukesz[i].getname())==0)
{
d=1;//找到记录,将d值变为1
gukesz[i].print();//因为姓名不具有唯一性,所以得循环完.
cout<}
}
if(d==0)
{
cout<<"非常抱歉!
没有找到你想要的!
"<}
cout<<"要继续查找吗?
[Y/N]";
cin>>flag;
}
}
//影碟名称查找模块
voiddieFind_title()
{
chartitle[40];
charflag='Y';
intd=0;
while(flag=='Y'||flag=='y')
{
d=0;
cout<<"请输入要查找影碟的名称:
";
cin>>title;
for(inti=0;i
{
if(strcmp(title,dian[i].gettitle())==0)
{
d=1;
dian[i].print();
cout<}
}
if(d==0)
{
cout<<"非常抱歉!
没有找到你想要的!
"<}
cout<<"要继续查找吗?
[Y/N]";
cin>>flag;
}
}
//客户查找
voidgukeFind()
{
charflag;
while
(1)
{
cout<<"1.按客户编号查找2.按客户姓名查找0.返回上一级菜单"<cout<<"请输入功能代码:
";
cin>>flag;
switch(flag)
{
case'1':
gukeFind_no();//编号查找模块
break;
case'2':
guk