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

📄 studentwinview.cpp

📁 一个简单的学生学籍管理工具。vc编写。 有喜欢的可以批评指正^_^
💻 CPP
📖 第 1 页 / 共 3 页
字号:
{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 + -