帮我看一段一个图书管理代码不知道错在哪里
#include<iostream.h>
#include<stdio.h>
#define LIST_INIT_SIZE 100
#define LISTINCREMENT 10
#include<malloc.h>
typedef struct{
char name[10];
char info;
int count;
}Book;
typedef struct{
Book *elem;
int length;
int listsize;
}SqList;
int InitLIst_Sq(SqList &L)
{
L.elem=(Book*)malloc(LIST_INIT_SIZE*sizeof(Book));
L.length=0;
L.listsize=LIST_INIT_SIZE;
return 1;
}
int ListInsert_Sq(SqList &L,int i,Book e)//新书入库
{
Book *q;
q=L.elem+i-1;
*q=e;
L.length=0;
++L.length;
return 1;
}
void check(SqList &L)//书库查询
{
int i=1,j=0;
cout<<"书号:"<<L.length;
for(;i<=L.length;i++)
{
cout<<"书名:";
for(j=0;!((L.elem)->name[j]=='\0');j++)
cout<<L.elem->name[j];
cout<<" 是否借出:"<<L.elem->info<<endl;
}
}
void lendbook(SqList &L)//借阅查询
{
int i,j;
cout<<"已借出书籍:"<<endl;
for(i=0;i<=L.length;i++)
if((L.elem+i)->info=='Y'||'y')
{
for(j=0;!((L.elem)->name[j]=='\0');j++)
cout<<L.elem->name[j];
cout<<endl;
}
else
continue;
}
void lend(SqList &L,int c)//借书
{
int i,j;
cout<<L.length;
cout<<"未借出的书藉:"<<endl;
for(i=0;i<=L.length;i++)
{
if((L.elem+i)->info=='N'||'n')
{
cout<<L.elem->count<<".";
for(j=0;!((L.elem)->name[j]=='\0');j++)
cout<<L.elem->name[j];
cout<<endl;
}
else
continue;
}
(L.elem+c-1)->info='n';
cout<<"\n"<<"已成功借书。"<<endl;
}
void showmenu()
{
cout<<"欢迎进入图书管理系统"<<endl;
cout<<"1.新书入库。"<<endl;
cout<<"2.借阅查询。"<<endl;
cout<<"3.书库查询。"<<endl;
cout<<"4.借书。"<<endl;
cout<<"请选择:";
}
void main()
{
char ch,sel,name[10];
int i=0,x,d=0;
SqList test;
InitLIst_Sq(test);
Book newbook;
for(;ch=='y'||'Y';)
{
showmenu();
cin>>sel;
if(sel=='1')
{
cout<<"请输入图书名称:";
d++;
cout<<d;
for(i=0;i<10;i++)
cin>>newbook.name[i];
newbook.info='n';
newbook.count=1;
ListInsert_Sq(test,d,newbook);
}
if(sel=='2')
lendbook(test);
if(sel=='3')
check(test);
if(sel=='4')
{
cout<<"请输入要借书的书号";
cin>>x;
lend(test,x);
}
}
}
我用的是顺序表 我在输入第二本书时在书库查询中还是出现第一本的信息