📄 sortsing.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 + -