📄 asy.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 + -