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

📄 satclassscore.cpp

📁 学生成绩管理系统
💻 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 + -