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

📄 sortsing.cpp

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

#include "stdafx.h"
#include "StuSys.h"
#include "SortSing.h"

#include "StuSysDlg.h"

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

/////////////////////////////////////////////////////////////////////////////
// CSortSing dialog


CSortSing::CSortSing(CWnd* pParent /*=NULL*/)
	: CDialog(CSortSing::IDD, pParent)
{
	//{{AFX_DATA_INIT(CSortSing)
	m_Cour_Show = _T("");
	//}}AFX_DATA_INIT
}


void CSortSing::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CSortSing)
	DDX_Control(pDX, IDC_SORTTOTAL_LIST, m_SortSing_List);
	DDX_Text(pDX, IDC_COUR_SHOW, m_Cour_Show);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CSortSing, CDialog)
	//{{AFX_MSG_MAP(CSortSing)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CSortSing message handlers

BOOL CSortSing::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	m_SortSing_List.SetExtendedStyle(LVS_EX_TRACKSELECT|LVS_EX_ONECLICKACTIVATE|LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
	//设置扩展属性(网格,一行全选……)
	m_SortSing_List.SetBkColor(RGB(124,245,253));
	//设定背景色为RGB();
	m_SortSing_List.InsertColumn(0,"学号",LVCFMT_RIGHT,100,0);
	m_SortSing_List.InsertColumn(1,"姓名",LVCFMT_CENTER,100,0);
	m_SortSing_List.InsertColumn(2,"性别",LVCFMT_CENTER,80,0);
	m_SortSing_List.InsertColumn(3,"年龄",LVCFMT_CENTER,80,0);	
	m_SortSing_List.InsertColumn(4,"年级",LVCFMT_CENTER,80,0);	
	m_SortSing_List.InsertColumn(5,"本课成绩",LVCFMT_CENTER,80,0);

	
	CStuSysDlg* pMain=(CStuSysDlg*)AfxGetApp()->m_pMainWnd;
	POSITION pos=pMain->m_CourseList.GetFirstSelectedItemPosition();
	int m_index=pMain->m_CourseList.GetNextSelectedItem(pos);

	m_Cour_Show=pMain->m_Course[m_index].m_CourseName;
	UpdateData(FALSE);

	int stuindex=pMain->m_Course[m_index].m_ToIndex;//课程列表中存储选课学生的列表指针
	int HashAdd[100];
	float Score[100];
	int k=0;
	for(int i=0;i<stuindex;i++)//遍历课程列表中存储选课学生的列表
	{
		int trueindex=pMain->m_Course[m_index].m_StuToCourse[i];//学生的hash地址
		int scoreindex=pMain->m_Student[trueindex].SoreIndex;//学生选课列表的指针
		int flag=0;
		for(int j=0;j<scoreindex;j++)//遍历学生选课列表
		{
			if(pMain->m_Student[trueindex].m_ScoreName[j]==pMain->m_Course[m_index].m_CourseName&&pMain->m_Student[trueindex].m_StuNum!="")
			{
				flag=1;
				break;
			}
		}
		if(flag==1)
		{
			HashAdd[k]=trueindex;
			Score[k]=pMain->m_Student[trueindex].m_Score[j];
			k++;
		}
	}
	int ii,jj,kk;
	float tempScore;
	int   tempIndex;
	for(ii=0; ii<k; ii++)
	{
		kk=ii;
		for(jj=ii+1;jj<k;jj++)
		{
			if(Score[jj]<Score[kk])
				kk=jj;
		}
		if(kk!=ii)
		{
			tempScore=Score[ii];
			tempIndex=HashAdd[ii];

			Score[ii]=Score[kk];
			HashAdd[ii]=HashAdd[kk];

			Score[kk]=tempScore;
			HashAdd[kk]=tempIndex;
		}
	}	
	for(int index=0;index<k;index++)		
	{
		//插入行,显示学号
		m_SortSing_List.InsertItem(index,pMain->m_Student[HashAdd[index]].m_StuNum);
		//显示姓名
		m_SortSing_List.SetItemText(index,1,pMain->m_Student[HashAdd[index]].m_StuName);
		//显示性别
		if(pMain->m_Student[HashAdd[index]].m_Sex==0)
			m_SortSing_List.SetItemText(index,2,"男");
		else
			m_SortSing_List.SetItemText(index,2,"女");
			//显示年龄
		CString temp;
		temp.Format("%d",pMain->m_Student[HashAdd[index]].m_Age);
		m_SortSing_List.SetItemText(index,3,temp);
		//显示年级
		if(pMain->m_Student[HashAdd[index]].m_Grade==0)
			m_SortSing_List.SetItemText(index,4,"大一");
		else if(pMain->m_Student[HashAdd[index]].m_Grade==1)
			m_SortSing_List.SetItemText(index,4,"大二");
		else if(pMain->m_Student[HashAdd[index]].m_Grade==2)
			m_SortSing_List.SetItemText(index,4,"大三");
		else 
			m_SortSing_List.SetItemText(index,4,"大四");
		CString temp2;
		temp2.Format("%f",Score[index]);
		m_SortSing_List.SetItemText(index,5,temp2);
	}

	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

⌨️ 快捷键说明

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