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

📄 paperoptionview.cpp

📁 < Visual C++数据库经典开发实例精解>>的实例源码
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	}
	//检查多选题题试题是否足够
	if(!m_pSetMore->IsOpen())
		m_pSetMore->Open();
	for(i=0;i<chaptercount;i++)
	{
		m_more.GetLBText(i,chaptername);//获得章节名称
		chapterscale=m_more.GetItemData(i);
		x=chapterscale* m_morecount / 100;//计算章节试题数
		y=chapterscale * m_morecount / 100.0;
		if (x!=y)
		{		
			str.Format("题量比例不正确,本章试题数不为整数:%d*%d/100=%f",
				m_morecount,chapterscale,y);
			MessageBox(str);
			m_more.SelectString(-1,chaptername);
			m_morescale=chapterscale;
			UpdateData(false);
			m_objmorescale.SetFocus();
			return 0;
		}
		//使用章节名称筛选章节记录集,获得章节编号
		m_pSetChapter->m_strFilter="name='" + chaptername + "'";
		m_pSetChapter->Requery();
		//使用章节编号筛选判断题记录集
		str.Format("%d",m_pSetChapter->m_id);
		m_pSetMore->m_strFilter="chapterid=" +str;
		m_pSetMore->Requery();
		while(!m_pSetMore->IsEOF())
			m_pSetMore->MoveNext();		
		n=m_pSetMore->GetRecordCount();
		if (x>n)
		{
			str.Format(chaptername+"只有%d道填空题,题量比例最多%d!",
						n,n *100/m_morecount);
			AfxMessageBox(str);
			m_more.SelectString(-1,chaptername);
			m_morescale=m_more.GetItemData(i);
			m_objmorescale.SetFocus();
			UpdateData(false);
			return 0;
		}
	}
	return 1;
}
void CPaperOptionView::OnButtonTestauto() 
{
	if(1==CheckPaperOption())	
	{	//试卷参数通过检验,打开手工选题对话框
		CPaperDialog dlg;
		//将试卷参数传递给对话框
		UpdateData(true);
		dlg.m_papername=m_papername;
		dlg.m_totalscore=m_totalscore;
		dlg.m_judgecount=m_judgecount;
		dlg.m_judgescore=m_judgescore;
		dlg.m_judgetotalscore=m_judgetotalscore;
		dlg.m_morecount=m_morecount;
		dlg.m_morescore=m_morescore;
		dlg.m_moretotalscore=m_moretotalscore;
		dlg.m_singlecount=m_singlecount;
		dlg.m_singlescore= m_singlescore;
		dlg.m_singletotalscore= m_singletotalscore;
		dlg.m_spacecount=m_spacecount;
		dlg.m_spacecount1=m_spacecount1;
		dlg.m_spacecount2=m_spacecount2;
		dlg.m_spacescore=m_spacescore;
		dlg.m_spacetotalscore=m_spacetotalscore;
		int n=m_judge.GetCount();		
		CString chaptername;
		if(!m_pSetJudge->IsOpen())
			m_pSetJudge->Open();
		if(!m_pSetSpace->IsOpen())
			m_pSetSpace->Open();
		if(!m_pSetSingle->IsOpen())
			m_pSetSingle->Open();
		if(!m_pSetMore->IsOpen())
			m_pSetMore->Open();
		if(!m_pSetChapter->IsOpen())
			m_pSetChapter->Open();
		for(int i=0;i<n;i++)
		{	
			dlg.m_spacescale.Add(m_space.GetItemData(i));
			dlg.m_judgescale.Add(m_judge.GetItemData(i));
			dlg.m_singlescale.Add(m_single.GetItemData(i));
			dlg.m_morescale.Add(m_more.GetItemData(i));
			m_space.GetLBText(i,chaptername);//获得章节名称
			//使用章节名称筛选章节记录集,获得章节编号
			m_pSetChapter->m_strFilter="name='" + chaptername + "'";
			m_pSetChapter->Requery();
			dlg.m_chapterid.Add(m_pSetChapter->m_id);
		}
		dlg.m_isauto=1;
		dlg.DoModal();		
	}
	return;
}

