学籍管理系统c版.docx
《学籍管理系统c版.docx》由会员分享,可在线阅读,更多相关《学籍管理系统c版.docx(20页珍藏版)》请在冰豆网上搜索。
![学籍管理系统c版.docx](https://file1.bdocx.com/fileroot1/2022-10/25/a7db7734-af69-4bc4-a964-80942d60df98/a7db7734-af69-4bc4-a964-80942d60df981.gif)
学籍管理系统c版
#include
//#include
#include
#include
usingnamespacestd;
#definemax100;
classstudent
{
public:
student*next;
public:
stringname;//姓名
stringsex;//性别
longnum;//学号
intx,y,z;//数学,语文,英语
intAA;//总分
voidplay()
{
cout<<"姓名:
"<"<"<"<"<"<"<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<<"请输入学生信息"<cout<<"学生姓名:
"<cin>>name1;
do
{
cout<<"性别(男,女):
"<cin>>sex1;
if(sex1!
="男"&&sex1!
="女")
{
cout<<"性别错误(男或女)!
请重新输入!
"<e=1;
}
else
e=0;
}while(e);
return;
cout<<"学号:
"<cin>>num1;
cout<<"数学:
"<cin>>x1;
cout<<"语文:
"<cin>>y1;
cout<<"英语:
"<cin>>z1;
q=newstudent(name1,sex1,num1,x1,y1,z1);
q->next=0;
q->AA=x1+y1+z1;
if(stu)
{
student*t;
t=stu;
if(t->num==num1)
{
cout<<"学号已存在,请重新输入"<return;
}
while(t->next)
{
if(t->num==num1)
{
cout<<"学号已存在,请重新输入"<return;
}
t=t->next;
}
t->next=q;
}
else
{
stu=q;
}
cout<<"输入完毕"<}
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<<"找到学号为"<}
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<<"学号是("<"<cout<<"姓名:
"<name<<"性别:
"<sex<<"数学:
"<x<<"语文:
"<y<<"英语:
"<z<cout<<"请输入修改后的信息:
姓名性别数学成绩语文成绩英语成绩"<cin>>p1->name>>p1->sex>>p1->x>>p1->y>>p1->z;
p1->AA=p1->x+p1->y+p1->z;
cout<<"修改成功"<}
else//未找到接点
cout<<"未找到!
\n";
}
voidcla:
:
ssearch()//查询
{
system("cls");
cout<<"\n**查询学生信息**\n"<cout<<"请输入查询方式:
"<cout<<"1.按学号查询"<cout<<"2.按姓名查询"<cout<<"3.返回"<charc;cin>>c;
switch(c)
{
case'1':
{
longnum1;
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<<"学号是:
"<"<cout<<"姓名:
"<name<<"性别:
"<sex<<"数学:
"<x<<"语文:
"<y<<"英语:
"<z<cout<<"查询完毕";
}
else//未找到接点
cout<<"未找到!
\n";
break;
}
case'2':
{
stringname1;
cout<<"要查询的学生姓名:
"<cin>>name1;
//查找要查询的结点
student*p1,*p2;
p1=stu;
while(p1)
{
if(p1->name==name1)
break;
else
{
p2=p1;
p1=p1->next;
}
}
if(p1!
=NULL)
{
cout<"<cout<<"性别:
"<sex<<"学号:
"<num<<"数学:
"<x<<"语文:
"<y<<"英语:
"<z<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<<"共有"<inti;
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<<"共有"<inti;
p1=stu;
for(i=1;i{p1=stu;
if(p1->x>p1->next->x)//如果头结点大于第二个的
{p2=p1->next;
p1->next