用c++编程建立学生成绩管理系统。

2025-04-17 19:16:58
推荐回答(1个)
回答1:

#include 
#include
using namespace std;
const int N=5
;
class student
{
 char n_name[10];
 char n_numble[5];
 char n_sex[3];
 float  score[4];//score[0]英语成绩,score[1]数学成绩,score[2]语文成绩,score[3]平均分
public:
student();
 student(char name[],char numble[],char sex[],float a,float b,float c);
 student(student &s);
 void input();//输入学生信息:姓名,学号,性别,英语,数学,语文
 float pj();//获取平均分
 
 void stu_delete(student stu[]);//删除
 void stu_find(student stu[]);
 void dispaly();//显示学生信息:姓名,学号,性别,英语,数学,语文,平均分
};
student::student()
{
strcpy(n_numble,"000");
 strcpy(n_name,"noname");
 strcpy(n_sex,"male");
 score[0]=88;
 score[1]=99;
 score[2]=95;
 score[3]=94;
}
student::student(char name[],char numble[],char sex[],float a,float b,float c)
{
strcpy(n_name,name);
 strcpy(n_numble,numble);
 strcpy(n_sex,sex);
 score[0]=a;
 score[1]=b;
 score[2]=c;
 score[3]=(score[0]+score[1]+score[2])/3.0;
}
student::student(student &s)
{
 strcpy(n_name,s.n_name);
 strcpy(n_numble,s.n_numble);
 strcpy(n_sex,s.n_sex);
 score[0]=s.score[0];
 score[1]=s.score[1];
 score[2]=s.score[2];
 score[3]=(score[0]+score[1]+score[2])/3.0;
 
}
void student::input()
{
 cout<<"输入学生信息:"< cout<<"请依次输入姓名,学号,性别,英语,数学,语文"< cin>>n_name>>n_numble>>n_sex>>score[0]>>score[1]>>score[2];
 score[3]=(score[0]+score[1]+score[2])/3.0;
}

float student::pj()
{
 return score[3];
}

void student::stu_delete(student stu[])
{
student t;
 int i,k,j;
 char d_numble[5];
 cout<<"请输入要删除的学生学号:";
 cin>>d_numble;
 for(i=0;i {
  j=i;
  k=strcmp(stu[i].n_numble,d_numble);
  if(k==0&&i!=N)
{
   for(;j    stu[j]=stu[j+1];
  }
  if(k==0&&i==N)
  {
   strcpy(stu[N].n_numble,"0000");
   strcpy(stu[N].n_name,"noname");
   strcpy(stu[N].n_sex,"男");
   stu[N].score[0]=0;
   stu[N].score[1]=0;
   stu[N].score[2]=0;
   stu[N].score[3]=0;
}
 }
}
void student::stu_find(student stu[])
{
 int i,k;
 char d_numble[5];
 cout<<"请输入要查询学生的学号:";
 cin>>d_numble;
 for(i=0;i{
  k=strcmp(stu[i].n_numble,d_numble);
  if(k==0)
  {
   stu[i].dispaly();
   
  }
 }
}
void student::dispaly()
{
cout<<"姓名:"<}
class manage_stu
{
//private:
 student  stu[N+1];//定义N+1名学生空间
public:
 void input_stu();//输入N名学生信息
 
 void delete_stu();//删除指定学号的学生信息
 void find_stu();//查找指定学号的学生并显示
 void total_stu();//分别求每个人的总分
 void sort_stu();//按总分高低排序,排序后的结果显示并生成文件sortstu.txt
 void display_stu();//显示N名学生信息
};
void manage_stu::input_stu()//输入N名学生信息
{
 int i;
 for(i=0;i  stu[i].input();
}
void manage_stu::delete_stu()//删除指定学号的学生信息
{
student r;
 r.stu_delete(stu);
}
void manage_stu::find_stu()//查找指定学号的学生并显示
{
 student t;
 t.stu_find(stu);
}
void manage_stu::total_stu()//分别求每个人的总分
{
 int i;
 for(i=0;i  stu[i].pj();
}
void manage_stu::sort_stu()
{
 int i,j;
 student a;
 for(i=0;i {
  for(j=i;j  {
if(stu[i].pj()   {
    a=stu[i];
    stu[i]=stu[j];
    stu[j]=a;
   }
  }
 }
}
void manage_stu::display_stu()//显示N名学生信息
{
 student t;
 int i;
 for(i=0;i  stu[i].dispaly();
}
void main()
{
 
 int i=1,c;
 manage_stu s; 
 while(i)
 {
  cout<<"学生管理系统:"<  cout<<"1、录入学生信息"<  cout<<"2、查找"<  cout<<"3、排序"<  cout<<"4、删除"<cout<<"5、显示几名学生信息"<  cout<<"6、退出系统"<  cout<<"请选择(1--6):";
  cin>>c;
  switch(c)
  {
  case 1:s.input_stu();break;
  case 2:s.find_stu();break;
  case 3:s.sort_stu();break;
  case 4:s.delete_stu();break;
  case 5:s.display_stu();break;
  case 6:i=0;
  }
 }
}