void CPaperOptionView::OnButtonTestdiy() 
{
	if(1==CheckPaperOption())	
	{	//试卷参数通过检验,打开手工选题对话框
		CPaperDialog dlg;
		//将试卷参数传递给对话框
		UpdateData(true);
		dlg.m_papername=m_papername;
		dlg.m_totalscore=m_totalscore;
		dlg.m_judgecount=m_judgecount;
		dlg.m_judgescore=m_judgescore;
		dlg.m_judgetotalscore=m_judgetotalscore;
		dlg.m_morecount=m_morecount;
		dlg.m_morescore=m_morescore;
		dlg.m_moretotalscore=m_moretotalscore;
		dlg.m_singlecount=m_singlecount;
		dlg.m_singlescore= m_singlescore;
		dlg.m_singletotalscore= m_singletotalscore;
		dlg.m_spacecount=m_spacecount;
		dlg.m_spacecount1=m_spacecount1;
		dlg.m_spacecount2=m_spacecount2;
		dlg.m_spacescore=m_spacescore;
		dlg.m_spacetotalscore=m_spacetotalscore;
		int n=m_judge.GetCount();		
		CString chaptername;
		if(!m_pSetJudge->IsOpen())
			m_pSetJudge->Open();
		if(!m_pSetSpace->IsOpen())
			m_pSetSpace->Open();
		if(!m_pSetSingle->IsOpen())
			m_pSetSingle->Open();
		if(!m_pSetMore->IsOpen())
			m_pSetMore->Open();
		if(!m_pSetChapter->IsOpen())
			m_pSetChapter->Open();
		for(int i=0;i<n;i++)
		{	
			dlg.m_spacescale.Add(m_space.GetItemData(i));
			dlg.m_judgescale.Add(m_judge.GetItemData(i));
			dlg.m_singlescale.Add(m_single.GetItemData(i));
			dlg.m_morescale.Add(m_more.GetItemData(i));
			m_space.GetLBText(i,chaptername);//获得章节名称
			//使用章节名称筛选章节记录集,获得章节编号
			m_pSetChapter->m_strFilter="name='" + chaptername + "'";
			m_pSetChapter->Requery();
			dlg.m_chapterid.Add(m_pSetChapter->m_id);
		}
		dlg.m_isauto=0;
		dlg.DoModal();		
	}
	return;
}

void CPaperOptionView::OnSelendokComboJudge() 
{
	CString str;
	m_judge.GetWindowText(str);
	int n=m_judge.FindString(-1,str);
	m_judgescale=m_judge.GetItemData(n);
	UpdateData(false);	
}

void CPaperOptionView::OnSelendokComboMore() 
{
	CString str;
	m_more.GetWindowText(str);
	int n=m_more.FindString(-1,str);
	m_morescale=m_more.GetItemData(n);
	UpdateData(false);	
}

void CPaperOptionView::OnSelendokComboSingle() 
{
	CString str;
	m_single.GetWindowText(str);
	int n=m_single.FindString(-1,str);
	m_singlescale=m_single.GetItemData(n);
	UpdateData(false);	
}

void CPaperOptionView::OnSelendokComboSpace() 
{
	CString str;
	m_space.GetWindowText(str);
	int n=m_space.FindString(-1,str);	
	m_spacescale=m_space.GetItemData(n);
	str.Format("%d",m_spacescale);
	AfxMessageBox(str);
	UpdateData(false);	
}

void CPaperOptionView::OnChangeEditSinglecount() 
{
	UpdateData(true);
	m_singletotalscore=m_singlecount * m_singlescore;
	m_totalscore=m_singletotalscore+m_spacetotalscore
					+m_moretotalscore+m_judgetotalscore;
	UpdateData(false);
}

void CPaperOptionView::OnChangeEditSinglescore() 
{
	UpdateData(true);
	m_singletotalscore=m_singlecount * m_singlescore;
	m_totalscore=m_singletotalscore+m_spacetotalscore
					+m_moretotalscore+m_judgetotalscore;
	UpdateData(false);
}

void CPaperOptionView::OnChangeEditSpacecount() 
{
	UpdateData(true);
	m_spacetotalscore=m_spacecount * m_spacescore;
	m_totalscore=m_singletotalscore+m_spacetotalscore
					+m_moretotalscore+m_judgetotalscore;
	UpdateData(false);
}

void CPaperOptionView::OnChangeEditSpacecount1() 
{
	UpdateData(true);
	m_spacecount=m_spacecount1+m_spacecount2;
	m_spacetotalscore=m_spacecount * m_spacescore;
	m_totalscore=m_singletotalscore+m_spacetotalscore
					+m_moretotalscore+m_judgetotalscore;
	UpdateData(false);
}

void CPaperOptionView::OnChangeEditSpacecount2() 
{
	UpdateData(true);
	m_spacecount=m_spacecount1+m_spacecount2*2;
	m_spacetotalscore=m_spacecount * m_spacescore;
	m_totalscore=m_singletotalscore+m_spacetotalscore
					+m_moretotalscore+m_judgetotalscore;
	UpdateData(false);
}

void CPaperOptionView::OnChangeEditSpacescore() 
{
	UpdateData(true);
	m_spacetotalscore=m_spacecount * m_spacescore;
	m_totalscore=m_singletotalscore+m_spacetotalscore
					+m_moretotalscore+m_judgetotalscore;
	UpdateData(false);
}

void CPaperOptionView::OnChangeEditMorecount() 
{
	UpdateData(true);
	m_moretotalscore=m_morecount * m_morescore;
	m_totalscore=m_singletotalscore+m_spacetotalscore
					+m_moretotalscore+m_judgetotalscore;
	UpdateData(false);
}

void CPaperOptionView::OnChangeEditMoreescore() 
{
	UpdateData(true);
	m_moretotalscore=m_morecount * m_morescore;
	m_totalscore=m_singletotalscore+m_spacetotalscore
					+m_moretotalscore+m_judgetotalscore;
	UpdateData(false);
}

