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

📄 asy.cpp

📁 VC++编写的论文管理系统
💻 CPP
字号:
// Asy.cpp : implementation file
//

#include "stdafx.h"
#include "qq.h"
#include "Asy.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CAsy dialog


CAsy::CAsy(int type,CWnd* pParent /*=NULL*/)
	: CDialog(CAsy::IDD, pParent)
{
	//{{AFX_DATA_INIT(CAsy)
	m_input_value = _T("");
	m_total_Nbr = _T("");
	m_good_nbr = _T("");
	m_good_rate = _T("");
	//}}AFX_DATA_INIT
	m_mode = type;
}


void CAsy::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CAsy)
	DDX_Control(pDX, IDC_EDIT1, m_input_edit);
	DDX_Control(pDX, IDC_LIST1, m_asy_list);
	DDX_Text(pDX, IDC_EDIT1, m_input_value);
	DDX_Text(pDX, IDC_EDIT2, m_total_Nbr);
	DDX_Text(pDX, IDC_EDIT3, m_good_nbr);
	DDX_Text(pDX, IDC_EDIT4, m_good_rate);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CAsy, CDialog)
	//{{AFX_MSG_MAP(CAsy)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CAsy message handlers
void CAsy::show(int k)
{
	//	UpdateData();
		CString score;
		CString s;
		s.Format("%d",k);
		m_asy_list.InsertItem(k,s,0);
		m_asy_list.SetItemText(k,0,m_StuInfoSet.m_gradeclass);
		m_asy_list.SetItemText(k,1,m_StuInfoSet.m_stuid);
		m_asy_list.SetItemText(k,3,m_ThesisInfoSet.m_teacher);
		m_asy_list.SetItemText(k,2,m_StuInfoSet.m_stuname);
		m_asy_list.SetItemText(k,4,m_ThesisInfoSet.m_name);
		m_asy_list.SetItemText(k,5,m_ThesisInfoSet.m_type);
		score.Format("%.2f",m_ThesisInfoSet.m_score);
		m_asy_list.SetItemText(k,6,score);

}
void CAsy::showThesisType(CString strStu)
{
	int k=0,g=0;
	bool nHasExist=false;

	m_ThesisInfoSet.Open(AFX_DB_USE_DEFAULT_TYPE);
	if( m_ThesisInfoSet.IsEOF() )
	{
		m_ThesisInfoSet.Close();
		return;
	}
		
	m_ThesisInfoSet.MoveFirst();
	do 
	{
		if( m_ThesisInfoSet.m_type == strStu )
		{
			m_StuInfoSet.Open(AFX_DB_USE_DEFAULT_TYPE);
			m_StuInfoSet.MoveFirst();
			do 
			{
				if(m_ThesisInfoSet.m_stuid==m_StuInfoSet.m_stuid)
				{
					nHasExist = true;
					break;
				}
				m_StuInfoSet.MoveNext();
			}while(!m_StuInfoSet.IsEOF());
			if( nHasExist )
			{
				show(k);
				if( m_ThesisInfoSet.m_score >= 80.0 )
					g++;
				k++;
			}
			m_StuInfoSet.Close();
		}
		m_ThesisInfoSet.MoveNext();

	}while(!m_ThesisInfoSet.IsEOF());
	m_ThesisInfoSet.Close();//关闭数据库
		CString str;
	str.Format("%d",k);
	m_total_Nbr = str;
	str.Format("%d",g);
	m_good_nbr = str;
	if( k == 0 )
		str = "0.00%";
	else
		str.Format("%.2f%%",(g*100.0)/k);
	m_good_rate = str;
	UpdateData(false);

}

void CAsy::showTName(CString strTch)
{
	int k=0,g=0;
	bool nHasExist=false;

	m_ThesisInfoSet.Open(AFX_DB_USE_DEFAULT_TYPE);
		if( m_ThesisInfoSet.IsEOF() )
	{
			m_ThesisInfoSet.Close();//关闭数据库
			return;
	}
	m_ThesisInfoSet.MoveFirst();
	do 
	{
		if( m_ThesisInfoSet.m_teacher == strTch )
		{
			m_StuInfoSet.Open(AFX_DB_USE_DEFAULT_TYPE);
			m_StuInfoSet.MoveFirst();
			do 
			{
				if(m_ThesisInfoSet.m_stuid==m_StuInfoSet.m_stuid)
				{
					nHasExist = true;
					break;
				}
				m_StuInfoSet.MoveNext();
			}while(!m_StuInfoSet.IsEOF());
			if( nHasExist )
			{
				show(k);
				if( m_ThesisInfoSet.m_score >= 80.0 )
					g++;
				k++;
			}
			m_StuInfoSet.Close();
		}
		m_ThesisInfoSet.MoveNext();

	}while(!m_ThesisInfoSet.IsEOF());
	m_ThesisInfoSet.Close();//关闭数据库
		CString str;
	str.Format("%d",k);
	m_total_Nbr = str;
	str.Format("%d",g);
	m_good_nbr = str;
		if( k == 0 )
		str = "0.00%";
	else
	str.Format("%.2f%%",(g*100.0)/k);
	m_good_rate = str;
	UpdateData(false);

}

