用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< 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< 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< 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< 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< 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; } } }