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

📄 mainfrm.cpp

📁 这是目前正应用于辽宁省很多县级中学的试题库系统源代码
💻 CPP
📖 第 1 页 / 共 3 页
字号:
		buf[4].TrimRight();
		m_temprecordset2.GetFieldValue(5,OleVar2);
		buf[5]=OleVar2.m_pstring->GetBuffer(1);
		buf[5].TrimLeft();
		buf[5].TrimRight();
		m_temprecordset2.GetFieldValue(6,OleVar2);
		buf[6]=OleVar2.m_pstring->GetBuffer(1);
		buf[6].TrimLeft();
		buf[1].TrimRight();
		m_temprecordset2.GetFieldValue(7,OleVar2);
	    buf[7]=OleVar2.m_pstring->GetBuffer(1);
		buf[7].TrimLeft();
		buf[7].TrimRight();
		m_temprecordset2.GetFieldValue(8,OleVar2);
		buf[8]=OleVar2.m_pstring->GetBuffer(1);	
		buf[8].TrimLeft();
		buf[8].TrimRight();
		buf[9].Format("%d",m+1);
	    strSQL3.Empty();
	    strSQL3.Format("insert into 试卷表(题目编号,考试对象,难度级别,题目内容,选项A,选项B,选项C,选项D,标准答案,排序变量) values('"+buf[0]+"','"+buf[1]+"','"
		          +buf[2]+"','"+buf[3]+"','"+buf[4]+"','"+buf[5]+"','"
				  +buf[6]+"','"+buf[7]+"','"+buf[8]+"','"
				  +buf[9]+"')");
	    m_database.ExecuteSQL(strSQL3);		
	}
	for(int n=0;n<value2;n++)
	{
	    m_temprecordset3.MoveFirst();
		m_temprecordset3.Move(temp2[n]);	
        int te=0;
		m_temprecordset3.GetFieldValue(te,OleVar2);
		buf[0].Format("%d",OleVar2.m_iVal);
   		m_temprecordset3.GetFieldValue(1,OleVar2);
		buf[1]=OleVar2.m_pstring->GetBuffer(1);
		buf[1].TrimLeft();
		buf[1].TrimRight();
		m_temprecordset3.GetFieldValue(2,OleVar2);
		buf[2].Format("%d",OleVar2.m_iVal);
		m_temprecordset3.GetFieldValue(3,OleVar2);
		buf[3]=OleVar2.m_pstring->GetBuffer(1);
		buf[3].TrimLeft();
		buf[3].TrimRight();
		m_temprecordset3.GetFieldValue(4,OleVar2);
		buf[4]=OleVar2.m_pstring->GetBuffer(1);
		buf[4].TrimLeft();
		buf[4].TrimRight();
		m_temprecordset3.GetFieldValue(5,OleVar2);
		buf[5]=OleVar2.m_pstring->GetBuffer(1);
		buf[5].TrimLeft();
		buf[5].TrimRight();
		m_temprecordset3.GetFieldValue(6,OleVar2);
		buf[6]=OleVar2.m_pstring->GetBuffer(1);
		buf[6].TrimLeft();
		buf[6].TrimRight();
		m_temprecordset3.GetFieldValue(7,OleVar2);
	    buf[7]=OleVar2.m_pstring->GetBuffer(1);
		buf[7].TrimLeft();
		buf[7].TrimRight();
		m_temprecordset3.GetFieldValue(8,OleVar2);
		buf[8]=OleVar2.m_pstring->GetBuffer(1);
		buf[8].TrimLeft();
		buf[8].TrimRight();
		buf[9].Format("%d",value1+1+n);
	    strSQL3.Empty();
	    strSQL3.Format("insert into 试卷表(题目编号,考试对象,难度级别,题目内容,选项A,选项B,选项C,选项D,标准答案,排序变量) values('"+buf[0]+"','"+buf[1]+"','"
		          +buf[2]+"','"+buf[3]+"','"+buf[4]+"','"+buf[5]+"','"
				  +buf[6]+"','"+buf[7]+"','"+buf[8]+"','"
				  +buf[9]+"')");
	    m_database.ExecuteSQL(strSQL3);
	}
	return TRUE;
}

