学生考试成绩管理系统.docx

上传人:b****7 文档编号:23847827 上传时间:2023-05-21 格式:DOCX 页数:19 大小:19.64KB
下载 相关 举报
学生考试成绩管理系统.docx_第1页
第1页 / 共19页
学生考试成绩管理系统.docx_第2页
第2页 / 共19页
学生考试成绩管理系统.docx_第3页
第3页 / 共19页
学生考试成绩管理系统.docx_第4页
第4页 / 共19页
学生考试成绩管理系统.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

学生考试成绩管理系统.docx

《学生考试成绩管理系统.docx》由会员分享,可在线阅读,更多相关《学生考试成绩管理系统.docx(19页珍藏版)》请在冰豆网上搜索。

学生考试成绩管理系统.docx

学生考试成绩管理系统

学生考试成绩管理系统

一、课程设计内容:

学生考试成绩管理系统具体要求:

对某专业多个班级的学生的多门功课的成绩进行管理,要求实现以下功能:

1.输入学生成绩

2.修改学生成绩

3.删除学生成绩

4.计算每位学生总分

5。

计算每位学生的平均分

6。

按学号或姓名查询学生成绩

7.按班级查询学生成绩

8.成绩排序

9.按班级统计学科总分,平均分

0、退出

#include#include〈iomanip〉#include#include

public:

student*next;public:

stringname;//姓名

longnum;//学号

intx,y,z;//数学,语文,英语intAA;//总分

voidplay(){cout<

"<

”<〈y<〈",英

语:

"<〈z<〈”,总分:

"<〈AA<〈endl;};

student(stringsname,longsnum,intsx,intsy,intsz)

name=sname;num=snum;x=sx;

y=sy;

z=sz;

};

classcla{

public:

cla()//构造函数

stu=0;

sload();

}

~cla()//析构函数

{

student*p;p=stu;

while(p)

p=p—〉next;deletestu;stu=p;

}

stu=0;

}

voidsadd();//添加

voidsremove();//删除voidsamend();//修改

voidssearch();//查询

voidstaxis();//排序

voidssave();//保存

voidsload();//读取

//排序函数

voidpxh();voidpsx();voidpyw();voidpyy();voidpAA();private:

student*stu;//头接点};

voidcla:

:

sadd()//添加{

student*q;stringname1;longnum1;intx1,y1,z1;

system("cls”);

cout<<”\n**增加的学生**\n”<〈endl;cout〈〈"请输入学生的(中间用空格间隔)”<

"<〈endl;

cin>〉name1>>num1〉>x1〉>y1>>z1;

q=newstudent(name1,num1,x1,y1,z1);

q-〉next=0;

q—>AA=x1+y1+z1;

if(stu)

{

student*t;

t=stu;

if(t—〉num==num1)

cout〈<”学号已存在,请重新输入"<〈endl;return;

while(t—>next)

{

if(t—>num==num1)

{

cout〈<”学号已存在,请重新输入”<〈endl;return;

}

t=t-〉next;

t-〉next=q;

else

stu=q;

cout〈<"输入完毕”〈〈endl;}

voidcla:

:

sremove()//删除

system("cls");intnum1;

cout〈<”\n**删除学生信息**\n”;

cout〈〈”请输入想要删除学生的学号:

";cin>>num1;

//查找要删除的结点

student*p1,*p2;p1=stu;

while(p1)

if(p1—〉num==num1)break;

else

{

p2=p1;

p1=p1—〉next;}

//删除结点

if(p1!

=NULL)//若找到结点,则删除{

p1->play();

cout<〈"确定删除吗?

[Y/N]"<

charc;cin〉>c;

if(toupper(c)!

=’Y’)return;

if(p1==stu)//若要删除的结点是第一个结点{

stu=p1->next;

deletep1;

}

else//若要删除的结点是后续结点

{

p2—>next=p1->next;deletep1;

cout〈〈”找到学号为"<〈num1<〈"的学生,并删除\n";

}

else//未找到结点

cout〈〈”未找到想要删除的学生!

\n";}

voidcla:

samend()//修改

{

system("cls");

longnum1;

cout<<"\n**修改学生信息**\n”;

cout<<”输入要修改学生的学号";

cin〉>num1;

//查找要修改的结点

student*p1,*p2;

p1=stu;

while(p1)

if(p1—>num==num1)

break;

else

p2=p1;

p1=p1—〉next;

}

}

if(p1!

=NULL)

{

cout〈〈”学号是"<〈num1〈〈”的学生的信息”〈〈endl;cout<〈"姓名”<name<<"数学"〈x<<"语文"〈y〈<”英语”<〈p1—〉z<

cout<<"请输入修改后的信息:

姓名数学成绩语文成绩英语成绩"〈

cin〉>p1-〉name〉>p1-〉x〉〉p1->y〉>p1-〉z;

p1—>AA=p1-〉x+p1—>y+p1—>z;cout<〈"修改成功"〈〈endl;

else//未找到接点

cout〈〈”未找到!

\n";

}

voidcla:

ssearch()//查询

system("cls”);cout〈<”\n**查询学生信息**\n”<

cout<〈"请输入查询方式:

"<〈endl;cout<〈”1.按学号查询"<〈endl;cout〈<"2。

按姓名查询"〈〈endl;

”<

charc;cin>〉c;switch(c)

{

case'1’:

longnum1;

cout<〈"要查询的学号”〈〈endl;cin〉>num1;

//查找要查询的结点

student*p1,*p2;p1=stu;

while(p1)

{

if(p1-〉num==num1)break;

else

{

p2=p1;

p1=p1-〉next;

}

if(p1!

=NULL)

{

cout〈<”学号是"〈

cout<〈”姓名:

”<name〈<”数学:

"〈

"〈

”〈

cout<<”查询完毕..。

”;

}

else//未找到接点

cout<〈"未找到!

\n";

break;

}

case'2’:

stringname1;cout〈<”要查询的学生姓名”〈〈endl;cin>〉name1;

//查找要查询的结点

student*p1,*p2;p1=stu;

while(p1)

if(p1—〉name==name1)break;

else

{

p2=p1;

p1=p1->next;

}

}

if(p1!

=NULL)

{

cout〈

”〈

"〈x〈〈"语文:

"<y〈<"英语:

”〈〈p1-〉z<〈endl;

cout〈<"查询完毕...";

}

else//未找到接点

cout<<"未找到!

\n";

break;

case'3':

return;}

}

