学生成绩管理系统

 Copyright (c) 2015,烟台大学计算机学院
All rights reserved,

文件名称:idea.cpp

作者:王阳

完成日期:2015年1月2日

# 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请输入C++课程的成绩:";  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<<"删除成功!"<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;  
} 


你可能感兴趣的:(学生成绩管理系统)