资源简介
编写一个影碟出租管理程序
影碟信息的组成部分为:碟片名称、国家、类型、借阅标记等
出租信息的组成部分为:会员名、碟片名称、借阅日期、归还日期、租金等
代码片段和文件信息
#include
#include
#include
#include
using namespace std;
class yingdie //影碟类
{
char num[20];
char name[20];
char country[20];
char type[20];
int tag;//标记借阅 0:借出 1:在库
public:
yingdie *next;
yingdie()
{
num[0]=0; name[0]=0; country[0]=0; type[0]=0;next=NULL;tag=1;
}
~yingdie(){}
char *getname(){return name;} //获取影碟名称
int gettag(){return tag;}
void Input() //输入影碟信息
{
cout<<“请输入影碟编号:“; cin>>num; cout< cout<<“请输入影碟名称:“; cin>>name; cout< cout<<“请输入影碟国家:“; cin>>country; cout< cout<<“请输入影碟类型:“; cin>>type; cout< }
void Output() //输出影碟信息
{
cout< cout< cout<<“\t“< cout< }
friend class cangku;
};
class huiyuan //会员类
{
char hy_name[20];
public:
int rent_time[2]; //借出时间(包含月和日)
int return_time[2]; //归还时间(包含月和日)
double money; //应支付的钱
huiyuan *next1;
huiyuan()
{
hy_name[0]=0; money=0;
for(int i=0;i<2;i++)
{
rent_time[i]=0;
return_time[i]=0;
}
}
~huiyuan(){}
char *gethyname(){return hy_name;} //获取会员名称
void sethyname(char *hyname) //设置会员名称
{
strcpy(hy_namehyname);
}
friend class cangku;
};
class cangku
{
yingdie *head*tail;
huiyuan *top*end;
public:
cangku()
{
head=NULL;
tail=NULL;
top=NULL;
end=NULL;
}
~cangku()
{
yingdie* p;
huiyuan *q;
while(head)
{
p=head;
head=head->next;
delete p;
}
while(top)
{
q=top;
top=top->next1;
delete q;
}
}
void addyd();
void addhy();
void Delete();
void search();
void print();
void chuzu();
void guihuan();
};
void cangku::addyd() //创建影碟链表
{
cout<<“\n\t\t\t\t** 增加影碟的相关信息 **\t\t\n\n“;
char ch;
A: yingdie *p=new yingdie;
p->Input();
p->tag=1;
p->next=NULL;
if(tail)
tail->next=p;
else
head=p;
tail=p;
while(1)
{
cout<<“是否继续输入?(Y/N)\n“;
cin>>ch;
if(ch==‘Y‘||ch==‘y‘)
goto A;
if(ch==‘N‘||ch==‘n‘)break;
}
}
void cangku::addhy() //创建会员链表
{
B: huiyuan *p=new huiyuan;
char hyname[20]ch;
cout<<“\n\t\t\t\t** 增加会员的相关信息 **\t\t\n\n“;
cout<<“请输入要添加的会员名称:\n“;
cin>>hyname;
p->sethyname(hyname);
p->next1=NULL;
if(end)
end->next1=p;
else
top=p;
end=p;
while(1)
{
cout<<“是否继续输入?(Y/N)\n“;
cin>>ch;
if(ch==‘Y‘||ch==‘y‘)
goto B;
if(ch==‘N‘||ch==‘n‘)break;
}
}
void cangku::Delete() //删除影碟
{
cout<<“\n\t\t\t\t** 删除影碟 **\t\t\n\n“;
yingdie *p1*p2;
char nam[20];
char a[20];
if(head==NULL)
{
cout<<“\t\t现无任何记录!\n“;
}
else
{
p2=head;
cout<<“\n\n请输入要删除的影碟名称:\n“;
cin>>nam;
while(strcmp(p2->getname()nam)!=0&&p2->next!=NULL)
{
p1=p2;
p2=p2->next;
}
if(strcmp(p2->namenam)==0)
{
if(p2==head) //如找到的节点为第一个节点
head=p2->next; //则head指
评论
共有 条评论