📄 libdlg.cpp
字号:
SetDlgItemText(IDC_BQuan,Br->BQuan);
}
void CLibDlg::OnDblclkListReader()
{
LinkR Rr;
Rlist_No= m_List_Reader.GetCurSel() ;
Rr= Reader.GetListR(RHead,Rlist_No);
SetDlgItemText(IDC_RCode,Rr->RCode);
SetDlgItemText(IDC_RKind,Rr->RKind);
SetDlgItemText(IDC_RName,Rr->RName);
SetDlgItemText(IDC_RCompany,Rr->RCompany);
SetDlgItemText(IDC_RBooks,Rr->RBooks);
}
void CLibDlg::OnBLoad()
{
CString Filter;
CString str;
Filter = "文本文件(*.txt)|*.txt||";
CFileDialog FileDlg (TRUE, NULL, NULL, OFN_HIDEREADONLY, Filter);
//////以上为选择打开文件固定操作
if (FileDlg.DoModal () == IDOK)
{
Book.InitListB();
BHead = Book.GetHeadB();
LONG p,q,length,len; //p记录前一","的位置;q记录后一","的位置
CString Date;
CString bcode,bkind,bpress,bname,bauthor,bdate,bisdn,btimes,bprice,bquan;
char *temp,*temp1;
CString filename=FileDlg.GetPathName();
CFile f;
f.Open(filename,CFile::modeReadWrite);
p=q=-1;
Blink_No = 0;
length=f.GetLength();
temp=new char [length];
f.Seek(0,CFile::begin);//定位于文件开头
f.Read(temp,length);//读取文件
Date = temp;
while(q<length-1)
{
q=Date.Find(",",q+1);
f.Seek(p+1,CFile::begin);
len = q-p-1;
temp1= new char [len];
f.Read(temp1,len);
bcode = temp1;
bcode = bcode.Mid(0,len);
delete temp1;
p=q;
q=Date.Find(",",q+1);
f.Seek(p+1,CFile::begin);
len = q-p-1;
temp1=new char [len];
f.Read(temp1,len);
bkind= temp1;
bkind = bkind.Mid(0,len);
p=q;
q=Date.Find(",",q+1);
f.Seek(p+1,CFile::begin);
len = q-p-1;
temp1=new char [len];
f.Read(temp1,len);
bpress = temp1;
bpress = bpress.Mid(0,len);
delete temp1;
p=q;
q=Date.Find(',',q+1);
f.Seek(p+1,CFile::begin);
len = q-p-1;
temp1=new char [len];
f.Read(temp1,len);
bname = temp1;
bname = bname.Mid(0,len);
delete temp1;
p=q;
q=Date.Find(',',q+1);
f.Seek(p+1,CFile::begin);
len = q-p-1;
temp1=new char [len];
f.Read(temp1,len);
bauthor = temp1;
bauthor = bauthor.Mid(0,len);
delete temp1;
p=q;
q=Date.Find(',',q+1);
f.Seek(p+1,CFile::begin);
len = q-p-1;
temp1=new char [len];
f.Read(temp1,len);
bdate = temp1;
bdate = bdate.Mid(0,len);
delete temp1;
p=q;
q=Date.Find(',',q+1);
f.Seek(p+1,CFile::begin);
len = q-p-1;
temp1=new char [len];
f.Read(temp1,len);
bisdn = temp1;
bisdn = bisdn.Mid(0,len);
delete temp1;
p=q;
q=Date.Find(',',q+1);
f.Seek(p+1,CFile::begin);
len = q-p-1;
temp1=new char [len];
f.Read(temp1,len);
btimes = temp1;
btimes = btimes.Mid(0,len);
delete temp1;
p=q;
q=Date.Find(',',q+1);
f.Seek(p+1,CFile::begin);
len = q-p-1;
temp1=new char [len];
f.Read(temp1,len);
bprice = temp1;
bprice = bprice.Mid(0,len);
delete temp1;
p=q;
q=Date.Find(',',q+1);
f.Seek(p+1,CFile::begin);
len = q-p-1;
temp1=new char [len];
f.Read(temp1,len);
bquan = temp1;
bquan = bquan.Mid(0,len);
delete temp1;
p=q;
Book.BInsert(BHead,bcode,bkind,bpress,bname,bauthor,bdate,bisdn,btimes,bprice,bquan,Blink_No);
Blink_No = Blink_No + 1;
}
delete temp;
m_List_Book.ResetContent();
OnBShowlist();
}
}
void CLibDlg::OnBSave()
{
CString Filter;
Filter = "文本文件(*.txt)|*.txt||";
CFileDialog FileDlg (FALSE, ".txt", NULL, OFN_OVERWRITEPROMPT, Filter);
if(FileDlg.DoModal()==IDOK)
{
CString filename=FileDlg.GetPathName();
PbText.Open(filename,CFile::modeCreate | CFile::modeReadWrite);
LinkB Br;
int DatePos;
DatePos = 0;
for(int i=0;i<Blink_No;i++)
{
Br = Book.GetListB(BHead,i);
CString vol,rlt;
CString Item;
vol = ",";
Item=Br->BCode+vol+Br->BKind+vol+Br->BPress+vol+Br->BName+vol+Br->BAuthor+vol+Br->BDate+vol+Br->BISDN+vol+Br->BTimes+vol+Br->BPrice+vol+Br->BQuan+vol;
PbText.Write(Item,Item.GetLength());
DatePos = DatePos+Item.GetLength();
}
PbText.Close();
}
}
void CLibDlg::OnRLoad()
{
CString Filter;
CString str;
Filter = "文本文件(*.txt)|*.txt||";
CFileDialog FileDlg (TRUE, NULL, NULL, OFN_HIDEREADONLY, Filter);
//////以上为选择打开文件固定操作
if (FileDlg.DoModal () == IDOK)
{
Reader.InitListR();
RHead = Reader.GetHeadR();
LONG p,q,length,len; //p记录前一","的位置;q记录后一","的位置
CString Data;
CString rcode;
CString rname;
CString rcompany;
CString rkind;
CString rbooks;
char *temp,*temp1;
CString filename=FileDlg.GetPathName();
CFile f;
f.Open(filename,CFile::modeReadWrite);
p=q=-1;
Rlink_No = 0;
length=f.GetLength();
temp=new char [length];
f.Seek(0,CFile::begin);//定位于文件开头
f.Read(temp,length);//读取文件
Data = temp;
while(q<length-1)
{
q=Data.Find(",",q+1);
f.Seek(p+1,CFile::begin);
len = q-p-1;
temp1= new char [len];
f.Read(temp1,len);
rcode = temp1;
rcode= rcode.Mid(0,len);
delete temp1;
p=q;
q=Data.Find(",",q+1);
f.Seek(p+1,CFile::begin);
len = q-p-1;
temp1=new char [len];
f.Read(temp1,len);
rname= temp1;
rname = rname.Mid(0,len);
p=q;
q=Data.Find(",",q+1);
f.Seek(p+1,CFile::begin);
len = q-p-1;
temp1=new char [len];
f.Read(temp1,len);
rcompany = temp1;
rcompany = rcompany.Mid(0,len);
delete temp1;
p=q;
q=Data.Find(',',q+1);
f.Seek(p+1,CFile::begin);
len = q-p-1;
temp1=new char [len];
f.Read(temp1,len);
rkind = temp1;
rkind= rkind.Mid(0,len);
delete temp1;
p=q;
q=Data.Find(',',q+1);
f.Seek(p+1,CFile::begin);
len = q-p-1;
temp1=new char [len];
f.Read(temp1,len);
rbooks = temp1;
rbooks = rbooks.Mid(0,len);
delete temp1;
p=q;
Reader.RInsert(RHead,rcode,rname,rcompany,rkind,rbooks,Rlink_No);
Rlink_No = Rlink_No + 1;
}
delete temp;
m_List_Reader.ResetContent();
OnRShowlist();
}
}
void CLibDlg::OnRSave()
{
CString Filter;
Filter = "文本文件(*.txt)|*.txt||";
CFileDialog FileDlg (FALSE, ".txt", NULL, OFN_OVERWRITEPROMPT, Filter);
if(FileDlg.DoModal()==IDOK)
{
CString filename=FileDlg.GetPathName();
RbText.Open(filename,CFile::modeCreate | CFile::modeReadWrite);
LinkR Rr;
int DatePos;
DatePos = 0;
for(int i=0;i<Rlink_No;i++)
{
Rr = Reader.GetListR(RHead,i);
CString vol,rlt;
CString Item;
vol = ",";
Item=Rr->RCode+vol+Rr->RName+vol+Rr->RCompany+vol+Rr->RKind+vol+Rr->RBooks+vol;
RbText.Write(Item,Item.GetLength());
DatePos = DatePos+Item.GetLength();
}
RbText.Close();
}
}
void CLibDlg::OnBShowlist()
{
BHead=Book.GetHeadB();
LinkB Pr=BHead->Next;
m_List_Book.ResetContent();
while(Pr!=NULL)
{
CString vol;
vol = ",";
CString Item;
Item=Pr->BCode+vol+Pr->BKind+vol+Pr->BPress+vol+Pr->BName+vol+Pr->BAuthor+vol+Pr->BDate+vol+Pr->BISDN+vol+Pr->BTimes+vol+Pr->BPrice+vol+Pr->BQuan;
m_List_Book.AddString(Item);
Pr=Pr->Next;
}
SetDlgItemText(IDC_BCode,"");
SetDlgItemText(IDC_BKind,"");
SetDlgItemText(IDC_BPress,"");
SetDlgItemText(IDC_BName,"");
SetDlgItemText(IDC_BAuthor,"");
SetDlgItemText(IDC_BDate,"");
SetDlgItemText(IDC_BISDN,"");
SetDlgItemText(IDC_BTimes,"");
SetDlgItemText(IDC_BPrice,"");
SetDlgItemText(IDC_BQuan,"");
}
void CLibDlg::OnBFind()
{
// TODO: Add your control notification handler code here
LinkB Br;
CString bcode;
UpdateData(TRUE);
bcode= m_BCode;
BHead = Book.GetHeadB();
Br = Book.Find(BHead,bcode);
if(Br!= NULL )
{
SetDlgItemText(IDC_BCode,Br->BCode);
SetDlgItemText(IDC_BKind,Br->BKind);
SetDlgItemText(IDC_BPress,Br->BPress);
SetDlgItemText(IDC_BName,Br->BName);
SetDlgItemText(IDC_BAuthor,Br->BAuthor);
SetDlgItemText(IDC_BDate,Br->BDate);
SetDlgItemText(IDC_BISDN,Br->BDate);
SetDlgItemText(IDC_BTimes,Br->BTimes);
SetDlgItemText(IDC_BPrice,Br->BPrice);
SetDlgItemText(IDC_BQuan,Br->BQuan);
}
else
{
MessageBox("没有找到该图书");
SetDlgItemText(IDC_BCode,"");
SetDlgItemText(IDC_BKind,"");
SetDlgItemText(IDC_BPress,"");
SetDlgItemText(IDC_BName,"");
SetDlgItemText(IDC_BAuthor,"");
SetDlgItemText(IDC_BDate,"");
SetDlgItemText(IDC_BISDN,"");
SetDlgItemText(IDC_BTimes,"");
SetDlgItemText(IDC_BPrice,"");
SetDlgItemText(IDC_BQuan,"");
}
}
void CLibDlg::OnRShowlist()
{
RHead=Reader.GetHeadR();
LinkR Rr=RHead->Next;
m_List_Reader.ResetContent();
while(Rr!=NULL)
{
CString vol;
vol = ",";
CString Item;
Item=Rr->RCode+vol+Rr->RName+vol+Rr->RCompany+vol+Rr->RKind+vol+Rr->RBooks;
m_List_Reader.AddString(Item);
Rr=Rr->Next;
}
SetDlgItemText(IDC_RCode,"");
SetDlgItemText(IDC_RName,"");
SetDlgItemText(IDC_RCompany,"");
SetDlgItemText(IDC_RKind,"");
SetDlgItemText(IDC_RBooks,"");
}
void CLibDlg::OnRFind()
{
LinkR Rr;
CString rcode;
UpdateData(TRUE);
rcode= m_RCode;
RHead = Reader.GetHeadR();
Rr = Reader.Find(RHead,rcode);
if(Rr!= NULL )
{
SetDlgItemText(IDC_RCode,Rr->RCode);
SetDlgItemText(IDC_RKind,Rr->RKind);
SetDlgItemText(IDC_RName,Rr->RName);
SetDlgItemText(IDC_RCompany,Rr->RCompany);
SetDlgItemText(IDC_RBooks,Rr->RBooks);
}
else
{
MessageBox("没有找到该图书");
SetDlgItemText(IDC_RCode,"");
SetDlgItemText(IDC_RKind,"");
SetDlgItemText(IDC_RName,"");
SetDlgItemText(IDC_RCompany,"");
SetDlgItemText(IDC_RBooks,"");
}
}
void CLibDlg::OnRStat()
{
RHead=Reader.GetHeadR();
LinkR Rp=RHead->Next;
int ReaderTot=0,BorTot=0;
ofstream fileout("ReaderTot.txt");
while(Rp!=NULL)
{
fileout<<"\n借书证号:"<<Rp->RCode;
fileout<<" 姓名:"<<Rp->RName;
fileout<<" 单位"<<Rp->RCompany;
fileout<<" 读者类别:"<<Rp->RKind;
fileout<<" 借书数量:"<<atoi(Rp->RBooks);
BorTot+=atoi(Rp->RBooks);
++ReaderTot;
Rp=Rp->Next;
}
fileout<<"\n\n读者总人数为:"<<ReaderTot;
fileout<<"\n总借书数量为:"<<BorTot;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -