⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 libdlg.cpp

📁 简单的图书管理系统
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	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 + -