资源描述
课程设计
设计题目
学生管理系统课程设计
学生姓名
翟胜雨
学 号
20111951
专业班级
自动化 11—1
指导教师
谭琦 董学平
2013 年 9 月
一。 设计任务
a.学校的学生成绩信息管理是学校管理中的一项重要任务,以往的手工操作已经不能适应现在办公的需要.为了摆脱繁琐的劳动,提高工作效率,利用计算机进行信息处理成为必然。开发功能完善及安全可靠的管理系统可以大大提高学校资源的利用率,及时,准确地获取需要的信息,充分发挥人员的工作潜力。因此,不难想象,正是咨询业的迅速发展使得人们从过去的手工劳动中得以解脱.同时,编写一套完善的学生成绩管理系统的任务就显得尤为重要。
b。设计四个类;学生类(描述学生基本信息);学生管理类(对学生信息进行管理);学生成绩及课程信息用文件保存,每个类一个文件,程序执行时从文件读入;
c。能完成对学生成绩的录入,修改,能统计学生的成绩;求学生的总分及平均分;并能根据学生的平均或总成绩进行排序,能按学号或姓名查询学生成绩,能删除改学生成绩;能输出学生的成绩单。
d.应用程序的文本界面设计美观、清洁,有简要的应用程序开发文档.
二. 具体设计
1.需求分析:
a。能对学生各科成绩进行录入:。
b。能显示学生输入的成绩
c.能对学生的成绩进行增加。
d.能对学生的成绩进行删除。
e.能对学生的成绩进行修改.
f.能对学生的成绩按学号,姓名,进行查询。
g.能输出学生的所有数据.
h。能进行成绩统计
i。能进行平均分查询排名.
2.系统性能要求:
a。系统安全、可靠;
b。功能齐全;
c。操作方便、界面友好;
d易于维护和扩充。
3。系统的功能分析:
资料维护:系统维护包括对学生信息的录入操作及数据表中的信息进行浏览。
系统功能:可以对数据表中的信息进行浏览。
系统查询:可以对学生的信息进行查询.
4.系统功能模块
学生成绩查询系统有:成绩录入、显示、增加、删除、修改,数据查询,排序显示、输出构成。
5。模块框架图
主 函 数
Student 类
Studentmassage类
显示信息
添加信息
查找信息
修改信息
删除信息
退出系统
三、程序功能的分析
1。Student类的声明
class Student
{
public:
char name[20];
char Id[20];
int Cnum; //C++课程得分
int Mnum; //数学课程得分
int Enum; //英语课程得分
float aver; //平均分
Student * Next;
void Input()
{
cout〈〈”\t\t请输入学生的姓名:"; cin〉>name;
cout<〈"\t\t请输入学生的学号:"; cin>〉Id;
cout〈〈”\t\t请输入C++课程的成绩:"; cin>〉Cnum;
cout<〈”\t\t请输入数学的成绩:”; cin>〉Mnum;
cout〈<”\t\t请输入英语的成绩:”; cin>〉Enum;
aver=(Cnum+Mnum+Enum)/3。0;
}
void ReadFile(istream & in)
{
in〉>name>〉Id>〉Cnum>〉Mnum〉〉Enum〉〉aver;
}
void Show()
{
cout〈〈”姓名:”〈〈name〈〈”学号:”<〈Id<<"C++:”〈<Cnum
〈〈”数学:"<〈Mnum〈〈"英语:”<<Enum<〈"平均成绩:”〈〈aver<<endl;
}
};
2。Studentmassage类的声明
class Studentmassage
{
public:
Studentmassage();
~Studentmassage();
void ShowMenu();
void Find();
void Save();
void ModifyItem();
void RemoveItem();
void Swap(Student *,Student *);
void Sort();
//void Unpass();
int ListCount();
//void Average();
void Display()
{
for(Student * p=Head—〉Next;p!=End;p=p—〉Next)
p—〉Show();
cout<<"输入任意字符!继续……”;
getch();
}
void AddItem()
{
End—〉Input();
End—〉Next=new Student;
End=End—〉Next;
cout<<”添加成功!"〈〈endl;
cout〈〈”输入任意字符!继续……";
getch();
}
private:
Student * Head,* End;
ifstream in;
ofstream out;
Student *FindItem(char * name)
{
for(Student * p=Head;p—〉Next!=End;p=p->Next)//匹配成功则返回上一个指针,不成功就返回空
if(!strcmp(p-〉Next—〉name,name))return p;
return NULL;
}
Student *FindID(char * Id)
{
for(Student * p=Head;p—〉Next!=End;p=p—>Next)//匹配成功则返回上一个指针,不成功就返回空
if(!strcmp(p—〉Next—>Id,Id))return p;
return NULL;
}
};
3.数据记录的添加
void Input()
{
cout<<”\t\t请输入学生的姓名:”; cin〉>name;
cout<<”\t\t请输入学生的学号:”; cin>〉Id;
cout〈〈”\t\t请输入C++课程的成绩:”; cin>>Cnum;
cout〈〈"\t\t请输入数学的成绩:”; cin>>Mnum;
cout<〈"\t\t请输入英语的成绩:”; cin〉〉Enum;
aver=(Cnum+Mnum+Enum)/3。0;
}
void ReadFile(istream & in)
{
in〉>name〉〉Id>〉Cnum〉>Mnum>〉Enum〉〉aver;
}
4。数据记录的显示
void Show()
{
cout<〈”姓名:"<〈name〈〈"学号:”<<Id〈〈”C++:"<<Cnum
<〈”数学:”〈〈Mnum〈〈”英语:"<〈Enum<〈”平均成绩:”〈<aver〈〈endl;
}
};
5数据记录的删除
void Studentmassage::RemoveItem() // 删除信息
{
char name[20];
Student * p=NULL,*temp=NULL;
cout〈<"请输入要删除的学生的姓名:”〈<endl;cin〉〉name;
if(p=FindItem(name))
{
temp=p—>Next;
p—〉Next=p—>Next—〉Next;
delete temp;
cout〈〈"删除成功!”〈<endl;
cout<〈"输入任意字符!继续……”;
getch();
}
else
{
cout〈〈"没有找到!”〈〈endl;
cout<〈”输入任意字符!继续……”;
getch();
}
}
6。数据记录的查找
void Studentmassage::Find()
{
char name[20] ,Id[10];
int x;
Student * p=NULL;
cout<〈"※ 1.按学生的姓名查找\n\t\t※ 2。按学生学号查找";
cin〉>x;
switch(x)
{
case 1:{cout〈〈”请输入要查找的学生的姓名:";cin〉>name;
if(p=FindItem(name))
{
p-〉Next—〉Show();
cout<〈”输入任意字符!继续……”;
getch();
}
else
{
cout<<”没有找到该姓名的学生!"〈〈’\n’〈〈endl;
cout<<”输入任意字符!继续……”;
getch();
}
}break;
case 2:
{
cout〈〈"请输入要查找的学生的学号:”;cin>〉Id;
if(p=FindID(Id))
{
p—>Next—〉Show();
cout<〈”输入任意字符!继续……”;
getch();
}
else
{
cout<〈"没有找到该学好的学生!”<〈’\n'〈<endl;
cout〈〈”输入任意字符!继续……”;
getch();
}
}break;
}
}
7。数据记录的排序
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—〉aver=p1—>aver;
strcpy(p1—>name,p2—〉name);
strcpy(p1—〉Id,p2—>Id);
p1—>Cnum=p2—〉Cnum;
p1-〉Mnum=p2—〉Mnum;
p1-〉Enum=p2-〉Enum;
p1-〉aver=p2—〉aver;
strcpy(p2—〉name,temp—〉name);
strcpy(p2—>Id,temp—>Id);
p2—〉Cnum=temp-〉Cnum;
p2—〉Mnum=temp—>Mnum;
p2—>Enum=temp—>Enum;
p2—>aver=temp—>aver;
}
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
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.。."〈<endl;
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—〉aver〉k->aver)
{
Studentmassage::Swap(p,k);
}
}
cout 〈<”排序完成!”〈〈endl;
getch();
return;
}
8.数据记录的保存
void Studentmassage::Save()
{
out。open(”sort。txt");
for(Student *p=Head-〉Next;p!=End;p=p—〉Next)
out〈〈p->name〈〈”\t”<〈p—〉Id<〈”\t”〈<p—〉Cnum〈<”\t”
〈〈p—〉Mnum〈〈”\t”〈<p—>Enum<<”\t”〈〈p->aver<〈'\n’;
out.close();
}
三. 调试及测试
调试过程中遇到的主要问题是如何解决的;对设计和编码的回顾讨论和分析;程序运行的时空效率分析;测试数据集;运行实例;改进设想;经验和体会等.
因为是第一次做课程设计,没有经验,同时对操作系统不太了解,在调试及测试的过程中遇到了很多问题,如在编辑的时候总是出现错误,不管自己怎么操作总是消除不了。最后在教老师及同学帮助下解决了这一难题,它是因为自己操作步骤出现了错误。同样,在最后运行的时候输入应当是数字,但,当你输入其他符号时,系统会出现紊乱,这时只有退出程序系统,重新进入时才能进行正常操作。对于这一问题,我绞尽脑汁,翻阅的很多资料,同时,我也参考了其他同学所做的,在我不懈的努力下最总解决了这一问题.虽然最总结果运行正确,但,该系统还存在很多漏洞与不足,要在以后的日子里改进系统使系统更优化。
可能大家在做这一课程设计的时候都会遇到一些问题,首先,我们不应该退缩,不应该被难题所吓到,应该勇往直前,敢于面对。其实,生活就是这样,有困难,又难过,同时又有喜悦,又欢乐,这样生活才是美满的,才是幸福的。说远了,以上是我个人对这次面向课程设计的一点心得。要说经验呢,就是,多看,多练,多问,多想。多看就是多看关于课程设计这一方面的资料,多练就是多用系统在平时多加练习,多问就是自己在不懂的时候就向同学、老师请教,多想就是当自己遇到难题的时候要想一下该怎么做。好了,以上就是我的经验,其实真正的经验实在你自己的学习中,自己的操作中所获得的,这才是最宝贵的.
4 使用说明
进出菜单栏后,选着选项,选1时直接输入学生信息,结束时按Enter;
在菜单栏中,对输入的信息显示时,选着2,结束时按Enter;
在菜单栏中,对输入信息进行排序时,选着3,结束时按Enter;
在菜单栏中,对输入信息进行查找时,选着4,按Enter,选1,按姓名查找,选2,按学号进行查找,结束时按Enter;
在菜单栏中,删除信息时,选着5,结束时按Enter;
在菜单栏中,对该输入信息时,选着6,结束时按Enter;
在菜单栏中,退出系统时,选着7,结束时按Enter;
5 运行实例:
请输入任意开始
请选着:1 //进行输入
请输入学生的姓名:zhaowei
请输入学生的学号:20111901
请输入学生c++的成绩:90
请输入学生数学成绩:90
请输入学生的英语成绩:90
添加成功,请输入任意字符继续
请选着:1 //进行输入
请输入学生的姓名:fudongcheng
请输入学生的学号:20111902
请输入学生c++的成绩:91
请输入学生数学成绩:91
请输入学生的英语成绩:91
添加成功,请输入任意字符继续
请选着:1 //进行输入
请输入学生的姓名:yaoyongjian
请输入学生的学号:20111903
请输入学生c++的成绩:92
请输入学生数学成绩:92
请输入学生的英语成绩:92
添加成功,请输入任意字符继续
选2//显示学生成绩
学生的姓名:zhaowei学生的学号:20111901学生c++的成绩:90学生数学成绩:90 学生的英语成绩:90
学生的姓名:fudongcheng学生的学号:20111902学生c++的成绩:91学生数学成绩:91学生的英语成绩:91
学生的姓名:yaoyongjian学生的学号:20111903 学生c++的成绩:92 学生数学成绩:92 学生的英语成绩:92
选3//进行排序 再选2显示
选4//进行查找
1按学时能够姓名查找 2按学生学号进行查找
如输入1,
请输入要查找学生的姓名:zhaowei
学生的姓名:zhaowei学生的学号:20111901学生c++的成绩:90学生数学成绩:90 学生的英语成绩:90
选5//进行删除功能
请输入要删除学生的姓名:zhaowei
选6//进行修改功能
请输入要修改的学生姓名:fudongcheng
请输入要修改学生的学号:20111904
请输入要修改学生的c++成绩:99
请输入要修改学生的数学成绩:99
请输入要修改学生的英语成绩:99
修改成功,请输入任意字符
6 设计小结
本系统是以Visual C++6.0为开发工具编的程序.本系统实现了对学生成绩等信息的显示,添加,查找,修改和删除的功能。第一周结束的时候,我感觉自己收获挺大的,从一开始的迷茫,不知道从何下手到把程序中的几个模块编写出来,心里挺开心的.但是,到了第二周,我由不得不再次陷入困境。在整个程序的编写过程中。最难的就是修改和删除这两个模块,这也是我们第二周要解决的重点问题.
开始编写修改和删除时,很头疼,去向其他人寻求帮助,在别人的帮助和提示下,我编完了修改程序,但编译时老出错,修改后的内容将文本内的信息全部覆盖了.困难之时,在老师的帮助之下,完成了修改和删除.这样的话,整个程序基本上全部完成了,就剩下完善工作了.我们组写了两个程序,最后,两个程序相互组合,互补,最后大功告成。
虽然设计时完成了,但是我觉得其中还是由一些不足之处:
1。 警告句。程序中缺少一些警告句,例如:“是否真的删除(y/n)?".
2。 重名的情况。由于考虑的不周全,没有设计遇到重名的情况该怎么处理。
3。 选择单一。本系统设计的程序中,设计的删除模块只是把学生的信息进行全部删除,并没有删除个别信息的选择。
整个程序完成了,还有很多不完善的地方,希望自己以后办事的时候要认真,仔细,考虑周全。
短短的四周课程设计结束了,但是这段时间里,我又学到了更多C ++的知识,如:类,文件流等,我认识到要想学好计算机就要重视实践操作,不仅仅是学习C++语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践,所以后在学习过程中,我会更加注视实践操作,使自己便好地学好计算机。同时,我也发现我的好多不足之处,我也被提醒以后办事的时候要认真,仔细,考虑周全。
此次c++课程设计,在指导教师的精心教导下,我们学会了如何用C++编写一个简单的应用程序.首先要对程序的设计要求有一个比较明确的认识,然后系统分析与系统设计,最后是代码设计与调试。程序实现上,设计了简单的查询界面,将各个功能集中出来按照程序编写原则,便于查询.
根据C++课程所学的概念、理论和方法,按照C++程序设计的基本步骤,设计出一个适当规模的程序;进一步加深对C++语言的理解和掌握.理论联系实际,加深和巩固所学的理论知识,提高实践能力和计算机的综合运用能力。我们编写程序的过程是辛苦与快乐的,程序的编写原则很重要,只要我们在编程,就必须不断改进,才能更好提高编程能力。
附录:源程序
# include 〈iostream>
# include 〈fstream>
# include <string。h〉
#include 〈conio.h〉//用getch();
using namespace std;
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌Student类﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
class Student
{
public:
char name[20];
char Id[20];
int Cnum; //C++课程得分
int Mnum; //数学课程得分
int Enum; //英语课程得分
float aver; //平均分
Student * Next;
void Input()
{
cout<〈”\t\t请输入学生的姓名:”; cin〉〉name;
cout<<”\t\t请输入学生的学号:"; cin〉〉Id;
cout〈〈”\t\t请输入C++课程的成绩:”; cin〉>Cnum;
cout〈〈”\t\t请输入数学的成绩:"; cin〉>Mnum;
cout<〈”\t\t请输入英语的成绩:"; cin>>Enum;
aver=(Cnum+Mnum+Enum)/3.0;
}
void ReadFile(istream & in)
{
in〉>name〉〉Id>>Cnum〉〉Mnum〉>Enum>>aver;
}
void Show()
{
cout〈〈”姓名:”〈〈name<〈”学号:"<<Id〈<"C++:”〈<Cnum
<〈"数学:"<〈Mnum〈<”英语:”〈<Enum〈〈”平均成绩:”〈〈aver〈〈endl;
}
};
//﹌﹌﹌﹌﹌﹌﹌﹌﹌Studentmassage类﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
class Studentmassage
{
public:
Studentmassage();
~Studentmassage();
void ShowMenu();
void Find();
void Save();
void ModifyItem();
void RemoveItem();
void Swap(Student *,Student *);
void Sort();
//void Unpass();
int ListCount();
//void Average();
void Display()
{
for(Student * p=Head—〉Next;p!=End;p=p—〉Next)
p—>Show();
cout〈<”输入任意字符!继续……";
getch();
}
void AddItem()
{
End-〉Input();
End—>Next=new Student;
End=End—〉Next;
cout<〈"添加成功!"<〈endl;
cout〈〈”输入任意字符!继续……";
getch();
}
private:
Student * Head,* End;
ifstream in;
ofstream out;
Student *FindItem(char * name)
{
for(Student * p=Head;p—〉Next!=End;p=p->Next)//匹配成功则返回上一个指针,不成功就返回空
if(!strcmp(p—〉Next—>name,name))return p;
return NULL;
}
Student *FindID(char * Id)
{
for(Student * p=Head;p->Next!=End;p=p—>Next)//匹配成功则返回上一个指针,不成功就返回空
if(!strcmp(p-〉Next—>Id,Id))return p;
return NULL;
}
};
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌构造函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
Studentmassage::Studentmassage()
{
Head=new Student;
Head—〉Next=new Student;
End=Head-〉Next;
in.open(”sort。txt”);
if(!in)
cout〈<"这是一个新系统,无学生信息。请先输入.”〈〈endl;
else
{
while(!in。eof())
{
End->ReadFile(in);
if(End—〉name[0]==’\0')break;
End—〉Next=new Student;
End=End—〉Next;
}
in.close();
cout〈〈"读取学生信息成功!"〈<endl;
}
}
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌析构函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
Studentmassage::~Studentmassage()
{
Save();
for(Student * temp;Head->Next!=End;)
{
temp=Head—〉Next;
Head->Next=Head-〉Next—〉Next;
delete temp;
}
delete Head,End;
}
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌菜单﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void Studentmassage::ShowMenu()
{
cout〈〈” 学 生 成 绩 管 理 系 统 ”〈<endl;
cout<〈" 1。增加学生成绩 ”〈〈endl;
cout〈<" 2。显示学生成绩 ”〈<endl;
cout<〈” 3。排序统计成绩 "〈〈endl;
cout〈〈” 4。查找学生成绩 "〈〈endl;
cout<<” 5。删除学生成绩 ”〈<endl;
cout〈〈" 6。修改学生信息 "〈〈endl;
cout<〈" 0.安全退出系统 ”〈〈endl;
cout〈〈"请选择:”;
}
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌查找函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void Studentmassage::Find()
{
char name[20] ,Id[10];
int x;
Student * p=NULL;
cout<<"※ 1.按学生的姓名查找\n\t\t※ 2。按学生学号查找”;
cin〉>x;
switch(x)
{
case 1:{cout<<"请输入要查找的学生的姓名:";cin〉〉name;
if(p=FindItem(name))
{
p—>Next->Show();
cout〈〈”输入任意字符!继续……”;
getch();
}
else
{
cout〈<”没有找到该姓名的学生!”〈〈’\n’<〈endl;
cout〈<"输入任意字符!继续……";
getch();
}
}break;
case 2:
{
cout<<"请输入要查找的学生的学号:”;cin>>Id;
if(p=FindID(Id))
{
p->Next—〉Show();
cout〈<”输入任意字符!继续……”;
getch();
}
else
{
cout〈〈"没有找到该学好的学生!”〈<’\n'〈〈endl;
cout〈<”输入任意字符!继续……";
getch();
}
}break;
}
}
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌修改信息﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void Studentmassage::ModifyItem() //修改信息
{
char name[20];
Student * p=NULL;
cout〈〈"\t\t请输入要修改的人的姓名:";cin〉〉name;
if(p=FindItem(name))
{
cout<〈"\t\t已找到学生的信息,请输入新的信息!”<<endl;
p-〉Next—>Input();
cout<〈"修改成功!”〈〈endl;
cout〈<”输入任意字符!继续……";
getch();
}
else
{
cout〈〈"\t\t没有找到!”〈〈endl;
cout〈〈"输入任意字符!继续……”;
getch();
}
}
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌删除信息﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void Studentmassage::RemoveItem() // 删除信息
{
char name[20];
Student * p=NULL,*temp=NULL;
cout〈〈”请输入要删除的学生的姓名:”〈<endl;cin>〉name;
if(p=FindItem(name))
{
temp=p—〉Next;
p—〉Next=p—〉Next—〉Next;
delete temp;
cout<<”删除成功!"〈<endl;
cout〈<"输入任意字符!继续……”;
getch();
}
else
{
cout〈〈”没有找到!”<<endl;
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—>aver=p1—〉aver;
strcpy(p1->name,p2-〉name);
strcpy(p1—>Id,p2—〉Id);
p1-〉Cnum=p2—>Cnum;
p1—〉Mnum=p2-〉Mnum;
p1—>Enum=p2—〉Enum;
p1->aver=p2—〉aver;
strcpy(p2—>name,temp-〉name);
strcpy(p2->Id,temp->Id);
p2—〉Cnum=temp-〉Cnum;
p2—>Mnum=temp—>Mnum;
p2—>Enum=temp—〉Enum;
p2->aver=temp->aver;
}
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
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.。.”〈〈endl;
Student *p=NULL,*p1=NULL,*k=NULL;
int n=Studentmassage::ListCount();
if(n〈2)
return;
for(p=Head—>Next;p!=End;p=p
展开阅读全文