📄 page1.cpp
字号:
// Page1.cpp : implementation file
//
#include "stdafx.h"
#include "cj.h"
#include "Page1.h"
#include "ADDDIALOG.h"
#include "DELETEDLG.h"
#include "ModifyDlg.h"
#include "FindDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
extern CDatabase m_db;
/////////////////////////////////////////////////////////////////////////////
// CPage1 property page
IMPLEMENT_DYNCREATE(CPage1, CPropertyPage)
CPage1::CPage1() : CPropertyPage(CPage1::IDD)
{
TCHAR *pfstinfor=_T("\\stinfor.txt");
TCHAR *pftchinfor=_T("\\tchinfor.txt");
//{{AFX_DATA_INIT(CPage1)
//}}AFX_DATA_INIT
}
CPage1::~CPage1()
{
}
void CPage1::DoDataExchange(CDataExchange* pDX)
{
CPropertyPage::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CPage1)
DDX_Control(pDX, IDC_LIST3, m_clist3);
DDX_Control(pDX, IDC_LIST2, m_clist2);
DDX_Control(pDX, IDC_LIST1, m_clist1);
DDX_Control(pDX, IDC_COMBO1, m_xuan);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CPage1, CPropertyPage)
//{{AFX_MSG_MAP(CPage1)
ON_BN_CLICKED(IDC_STATR, OnStatr)
ON_BN_CLICKED(IDC_ADD, OnAdd)
ON_BN_CLICKED(IDC_DELECT, OnDelect)
ON_BN_CLICKED(IDC_EDIT, OnEdit)
ON_BN_CLICKED(IDC_FIND, OnFind)
ON_BN_CLICKED(IDC_ALL, OnAll)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CPage1 message handlers
BOOL CPage1::OnInitDialog()
{
CPropertyPage::OnInitDialog();
// TODO: Add extra initialization here
m_clist1.SetExtendedStyle(LVS_EX_GRIDLINES ); //给LIST添加网格
m_clist2.SetExtendedStyle(LVS_EX_GRIDLINES );
m_clist3.SetExtendedStyle(LVS_EX_GRIDLINES );
m_clist1.InsertColumn(0,"科目",LVCFMT_LEFT,45);
m_clist1.InsertColumn(1,"总成绩",LVCFMT_LEFT,50);
m_clist1.InsertColumn(2,"平均成绩",LVCFMT_LEFT,65);
m_clist1.InsertColumn(3,"及格人数",LVCFMT_LEFT,65);
m_clist1.InsertColumn(4,"优秀人数",LVCFMT_LEFT,65);
m_clist2.InsertColumn(0,"科目",LVCFMT_LEFT,45);
m_clist2.InsertColumn(1,"任课老师",LVCFMT_LEFT,70);
m_clist3.InsertColumn(0,"学号",LVCFMT_LEFT,45);
m_clist3.InsertColumn(1,"姓名",LVCFMT_LEFT,45);
m_clist3.InsertColumn(2,"高数",LVCFMT_LEFT,45);
m_clist3.InsertColumn(3,"大物",LVCFMT_LEFT,45);
m_clist3.InsertColumn(4,"体育",LVCFMT_LEFT,45);
m_clist3.InsertColumn(5,"英语",LVCFMT_LEFT,45);
m_clist3.InsertColumn(6,"政治",LVCFMT_LEFT,45);
m_clist3.InsertColumn(7,"总成绩",LVCFMT_LEFT,60);
m_clist3.InsertColumn(8,"平均成绩",LVCFMT_LEFT,65);
GetDlgItem(IDC_ADD)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_DELECT)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_EDIT)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_FIND)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_ALL)->ShowWindow(SW_HIDE);
m_xuan.SetCurSel(1);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CPage1::OnStatr()
{
// TODO: Add your control notification handler code here
GetDlgItem(IDC_ADD)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_DELECT)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_EDIT)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_FIND)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_ALL)->ShowWindow(SW_SHOW);
m_xuan.GetLBText(m_xuan.GetCurSel(),m_Getstring);
//处理表3
// this->OnAll();
//处理表2
m_clist2.DeleteAllItems();
int buffersizet;
CFile ftchinfor;
if(ftchinfor.Open("tchinfor.txt",CFile::modeRead))
{
buffersizet=(int)ftchinfor.GetLength();
CString tchinfor;
char* pbuffert=tchinfor.GetBuffer(buffersizet);
ftchinfor.Read(pbuffert,buffersizet);
tchinfor.ReleaseBuffer();
int i = 0 ;
int tchstart=0;
CString ttemp;
for(int tchend=0;tchend<buffersizet;tchend++)
{
if(tchinfor.GetAt(tchend)=='\t'||tchinfor.GetAt(tchend)=='\n')
{
ttemp=tchinfor.Mid(tchstart,(tchend-tchstart));
tchstart=tchend+1;
if(i%2==0)
{
m_clist2.InsertItem(i/2,"");
m_clist2.SetItemText(i/2,0,ttemp);
}
else
m_clist2.SetItemText(i/2,1,ttemp);
i++;
}
}
}
//处理表1
m_clist1.DeleteAllItems();
int m, n;
CString s;
float total_marks,average_marks;
float mark;
int num_pass,num_excellent;
for(m=0;m<m_clist2.GetItemCount();m++)
{
m_clist1.InsertItem(m,"");
m_clist1.SetItemText(m,0,m_clist2.GetItemText(m,0));
if(!m_clist3.GetItemCount())
{
m_clist1.SetItemText(m,1,"0.0");
m_clist1.SetItemText(m,2,"0.0");
m_clist1.SetItemText(m,3,"0.0");
m_clist1.SetItemText(m,4,"0.0");
}
else
{
num_pass=0;
num_excellent=0;
total_marks=0;
for(n=0;n<m_clist3.GetItemCount();n++)
{
s=m_clist3.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_clist1.SetItemText(m,1,s);
s.Format("%.1f",average_marks);
m_clist1.SetItemText(m,2,s);
s.Format("%d",num_pass);
m_clist1.SetItemText(m,3,s);
s.Format("%d",num_excellent);
m_clist1.SetItemText(m,4,s);
}
}
}
void CPage1::OnAdd()
{
int class_num;
// TODO: Add your control notification handler code here
CADDDIALOG adddialog;
if (adddialog.DoModal()==IDOK)
{
if(m_Getstring=="一班")
{
class_num=1;
if(adddialog.m_nxuehao>=200)
{AfxMessageBox(_T("一班的学号在100-200之间!"),MB_OKCANCEL ,0); return;}
}
if(m_Getstring=="二班")
{
class_num=2;
if(adddialog.m_nxuehao<200||adddialog.m_nxuehao>=300)
{AfxMessageBox(_T("二班的学号在200-300之间!"),MB_OKCANCEL ,0); return ;}
}
CFile fstinfor;
if(fstinfor.Open("stinfor.txt",CFile::modeWrite))
{
CString s;
s.Format("%d\t%d\t%s\t%.f\t%.f\t%.f\t%.f\t%.f\r\n",
class_num,
adddialog.m_nxuehao,
adddialog.m_nName,
adddialog.m_nMaths,
adddialog.m_nwuli,
adddialog.m_nhuaxue,
adddialog.m_nEnglish,
adddialog.m_nzhengz);
int strsize=s.GetLength();
char* pbuffer=s.GetBuffer(strsize);
fstinfor.SeekToEnd();
fstinfor.Write(pbuffer,strsize);
fstinfor.Close();
this->OnAll();
}
}
}
void CPage1::OnDelect()
{
// TODO: Add your control notification handler code here
CDELETEDLG deletedlg;
if (deletedlg.DoModal()==IDOK)
{
if (deletedlg.m_npassword!=111111)
AfxMessageBox(_T("您输入的密码不正确,您没有权限修改记录! :( ,请在帮助文档中获得密码!"),MB_OKCANCEL ,0);
else
{
BOOL b=FALSE;
int buffersizes;
LPTSTR pbuffers;
CFile fstinfor;
if(fstinfor.Open("stinfor.txt",CFile::modeRead))
{
buffersizes=(int)fstinfor.GetLength();
CString stinfor;
CString s1,s2,s3,s4;
int class_num;
int pos_start;
int pos_end;
pbuffers=stinfor.GetBuffer(buffersizes);
fstinfor.Read(pbuffers,buffersizes);
stinfor.ReleaseBuffer();
fstinfor.Close();
class_num=1;
s1.Format("\r\n%d\t%d\t",class_num,deletedlg.m_nxuehao);
s3.Format("%d\t%d\t",class_num,deletedlg.m_nxuehao);
class_num=2;
s2.Format("\r\n%d\t%d\t",class_num,deletedlg.m_nxuehao);
s4.Format("%d\t%d\t",class_num,deletedlg.m_nxuehao);
if(stinfor.Find(s1)!=-1)
{
pos_start=stinfor.Find(s1);
pos_end=stinfor.Find('\n',pos_start+2);
stinfor.Delete(pos_start,pos_end-pos_start-1);
int strsize=stinfor.GetLength();
char* pbuffer=stinfor.GetBuffer(strsize);
fstinfor.Open("stinfor.txt",CFile::modeCreate|CFile::modeWrite);
fstinfor.Write(pbuffer,strsize);
b=TRUE;
fstinfor.Close();
}
else if(stinfor.Find(s2)!=-1)
{
pos_start=stinfor.Find(s2);
pos_end=stinfor.Find('\n',pos_start+2);
stinfor.Delete(pos_start,pos_end-pos_start-1);
int strsize=stinfor.GetLength();
char* pbuffer=stinfor.GetBuffer(strsize);
fstinfor.Open("stinfor.txt",CFile::modeCreate|CFile::modeWrite);
fstinfor.Write(pbuffer,strsize);
b=TRUE;
fstinfor.Close();
}
else
{
pos_start=0;
pos_end=stinfor.Find('\t',2);
if(s3.Compare(stinfor.Left(pos_end+1))==0||s4.Compare(stinfor.Left(pos_end+1))==0)
{
pos_end=stinfor.Find('\n');
stinfor.Delete(0,pos_end+1);
int strsize=stinfor.GetLength();
char* pbuffer=stinfor.GetBuffer(strsize);
fstinfor.Open("stinfor.txt",CFile::modeCreate|CFile::modeWrite);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -