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

📄 link.cpp

📁 单科课程成绩管理系统
💻 CPP
字号:
// Link.cpp: implementation of the CLink class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "grade.h"
#include "Link.h"

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

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CLink::CLink()
{

}

CLink::~CLink()
{

}

void CLink::Insert(Link h, CString code,CString name,CString MGrade,CString EGrade,CString UGrade1,CString UGrade2,CString UGrade3,CString UGrade4,CString FGrade,int i)
{
	Link p, q;
	float UPortion=0.2;
	float MPortion=0.2;
	float EPortion=0.6;
	CString str;
	float total=0;
	if(i==0) p=h;
	else p=GetList(h ,i-1);   //取结点i-1的指针//
	if(p==NULL) 
	{
		Inok = FALSE;
	}
	else 
	{
		q = new Node;                       //申请插入结点
		q->Name =name;
	    q->Code =code;
	    q->MidGrade=MGrade;
	    q->EndGrade=EGrade;
		q->UGrade1=UGrade1;
		q->UGrade2=UGrade2;
		q->UGrade3=UGrade3;
		q->UGrade4=UGrade4;
		total=atof(MGrade)*MPortion+atof(EGrade)*EPortion+(atof(UGrade1)+atof(UGrade2)+atof(UGrade3)+atof(UGrade4))*UPortion;
		str.Format("%2f",total);
		q->FGrade=str;
		q->Order="0";
		q->Next = p->Next;                  //插入新结点    
		p->Next = q;
		
		Inok = TRUE;
	}
}

void CLink::InitList()
{
	Link h;
	h = new Node;  
	H = h;
 	H->Next = NULL;
}

Link CLink::GetList(Link h, int i)
{
	int j=-1;
	Link P=h;
	if (i<0) return(NULL);
	while(P->Next&&j<i)
	{
		P=P->Next;j++;
	}
	if (i==j) return(P);
	else return(NULL);                      //查找失败,即i>表长//
}


Link CLink::GetLast()
{
return L;
}

Link CLink::GetHead()
{
return H;
}

void CLink::QueList(Link h, int link_No)
{
	Link temp1,temp2;
	for(int y=0;y<link_No;y++) 
	{ 
       for(int x=1;x<link_No-y;x++) 
	   {   
		   temp1 = GetList(h,y);
		   temp2 = GetList(h,y+1);
		   if(atof(temp1->FGrade)<atof(temp2->FGrade)) 
		   { 
             Insert(h,temp2->Code,temp2->Name,temp2->MidGrade,temp2->EndGrade,temp2->UGrade1,temp2->UGrade2,temp2->UGrade3,temp2->UGrade4,temp2->FGrade,y); 
             Delete(h,y+2);
		   } 
	   }
	}
}



void CLink::Delete(Link h, int i)
{

	Link p,q;
	if(i==0) p=h;
	else p=GetList(h,i-1);                 //求第i-1的地址
	if(p&&p->Next)                         //若p及p->next所在的结点存在
	{
		q=p->Next;
		p->Next=q->Next;
		delete q;                          //删除// 
		Delok = TRUE;
	}                        
	else                                   //否则失败
	{
		Delok = FALSE;
	}
}

Link CLink::Find(Link h, CString name)
{
	
    Link p=h->Next;
	while(p!=NULL&&p->Name!=name)
	{
		p=p->Next;
	}
	return p;
}

⌨️ 快捷键说明

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