📄 createfile.cpp
字号:
# include <iostream.h>
# include <string>
# include <math.h>
# include <stdio.h>
# include <malloc.h>
//追加一条图书主数据库记录
void AppeDBaseRec(BookDbaseFile &df)
{
int i;
i=++df.len;
cout<<"书号 书名 作者 出版社 分类 藏书量"<<endl;
cin>>df.BookDbase[i].bno>>df.BookDbase[i].bname>>df.BookDbase[i].author>>df.BookDbase[i].press>>df.BookDbase[i].sortno>>df.BookDbase[i].storenum;
df.BookDbase[i].borrownum=0;
}
//修改书号索引表
void ChangeBnoIdxF(BookDbaseFile &df,BnoIdxFile &bif)
{
int i,j,k;
char sh[4];
i=df.len;
strcpy(sh,df.BookDbase[i].bno);
j=bif.len;
k=1;
while(j>=1)
{
if(strcmp(sh,bif.BnoIdx[j].bno)>0)
{k=j+1;break;}
j--;
}
if(bif.len>0)
for(j=bif.len;j>=k;j--)
bif.BnoIdx[j+1]=bif.BnoIdx[j];
strcpy(bif.BnoIdx[k].bno,sh);
bif.BnoIdx[k].RecNo=i;
bif.len++;
}
//修改书名索引以及书名链头索引表
void ChangeLinkHeadF1(BookDbaseFile &df,LHFile1 &lhf1)
{
int i,j,k,m;
char sm[20];
i=df.len;
strcpy(sm,df.BookDbase[i].bname);
j=1; k=0;
while(j<=lhf1.len1)
{
if(strcmp(sm,lhf1.LHFrec1[j].bname)==0)
{k=j;break;}
j++;
}
if(k!=0)
{
df.BookDbase[i].namenext=lhf1.LHFrec1[k].lhead;
lhf1.LHFrec1[k].lhead=i;
lhf1.LHFrec1[k].RecNum++;
}
else
{
m=++lhf1.len1;
df.BookDbase[i].namenext=0;
lhf1.LHFrec1[m].lhead=i;
lhf1.LHFrec1[m].RecNum=1;
strcpy(lhf1.LHFrec1[m].bname,sm);
}
}
//修改作者索引以及作者链头索引表
void ChangeLinkHeadF2(BookDbaseFile &df,LHFile2 &lhf2)
{
int i,j,k,m;
char zz[8];
i=df.len;
strcpy(zz,df.BookDbase[i].author);
j=1; k=0;
while(j<=lhf2.len2)
{
if(strcmp(zz,lhf2.LHFrec2[j].author)==0)
{k=j;break;}
j++;
}
if(k!=0)
{
df.BookDbase[i].authnext=lhf2.LHFrec2[k].lhead;
lhf2.LHFrec2[k].lhead=i;
lhf2.LHFrec2[k].RecNum++;
}
else
{
m=++lhf2.len2;
df.BookDbase[i].authnext=0;
lhf2.LHFrec2[m].lhead=i;
lhf2.LHFrec2[m].RecNum=1;
strcpy(lhf2.LHFrec2[m].author,zz);
}
}
//修改出版社索引以及出版社链头索引表
void ChangeLinkHeadF3(BookDbaseFile &df,LHFile3 &lhf3)
{
int i,j,k,m;
char cbs[20];
i=df.len;
strcpy(cbs,df.BookDbase[i].press);
j=1; k=0;
while(j<=lhf3.len3)
{
if(strcmp(cbs,lhf3.LHFrec3[j].press)==0)
{k=j;break;}
j++;
}
if(k!=0)
{
df.BookDbase[i].prenext=lhf3.LHFrec3[k].lhead;
lhf3.LHFrec3[k].lhead=i;
lhf3.LHFrec3[k].RecNum++;
}
else
{
m=++lhf3.len3;
df.BookDbase[i].prenext=0;
lhf3.LHFrec3[m].lhead=i;
lhf3.LHFrec3[m].RecNum=1;
strcpy(lhf3.LHFrec3[m].press,cbs);
}
}
//建立图书多重表主索引以及相关索引链头文件
void CreateBook(BookDbaseFile &bf,BnoIdxFile &bif,LHFile1 &f1,LHFile2 &f2,LHFile3 &f3)
{
char yn='y';
while(yn=='y' || yn=='Y')
{
AppeDBaseRec(bf);
ChangeBnoIdxF(bf,bif);
ChangeLinkHeadF1(bf,f1);
ChangeLinkHeadF2(bf,f2);
ChangeLinkHeadF3(bf,f3);
cout<<"继续输入吗?Y/N:"<<endl;
cin>>yn;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -