C++ 训练
C++ 训练
EasyProgramming 发表于3年前
C++ 训练
  • 发表于 3年前
  • 阅读 40
  • 收藏 0
  • 点赞 0
  • 评论 0

新睿云服务器60天免费使用,快来体验!>>>   

#include<iostream>
#include<stdlib.h>
using namespace std;
class student
{
public:
 void menu();
 student *scan();
 void print(student *p);
 student *add(student *p);
 student *del(student *p);
 
 student *mod(student *p);
 
 void che(student *p);
 
private:
 int num;
 int score;
 char name;
 student * next;
};
student *x;
void student::menu()
{
 student stu;
 int a;
 cout<<"***************************学生成绩管理系统************************************"<<endl;
 cout<<"                            1.输入学生信息                                     "<<endl;
 cout<<"                            2.输出学生信息                                     "<<endl;
 cout<<"                            3.查找学生信息                                     "<<endl;
 cout<<"                            4.删除学生信息                                     "<<endl;
 cout<<"                            5.修改学生信息                                     "<<endl;
 cout<<"                            6.增加学生信息                                     "<<endl;
 cout<<"                            7.退出                                             "<<endl;
 cout<<"*******************************************************************************"<<endl;
 cout<<"请输入:";
 cin>>a;
 switch(a)
 {
   case 1:
   {
    x=stu.scan();
   }
  break;
   case 2:
   { 
    stu.print(x);
   }
  break;
   case 3:
   { 
    stu.che(x);
   }
  break;
   case 4:
   { 
    x=stu.del(x);
   }
  break;
   case 5:
   { 
    x=stu.mod(x);
   }
  break;
   case 6:
   { 
    x=stu.add(x);
   }
  break;
   case 7:
   { 
    exit (0);
   }
 }
}
student * student::scan()
{
 int n=0;
 student *p1,*p2,*head;
 p1=p2=(student*)malloc(sizeof(student));
 cout<<"请依次输入学号,姓名,成绩:(输入学号为0结束)"<<endl;
 cin>>p1->num>>p1->name>>p1->score;
 head=NULL;
 while(p1->num!=0)
 {
  if(n==0)
  {
   head=p1;
   n++;
  }
  else
  {
  p2=p1;
  p1=(student*)malloc(sizeof(student));
  cout<<"请依次输入学号,姓名,成绩:"<<endl;
  cin>>p1->num>>p1->name>>p1->score;
  p2->next=p1;
  }
 }
 p2->next=NULL;
 return head;
}
void student::print(student *p)
{
 while(p!=NULL)
 {
  cout<<"学号:"<<p->num<<"姓名:"<<p->name<<"成绩:"<<p->score<<endl;
  p=p->next;
 }
}
student* student::add(student *p)
{
 student *mark1;
 mark1=p;
 int num;
 cout<<"请输入所要增加位置前面学生的学号:"<<endl;
 cin>>num;
 while(p->num!=num&&p!=NULL)
 {
  p=p->next;
 }
 if(p==NULL)
 {
  cout<<"查无此人"<<endl;
 }
 else
 {
  student *mark2,*mark3;
  mark2=(student*)malloc(sizeof(student));
  cout<<"请依次输入学号,姓名,成绩:"<<endl;
  cin>>mark2->num>>mark2->name>>mark2->score;
  mark3=p->next;
  p->next=mark2;
  mark2->next=mark3;
 }
 return mark1;
}
student* student::del(student *p)
{
 student *mark1,*mark2;
 mark1=p;
 int num;
 cout<<"请输入所要删除学生的学号:"<<endl;
 cin>>num;
 while(p->num!=num&&p!=NULL)
 {
  mark2=p;
  p=p->next;
 }
 if(p==NULL)
 {
  cout<<"查无此人"<<endl;
 }
 else
 {
  if(p==mark1)
  {
  p=p->next;
  return p;
  }
  else
  {
   mark2->next=p->next;
   free(p);
  }
 }
 return mark1;
 
}
student* student::mod(student *p)
{
 student *mark;
 mark=p;
 int num;
 cout<<"请输入要修改学生的学号:";
 cin>>num;
 while(p->num!=num&&p!=NULL)
 {
   p=p->next;
 }
 if(p==NULL)
  {
   cout<<"查无此人"<<endl;
  }
 else
  {
   cout<<"请依次输入学号,姓名,成绩:"<<endl;
   cin>>p->num>>p->name>>p->score;
  }
 return mark;
}
void student::che(student *p)
{
  int num;
  cout<<"请输入要查询学生的学号:";
  cin>>num;
  while(p->num!=num&&p!=NULL)
  {
   p=p->next;
  }
  if(p==NULL)
  {
   cout<<"查无此人"<<endl;
  }
  else
  {
   cout<<"学号:"<<p->num<<"姓名:"<<p->name<<"成绩:"<<p->score<<endl;
  }
}

int main()
{
 student a;
 while(1)
 {
  a.menu();
 }
 return 0;
}


哎呀,咳咳,呕心沥血50天。。

  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 2
博文 7
码字总数 4909
×
EasyProgramming
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: