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

📄 sorttotal.cpp

📁 应该会有很多漏洞的
💻 CPP
字号:
// SortTotal.cpp : implementation file
//

#include "stdafx.h"
#include "StuSys.h"
#include "SortTotal.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CSortTotal dialog


CSortTotal::CSortTotal(CWnd* pParent /*=NULL*/)
	: CDialog(CSortTotal::IDD, pParent)
{
	//{{AFX_DATA_INIT(CSortTotal)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
}


void CSortTotal::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CSortTotal)
	DDX_Control(pDX, IDC_SORTTOTAL_LIST, m_SortTotal_List);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CSortTotal, CDialog)
	//{{AFX_MSG_MAP(CSortTotal)
	ON_WM_CANCELMODE()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CSortTotal message handlers

BOOL CSortTotal::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	m_SortTotal_List.SetExtendedStyle(LVS_EX_TRACKSELECT|LVS_EX_ONECLICKACTIVATE|LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
	//设置扩展属性(网格,一行全选……)
	m_SortTotal_List.SetBkColor(RGB(124,245,253));
	//设定背景色为RGB();
	m_SortTotal_List.InsertColumn(0,"学号",LVCFMT_RIGHT,90,0);
	m_SortTotal_List.InsertColumn(1,"姓名",LVCFMT_CENTER,90,0);
	m_SortTotal_List.InsertColumn(2,"性别",LVCFMT_CENTER,90,0);
	m_SortTotal_List.InsertColumn(3,"年龄",LVCFMT_CENTER,90,0);	
	m_SortTotal_List.InsertColumn(4,"年级",LVCFMT_CENTER,90,0);
	m_SortTotal_List.InsertColumn(5,"总成绩",LVCFMT_CENTER,90,0);
	
	CStuSysDlg* pMain=(CStuSysDlg*)AfxGetApp()->m_pMainWnd;
	for(int i=0; i<=pMain->m_BaseInfo.LastAdd; i++)
	{
		int HashIndex=pMain->m_BaseInfo.m_StudentIndex[i];
		int max=pMain->m_Student[HashIndex].SoreIndex;
		Stuindex[i]=HashIndex;
		//生成一个索引表
		TotalScore[i]=0;
		for(int j=0; j<max; j++)
		{
			TotalScore[i]+=pMain->m_Student[HashIndex].m_Score[j];
			//求出该学生的总成绩
		}
	}
	last=pMain->m_BaseInfo.LastAdd;
	
	QuickSort(TotalScore, Stuindex, 0, last);

	int n=0;
	for(int k=0;k<=last;k++)
	{
		int HashIndex=Stuindex[k];
		m_SortTotal_List.InsertItem(n,pMain->m_Student[Stuindex[k]].m_StuNum);//插入行 
		//显示姓名
		m_SortTotal_List.SetItemText(n,1,pMain->m_Student[Stuindex[k]].m_StuName);
		//显示性别
		if(pMain->m_Student[Stuindex[k]].m_Sex==0)
			m_SortTotal_List.SetItemText(n,2,"男");
		else
			m_SortTotal_List.SetItemText(n,2,"女");
		//显示年龄
		CString temp1,temp2;
		temp1.Format("%d",pMain->m_Student[Stuindex[k]].m_Age);
		m_SortTotal_List.SetItemText(n,3,temp1);
		//显示年级
		if(pMain->m_Student[Stuindex[k]].m_Grade==0)
			m_SortTotal_List.SetItemText(n,4,"大一");
		else if(pMain->m_Student[Stuindex[k]].m_Grade==1)
			m_SortTotal_List.SetItemText(n,4,"大二");
		else if(pMain->m_Student[ Stuindex[k]].m_Grade==2)
			m_SortTotal_List.SetItemText(n,4,"大三");
		else 
			m_SortTotal_List.SetItemText(n,4,"大四");
		temp2.Format("%f",TotalScore[k]);
		m_SortTotal_List.SetItemText(n,5,temp2);
		n++;
	}
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CSortTotal::OnCancelMode() 
{
	CDialog::OnCancelMode();
	
	// TODO: Add your message handler code here
	
}

void CSortTotal::QuickSort(float R[], int index[], int s, int t)
{
	int i=s;
	int j=t;
	float temp;
	int tempindex;
	if(s<t)
	{
		temp=R[s];
		tempindex=index[s];
		while(i!=j)
		{
			while(j>i&&R[j]>=temp)
				j--;
			R[i]=R[j];
			index[i]=index[j];
			while(i<j&&R[i]<=temp)
				i++;
			R[j]=R[i];
			index[j]=index[i];
		}
		R[i]=temp;
		index[i]=tempindex;
	QuickSort(R,index,s,i-1);
	QuickSort(R,index,i+1,t);
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -