学生信息管理系统C版本和 C++版本.docx
《学生信息管理系统C版本和 C++版本.docx》由会员分享,可在线阅读,更多相关《学生信息管理系统C版本和 C++版本.docx(16页珍藏版)》请在冰点文库上搜索。
学生信息管理系统C版本和C++版本
//C语言版本学生信息管理系统
//后面是C++版本学生信息管理系统
#include
#include
#include
usingnamespacestd;
#defineMAXN3000
classStu
{
public:
charnumber[100];
charname[100];
doublex,y,z;
doublesum;
//voidSetName();
//voidSetNumber();
//voidSetXYZ();
voidSetInfo();
intGetSum();
voidGetInfo();
//...........
};
voidStu:
:
GetInfo()
{
GetSum();
puts("------------------------------------------");
printf("学号:
%s姓名:
%s语文:
%.1lf数学:
%.1lf英语:
%.1lf总分:
%.1lf\n",number,name,x,y,z,sum);
puts("------------------------------------------");
}
intStu:
:
GetSum()
{
return(sum=x+y+z);
}
voidStu:
:
SetInfo()
{
printf("学号:
");
scanf("%s",number);
printf("姓名:
");
scanf("%s",name);
printf("语文成绩:
");
scanf("%lf",&x);
printf("数学成绩:
");
scanf("%lf",&y);
printf("她妹的英语:
");
scanf("%lf",&z);
}
boolcmp_x(Stu*a,Stu*b)
{
returna->x>b->x;
};
boolcmp_y(Stu*a,Stu*b)
{
returna->y>b->y;
}
boolcmp_z(Stu*a,Stu*b)
{
returna->z>b->z;
}
boolcmp_sum(Stu*a,Stu*b)
{
returna->sum>b->sum;
}
boolInsert();
boolDelete();
boolChange();
boolSort();
boolClaculate();
intFind();
intFindAsk();
Stus[MAXN];
Stu*p[MAXN];
boolflag[MAXN];
intcnt=0;
boolInsert()
{
if(cnt>MAXN)
{
printf("通讯录满了\n");
returnfalse;
}
inti;
for(i=0;ip[cnt]=&s[i];
flag[i]=true;
p[cnt]->SetInfo();
cnt++;
returntrue;
}
boolSort()
{
if(cnt==0)
{
printf("当前通讯录空\n");
returnfalse;
}
charx='k';
printf("1--按语文的成绩排序\n");
printf("2--按数学的成绩排序\n");
printf("3--按英语的成绩排序\n");
printf("0--按总的成绩排序\n");
x=getchar();
while((x=='\n'||x==''||x=='\0'))x=getchar();
switch(x)
{
case'1':
{sort(p,p+cnt,cmp_x);break;}
case'2':
{sort(p,p+cnt,cmp_y);break;}
case'3':
{sort(p,p+cnt,cmp_z);break;}
case'4':
{sort(p,p+cnt,cmp_sum);break;}
default:
{x='|';break;}
}
if(x!
='|')
for(inti=0;i{
p[i]->GetInfo();
}
returntrue;
}
boolDelete()
{
inti;
if((i=Find())!
=-1)
{
for(intj=i;jp[j]=p[j+1];
--cnt;
flag[i]=false;
returntrue;
}
returnfalse;
}
boolChange()
{
inti;
if((i=Find())!
=-1)
{
p[i]->SetInfo();
returntrue;
}
returnfalse;
}
boolClaculate()
{
inti;
if((i=Find())!
=-1)
{
printf("------------------------------------------\n");
printf("总分:
%lf\n",p[i]->GetSum());
printf("------------------------------------------\n");
returntrue;
}
returnfalse;
}
intFind()
{
chara[1000];
printf("学号:
");
scanf("%s",a);
inti;
for(i=0;inumber,a);i++);
if(i>=cnt)
{
puts("查无此人");
return-1;
}
returni;
}
intFindAsk()
{
inti;
if((i=Find())!
=-1)
{
p[i]->GetInfo();
returntrue;
}
returnfalse;
}
intmain()
{
memset(s,NULL,sizeof(s));
memset(flag,false,sizeof(flag));
charx=0;
while(x!
='6')
{
printf("1--输入\t2--修改\t3--计算");
puts("\t4--排序\t5--查询\t6--退出");
puts("----------------------------------------------------------");
x=getchar();
while((x=='\n'||x==''||x=='\0'))x=getchar();
switch(x)
{
case'1':
{Insert();break;}
case'2':
{Change();break;}
case'3':
{Claculate();break;}
case'4':
{Sort();break;}
case'5':
{FindAsk();break;}
case'6':
{break;}
case'7':
{Delete();break;}
default:
{break;}
}
}
return0;
}
/*
//C++版本学生信息管理系统
#include
#include
#include
usingnamespacestd;
#defineMAXN3000
classStu
{
public:
stringnumber;
stringname;
intx,y,z;
intsum;
//voidSetName();
//voidSetNumber();
//voidSetXYZ();
voidSetInfo();
intGetSum();
voidGetInfo();
//...........
};
voidStu:
:
GetInfo()
{
GetSum();
cout<<"------------------------------------------"<cout<<"学号:
"<"<"<"<"<"<cout<<"------------------------------------------"<}
intStu:
:
GetSum()
{
return(sum=x+y+z);
}
voidStu:
:
SetInfo()
{
cout<<"学号:
";
cin>>number;
cout<<"姓名:
";
cin>>name;
cout<<"语文成绩:
";
cin>>x;
cout<<"数学成绩:
";
cin>>y;
cout<<"她妹的英语:
";
cin>>z;
}
boolcmp_x(Stu*a,Stu*b)
{
returna->x>b->x;
};
boolcmp_y(Stu*a,Stu*b)
{
returna->y>b->y;
}
boolcmp_z(Stu*a,Stu*b)
{
returna->z>b->z;
}
boolcmp_sum(Stu*a,Stu*b)
{
returna->sum>b->sum;
}
boolInsert();
boolDelete();
boolChange();
boolSort();
boolClaculate();
intFind();
intFindAsk();
Stus[MAXN];
Stu*p[MAXN];
boolflag[MAXN];
intcnt=0;
boolInsert()
{
if(cnt>MAXN)
{
cout<<"通讯录满了"<returnfalse;
}
inti;
for(i=0;ip[cnt]=&s[i];
flag[i]=true;
p[cnt]->SetInfo();
cnt++;
returntrue;
}
boolSort()
{
if(cnt==0)
{
cout<<"空"<returnfalse;
}
charx='k';
cout<<"1--按语文的成绩排序"<cout<<"2--按数学的成绩排序"<cout<<"3--按英语的成绩排序"<cout<<"0--按总的成绩排序"<cin>>x;
switch(x)
{
case'1':
{sort(p,p+cnt,cmp_x);break;}
case'2':
{sort(p,p+cnt,cmp_y);break;}
case'3':
{sort(p,p+cnt,cmp_z);break;}
case'4':
{sort(p,p+cnt,cmp_sum);break;}
default:
{x='|';break;}
}
if(x!
='|')
for(inti=0;i{
p[i]->GetInfo();
}
returntrue;
}
boolDelete()
{
inti;
if((i=Find())!
=-1)
{
for(intj=i;jp[j]=p[j+1];
--cnt;
flag[i]=false;
returntrue;
}
returnfalse;
}
boolChange()
{
inti;
if((i=Find())!
=-1)
{
p[i]->SetInfo();
returntrue;
}
returnfalse;
}
boolClaculate()
{
inti;
if((i=Find())!
=-1)
{
cout<<"------------------------------------------"<cout<<"总分:
"<
GetSum()<cout<<"------------------------------------------"<returntrue;
}
returnfalse;
}
intFind()
{
stringa;
cout<<"学号:
"<cin>>a;
inti;
for(i=0;inumber!
=a);i++);
if(i>=cnt)
{
cout<<"查无此人"<return-1;
}
returni;
}
intFindAsk()
{
inti;
if((i=Find())!
=-1)
{
p[i]->GetInfo();
returntrue;
}
returnfalse;
}
intmain()
{
memset(s,NULL,sizeof(s));
memset(flag,false,sizeof(flag));
charx=0;
while(x!
='6')
{
cout<<"1--输入\t2--修改\t3--计算";
cout<<"\t4--排序\t5--查询\t6--退出"<cout<<"----------------------------------------------------------"<cin>>x;
switch(x)
{
case'1':
{Insert();break;}
case'2':
{Change();break;}
case'3':
{Claculate();break;}
case'4':
{Sort();break;}
case'5':
{FindAsk();break;}
case'6':
{break;}
case'7':
{Delete();break;}
default:
{break;}
}
}
return0;
}
*/