C++ 课程设计学生成绩管理系统源代码

c++实现学生成绩管理系统,要求用类实现并且可实现增删改查及成绩排名。

#include

typedef class

{  

public:

int cls; char nam[10];  char num[10];  int c;  int english;  int computer;  int math; int s;

}Student;  

Student stud1[100],stud2[100];

int menu()

{

char a;

  while(a>'7'||a<'0')

 {   

  system("cls");  

  cout<<"                   欢迎使用学生成绩管理系统 ";   

  cout<

  cout<<"**********************        学生成绩管理系统     ************************"<

  cout<输入学生成绩"<< endl;  

  cout<输出学生成绩"<

  cout<查找并显示学生成绩"<

  cout<按姓名查找,修改学生资料"<

  cout<显示班级成绩单"<

  cout<查找并删除学生信息"<

  cout<从文件读取数据"<

  cout<储存学生资料并退出系统"<

  cout<

  cout<<"请选择(0-7)"<

 cout<

  a=getchar();

 }

  return(a-'0');

}

/***************************************************************************************/

 int Input(Student stud[],int n)      //输入数据(第一学期)

{  

 int i=0;

 char sign,x[10];

  for(;sign !='n'&&sign !='N';)

 {    

   cout<姓名:";  

   cin>>stud[n+i].nam;   

   cout<班级(:1401):";

   cin>>stud[n+i].cls;  

   cout<学号:";  

   cin>>stud[n+i].num;  

   cout<语言:";

   cin>>stud[n+i].c;   

   cout<数学:";

   cin>>stud[n+i].math;  

   cout<英语:";

   cin>>stud[n+i].english;  

   cout<计算机:";  

   cin>>stud[n+i].computer;  

   gets(x);   

   cout<

   cout<<"还有要输入的信息吗?(y/n)";  

   cin>>&sign;

   i++;  

}  

 return(n+i);

}

 /*************************************输出数据***********************************************/

void Display(Student stud[], int n)