void CPaperOptionView::OnChangeEditJudgecount() 
{
	UpdateData(true);
	m_judgetotalscore=m_judgecount * m_judgescore;
	m_totalscore=m_singletotalscore+m_spacetotalscore
					+m_moretotalscore+m_judgetotalscore;
	UpdateData(false);
}

void CPaperOptionView::OnChangeEditJudgescore() 
{
	UpdateData(true);
	m_judgetotalscore=m_judgecount * m_judgescore;
	m_totalscore=m_singletotalscore+m_spacetotalscore
					+m_moretotalscore+m_judgetotalscore;
	UpdateData(false);
}

void CPaperOptionView::OnChangeEditJudgescale() 
{
	CString str;
	m_judge.GetWindowText(str);
	int n=m_judge.FindString(-1,str);
	int m=m_judge.GetItemData(n);//获得当前章节上一次的题量分配值
	UpdateData(true);
	int x=m_judgescale2 + m - m_judgescale;		
	if (x<0){
		x=m_judgescale2 + m;
		str.Format("题量比例最大%d!",x);
		AfxMessageBox(str);
	}else{
		m_judgescale2=x;
		m_judge.SetItemData(n,m_judgescale);
		UpdateData(false);
	}
}

void CPaperOptionView::OnChangeEditMorescale() 
{
	CString str;
	m_more.GetWindowText(str);
	int n=m_more.FindString(-1,str);
	int m=m_more.GetItemData(n);//获得当前章节上一次的题量分配值
	UpdateData(true);
	int x=m_morescale2 + m - m_morescale;		
	if (x<0){
		x=m_morescale2 + m;
		str.Format("题量比例最大%d!",x);
		AfxMessageBox(str);
	}else{
		m_morescale2=x;
		m_more.SetItemData(n,m_morescale);
		UpdateData(false);
	}
}

void CPaperOptionView::OnChangeEditSinglescale() 
{
	CString str;
	m_single.GetWindowText(str);
	int n=m_single.FindString(-1,str);
	int m=m_single.GetItemData(n);//获得当前章节上一次的题量分配值
	UpdateData(true);
	int x=m_singlescale2 + m - m_singlescale;		
	if (x<0){
		x=m_singlescale2 + m;
		str.Format("题量比例最大%d!",x);
		AfxMessageBox(str);
	}else{
		m_singlescale2=x;
		m_single.SetItemData(n,m_singlescale);
		UpdateData(false);
	}
}

void CPaperOptionView::OnChangeEditSpacescale() 
{
	CString str;
	m_space.GetWindowText(str);
	int n=m_space.FindString(-1,str);
	int m=m_space.GetItemData(n);//获得当前章节上一次的题量分配值
	UpdateData(true);
	int x=m_spacescale2 + m - m_spacescale;		
	if (x<0){
		x=m_spacescale2 + m;
		str.Format("题量比例最大%d!",x);
		AfxMessageBox(str);
	}else{
		m_spacescale2=x;
		m_space.SetItemData(n,m_spacescale);
		UpdateData(false);
	}
}

void CPaperOptionView::OnKillfocusEditSpacescale() 
{
	UpdateData(true);
	int n=m_spacecount*m_spacescale/100;
	float m=m_spacecount*m_spacescale/100.0;
	CString str;	
	if (m!=n)
	{
		str.Format("题量比例不正确,本章试题数不为整数:%d*%d/100=%f",
				m_spacecount,m_spacescale,m);
		MessageBox(str);
		m_objspacescale.SetFocus();
	}
}

void CPaperOptionView::OnKillfocusEditSinglescale() 
{
	UpdateData(true);
	int n=m_singlecount*m_singlescale/100;
	float m=m_singlecount*m_singlescale/100.0;
	CString str;	
	if (m!=n)
	{
		str.Format("题量比例不正确,本章试题数不为整数:%d*%d/100=%f",
				m_singlecount,m_singlescale,m);
		MessageBox(str);
		m_objsinglescale.SetFocus();
	}
}

void CPaperOptionView::OnKillfocusEditMorescale() 
{
	UpdateData(true);
	int n=m_morecount*m_morescale/100;
	float m=m_morecount*m_morescale/100.0;
	CString str;	
	if (m!=n)
	{
		str.Format("题量比例不正确,本章试题数不为整数:%d*%d/100=%f",
				m_morecount,m_morescale,m);
		MessageBox(str);
		m_objmorescale.SetFocus();
	}
}

void CPaperOptionView::OnKillfocusEditJudgescale() 
{
	UpdateData(true);
	int n=m_judgecount*m_judgescale/100;
	float m=m_judgecount*m_judgescale/100.0;
	CString str;	
	if (m!=n)
	{
		str.Format("题量比例不正确,本章试题数不为整数:%d*%d/100=%f",
				m_judgecount,m_judgescale,m);
		MessageBox(str);
		m_objjudgescale.SetFocus();
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -