📄 page2.cpp
字号:
// Page2.cpp : implementation file
//
#include "stdafx.h"
#include "cj.h"
#include "Page2.h"
#include "FindDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CPage2 property page
IMPLEMENT_DYNCREATE(CPage2, CPropertyPage)
CPage2::CPage2() : CPropertyPage(CPage2::IDD)
{
//{{AFX_DATA_INIT(CPage2)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
CPage2::~CPage2()
{
}
void CPage2::DoDataExchange(CDataExchange* pDX)
{
CPropertyPage::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CPage2)
DDX_Control(pDX, IDC_LIST2, m_clist2);
DDX_Control(pDX, IDC_LIST1, m_clist1);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CPage2, CPropertyPage)
//{{AFX_MSG_MAP(CPage2)
ON_WM_CANCELMODE()
ON_BN_CLICKED(IDC_FIND, OnFind)
ON_BN_CLICKED(IDC_ALL, OnAll)
ON_BN_CLICKED(IDC_SHOW, OnShow)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CPage2 message handlers
BOOL CPage2::OnInitDialog()
{
CPropertyPage::OnInitDialog();
// TODO: Add extra initialization here
m_clist1.SetExtendedStyle(LVS_EX_GRIDLINES );
m_clist2.SetExtendedStyle(LVS_EX_GRIDLINES );
m_clist1.InsertColumn(0,"学号",LVCFMT_LEFT,45);
m_clist1.InsertColumn(1,"姓名",LVCFMT_LEFT,45);
m_clist1.InsertColumn(2,"高数",LVCFMT_LEFT,45);
m_clist1.InsertColumn(3,"大物",LVCFMT_LEFT,45);
m_clist1.InsertColumn(4,"体育",LVCFMT_LEFT,45);
m_clist1.InsertColumn(5,"英语",LVCFMT_LEFT,45);
m_clist1.InsertColumn(6,"政治",LVCFMT_LEFT,45);
m_clist1.InsertColumn(7,"总成绩",LVCFMT_LEFT,60);
m_clist1.InsertColumn(8,"平均成绩",LVCFMT_LEFT,65);
m_clist2.InsertColumn(0,"科目",LVCFMT_LEFT,45);
m_clist2.InsertColumn(1,"总成绩",LVCFMT_LEFT,50);
m_clist2.InsertColumn(2,"平均成绩",LVCFMT_LEFT,65);
m_clist2.InsertColumn(3,"及格人数",LVCFMT_LEFT,65);
m_clist2.InsertColumn(4,"优秀人数",LVCFMT_LEFT,65);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CPage2::OnCancelMode()
{
CPropertyPage::OnCancelMode();
// TODO: Add your message handler code here
}
void CPage2::OnFind()
{
BOOL m_canfind;
CFindDlg findialg;
if (findialg.DoModal()==IDOK)
{
m_canfind=FALSE;
int buffersizes;
m_clist1.DeleteAllItems();
LPTSTR pbuffers;
CFile fstinfor;
if(fstinfor.Open("stinfor.txt",CFile::modeRead))
{
buffersizes=(int)fstinfor.GetLength();
CString stinfor;
pbuffers=stinfor.GetBuffer(buffersizes);
fstinfor.Read(pbuffers,buffersizes);
stinfor.ReleaseBuffer();
int n=0;
int m=0;
BOOL display;
int ststart=0;
CString temp;
CString s;
float sum_courses=0;
for(int stend=0;stend<buffersizes;stend++)
{
if(stinfor.GetAt(stend)=='\t'||stinfor.GetAt(stend)=='\n')
{
temp=stinfor.Mid(ststart,(stend-ststart));
switch(m)
{
case 0: display=TRUE;
break;
case 1: if(display)
{
if((findialg.m_getstring2==">=")&&(atoi(temp)<(int)findialg.m_ntiaojian))
display=FALSE;
if((findialg.m_getstring2=="=")&&(atoi(temp)!=(int)findialg.m_ntiaojian))
display=FALSE;
if((findialg.m_getstring2=="<=")&&(atoi(temp)>(int)findialg.m_ntiaojian))
display=FALSE;
if(display)
{
m_canfind=TRUE;
sum_courses=0;
m_clist1.InsertItem(n,"");
s.Format("%d",atoi(temp));
m_clist1.SetItemText(n,0,s);
}
}
break;
case 2: if(display)
{
m_clist1.SetItemText(n,1,temp);
}
break;
case 7: if(display)
{
s.Format("%.1f",atof(temp));
m_clist1.SetItemText(n,6,s);
sum_courses=sum_courses+(float)atof(temp);
s.Format("%.1f",sum_courses);
m_clist1.SetItemText(n,7,s);
s.Format("%.1f",sum_courses/5);
m_clist1.SetItemText(n,8,s);
n++;
}
break;
default: if(display)
{
s.Format("%.1f",atof(temp));
m_clist1.SetItemText(n,m-1,s);
sum_courses=sum_courses+(float)atof(temp);
}
}
ststart=stend+1;
m=(m+1)%8;
}
}
fstinfor.Close();
if(!m_canfind)
::AfxMessageBox("没有您所要求的结果,请修改查询条件重新查询!");
}
}
}
void CPage2::OnAll()
{
// TODO: Add your control notification handler code here
int buffersizes;
m_clist1.DeleteAllItems();
////if(m_set.IsOpen()) m_set.Close();
LPTSTR pbuffers;
CFile fstinfor;
if(fstinfor.Open("stinfor.txt",CFile::modeRead))
{
buffersizes=(int)fstinfor.GetLength();
CString stinfor;
pbuffers=stinfor.GetBuffer(buffersizes);
fstinfor.Read(pbuffers,buffersizes);
stinfor.ReleaseBuffer();
//// m_set.m_strFilter.Empty();
int n=0;
int m=0;
BOOL display;
int ststart=0;
CString temp;
CString s;
float sum_courses=0;
//// m_set.Open();
for(int stend=0;stend<buffersizes;stend++)
{
if(stinfor.GetAt(stend)=='\t'||stinfor.GetAt(stend)=='\n')
{
temp=stinfor.Mid(ststart,(stend-ststart));
switch(m)
{
case 0: display=TRUE;
break;
case 1: if(display)
{
sum_courses=0;
m_clist1.InsertItem(n,"");
s.Format("%d",atoi(temp));
m_clist1.SetItemText(n,0,s);
}
break;
case 2: if(display)
{
m_clist1.SetItemText(n,1,temp);
}
break;
case 7: if(display)
{
s.Format("%.1f",atof(temp));
m_clist1.SetItemText(n,6,s);
sum_courses=sum_courses+(float)atof(temp);
s.Format("%.1f",sum_courses);
m_clist1.SetItemText(n,7,s);
s.Format("%.1f",sum_courses/5);
m_clist1.SetItemText(n,8,s);
n++;
}
break;
default: if(display)
{
s.Format("%.1f",atof(temp));
m_clist1.SetItemText(n,m-1,s);
sum_courses=sum_courses+(float)atof(temp);
}
}
ststart=stend+1;
m=(m+1)%8;
}
}
fstinfor.Close();
}
}
void CPage2::OnShow()
{
// TODO: Add your control notification handler code here
m_clist2.DeleteAllItems();
int m, n;
CString s;
float total_marks,average_marks;
float mark;
int num_pass,num_excellent;
for(m=0;m<5;m++)
{
m_clist2.InsertItem(m,"");
switch(m)
{
case 0:
m_clist2.SetItemText(m,0,"高数");
break;
case 1:
m_clist2.SetItemText(m,0,"大物");
break;
case 2:
m_clist2.SetItemText(m,0,"体育");
break;
case 3:
m_clist2.SetItemText(m,0,"英语");
break;
case 4:
m_clist2.SetItemText(m,0,"政治");
break;
default:
;
}
if(!m_clist1.GetItemCount())
{
m_clist2.SetItemText(m,1,"0.0");
m_clist2.SetItemText(m,2,"0.0");
m_clist2.SetItemText(m,3,"0.0");
m_clist2.SetItemText(m,4,"0.0");
}
else
{
num_pass=0;
num_excellent=0;
total_marks=0;
for(n=0;n<m_clist1.GetItemCount();n++)
{
s=m_clist1.GetItemText(n,m+2);
mark=(float)atof(s);
if(mark>=60)
num_pass++;
if(mark>=90)
num_excellent++;
total_marks+=mark;
}
average_marks=total_marks/n;
s.Format("%.1f",total_marks);
m_clist2.SetItemText(m,1,s);
s.Format("%.1f",average_marks);
m_clist2.SetItemText(m,2,s);
s.Format("%d",num_pass);
m_clist2.SetItemText(m,3,s);
s.Format("%d",num_excellent);
m_clist2.SetItemText(m,4,s);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -