课程设计-学生成绩管理

#include 
#include 
# include 
# include 
#include //用getch();
using namespace std;

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌Student类﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
class Student
{
public:
 char name[20];
 char Id[20];
 int Cnum;       //C++课程得分
 int Mnum;       //汇编课程得分
 int Enum;       //嵌入式操作系统课程得分
 int sum;        //总分
 Student * Next;
 void Input()
 {
  cout<<"\t\t请输入学生的姓名:";  cin>>name;
  cout<<"\t\t请输入学生的学号:";  cin>>Id;
  cout<<"\t\t请输入Linux的成绩:";  cin>>Cnum;
  cout<<"\t\t请输入数据结构的成绩:";  cin>>Mnum;
  cout<<"\t\t请输入离散数学的成绩:";  cin>>Enum;
  sum=Cnum+Mnum+Enum;
 }
 void ReadFile(istream & in)
 {
  in>>name>>Id>>Cnum>>Mnum>>Enum>>sum;
 }
 void Show()
 {
  cout<<"姓名:"<Next;p!=End;p=p->Next)
   p->Show();
  cout<<"输入任意字符!继续……";
  getch();
 }
 void AddItem()
 {
  End->Input();
  End->Next=new Student;
  End=End->Next;
  cout<<"添加成功!"<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<<"这是一个新系统,无学生信息。请先输入。"<ReadFile(in);
   if(End->name[0]=='\0')break;
   End->Next=new Student;
   End=End->Next;
  }
  in.close();
  cout<<"\t\t读取学生信息成功!"<Next!=End;)
 {
  temp=Head->Next;
  Head->Next=Head->Next->Next;
  delete temp;
 }
 delete Head,End;
}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌菜单﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void Studentmassage::ShowMenu()
{
  cout<<"********************************************************************************"<>x;
 switch(x)
 {
 case 1:{cout<<"\t\t请输入要查找的学生的姓名:";cin>>name;
  if(p=FindItem(name))
  {
   p->Next->Show();
   cout<<"输入任意字符!继续……";
   getch();
  }
  else
  {
   cout<<"\t\t没有找到该姓名的学生!"<<'\n'<>Id;
   if(p=FindID(Id))
   {
    p->Next->Show();
    cout<<"输入任意字符!继续……";
    getch();
   }
   else
   {
    cout<<"\t\t没有找到该学号的学生!"<<'\n'<>name;
 if(p=FindItem(name))
 {
  cout<<"\t\t已找到学生的信息,请输入新的信息!"<Next->Input();
  cout<<"修改成功!"<>name;
 if(p=FindItem(name))
 {
  temp=p->Next;
  p->Next=p->Next->Next;
  delete temp;
  cout<<"\t\t删除成功!"<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..."<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 <<"排序完成!"<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§§§§§§§§§§§§§§§§§§§§§§§§§§"<>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;
}

你可能感兴趣的:(课程设计-学生成绩管理)