• 大小: 9KB
    文件类型: .cpp
    金币: 1
    下载: 0 次
    发布日期: 2021-05-14
  • 语言: C/C++
  • 标签:

资源简介

编写一个影碟出租管理程序 影碟信息的组成部分为:碟片名称、国家、类型、借阅标记等 出租信息的组成部分为:会员名、碟片名称、借阅日期、归还日期、租金等

资源截图

代码片段和文件信息

#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指

评论

共有 条评论

相关资源