📄 satclassscore.cpp
字号:
// satclassscore.cpp : implementation file
//
#include "stdafx.h"
#include "mystudent.h"
#include "satclassscore.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// Csatclassscore dialog
Csatclassscore::Csatclassscore(CWnd* pParent /*=NULL*/)
: CDialog(Csatclassscore::IDD, pParent)
{
//{{AFX_DATA_INIT(Csatclassscore)
m_classno = _T("");
m_cno = _T("");
//}}AFX_DATA_INIT
}
void Csatclassscore::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(Csatclassscore)
DDX_Control(pDX, IDC_LIST1, m_list1);
DDX_Text(pDX, IDC_EDIT1, m_classno);
DDX_Text(pDX, IDC_EDIT2, m_cno);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(Csatclassscore, CDialog)
//{{AFX_MSG_MAP(Csatclassscore)
ON_BN_CLICKED(IDCANCEL1, OnCancel1)
ON_BN_CLICKED(IDCANCEL20, OnCancel20)
ON_BN_CLICKED(IDCANCEL3, OnCancel3)
ON_BN_CLICKED(IDCANCEL4, OnCancel4)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// Csatclassscore message handlers
BOOL Csatclassscore::OnInitDialog()
{
CDialog::OnInitDialog();
m_list1.InsertColumn(0,"姓名");m_list1.SetColumnWidth(0,146);
m_list1.InsertColumn(1,"学号");m_list1.SetColumnWidth(1,146);
m_list1.InsertColumn(2,"课程名");m_list1.SetColumnWidth(2,146);
m_list1.InsertColumn(3,"成绩");m_list1.SetColumnWidth(3,146);
m_list1.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
// TODO: Add extra initialization here
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void Csatclassscore::OnOK()
{
// TODO: Add extra validation here
m_list1.DeleteAllItems();
UpdateData(true);
CDatabase m_database;
Cstudentset student;
Cscore score;
Ccourse course;
Cclassinfo classinfo;
if(classinfo.IsOpen())
classinfo.Close();
CString sql,str;
sql.Format("select * from classinfo where classno='%s'",m_classno);
classinfo.m_pDatabase=&m_database;
classinfo.Open(AFX_DB_USE_DEFAULT_TYPE,sql);
if(classinfo.IsEOF())
{
MessageBox("该班级号不存在!","提示");
return;
}
else
{
if(score.IsOpen())
score.Close();
sql.Format("select * from score where course='%s' order by score desc",m_cno);
score.m_pDatabase=&m_database;
score.Open(AFX_DB_USE_DEFAULT_TYPE,sql);
if(score.IsEOF())
{
MessageBox("该班级没有这么课或者该门课不存在!","提示");
}
else
{
if(course.IsOpen())
course.Close();
sql.Format("select * from course where cname='%s'",m_cno);
course.m_pDatabase=&m_database;
course.Open(AFX_DB_USE_DEFAULT_TYPE,sql);
for(int i=0;i<score.GetRecordCount();i++)
{
if(student.IsOpen())
student.Close();
sql.Format("select * from student where stuno='%s' and classno='%s' ",
score.m_studentno,m_classno);
student.m_pDatabase=&m_database;
student.Open(AFX_DB_USE_DEFAULT_TYPE,sql);
if(!student.IsEOF())
{
int pos=m_list1.InsertItem(i,student.m_stuname);
m_list1.SetItemText(pos,1,score.m_studentno);
m_list1.SetItemText(pos,2,course.m_cno);
str.Format("%f",score.m_score);
m_list1.SetItemText(pos,3,str);
}
score.MoveNext();
}
}
}
// CDialog::OnOK();
}
void Csatclassscore::OnCancel1()
{
// TODO: Add your control notification handler code here
if(m_classno=="" && m_cno=="")
{
MessageBox("请先查询!","提示");
return;
}
if(m_list1.GetItemCount()==0)
{
MessageBox("列表没有数据,请先查询!","提示");
return;
}
int count=m_list1.GetItemCount();
CString str,str1;float sum,average;sum=0;
for(int i=0;i<count;i++)
{
str=m_list1.GetItemText(i,3);
float i=(float)atof(str);
sum=sum+i;
}
average=sum/count;
str1.Format("%f",average);
MessageBox(str1);
}
void Csatclassscore::OnCancel20()
{
// TODO: Add your control notification handler code here
if(m_classno=="" && m_cno=="")
{
MessageBox("请先查询!","提示");
return;
}
if(m_list1.GetItemCount()==0)
{
MessageBox("列表没有数据,请先查询!","提示");
return;
}
CString str;
str=m_list1.GetItemText(0,3);
MessageBox(str);
}
void Csatclassscore::OnCancel3()
{
// TODO: Add your control notification handler code here
if(m_classno=="" && m_cno=="")
{
MessageBox("请先查询!","提示");
return;
}
if(m_list1.GetItemCount()==0)
{
MessageBox("列表没有数据,请先查询!","提示");
return;
}
int count=m_list1.GetItemCount();
CString str,str1;int sum;sum=0;
for(int i=0;i<count;i++)
{
str=m_list1.GetItemText(i,3);
float i=(float)atof(str);
if(i<60)
sum+=1;
}
str1.Format("不及格的人数是%d人!",sum);
MessageBox(str1,"提示");
}
void Csatclassscore::OnCancel4()
{
// TODO: Add your control notification handler code here
if(m_classno=="" && m_cno=="")
{
MessageBox("请先查询!","提示");
return;
}
if(m_list1.GetItemCount()==0)
{
MessageBox("列表没有数据,请先查询!","提示");
return;
}
CString str;int count=m_list1.GetItemCount();
for(int i=0;i<count;)
{
str=m_list1.GetItemText(0,3);
float m=(float)atof(str);
if(m>59.99999)
m_list1.DeleteItem(0);
i++;
}
UpdateData(false);
MessageBox("查询成功!","提示");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -