📄 paperoptionview.cpp
字号:
}
//检查多选题题试题是否足够
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 + -