学籍管理系统c版Word格式文档下载.docx
《学籍管理系统c版Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《学籍管理系统c版Word格式文档下载.docx(20页珍藏版)》请在冰豆网上搜索。
<
"
姓名:
name<
性别:
sex<
学生的学号是:
num<
数学:
x<
语文:
y<
英语:
z<
总分:
AA<
endl;
};
student(stringsname,stringssex,longsnum,intsx,intsy,intsz)
{
name=sname;
sex=ssex;
num=snum;
x=sx;
y=sy;
z=sz;
}
classcla
public:
cla()//构造函数
{
stu=0;
}
~cla()//析构函数
{
student*p;
p=stu;
while(p)
p=p->
next;
deletestu;
stu=p;
stu=0;
}
voidsadd();
//添加
voidsremove();
//删除
voidsamend();
//修改
voidssearch();
//查询
voidstaxis();
//排序
voidssave();
//保存
voiddisplay_chinese();
//均分及格率
//排序函数
voidpxh();
voidpsx();
voidpyw();
voidpyy();
voidpAA();
private:
student*stu;
//头接点
voidcla:
:
sadd()//添加
{inte=1;
student*q;
stringname1;
stringsex1;
longnum1;
intx1,y1,z1;
system("
cls"
);
cout<
请输入学生信息"
学生姓名:
cin>
>
name1;
do
性别(男,女):
cin>
sex1;
if(sex1!
="
男"
&
sex1!
女"
)
cout<
性别错误(男或女)!
请重新输入!
e=1;
}
else
e=0;
}while(e);
return;
学号:
num1;
数学:
x1;
语文:
y1;
英语:
z1;
q=newstudent(name1,sex1,num1,x1,y1,z1);
q->
next=0;
AA=x1+y1+z1;
if(stu)
student*t;
t=stu;
if(t->
num==num1)
学号已存在,请重新输入"
return;
}
while(t->
next)
t=t->
t->
next=q;
else
stu=q;
输入完毕"
}
sremove()//删除
intnum1;
\n**删除学生信息**\n"
;
请输入想要删除学生的学号:
//查找要删除的结点
student*p1,*p2;
p1=stu;
while(p1)
if(p1->
break;
p2=p1;
p1=p1->
//删除结点
if(p1!
=NULL)//若找到结点,则删除
p1->
play();
确定删除吗?
[Y/N]"
charc;
c;
if(toupper(c)!
='
Y'
)return;
if(p1==stu)//若要删除的结点是第一个结点
stu=p1->
deletep1;
else//若要删除的结点是后续结点
p2->
next=p1->
找到学号为"
num1<
的学生,并删除\n"
else//未找到结点
未找到想要删除的学生!
\n"
samend()//修改
\n**修改学生信息**\n"
输入要修改学生的学号"
//查找要修改的结点
=NULL)
学号是("
)的学生的信息:
姓名:
性别:
请输入修改后的信息:
姓名性别数学成绩语文成绩英语成绩"
name>
sex>
x>
y>
z;
AA=p1->
x+p1->
y+p1->
修改成功"
else//未找到接点
未找到!
ssearch()//查询
\n**查询学生信息**\n"
请输入查询方式:
1.按学号查询"
2.按姓名查询"
3.返回"
switch(c)
case'
1'
要查询的学号:
//查找要查询的结点
学号是:
的学生的信息:
查询完毕"
2'
要查询的学生姓名:
name==name1)
name1<
3'
return;
pxh()//按学号排序
intn;
n=1;
while(p1->
{n++;
p1=p1->
共有"
n<
条信息"
inti;
for(i=1;
i<
n;
i++)
if(p1->
num>
next->
num)//如果头结点大于第二个的
p2=p1->
next=p1;
//头结点交换
stu=p2;
next)//中间的交换
num)
p1=p2->
//交换
do
p1->
p1=p1->
}
while(p1);
psx()//按数学成绩排序
{p1=stu;
x)//如果头结点大于第二个的
{p2=p1->
next