{   

int i;

cout<

    cout<班级"<<"\t"<<"学号"<<"\t"<<"姓名"<<"\t"<<"C语言"<<"\t"<<" 数学"<<"\t"<<" 英语"<<"\t"<<" 计算机"<<"\t"<<"总分"<<"\t"<<"平均分"<

    cout<

    cout<

   for(i=1;i

 {    

cout<

     stud[i-1].s=stud[i-1].c+stud[i-1].math+stud[i-1].english+stud[i-1].computer;  

    cout<<"  "<

  if(i>1 && i%10==0)  

 {   

  cout<

  cout<

  system("pause");   

  cout<

  }  

}  

 cout<

 system("pause");

 }  

/************************************查找学生显示其信息***************************************************/

void Query(Student stud[],int n)

 {  

char nam[20];

    cout<输入其姓名:"<

    cin>>nam;

    int i=0;  

 while(strcmp(stud[i].nam,nam)!=0&&i

 if(i==n)  

{   

 cout<<"\t\t\t"<<"没有发现该学生的资料!"<

 return;

 }  

  cout<学号:"<

  cout<班级:"<

  cout<语言:"<

  cout<英语:"<

  cout<数学:"<

  cout<计算机:"<

 }

 /*********************************删除学生信息************************************/

int Delete(Student stud[],int n)

{  

char s[20];    int i=0,j;  

 cout<请输入要删除的学生的姓名:"<

 cin>>s;  

 while(strcmp(stud[i].nam,s)!=0&&i

 if(i==n)  

 {  

 printf("\t\t\t没有发现该学生资料!\n");

 return(n);  

 }   

 for(j=i;j

  {    

  strcpy(stud[j].num,stud[j+1].num);

      strcpy(stud[j].nam,stud[j+1].nam);

      stud[j].cls=stud[j+1].cls;

      stud[j].c=stud[j+1].c;

      stud[j].math=stud[j+1].math;  

      stud[j].english=stud[j+1].english;   

      stud[j].computer=stud[j+1].computer;

 }   

 cout<当前信息已删除成功!"<

 }  

 /*******************************修改信息 ******************************************/

 int Revise(Student stud[],int n)

 {   

int i=0; char na[10];

cin>>na;

  while(strcmp(stud[i].nam,na)!=0&&i

if(i==n)

  {   

 cout<<"\t\t\t"<<"没有发现该学生的资料!"<

}

   cout<<"修改班级:"<

   cin>>stud[i].cls;

   cout<<"修改学号:"<

   cin>>stud[i].num;  

   cout<<"修改C语言成绩:"<

   cin>>stud[i].c;

   cout<<"修改英语成绩:"<

   cin>>stud[i].english;

   cout<<"修改数学成绩:"<

   cin>>stud[i].math;

   cout<<"修改计算机成绩:"<

   cin>>stud[i].computer;    

   cout<<"修改成功"<

   return(n);

 }  

 /***************************************显示班级成绩单**************************************/

 void cjd(Student stud[], int n)

{   

int i,m,j;

cout<<"请输入班级(:1401):";

cin>>m;

    cout<

    cout<班级"<<"\t"<<"学号"<<"\t"<<"姓名"<<"\t"<<"C语言"<<"\t"<<" 数学"<<"\t"<<" 英语"<<"\t"<<" 计算机"<<"\t"<<"总分"<<"\t"<<"平均分"<

    cout<

    cout<

for(i=1;i

stud[i-1].s=stud[i-1].c+stud[i-1].math+stud[i-1].english+stud[i-1].computer;}

for(i=1;i

for(j=i+1;j

if(stud[i-1].s

Student  temp;

temp=stud[i-1];

stud[i-1]=stud[j-1];

stud[j-1]=temp;

}

}

}

   for(i=1;i

 {    

cout<

     stud[i-1].s=stud[i-1].c+stud[i-1].math+stud[i-1].english+stud[i-1].computer;  

    cout<<"  "<

  if(i>1 && i%10==0)  

 {   

  cout<

  cout<

  system("pause");   

  cout<

  }  

}  

 cout<

 system("pause");

 

 }

 /**************************************从文件读取数据*************************************************/

 int AddfromText(Student stud[], int n)  

{  

int i=0,number,x=0,y=0;

FILE *fp;  

char filename[20];  

cout<输入文件名:";

cin>>filename;

  if((fp=fopen(filename,"rb"))==NULL)

 {   

 cout<无法打开文件"<

    cout<

 system("pause");  

 return(n);

 }   

fscanf(fp,"%d",&number);

  for(;i

{  

fscanf(fp,"%d%s%s%d%d%d%d%d%d\n",

&stud[n+i].cls, &stud[n+i].num,

&stud[n+i].nam, &stud[n+i].c,

&stud[n+i].math, &stud[n+i].english,

&stud[n+i].computer,&x,&y);

  i++;

  }

   n+=number;

 fclose(fp);  

  cout<读入成功!"<

  cout<

  system("pause");

  return(n);

   }   

/**************************************将所有记录写进文件*************************************/  

void WritetoText(Student stud[],int n)     

{  

 int i=0;  

 FILE *fp;  

 char filename[20];  

cout<将资料输入文件"<

cout<输入文件名:";  

cin>>filename;  

 if((fp=fopen(filename,"w+"))==NULL)  

{   

 cout<无法打开文件"<

 system("pause");  

 return;

 }

  fprintf(fp,"%d\n",n);

    for(;i

{   

fprintf(fp,"%-8d%-8s%-8s%-5d%-5d%-5d%-5d%-5d%-5d\n",

stud[i].cls, stud[i].num, stud[i].nam,   

stud[i].c, stud[i].math,

stud[i].english, stud[i].computer,  

stud[i].c+stud[i].math+stud[i].english+stud[i].computer,    

(stud[i].c+stud[i].math+stud[i].english+stud[i].computer)/4);

   i++;

}  

fclose(fp);

}

 /**************************************主函数调用*********************************************/

void main()

 {

int n1=0,n2=0;

 for(;;)

 {   

switch(menu())  

 {   

case 1:  

    int t;   

   cout<输入学生资料"<

   cout<输入学期(1 or 2)"<

   cout<

   cin>>t;  

  if(t==1)   

  {                 n1=Input(stud1,n1);    }  

  else if(t==2)    {      n2=Input(stud2,n2);    }     break;  

 case 2:  

   cout<输出所有学生资料"<

 if(n1!=0)   

 {    

 cout<第一学期:"<

     cout<

     Display(stud1,n1);  

 }   

  if(n2!=0)   

 {    

  cout<第二学期:"<

    cout<

      Display(stud2,n2);

  }   break;

 case 3:  

  int r;    

  cout<查找学生"<

  cout<请输入学期:"<

  cin>>r;  

  if(r==1)    

{      Query(stud1,n1);    }

  else if(r==2)    {      Query(stud2,n2);    }   

  cout<

  system("pause");    break;  

 case 4:   

int p;    

    cout<修改学生资料"<

    cout<请输入学期:"<

    cin>>p;

   if(p==1)   

 {    

   cout<输入你要修改的学生的姓名:";     

       n1=Revise(stud1,n1);  

   }   

  else if(p==2)  

  {    

  cout<输入你要修改的学生的姓名:";  

      n2=Revise(stud2,n2);  

  }

 system("pause");    break;  

case 5:

 cout<显示班级成绩单"<

 if(n1!=0)   

 {    

 cout<第一学期:"<

     cout<

     cjd(stud1,n1);  

 }   

  if(n2!=0)   

 {    

  cout<第二学期:"<

    cout<

      cjd(stud2,n2);

  }   break;  

 case 6:     

 cout<查找并删除学生信息"<

     int o;   

     cout<<"请输入学期:"<

     cout<

     cin>>o;  

  if(o==1)   

 {     

 cout<第一学期"<

   n1=Delete(stud1,n1);  

  }

    if(o==2)  

  {     

 cout<第二学期"<

   n2=Delete(stud2,n2);  

  }    

 system("pause");    break;

case 7:    

       cout<从文件中读入数据"<

       cout<读取第一学期的文件"<

   n1=AddfromText(stud1,n1);      

       cout<读取第二学期的文件"<

   n2=AddfromText(stud2,n2);          break;    

 case 0:  

   cout<将所有资料写入文件"<

  if(n1!=0)  

  {    

cout<存储第一学期学生资料:"<

  if(n2!=0)  

  {     

 cout<存储第二学期学生资料:"<

   cout<输入成功"<

   int b;    

   cout<请确定是否退出系统:"<

   cout<退出系统"<

   cout<返回"<

   cout<

  cin>>b;  

  if(b==0)  

  {     

 cout<谢谢使用"<

     cout<

     system("pause");  

     exit(0);  

  }   

  cout<

  system("pause");   

 break;   

 }  

 }

 }   

你可能感兴趣的:(课程设计,C++)