BOOL CMainFrame::CreateTestPaper()//试卷生成函数
{
	int     number=0;
	int     DXnumber;
	int     PDnumber;
	double  PDscore;
	double  DXscore;
	int     w=3;
	CString temp;
	int     bian;
	CString name;
    CDBVariant OleVar;
	_Application WordApp;
	Documents docs;
	_Document doc;
	Range range;
	Table table;
	Tables tables;
	Cell cell;
	Paragraph paragraph;
	Paragraphs paragraphs;
	CTestPaperApp* pApp=(CTestPaperApp*) AfxGetApp();
	if(pApp->enterdlg.struser!="administrator")
	{
		AfxMessageBox("对不起!你是一般用户身份!");
		return FALSE;
	}
	if(BoolConnent==FALSE)
	{
		AfxMessageBox("请连接数据源或无记录!");
		return FALSE;
	}
	try
	{
		CString temppaper;
		temppaper.Format("select * from 试卷表");
		if(m_testpaperrecordset.IsOpen())
		{
			m_testpaperrecordset2.Close();
		    m_testpaperrecordset2.Open(CRecordset::dynaset,temppaper);
		}
		else
		{
            m_testpaperrecordset2.Open(CRecordset::dynaset,temppaper);
		}

	}
	catch(...)
	{
		AfxMessageBox("cann't open table!");
		return FALSE;
	}
	if(m_testpaperrecordset2.GetRecordCount()==0)
	{
		AfxMessageBox("对不起,当前试卷无试题!");
		return FALSE;
	}
	else
	{
		m_testpaperrecordset2.MoveFirst();
	    while(!m_testpaperrecordset2.IsEOF())
		{
	    	number=number+1;
		    m_testpaperrecordset2.MoveNext();
		}
	}
	try
	{
		if(m_temprecordset1.IsOpen())
		{
			m_temprecordset1.Close();
            m_temprecordset1.Open(CRecordset::dynaset,"select * from 试卷参数设置");
		}
		else
		{
			m_temprecordset1.Open(CRecordset::dynaset,"select * from 试卷参数设置");
		}
	}
	catch(...)
	{
		AfxMessageBox("cann't open table!");
		return FALSE;
	}
	if(m_temprecordset1.GetRecordCount()==0)
	{
		AfxMessageBox("无试卷参数,无法生成试卷!");
		return FALSE;
	}
	m_temprecordset1.MoveLast();
	m_temprecordset1.GetFieldValue(4,OleVar);
	DXnumber=OleVar.m_iVal;
	m_temprecordset1.GetFieldValue(5,OleVar);
	PDnumber=OleVar.m_iVal;
	m_temprecordset1.GetFieldValue(6,OleVar);
	DXscore=OleVar.m_dblVal;
	m_temprecordset1.GetFieldValue(7,OleVar);
	PDscore=OleVar.m_dblVal;
	m_temprecordset1.GetFieldValue(9,OleVar);
	name=OleVar.m_pstring->GetBuffer(1);//获取考试名称
	name.TrimLeft();
	name.TrimRight();
	CoInitialize(NULL);
	if(!WordApp.CreateDispatch("Word.Application",NULL))
	{
		AfxMessageBox("创建Word服务失败!");
		exit(1);
		return FALSE;
	}
	COleVariant start_line,end_line;
	WordApp.SetVisible(true);
	docs=WordApp.GetDocuments();
	COleVariant covOptional((long) DISP_E_PARAMNOTFOUND,VT_ERROR);
	doc=docs.Add(covOptional,covOptional,covOptional,covOptional);
    start_line=end_line=covOptional;
	range=doc.Range(start_line,end_line);
	tables=doc.GetTables();
	table=tables.Add(range,5*DXnumber+PDnumber+6,1,covOptional,covOptional);
	cell=table.Cell(1,1);
    range=cell.GetRange();
	range.SetBold(1);
	range.SetText(name);
	cell=table.Cell(2,1);
	range=cell.GetRange();
	CString text;
	text.Format("                                           ");
	range.SetText(text);	
	cell=table.Cell(3,1);
	range=cell.GetRange();
	text.Format("姓名:        单位:        得分:        ");
	range.SetText(text);
	cell=table.Cell(4,1);
	range=cell.GetRange();
	text.Format("一、单项选择题(每题%.1f分)",DXscore);
	range.SetText(text);
	range.SetBold(1);
    m_testpaperrecordset2.MoveFirst();
	for(int k=5;k<5*DXnumber+5;k++)
	{ 
		switch(w)
		{
          case 3:m_testpaperrecordset2.GetFieldValue(3,OleVar);
	             text=OleVar.m_pstring->GetBuffer(1);
	             text.TrimLeft();
	             text.TrimRight();
				 m_testpaperrecordset2.GetFieldValue(9,OleVar);
                 bian=OleVar.m_iVal;
				 temp.Format("%d. ",bian);
		         cell=table.Cell(k,1);
	             range=cell.GetRange();
	             range.SetText(temp+text);
				 break;
		  case 4:m_testpaperrecordset2.GetFieldValue(4,OleVar);
	             text=OleVar.m_pstring->GetBuffer(1);
	             text.TrimLeft();
	             text.TrimRight();	   
		         cell=table.Cell(k,1);
	             range=cell.GetRange();
				 range.SetText("  A、"+text);
				 break;
	      case 5:m_testpaperrecordset2.GetFieldValue(5,OleVar);
	             text=OleVar.m_pstring->GetBuffer(1);
	             text.TrimLeft();
	             text.TrimRight();	   
		         cell=table.Cell(k,1);
	             range=cell.GetRange();
	             range.SetText("  B、"+text);
				 break;
		  case 6:m_testpaperrecordset2.GetFieldValue(6,OleVar);
	             text=OleVar.m_pstring->GetBuffer(1);
	             text.TrimLeft();
	             text.TrimRight();	   
		         cell=table.Cell(k,1);
	             range=cell.GetRange();
	             range.SetText("  C、"+text);
				 break;
		  case 7:m_testpaperrecordset2.GetFieldValue(7,OleVar);
	             text=OleVar.m_pstring->GetBuffer(1);
	             text.TrimLeft();
	             text.TrimRight();	   
		         cell=table.Cell(k,1);
	             range=cell.GetRange();
	             range.SetText("  D、"+text);
				 break;
		  }
		w=w+1;
		if(w==8)
		{
			w=3;
		    m_testpaperrecordset2.MoveNext();
		}
	}
	cell=table.Cell(5*DXnumber+6,1);
	range=cell.GetRange();
	text.Format("二、判断题(每题%.1f分)",PDscore);
	range.SetText(text);
	range.SetBold(1);
	for(int n=5*DXnumber+7;n<5*DXnumber+7+PDnumber;n++)
	{ 
          m_testpaperrecordset2.GetFieldValue(3,OleVar);
	      text=OleVar.m_pstring->GetBuffer(1);
	      text.TrimLeft();
	      text.TrimRight();
		  m_testpaperrecordset2.GetFieldValue(9,OleVar);
          bian=OleVar.m_iVal;
		  temp.Format("%d. ",bian);
		  cell=table.Cell(n,1);
	      range=cell.GetRange();
	      range.SetText(temp+text);
		  m_testpaperrecordset2.MoveNext();
	}
	return TRUE;		
}
BOOL CMainFrame::CreateAnswer()//答案生成函数
{
	int     number=0;
	int     DXnumber;
	int     PDnumber;
	double  PDscore;
	double  DXscore;
	int     w=3;
	CString temp;
	int     bian;
	CString name;
    CDBVariant OleVar;
	_Application WordApp;
	Documents docs;
	_Document doc;
	Range range;
	Table table;
	Tables tables;
	Cell cell;
	Paragraph paragraph;
	Paragraphs paragraphs;
	CTestPaperApp* pApp=(CTestPaperApp*) AfxGetApp();
	if(pApp->enterdlg.struser!="administrator")
	{
		AfxMessageBox("对不起!你是一般用户身份!");
		return FALSE;
	}
	if(BoolConnent==FALSE)
	{
		AfxMessageBox("请连接数据源或无记录!");
		return FALSE;
	}
	try
	{
		CString temppaper;
		temppaper.Format("select * from 试卷表");
		if(m_testpaperrecordset.IsOpen())
		{
			m_testpaperrecordset2.Close();
		    m_testpaperrecordset2.Open(CRecordset::dynaset,temppaper);
		}
		else
		{
            m_testpaperrecordset2.Open(CRecordset::dynaset,temppaper);
		}

	}
	catch(...)
	{
		AfxMessageBox("cann't open table!");
		return FALSE;
	}
	if(m_testpaperrecordset2.GetRecordCount()==0)
	{
		AfxMessageBox("对不起,当前试卷无答案!");
		return FALSE;
	}
	else
	{
		m_testpaperrecordset2.MoveFirst();
	    while(!m_testpaperrecordset2.IsEOF())
		{
	    	number=number+1;
		    m_testpaperrecordset2.MoveNext();
		}
	}
	try
	{
		if(m_temprecordset1.IsOpen())
		{
			m_temprecordset1.Close();
            m_temprecordset1.Open(CRecordset::dynaset,"select * from 试卷参数设置");
		}
		else
		{
			m_temprecordset1.Open(CRecordset::dynaset,"select * from 试卷参数设置");
		}
	}
	catch(...)
	{
		AfxMessageBox("cann't open table!");
		return FALSE;
	}
	if(m_temprecordset1.GetRecordCount()==0)
	{
		AfxMessageBox("无试卷参数,无法生成试卷!");
		return FALSE;
	}
    m_temprecordset1.MoveLast();
	m_temprecordset1.GetFieldValue(4,OleVar);
	DXnumber=OleVar.m_iVal;
	m_temprecordset1.GetFieldValue(5,OleVar);
	PDnumber=OleVar.m_iVal;
	m_temprecordset1.GetFieldValue(6,OleVar);
	DXscore=OleVar.m_dblVal;
	m_temprecordset1.GetFieldValue(7,OleVar);
	PDscore=OleVar.m_dblVal;
	m_temprecordset1.GetFieldValue(9,OleVar);
	name=OleVar.m_pstring->GetBuffer(1);//获取考试名称
	name.TrimLeft();
	name.TrimRight();
	CoInitialize(NULL);
	if(!WordApp.CreateDispatch("Word.Application",NULL))
	{
		AfxMessageBox("创建Word服务失败!");
		exit(1);
		return FALSE;
	}
	COleVariant start_line,end_line;
	WordApp.SetVisible(true);
	docs=WordApp.GetDocuments();
	COleVariant covOptional((long) DISP_E_PARAMNOTFOUND,VT_ERROR);
	doc=docs.Add(covOptional,covOptional,covOptional,covOptional);
    start_line=end_line=covOptional;
	range=doc.Range(start_line,end_line);
	tables=doc.GetTables();
	table=tables.Add(range,6,1,covOptional,covOptional);

	cell=table.Cell(1,1);
    range=cell.GetRange();
	range.SetBold(1);
	range.SetText(name+"(答案)");

	cell=table.Cell(2,1);
	range=cell.GetRange();
	CString text;
	text.Format("                                           ");
	range.SetText(text);	

	cell=table.Cell(3,1);
	range=cell.GetRange();
	text.Format("一、单项选择题(每题%.1f分)",DXscore);
	range.SetText(text);
	range.SetBold(1);

    CString Atemp;
    m_testpaperrecordset2.MoveFirst();
	for(int k=0;k<DXnumber;k++)
	{ 
		
         m_testpaperrecordset2.GetFieldValue(8,OleVar);
	     text=OleVar.m_pstring->GetBuffer(1);
	     text.TrimLeft();
	     text.TrimRight();
	     m_testpaperrecordset2.GetFieldValue(9,OleVar);
         bian=OleVar.m_iVal;
	     temp.Format("%d."+text,bian);
		 Atemp=Atemp+temp;
		 m_testpaperrecordset2.MoveNext();
	}

	cell=table.Cell(4,1);
	range=cell.GetRange();
	range.SetText(Atemp);

	cell=table.Cell(5,1);
	range=cell.GetRange();
	text.Format("二、判断题(每题%.1f分)",PDscore);
	range.SetText(text);
	range.SetBold(1);

    CString Ztemp;
	for(int n=0;n<PDnumber;n++)
	{ 
          m_testpaperrecordset2.GetFieldValue(8,OleVar);
	      text=OleVar.m_pstring->GetBuffer(1);
	      text.TrimLeft();
	      text.TrimRight();
		  m_testpaperrecordset2.GetFieldValue(9,OleVar);
          bian=OleVar.m_iVal;
		  temp.Format("%d."+text,bian);
		  Ztemp=Ztemp+temp;
		  m_testpaperrecordset2.MoveNext();
	}

	cell=table.Cell(6,1);
	range=cell.GetRange();
	range.SetText(Ztemp);
	return TRUE;
}
void CMainFrame::OnAnswer() 
{
	// TODO: Add your command handler code here
	CreateAnswer();
	
}

void CMainFrame::OnCreateTestPaper() 
{
	// TODO: Add your command handler code here
	ChooseTestPaper();
	CreateTestPaper();	
}


⌨️ 快捷键说明

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