voidcla:

pxh()//按学号排序

{

student*p1,*p2;

intn;

p1=stu;

n=1;

while(p1—〉next)

{n++;p1=p1—〉next;}cout<<”共有"〈〈n〈<”条信息。

”<

p1=stu;

for(i=1;i

{

p1=stu;

if(p1—>num〉p1-〉next—>num)//如果头结点大于第二个的

p2=p1-〉next;

p1—>next=p1—>next—>next;

p2—>next=p1;//头结点交换

stu=p2;

}

p1=stu;

while(p1->next-〉next)//中间的交换{

p2=p1;

p1=p1—〉next;

if(p1—>num〉p1—〉next—〉num)

{

p2->next=p1->next;p1->next=p1->next—〉next;

p2->next—>next=p1;p1=p2—〉next;//交换

}

p1=stu;

do

p1—〉play();

p1=p1-〉next;

}while(p1);

voidcla:

:

psx()//按数学成绩排序

{

student*p1,*p2;

intn;

p1=stu;

n=1;

while(p1—〉next)

{n++;p1=p1-〉next;}cout<〈"共有”<

”<〈endl;inti;

p1=stu;

for(i=1;i

{p1=stu;

if(p1—>x>p1—>next->x)//如果头结点大于第二个的{p2=p1—〉next;

p1-〉next=p1—>next—>next;p2—>next=p1;//头结点交换

stu=p2;

p1=stu;

while(p1-〉next->next)//中间的交换

{p2=p1;

p1=p1—>next;

if(p1-〉x>p1->next->x){

p2->next=p1->next;p1—〉next=p1—〉next->next;p2->next—〉next=p1;p1=p2-〉next;//交换

}

p1=stu;

do

{p1—〉play();p1=p1—〉next;

}while(p1);

}

voidcla:

pyw()//按语文成绩排序{

student*p1,*p2;intn;

p1=stu;

n=1;

while(p1—>next){n++;p1=p1—>next;}

cout<〈"共有”<〈n〈〈”条信息。

.。

”〈〈endl;

inti;

p1=stu;

for(i=1;i〈n;i++){p1=stu;

if(p1->y>p1—〉next—>y)//如果头结点大于第二个的

{p2=p1->next;p1—>next=p1—>next->next;

p2—>next=p1;//头结点交换

stu=p2;

}

p1=stu;

while(p1—>next-〉next)//中间的交换{p2=p1;

p1=p1—〉next;

if(p1->y>p1—>next—>y){

p2—〉next=p1—>next;p1->next=p1—>next—〉next;

p2->next—〉next=p1;p1=p2-〉next;//交换

}

}

}

p1=stu;

do

{p1->play();

p1=p1-〉next;

}while(p1);

voidcla:

:

pyy()//按英语成绩排序

{

student*p1,*p2;intn;

p1=stu;

n=1;

while(p1->next){n++;p1=p1—〉next;}cout〈〈"共有”〈〈n〈<"条信息。

.。

”〈

inti;

p1=stu;

for(i=1;i〈n;i++){p1=stu;

if(p1—〉z〉p1—〉next—〉z)//如果头结点大于第二个的{p2=p1—〉next;

p1->next=p1—>next—〉next;

p2-〉next=p1;//头结点交换

stu=p2;

p1=stu;

while(p1—>next-〉next)//中间的交换{p2=p1;

p1=p1—〉next;

if(p1—〉z>p1->next->z){

p2-〉next=p1->next;p1—〉next=p1—>next-〉next;

p2—>next—〉next=p1;p1=p2-〉next;//交换

}

}

p1=stu;

do

{p1—〉play();

p1=p1-〉next;

}while(p1);

}

voidcla:

pAA()//按总分排序

{

student*p1,*p2;

intn;

p1=stu;

n=1;

while(p1-〉next)

{n++;p1=p1-〉next;}cout<〈”共有"〈〈n<〈”条信息.。

"〈〈endl;inti;

p1=stu;

for(i=1;i

{p1=stu;

if(p1—>AA〉p1->next—〉AA)//如果头结点大于第二个的{p2=p1—〉next;

p1-〉next=p1—>next-〉next;p2—>next=p1;//头结点交换

stu=p2;

}

p1=stu;

while(p1—〉next-〉next)//中间的交换

{p2=p1;

p1=p1—>next;

if(p1—>AA〉p1->next—>AA){

p2->next=p1—〉next;p1—〉next=p1-〉next—>next;p2-〉next->next=p1;p1=p2—>next;//交换

}

}

p1=stu;

do

{p1—>play();

p1=p1-〉next;

}while(p1);

voidcla:

staxis()//排序

system("cls");

charc;

cout〈<”请选择以何种方式排序:

”〈〈endl;cout〈〈”1……以学号排序"<

cout〈<"请选择(1-6)"〈

switch(c)

{

case’1’:

pxh();break;case'2’:

psx();break;case’3’:

pyw();break;case'4’:

pyy();break;case'5’:

pAA();break;case'6':

return;

}

voidcla:

:

ssave()//保存到文件

system("cls”);

charc;

cout〈〈”\n保存学生信息(将覆盖原文件),是否继续?

[Y/N]:

";cin>>c;

if(toupper(c)!

=’Y')return;

ofstreamtfile(”date.txt”,ios_base:

:

binary);

student*p=stu;while(p)//写入文件

{

tfile〈〈p-〉name〈〈"\t"<y<<"\t"〈〈p—〉z;

tfile<

p=p-〉next;

}

tfile.close();

cout<〈"保存完毕。

.”<

voidcla:

sload()//读取

student*p;

p=stu;

while(p)

stu=p->next;

deletep;

p=stu;

}

ifstreamtfile(”date.txt”,ios_base:

:

binary);

stringname1;longnum1;

intx1,y1,z1;tfile>>name1〉〉num1>>x1〉>y1〉〉z1;

while(tfile。

good())

//创建学生接点

student*s;

s=stu;

s=newstudent(name1,num1,x1,y1,z1);

s-〉next=0;

s-〉AA=x1+y1+z1;if(stu)//若已经存在结点

student*p2;p2=stu;

while(p2—>next)//查找尾结点{

p2=p2->next;}

p2—>next=s;//连接

}

else//若不存在结点(表空)

stu=s;//连接

tfile>>name1>〉num1>>x1〉>y1>〉z1;

}

tfile.close();

cout<<”\n学生信息已经装入。

..\n”;

voidmain()

{

charc;

claa;

do

cout<〈"\n学生成绩管理系统\n”;cout<〈”**************************************\n”;

cout〈〈"作者:

软件工程06110119:

zgjxwl\n”;

cout<〈"1……增加学生\n";

cout<〈"2……删除学生\n”;

cout〈<”3……修改学生\n”;

cout〈〈"4……查询学生信息\n";cout<<”5……排序\n";

cout〈〈"6……保存信息\n";

cout<〈"7……读取信息\n";

cout<<”8……退出\n”;

cout〈<"**************************************\n”;

cout<<"请选择(1-8):

”;

cin〉>c;

switch(c)

{

case’1':

a.sadd();break;case'2':

a。

sremove();break;case'3':

a。

samend();break;case'4’:

a。

ssearch();break;case'5':

a。

staxis();break;case'6’:

a。

ssave();break;case'7':

a.sload();break;}

}while(c!

='8’);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 外语学习 > 英语学习

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1