📄 studentwinview.cpp
字号:
{MessageBox("无信息");
}
else{
if(pDoc->curpos!=pDoc->m_dataList.GetTailPosition())
{
pDoc->m_dataList.GetNext(pDoc->curpos);
Cstudent *pstudent=pDoc->m_dataList.GetAt(pDoc->curpos);
m_id=pstudent->id;
m_name=pstudent->name;
m_year=pstudent->year;
m_intyue=pstudent->yue;
m_intdate=pstudent->date;
m_addr=pstudent->addr;
m_tel=pstudent->tel;
m_intsex=pstudent->sex;
m_score1=pstudent->lesson[0].name;
m_fen1=pstudent->lesson[0].fen;
m_score2=pstudent->lesson[1].name;
m_fen2=pstudent->lesson[1].fen;
m_score3=pstudent->lesson[2].name;
m_fen3=pstudent->lesson[2].fen;
m_score4=pstudent->lesson[3].name;
m_fen4=pstudent->lesson[3].fen;
if(cursor==0)
cursor=much;
else
if(cursor==much+1)
cursor=1;
else
cursor++;
UpdateData(false);
}
else{
pDoc->curpos=pDoc->m_dataList.GetHeadPosition();
Cstudent *pstudent=pDoc->m_dataList.GetAt(pDoc->curpos);
m_id=pstudent->id;
m_name=pstudent->name;
m_year=pstudent->year;
m_intyue=pstudent->yue;
m_intdate=pstudent->date;
m_addr=pstudent->addr;
m_tel=pstudent->tel;
m_score1=pstudent->lesson[0].name;
m_fen1=pstudent->lesson[0].fen;
m_score2=pstudent->lesson[1].name;
m_fen2=pstudent->lesson[1].fen;
m_score3=pstudent->lesson[2].name;
m_fen3=pstudent->lesson[2].fen;
m_score4=pstudent->lesson[3].name;
m_fen4=pstudent->lesson[3].fen;
UpdateData(false);
cursor=1;
}
pDoc->UpdateAllViews(this);
}
setstatusbar();
}
void CStudentwinView::Onpre()
{
CStudentwinDoc*pDoc=GetDocument();
ASSERT_VALID(pDoc);
setolddata();
if(olddatain==true)
{
pDoc->curpos=pDoc->m_dataList.GetTailPosition();
olddatain=false;
}
POSITION p=pDoc->m_dataList.GetHeadPosition();
if(p==NULL)
{MessageBox("无信息");
}
else{
//if(pDoc->curpos==p)
//pDoc->curpos=pDoc->m_dataList.GetTailPosition();
// else
pDoc->m_dataList.GetPrev(pDoc->curpos);
if(pDoc->curpos!=NULL)
{
Cstudent *pstudent=pDoc->m_dataList.GetAt(pDoc->curpos);
m_id=pstudent->id;
m_name=pstudent->name;
m_year=pstudent->year;
m_intyue=pstudent->yue;
m_intdate=pstudent->date;
m_addr=pstudent->addr;
m_tel=pstudent->tel;
m_intsex=pstudent->sex;
m_score1=pstudent->lesson[0].name;
m_fen1=pstudent->lesson[0].fen;
m_score2=pstudent->lesson[1].name;
m_fen2=pstudent->lesson[1].fen;
m_score3=pstudent->lesson[2].name;
m_fen3=pstudent->lesson[2].fen;
m_score4=pstudent->lesson[3].name;
m_fen4=pstudent->lesson[3].fen;
UpdateData(false);
if(cursor==0)
cursor=much;
else
if(cursor==much+1)
cursor=1;
else
cursor--;
}
else{
pDoc->curpos=pDoc->m_dataList.GetTailPosition();
Cstudent *pstudent=pDoc->m_dataList.GetAt(pDoc->curpos);
m_id=pstudent->id;
m_name=pstudent->name;
m_year=pstudent->year;
m_intyue=pstudent->yue;
m_intdate=pstudent->date;
m_addr=pstudent->addr;
m_tel=pstudent->tel;
m_intsex=pstudent->sex;
m_score1=pstudent->lesson[0].name;
m_fen1=pstudent->lesson[0].fen;
m_score2=pstudent->lesson[1].name;
m_fen2=pstudent->lesson[1].fen;
m_score3=pstudent->lesson[2].name;
m_fen3=pstudent->lesson[2].fen;
m_score4=pstudent->lesson[3].name;
m_fen4=pstudent->lesson[3].fen;
UpdateData(false);
cursor=much;
}
pDoc->UpdateAllViews(this);
}
setstatusbar();
}
void CStudentwinView::Onsavemade()
{
MessageBox("你已经保存了修改!");
m_savemade.ShowWindow(SW_HIDE);
m_dropmade.ShowWindow(SW_HIDE);
}
void CStudentwinView::getstudent()
{
lesson[0].name=m_score1;
lesson[0].fen=m_fen1;
lesson[1].name=m_score2;
lesson[1].fen=m_fen2;
lesson[2].name=m_score3;
lesson[2].fen=m_fen3;
lesson[3].name=m_score4;
lesson[3].fen=m_fen4;
}
void CStudentwinView::fileinout()
{
CStudentwinDoc*pDoc=GetDocument();
ASSERT_VALID(pDoc);
CString strfile;
CString strfile2;
CString strfile3;
strfile2=filepath+"\\课程库.txt";
strfile=filepath+"\\学生库.txt";
strfile3=filepath+"\\成绩库.txt";
CStdioFile file;
CStdioFile file2;
CStdioFile file3;
file.Open(strfile,CFile::modeCreate|CFile::modeNoTruncate|CFile::modeReadWrite);
file2.Open(strfile2,CFile::modeCreate|CFile::modeNoTruncate|CFile::modeReadWrite);
file3.Open(strfile3,CFile::modeCreate|CFile::modeNoTruncate|CFile::modeReadWrite);
POSITION p=pDoc->curpos;
POSITION pos=pDoc->m_dataList.GetHeadPosition();
if(arstyle==CArchive::store)
{
CArchive ar(&file,CArchive::store);
CArchive ar2(&file2,CArchive::store);
CArchive ar3(&file3,CArchive::store);
pDoc->curpos=pDoc->m_dataList.GetHeadPosition();
CString strint;
strint.Format("%d",datanumber);
//MessageBox(strint);
strint="\n";
ar<<datanumber<<strint;
while(pos!=NULL)
{
Cstudent* pstudent=pDoc->m_dataList.GetAt(pDoc->curpos);
ar<<pstudent->id<<pstudent->name<<pstudent->sex<<pstudent->year<<pstudent->yue<<pstudent->date<<pstudent->addr<<pstudent->tel<<strint;
for(int i=0;i<4;i++)
ar2<<i<<pstudent->lesson[i].name<<strint;
ar3<<pstudent->id<<pstudent->name;
for( i=0;i<4;i++)
ar3<<pstudent->lesson[i].name<<pstudent->lesson[i].fen;
ar3<<strint;
pDoc->m_dataList.GetNext(pDoc->curpos);
if(pDoc->curpos==NULL)
{
break;
}
}
ar.Close();
pDoc->curpos=p;
}
else
{
if(file.GetLength()!=0)
{
file.SeekToBegin();
CArchive ar1(&file,CArchive::load);
CArchive ar31(&file3,CArchive::load);
CString strint;
ar1>>datanumber>>strint;
for(int i=0;i<datanumber;i++)
{
ar1>>m_id>>m_name>>m_intsex>>m_year>>m_intyue>>m_intdate>>m_addr>>m_tel>>strint;
ar31>>m_id>>m_name;
for(int k=0;k<4;k++)
{
ar31>>lesson[k].name;
ar31>>lesson[k].fen;
}
ar31>>strint;
UpdateData(false);
Cstudent* pstudent=new Cstudent(m_id,m_name,m_intsex,m_year,m_intyue,m_intdate,4,lesson,m_addr,m_tel);
pDoc->m_dataList.AddTail(pstudent);
m_score1=pstudent->lesson[0].name;
m_fen1=pstudent->lesson[0].fen;
m_score2=pstudent->lesson[1].name;
m_fen2=pstudent->lesson[1].fen;
m_score3=pstudent->lesson[2].name;
m_fen3=pstudent->lesson[2].fen;
m_score4=pstudent->lesson[3].name;
m_fen4=pstudent->lesson[3].fen;
}
ar1.Close();
ar31.Close();
UpdateData(false);
}
else
{
}
}
file.Close();
file2.Close();
file3.Close();
}
void CStudentwinView::OnEditchangelesson()
{
// TODO: Add your control notification handler code here
}
void CStudentwinView::OnSelchangelesson()
{
index=m_lesson.GetCurSel();
if(index==-1)
m_editscorelesson.SetReadOnly(true);
else
m_editscorelesson.SetReadOnly(false);
}
void CStudentwinView::OnKillfocusscorelesson()
{
}
void CStudentwinView::OnKillfocusfenlesson()
{
// TODO: Add your control notification handler code here
m_lesson.DeleteString(index);
datacouter++;
//lesson[index+4].name=m_scorelesson;
//lesson[index+4].fen=m_fenlesson;
m_editscorelesson.SetReadOnly(true);
m_editfenlesson.SetReadOnly(true);
}
void CStudentwinView::OnChangescorelesson()
{
// TODO: If this is a RICHEDIT control, the control will not
// send this notification unless you override the CFormView::OnInitDialog()
// function and call CRichEditCtrl().SetEventMask()
// with the ENM_CHANGE flag ORed into the mask.
m_editfenlesson.SetReadOnly(false);
// TODO: Add your control notification handler code here
}
void CStudentwinView::OnDropdownlesson()
{
}
void CStudentwinView::OnSetfocuslesson()
{
}
void CStudentwinView::OnChangescore1()
{
m_editfen1.SetReadOnly(false);
}
void CStudentwinView::OnChangescore2()
{
m_editfen2.SetReadOnly(false);
}
void CStudentwinView::OnChangescore3()
{
m_editfen3.SetReadOnly(false);
}
void CStudentwinView::OnChangescore4()
{
m_editfen4.SetReadOnly(false);
}
void CStudentwinView::OnKillfocusfen1()
{
datacouter++;
//m_editscore1.SetReadOnly(true);
//m_editfen1.SetReadOnly(true);
lesson[0].name=m_score1;
lesson[0].fen=m_fen1;
}
void CStudentwinView::OnKillfocusfen2()
{
datacouter++;
//m_editscore2.SetReadOnly(true);
//m_editfen2.SetReadOnly(true);
lesson[1].name=m_score2;
lesson[1].fen=m_fen2;
}
void CStudentwinView::OnKillfocusfen3()
{
datacouter++;
//m_editscore3.SetReadOnly(true);
//m_editfen3.SetReadOnly(true);
lesson[2].name=m_score3;
lesson[2].fen=m_fen3;
}
void CStudentwinView::OnKillfocusfen4()
{
datacouter++;
//m_editscore4.SetReadOnly(true);
//m_editfen4.SetReadOnly(true);
lesson[3].name=m_score4;
lesson[3].fen=m_fen4;
}
void CStudentwinView::adddata()
{
CStudentwinDoc*pDoc=GetDocument();
ASSERT_VALID(pDoc);
Cstudent *pstudent=pDoc->m_dataList.GetAt(pDoc->curpos);
m_id=pstudent->id;
m_name=pstudent->name;
m_year=pstudent->year;
m_intyue=pstudent->yue;
m_intdate=pstudent->date;
m_addr=pstudent->addr;
m_tel=pstudent->tel;
if(datacouter<=4)
{
switch(datacouter)
{
case 1:
{
m_score1=pstudent->lesson[0].name;
m_fen1=pstudent->lesson[0].fen;
break;
}
case 2:
{
m_score1=pstudent->lesson[0].name;
m_fen1=pstudent->lesson[0].fen;
m_score2=pstudent->lesson[1].name;
m_fen2=pstudent->lesson[1].fen;
break;
}
case 3:
{
m_score1=pstudent->lesson[0].name;
m_fen1=pstudent->lesson[0].fen;
m_score2=pstudent->lesson[1].name;
m_fen2=pstudent->lesson[1].fen;
m_score3=pstudent->lesson[2].name;
m_fen3=pstudent->lesson[2].fen;
break;
}
case 4:
{
m_score1=pstudent->lesson[0].name;
m_fen1=pstudent->lesson[0].fen;
m_score2=pstudent->lesson[1].name;
m_fen2=pstudent->lesson[1].fen;
m_score3=pstudent->lesson[2].name;
m_fen3=pstudent->lesson[2].fen;
m_score4=pstudent->lesson[3].name;
m_fen4=pstudent->lesson[3].fen;
break;
}
default:break;
}
}
else
{
CString strlesson;
for(int i=0;i<datacouter-4;i++)
{
strlesson.Format("%d",5+i);
m_lesson.AddString(strlesson);
}
}
UpdateData(false);
}
void CStudentwinView::OnChangeid()
{
UpdateData();
CStudentwinDoc*pDoc=GetDocument();
ASSERT_VALID(pDoc);
if(m_score1=="")
{
MessageBox("请先设置课程名称");
}
//if(much==0)
/// MessageBox("请先输入课程名称,再输入纪录");
m_addr = _T("");
m_fen1 = 0;
m_fen2 = 0;
m_fen3 = 0;
m_fen4 = 0;
m_name = _T("");
m_tel = 0;
m_year = 0;
m_intyue = -1;
m_intdate = -1;
m_intsex = -1;
UpdateData(false);
}
void CStudentwinView::setporty(UINT style)
{
m_editscore1.SetReadOnly(style);
m_editscore2.SetReadOnly(style);
m_editscore3.SetReadOnly(style);
m_editscore4.SetReadOnly(style);
}
void CStudentwinView::OnDraw(CDC* pDC)
{
if(drawfirst==true)
{
if(datanumber==0)
{
m_editkecheng.SetReadOnly(false);
drawfirst=false;
}
else
{
m_bshezhi.SetWindowText("已设置");
m_editkecheng.SetReadOnly(true);
}
}
}
int CStudentwinView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CFormView::OnCreate(lpCreateStruct) == -1)
return -1;
// TODO: Add your specialized creation code here
return 0;
}
void CStudentwinView::OnActivateView(BOOL bActivate, CView* pActivateView, CView* pDeactiveView)
{
CFormView::OnActivateView(bActivate, pActivateView, pDeactiveView);
}
void CStudentwinView::OnMouseMove(UINT nFlags, CPoint point)
{
//CRect rect;
//m_olddata.GetWindowRect(&rect);
//ScreenToClient(&rect);
if(point.x>450&&point.y>=100&&point.y<=400)
{
//move=true;
if(move==true)
{
open=true;
firstcap=true;
move=false;
m_ntimer2=SetTimer(2,20,0);
}
}
if(point.x<10&&point.y>=70&&point.y<=400)
{
if(m_dlg!=NULL)
{
m_dlg->PostMessage(WM_CLOSE);
if(firstcap=true)
{
Ondouble();
firstcap=false;
}
move=true;
}
else{
//firstcap=false;
}
}
CFormView::OnMouseMove(nFlags, point);
}
void CStudentwinView::OnLButtonDown(UINT nFlags, CPoint point)
{
CFormView::OnLButtonDown(nFlags, point);
}
void CStudentwinView::Onolddata()
{
arstyle=CArchive::load;
fileinout();
}
void CStudentwinView::setstatusbar()
{
CMainFrame *p=(CMainFrame *)AfxGetApp()->m_pMainWnd;
CStatusBar * StatusBar=&p->m_wndStatusBar;
CString str;
str.Format("当前纪录/纪录总数: %d/%d",cursor,much);
if(StatusBar!=NULL)
{
StatusBar->SetPaneText(1,str);
}
}
void CStudentwinView::Onsingle()
{
}
void CStudentwinView::OnClose()
{
// TODO: Add your message handler code here and/or call default
CFormView::OnClose();
}
void CStudentwinView::setolddata()
{
m_intsex=-1;
m_intyue=-1;
m_intdate=-1;
}
void CStudentwinView::Onidfind()
{
CStudentwinDoc*pDoc=GetDocument();
ASSERT_VALID(pDoc);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -