C++编写学生成绩管理系统(二)

2014-11-24 11:56:12 · 作者: · 浏览: 26
p=p->Next;
p->Next=p->Next->Next;
delete temp;
cout<<"\t\t删除成功!"< cout<<"输入任意字符!继续……";
getch();
}
else
{
cout<<"\t\t没有找到!"< cout<<"输入任意字符!继续……";
getch();
}
}

//
void Studentmassage::Swap(Student *p1, Student *p2)//交换两个combox变量的数据域
{
Student *temp=new Student;
strcpy(temp->name,p1->name);
strcpy(temp->Id,p1->Id);
temp->Cnum=p1->Cnum;
temp->Mnum=p1->Mnum;
temp->Enum=p1->Enum;
temp->sum=p1->sum;

strcpy(p1->name,p2->name);
strcpy(p1->Id,p2->Id);
p1->Cnum=p2->Cnum;
p1->Mnum=p2->Mnum;
p1->Enum=p2->Enum;
p1->sum=p2->sum;

strcpy(p2->name,temp->name);
strcpy(p2->Id,temp->Id);
p2->Cnum=temp->Cnum;
p2->Mnum=temp->Mnum;
p2->Enum=temp->Enum;
p2->sum=temp->sum;
}

//
int Studentmassage::ListCount()//统计当前链表的记录总数,返回一个整数
{
if(! Head)
return 0;
int n=0;
for(Student * p=Head->Next;p!=End;p=p->Next)
{
n++;
}
return n;
}

//
void Studentmassage::Sort()//对当前链表进行排序
{
cout <<"Sorting..."< Student *p=NULL,*p1=NULL,*k=NULL;
int n=Studentmassage::ListCount();
if(n<2)
return;
for(p=Head->Next;p!=End;p=p->Next)
for(k=p->Next;k!=End;k=k->Next)
{
if(p->sum>k->sum)
{
Studentmassage::Swap(p,k);
}
}
cout <<"排序完成!"< getch();
return;
}

// 保存函数
void Studentmassage::Save()
{
out.open("sort.txt");
for(Student *p=Head->Next;p!=End;p=p->Next)
out<name<<"\t"<Id<<"\t"<Cnum<<"\t"
<Mnum<<"\t"<Enum<<"\t"<sum<<'\n';
out.close();
}

// 主函数
int main()
{
int x,i=0;
bool quit=false;
cout<<"\t\t§§§§§§§§§§§§§§§§§§§§§§§§§§"< for(i=0;i<3;i++)
cout<<"\t\t◎\t\t\t\t\t\t ◎"< cout<<"\t\t◎★★★★【 欢迎进入学生成绩管理系统 】★★★★◎"< for(i=0;i<3;i++)
cout<<"\t\t◎\t\t\t\t\t\t ◎"< cout<<"\t\t§§§§§§§§§§§§§§§§§§§§§§§§§§\n"< Studentmassage Grade;
cout<<"按任意键开始……";
getch();
while(!quit)
{
system("cls");
Grade.ShowMenu();
cin>>x;
switch(x)
{
case 0:quit=true;break;
case 1:Grade.AddItem();break;
case 2:Grade.Display();break;
case 3:Grade.Sort();break;
case 4:Grade.Find();break;
case 5:Grade.RemoveItem();break;
case 6:Grade.ModifyItem();break;
}
}
return 0;
}

作者:sdliujiangbo