void CAsy::showAll()
{
	int k=0,g=0;
	bool nHasExist=false;

	m_StuInfoSet.Open(AFX_DB_USE_DEFAULT_TYPE);
		if( m_StuInfoSet.IsEOF() )
	{
			m_StuInfoSet.Close();//关闭数据库
			return;
	}
	m_StuInfoSet.MoveFirst();
	do 
	{
		m_ThesisInfoSet.Open(AFX_DB_USE_DEFAULT_TYPE);
		m_ThesisInfoSet.MoveFirst();
		do 
		{
			if(m_ThesisInfoSet.m_stuid==m_StuInfoSet.m_stuid)
			{
				nHasExist = true;
				break;
			}
			m_ThesisInfoSet.MoveNext();
		}while(!m_ThesisInfoSet.IsEOF());
		if( nHasExist )
		{
			show(k);
			if( m_ThesisInfoSet.m_score >= 80.0 )
				g++;
			k++;
		}
		m_ThesisInfoSet.Close();
		m_StuInfoSet.MoveNext();

	}while(!m_StuInfoSet.IsEOF());
	m_StuInfoSet.Close();//关闭数据库
	CString str;
	str.Format("%d",k);
	m_total_Nbr = str;
	str.Format("%d",g);
	m_good_nbr = str;
		if( k == 0 )
		str = "0.00%";
	else
	str.Format("%.2f%%",(g*100.0)/k);
	m_good_rate = str;
	UpdateData(false);

}
BOOL CAsy::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	DWORD dwStyle = m_asy_list.GetExtendedStyle();
	dwStyle |= LVS_EX_FULLROWSELECT;
	m_asy_list.SetExtendedStyle(dwStyle);
	m_asy_list.ModifyStyle(0, LVS_REPORT);
	CRect rect;
	m_asy_list.GetClientRect(&rect);
	int nColInterval = rect.Width();//设置单位宽度
	//	班级、学号、姓名、指导教师、论文题目、中文关键字、英文关键字、内容简介 
	m_asy_list.InsertColumn(0,_T(" 班   级"),LVCFMT_LEFT,nColInterval/6-50);
	m_asy_list.InsertColumn(1,_T(" 学   号"),LVCFMT_LEFT,nColInterval/6-30);
	m_asy_list.InsertColumn(2,_T(" 姓   名"),LVCFMT_LEFT,nColInterval/6-30);
	m_asy_list.InsertColumn(3,_T(" 指导教师"),LVCFMT_LEFT,nColInterval/6-30);
	m_asy_list.InsertColumn(4,_T(" 论文题目"),LVCFMT_LEFT,nColInterval/6+10);
	m_asy_list.InsertColumn(5,_T(" 论文类型"),LVCFMT_LEFT,nColInterval/6+10);
	m_asy_list.InsertColumn(6,_T(" 论文成绩"),LVCFMT_LEFT,nColInterval/6+10);
	switch(m_mode)
	{
	case 0:
		SetWindowText("统计全部记录");
		GetDlgItem(IDC_EDIT1)->EnableWindow(FALSE);
		GetDlgItem(IDC_INPUT_STATIC)->SetWindowText("按统计按钮:");
		break;
	case 1:
		SetWindowText("按指导教师统计记录");
		GetDlgItem(IDC_INPUT_STATIC)->SetWindowText("输入指导教师:");
		break;
	case 2:
		SetWindowText("按论文类型统计记录");
		GetDlgItem(IDC_INPUT_STATIC)->SetWindowText("输入论文类型:");
		break;
	}
	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CAsy::OnOK() 
{
	// TODO: Add extra validation here
	UpdateData(true);
	m_asy_list.DeleteAllItems();
	switch(m_mode)
	{
	case 0:
		showAll();
		break;
	case 1:
		showTName(m_input_value);
		break;
	case 2:
		showThesisType(m_input_value);
		break;
	}
	
//	CDialog::OnOK();
}

⌨️ 快捷键说明

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