学生成绩管理系统课程设计Word格式.docx
- 文档编号:21162752
- 上传时间:2023-01-28
- 格式:DOCX
- 页数:20
- 大小:34.33KB
学生成绩管理系统课程设计Word格式.docx
《学生成绩管理系统课程设计Word格式.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统课程设计Word格式.docx(20页珍藏版)》请在冰豆网上搜索。
number=nu;
math=ma;
english=en;
chinese=ch;
computer=co;
Class=cl;
};
voidputna(char*x)
name=newchar[strlen(x)+1];
strcpy(name,x);
voidputfour(intx,inty,intz,inth)//传四个成绩
{
chinese=x;
english=y;
math=z;
computer=h;
};
voidputcl(intx){Class=x;
//赋一个值,下面同样
voidputnu(intx){number=x;
voidputch(intx){chinese=x;
voidputen(intx){english=x;
voidputma(intx){math=x;
voidputco(intx){computer=x;
intgetcl(){returnClass;
//返回一个值,下面同样
intgetnu(){returnnumber;
intgetch(){returnchinese;
intgeten(){returnenglish;
intgetma(){returnmath;
intgetco(){returncomputer;
char*getna(){return(name);
voidputout()//返回学生全部信息
cout<
<
Class<
setw(8)<
number<
setw(10)<
name<
setw(8)<
chinese<
setw(11)<
english<
setw(9)<
math<
computer;
//*******************************************************
//汇总
doubleaverage(student*p,char*na,intCl)//每一个科目的平均分
{
floatav=0,j1=1;
intj=0;
for(inti=0;
i<
N;
i++)
if(strcmp(na,"
语文"
)==0&
&
p[i].getcl()==Cl)
{av=av+p[i].getch();
++j;
j1=float(j);
}
英语"
{av=av+p[i].geten();
C++程序设计"
{av=av+p[i].getco();
数学"
{av=av+p[i].getma();
}
if(av==0)return0;
elsereturnav/j1;
intsum(studentp)//每人的总分
ints=0;
s=p.getch()+p.geten()+p.getco()+p.getma();
returns;
//***************************************************************
intfind(student*p,intCl,intNu)//通过班级和学号,对要修改的对象返回它的对象里的值
inti=0,a=N+1;
for(;
if(p[i].getcl()==Cl&
p[i].getnu()==Nu)
{a=i;
break;
elsecontinue;
if(a!
=N+1)returna;
elsereturnN;
intfind(student*p,intCl,char*Na)//通过班级和名字,对要修改的对象返回它的对象里的值
strcmp(p[i].getna(),Na)==0)
}
if(a!
elsereturnN;
intfind(student*p,char*Na,intNu)//通过名字和学号,对要修改的对象返回它的对象里的值
i++)
if(strcmp(p[i].getna(),Na)==0&
intfind(student*p,intCl)//通过班,对要修改的对象返回它的对象里的值
if(p[i].getcl()==Cl)
//*******************************************************************
//查询成绩
voidsearch(student*p,intCl,char*Na)//通过班级和名字,来查询成绩
intj=find(p,Cl,Na);
if(j==N)cout<
endl<
"
此人不存在!
endl;
else
{
cout<
班级"
setw(6)<
学号"
姓名"
setw(11)
<
setw(8)
总分"
平均分"
p[j].putout();
setw(7);
inta4=sum(p[j]);
floata5=float(a4)/4;
a4<
a5<
}
voidsearch(student*p,char*Na,intNu)//通过名字和学号,来查询成绩
intj=find(p,Na,Nu),a4;
floata5;
if(j==N)cout<
没有这个人:
else
setw(11)
<
setw(8)
p[j].putout();
a4=sum(p[j]);
a5=float(a4)/4;
}
voidsearch(student*p,intCl,intNu)//通过班和号,来查询成绩
intj=find(p,Cl,Nu);
else
inta4=sum(p[j]);
floata5=float(a4)/4;
//8888888888888888888888888888888888888888888888888888888
voidlank(student*p,intCl)//按学号顺序排
intk1,k2,k3,k4,k5,k6;
char*k7;
for(intj=i+1;
j<
j++)
if(p[i].getcl()==Cl&
p[j].getcl()==Cl&
p[i].getnu()>
p[j].getnu())//实现用学号来排序
{
k1=p[i].getcl();
p[i].putcl(p[i+1].getcl());
p[j].putcl(k1);
k7=newchar[strlen(p[i].getna())+1];
strcpy(k7,p[i].getna());
p[i].putna(p[i+1].getna());
p[i+1].putna(k7);
k2=p[i].getnu();
p[i].putnu(p[j].getnu());
p[j].putnu(k2);
k3=p[i].getch();
p[i].putch(p[j].getch());
p[j].putch(k3);
k4=p[i].geten();
p[i].puten(p[j].geten());
p[j].puten(k4);
k5=p[i].getma();
p[i].putma(p[j].getma());
p[j].putma(k5);
k6=p[i].getco();
p[i].putco(p[j].getco());
p[j].putco(k6);
}
elsecontinue;
//***********************************************
voidsearch(student*p,intCl)//查某班级的成绩,是按学号顺序排
intk8=find(p,Cl);
lank(p,Cl);
if(k8==N)cout<
没有这个班:
{cout<
setw(10)
<
setw(9)
i++)//返回排序后的班的学生成绩
{intA1;
floatA2;
A1=sum(p[i]);
A2=float(A1)/4;
p[i].putout();
cout<
A1<
A2<
//******************************************************************
voidchange(student*p,intCl,intNu,char*Na)//修改成绩
inta=find(p,Cl,Nu);
intC,B1,B2,B3,B4;
if(a==N)cout<
没有这个人的资料:
改语文请输入1,改英语请输入2,改数学请输入3,改C++程序设计请输入4,大于一科请输入5:
cin>
>
C;
switch(C)
case1:
原来的值为:
p[a].getch()<
请输入它的新值:
;
cin>
B1;
p[a].putch(B1);
结果是:
setw(8)<
p[a].putout();
break;
case2:
p[a].geten()<
请输入它的值:
p[a].puten(B1);
case3:
p[a].getma()<
p[a].putma(B1);
setw(10)
case4:
p[a].getco()<
p[a].putco(B1);
case5:
原来的值分别为:
endl
语文:
英语:
endl
数学:
endl<
C++程序设计:
请输入语文的值:
cin>
请输入英语的值:
B2;
请输入数学的值:
B3;
请输入C++程序设计的值:
B4;
p[a].putfour(B1,B2,B3,B4);
setw(10)<
voidrank(student*p,intCl)//通过比较来排名,查看某班的成绩
intk1,k2,k3,k4,k5,k6,k8;
{for(intj=i+1;
{if(p[i].getcl()==Cl&
sum(p[i])<
=sum(p[j]))//用学号来排序后,通过总分来比较排名
k1=p[i].getcl();
p[i].putcl(p[j].getcl());
k7=newchar[strlen(p[i].getna())+1];
strcpy(k7,p[i].getna());
p[i].putna(p[j].getna());
p[j].putna(k7);
k2=p[i].getnu();
k3=p[i].getch();
k4=p[i].geten();
k5=p[i].getma();
k6=p[i].getco();
elsecontinue;
k8=find(p,Cl);
名次"
intj1=0;
for(i=0;
i++)//返回通过总分排序后的学生成绩
floatA2;
j1++;
j1<
setw(8);
setw(7)<
//888888888888888888888888888888888888888888888888888888888888
voidfun(student*pupil)
for(intj=0;
j++)//对系统的操作
查询成绩请输入'
2'
;
修改成绩请输入'
3'
退出请按其它键;
intp3,p4;
charp2[10],a0[3];
a0;
cout<
*****************************************************************************"
if(strcmp(a0,"
3"
)==0)//修改成绩
{for(inti=0;
请输入你的班级:
p3;
请输入你的学号:
p4;
请输入你的名字:
p2;
change(pupil,p3,p4,p2);
还需要修改吗,需要请输入'
Y'
否则按其它键:
charb0[3];
b0;
if(strcmp(b0,"
Y"
)==0||strcmp(b0,"
y"
)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 成绩管理系统 课程设计
![提示](https://static.bdocx.com/images/bang_tan.gif)