📄 图书管理系统dlg.cpp
字号:
}
if(m_LIST1.GetFirstSelectedItemPosition()!=NULL)
{
if(AfxMessageBox("是否删除记录?", MB_ICONQUESTION|MB_YESNO) == IDYES)
{
for(nItem;nItem<m_LIST1.GetItemCount();nItem++)
{
introduce[nItem]=introduce[nItem+1];
}
for(int i=0;i<m_LIST2.GetItemCount();i++)
{
int j=0;
while(j<atoi((LPCTSTR)m_LIST2.GetItemText(i,4)))
{
if(m_LIST1.GetItemText(n,0)==borrowbook[i][j])
{
for(int k=j;k<atoi((LPCTSTR)m_LIST2.GetItemText(i,4));k++)
{
borrowbook[i][k]=borrowbook[i][k+1];
borrowtime[i][k]=borrowtime[i][k+1];
}
int s=atoi((LPCTSTR)m_LIST2.GetItemText(i,4));//CString->int
s=s-1;
count.Format("%d",s);
m_LIST2.SetItemText(i,4,count);
}
else
j=j+1;
}
}
m_LIST1.DeleteItem(n);
MessageBox("删除图书成功,借书情况已刷新!");
m_LIST3.DeleteAllItems();
}
}
else
MessageBox("请选择要删除的图书!");
}
void CMyDlg::OnButton3()
{
// TODO: Add your control notification handler code here
if(AfxMessageBox("是否保存记录?", MB_ICONQUESTION|MB_YESNO) == IDYES)
{
CStdioFile file,file1,file2;
file.Open("list1.txt",CFile::modeWrite|CFile::modeCreate);
int n=m_LIST1.GetItemCount();
CString str,str1,str2;
str.Format("row=%d\n",n);
file.WriteString(str);
for(int i=0;i<n;i++)
{
for(int j=0;j<4;j++)
{
file.WriteString(m_LIST1.GetItemText(i,j));
file.WriteString("\t");
}
file.WriteString(introduce[i]);
file.WriteString("\t");
}
file.Close();
file1.Open("list2.txt",CFile::modeWrite|CFile::modeCreate);
n=m_LIST2.GetItemCount();
str1.Format("row=%d\n",n);
file1.WriteString(str1);
for(i=0;i<n;i++)
{
for(int j=0;j<5;j++)
{
file1.WriteString(m_LIST2.GetItemText(i,j));
file1.WriteString("\t");
}
}
file1.Close();
file2.Open("list3.txt",CFile::modeWrite|CFile::modeCreate);
n=m_LIST2.GetItemCount();
str2.Format("row=%d\n",n);
file2.WriteString(str2);
for(i=0;i<n;i++)
{
for(int j=0;j<atoi((LPCTSTR)m_LIST2.GetItemText(i,4));j++)
{
file2.WriteString(borrowbook[i][j]);
file2.WriteString("\t");
file2.WriteString(borrowtime[i][j]);
file2.WriteString("\t");
}
}
file2.Close();
MessageBox("资料保存成功!");
}
OnCancel();
}
void CMyDlg::OnButton4()
{
// TODO: Add your control notification handler code here
UpdateData();
char* num="0123456789";
if(m_EDIT5!=""&&m_EDIT6!=""&&m_EDIT7!=""&&m_EDIT8!="")
{
for(int i=0;i<m_LIST2.GetItemCount();i++)
{
if(m_EDIT8==m_LIST2.GetItemText(i,0))
{
MessageBox("此学号已存在!");
return;
}
}
int pos;
char *pstr=(LPSTR)(LPCTSTR)m_EDIT8;
size_t len=strspn(pstr,num);
if(m_EDIT5>="0x80"&&m_EDIT6>="0x80"&&pstr[len]=='\0')
{
pos=m_LIST2.InsertItem(m_LIST2.GetItemCount()+1,m_EDIT8);
m_LIST2.SetItemText(pos,1,m_EDIT5);
m_LIST2.SetItemText(pos,2,m_EDIT6);
m_LIST2.SetItemText(pos,3,m_EDIT7);
m_LIST2.SetItemText(pos,4,"0");
m_COMBO1.InsertString(m_COMBO1.GetCount(),m_LIST2.GetItemText(pos,0));
m_EDIT5.Format("%s","");
m_EDIT6.Format("%s","");
m_EDIT7.Format("%s","");
m_EDIT8.Format("%s","");
MessageBox("添加学生成功!");
}
else if(pstr[len]!='\0')
MessageBox("学号只能为数字!");
else
MessageBox("姓名及系别只能为汉字!");
}
else
MessageBox("请填写完整的资料!");
UpdateData(false);
}
void CMyDlg::OnButton5()
{
// TODO: Add your control notification handler code here
if(m_LIST2.GetFirstSelectedItemPosition()==NULL)
{
MessageBox("请选择所要删除的学生!");
return;
}
else if(m_LIST2.GetFirstSelectedItemPosition()!=NULL)
{
if(AfxMessageBox("是否删除记录?", MB_ICONQUESTION|MB_YESNO) == IDYES)
{
int pos=m_LIST2.GetNextItem(-1,1);
int nItem=pos;
CString count;
m_COMBO1.DeleteString(pos);
for(int i=0;i<5;i++)
{
if(borrowbook[pos][i]!="")
{
for(int j=0;j<m_LIST1.GetItemCount();j++)
{
if(borrowbook[pos][i]==m_LIST1.GetItemText(j,0))
{
int s=atoi((LPCTSTR)m_LIST1.GetItemText(j,3));//CString->int
s=s+1;
count.Format("%d",s);
m_LIST1.SetItemText(j,3,count);
}
}
}
}
for(pos;pos<m_LIST2.GetItemCount();pos++)
for(int i=0;i<5;i++)
{
borrowbook[pos][i]=borrowbook[pos+1][i];
borrowtime[pos][i]=borrowtime[pos+1][i];
}
m_LIST2.DeleteItem(nItem);
MessageBox("删除学生成功,所借书籍已归还书库!");
}
}
m_LIST3.DeleteAllItems();
}
void CMyDlg::OnButton6()
{
// TODO: Add your control notification handler code here
UpdateData();
int i,j,s,t,m;
char s1[15],s2[15];
CString str1,str2,tm1;
CTime t1;
m_COMBO1.GetLBText(m_COMBO1.GetCurSel(),s1);
t1=CTime::GetCurrentTime();
tm1.Format("%d-%d-%d",t1.GetYear(),t1.GetMonth(),t1.GetDay());
UpdateData(false);
for(i=0;i<m_LIST2.GetItemCount();i++)
{
str1=m_LIST2.GetItemText(i,0);
strncpy(s2,(LPCTSTR)str1,sizeof(s2));
m=strcmp(s1,s2);
if(m==0)
{
if(m_LIST2.GetItemText(i,4)=="5")
{
MessageBox("此学生借书数量已达5本!");
return;
}
else
{
for(j=0;j<m_LIST1.GetItemCount();j++)
{
if(m_LIST1.GetItemText(j,1)==m_EDIT11)
{
if(m_LIST1.GetItemText(j,3)=="0")
{
MessageBox("此书库存数量为0!");
return;
}
else
{
int count=atoi(m_LIST2.GetItemText(i,4));
str1=m_LIST2.GetItemText(i,4);
s=atoi((LPCTSTR)str1);//CString->int
s=s+1;
str1.Format("%d",s);//int->CString
borrowbook[i][count]=m_LIST1.GetItemText(j,0);
borrowtime[i][count]=tm1;
borrowbookcount[i]++;
m_LIST2.SetItemText(i,4,str1);
str2=m_LIST1.GetItemText(j,3);
t=atoi((LPCTSTR)str2);//CString->int
t=t-1;
str2.Format("%d",t); //int->CString
m_LIST1.SetItemText(j,3,str2);
int c=m_LIST3.GetItemCount();
if(m_LIST3.GetItemText(0,0)=="无")
{
c=c-1;
m_LIST3.SetItemText(c,0,m_LIST2.GetItemText(i,0));
m_LIST3.SetItemText(c,1,m_LIST2.GetItemText(i,1));
m_LIST3.SetItemText(c,2,tm1);
}
else
{
m_LIST3.InsertItem(c,m_LIST2.GetItemText(i,0));
m_LIST3.SetItemText(c,1,m_LIST2.GetItemText(i,1));
m_LIST3.SetItemText(c,2,tm1);
}
UpdateData(false);
MessageBox("图书借阅成功,借书资料已刷新!");
return;
}
}
}
}
MessageBox("不存在此书!");
return;
}
}
MessageBox("不存在此学生!");
return;
}
void CMyDlg::OnButton7()
{
// TODO: Add your control notification handler code here
CString count;
int pos,s;
int nItem=m_LIST3.GetNextItem(-1,1);
for(int i=0;i<m_LIST2.GetItemCount();i++)
{
if(m_LIST2.GetItemText(i,0)==m_SNUM)
pos=i;
}
if(m_LIST3.GetFirstSelectedItemPosition()!=NULL&&m_LIST3.GetItemText(0,0)!="无")
{
int j=0;
while(j<atoi((LPCTSTR)m_LIST2.GetItemText(pos,4)))
{
if(m_LIST3.GetItemText(nItem,0)==borrowbook[pos][j]&&m_LIST3.GetItemText(nItem,2)==borrowtime[pos][j])
{
CTime t1;
t1=CTime::GetCurrentTime();
CString str;
COleDateTime o;
str=borrowtime[pos][j];
o.ParseDateTime(CString(" ")+str);
CTime t2(o.GetYear(),o.GetMonth(),o.GetDay(),0,0,0);
CTimeSpan ts=t1-t2;
ts.GetDays();
CString str1,str2,str3;
str1=_T("借阅天数为");
str3=_T(",本书已归还书库,图书及借阅资料已更新!");
str.Format("%d",ts.GetDays());
str2=str1+str;
str1=str2+str3;
for(int i=0;i<m_LIST1.GetItemCount();i++)
{
if(m_LIST3.GetItemText(nItem,0)==m_LIST1.GetItemText(i,0))
{
s=atoi((LPCTSTR)m_LIST1.GetItemText(i,3));
s=s+1;
count.Format("%d",s);
m_LIST1.SetItemText(i,3,count);
}
}
for(int k=j;k<atoi((LPCTSTR)m_LIST2.GetItemText(pos,4));k++)
{
borrowbook[pos][k]=borrowbook[pos][k+1];
borrowtime[pos][k]=borrowtime[pos][k+1];
}
s=atoi((LPCTSTR)m_LIST2.GetItemText(pos,4));//CString->int
s=s-1;
count.Format("%d",s);
m_LIST2.SetItemText(pos,4,count);
MessageBox(str1);
goto end;
}
else
j=j+1;
}
end: m_LIST3.DeleteItem(nItem);
}
else if(m_LIST3.GetItemText(0,0)=="无")
MessageBox("此学生未借图书!");
else
MessageBox("请选择要归还的图书!");
}
void CMyDlg::OnButton8()
{
// TODO: Add your control notification handler code here
UpdateData();
if(m_TAB.GetCurSel()==4)
{
char* num1="0123456789.";
if(m_NUM!="")
{
if(m_EDIT1!=""&&m_EDIT2!=""&&m_EDIT4!="")
{
for(int i=0;i<m_LIST1.GetItemCount();i++)
{
if(m_EDIT1==m_LIST1.GetItemText(i,1)&&m_NUM!=m_LIST1.GetItemText(i,0))
{
MessageBox("此书已存在!");
return;
}
if(m_NUM==m_LIST1.GetItemText(i,0))
{
char *pstr=(LPSTR)(LPCTSTR)m_EDIT2;
size_t len1=strspn(pstr,num1);
if(pstr[len1]=='\0'&&m_EDIT1!=m_LIST1.GetItemText(i,1)||m_EDIT2!=m_LIST1.GetItemText(i,2)||m_EDIT4!=introduce[i])
{
if(AfxMessageBox("是否修改资料?", MB_ICONQUESTION|MB_YESNO)==IDYES)
{
m_LIST1.SetItemText(i,1,m_EDIT1);
m_LIST1.SetItemText(i,2,m_EDIT2);
introduce[i]=m_EDIT4;
m_EDIT1.Format("%s","");
m_EDIT2.Format("%s","");
m_EDIT4.Format("%s","");
m_NUM.Format("%s","");
m_INTRODUCE.Format("%s","");
UpdateData(false);
MessageBox("修改资料成功!");
return;
}
}
else if(m_EDIT1==m_LIST1.GetItemText(i,1)&&m_EDIT2==m_LIST1.GetItemText(i,2)&&m_EDIT4==introduce[i])
MessageBox("图书资料无修改!");
else
MessageBox("价格只能是数字!");
}
}
}
else
MessageBox("请填写完整的资料!");
}
else
MessageBox("请在图书资料中选择你所要修改的图书!");
}
else if(m_TAB.GetCurSel()==5)
{
char* num1="0123456789.";
if(m_SNUM!="")
{
if(m_EDIT5!=""&&m_EDIT6!=""&&m_EDIT7!="")
{
for(int i=0;i<m_LIST2.GetItemCount();i++)
{
if(m_SNUM==m_LIST2.GetItemText(i,0))
{
if(m_EDIT5>="0x80"&&m_EDIT6>="0x80"&&m_EDIT5!=m_LIST2.GetItemText(i,1)||m_EDIT6!=m_LIST2.GetItemText(i,2)||m_EDIT7!=m_LIST2.GetItemText(i,3))
{
if(AfxMessageBox("是否修改资料?", MB_ICONQUESTION|MB_YESNO)==IDYES)
{
m_LIST2.SetItemText(i,1,m_EDIT5);
m_LIST2.SetItemText(i,2,m_EDIT6);
m_LIST2.SetItemText(i,3,m_EDIT7);
m_EDIT5.Format("%s","");
m_EDIT6.Format("%s","");
m_EDIT7.Format("%s","");
m_SNUM.Format("%s","");
UpdateData(false);
MessageBox("修改资料成功!");
return;
}
}
else if(m_EDIT5==m_LIST2.GetItemText(i,1)&&m_EDIT6==m_LIST2.GetItemText(i,2)&&m_EDIT7==m_LIST2.GetItemText(i,3))
MessageBox("学生资料无修改!");
else
MessageBox("姓名及系别只能为汉字!");
}
}
}
else
MessageBox("请填写完整的资料!");
}
else
MessageBox("请在学生资料中选择你所要修改的学生!");
}
}
void CMyDlg::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
m_INTRODUCE.Format("%s","");
m_LIST3.DeleteAllItems();
int pos,bookcount;
int k,s;
CString count;
if(m_LIST1.GetFirstSelectedItemPosition()!=NULL)
{
for(k=0;k<m_LIST2.GetItemCount();k++)
{
count=m_LIST2.GetItemText(k,4);
s=atoi((LPCTSTR)count);
borrowbookcount[k]=s;
}
pos=m_LIST1.GetNextItem(-1,1);
m_INTRODUCE.Format("%s",introduce[pos]);
m_EDIT11=m_LIST1.GetItemText(pos,1);
if(m_TAB.GetCurSel()==4)
{
m_EDIT1=m_LIST1.GetItemText(pos,1);
m_EDIT2=m_LIST1.GetItemText(pos,2);
m_EDIT4=introduce[pos];
m_NUM=m_LIST1.GetItemText(pos,0);
}
for(bookcount=0;bookcount<m_LIST2.GetItemCount();bookcount++)
{
for(int i=0;i<borrowbookcount[bookcount];i++)
{
if(m_LIST1.GetItemText(pos,0)==borrowbook[bookcount][i])
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -