学生成绩管理系统C++语言.docx

上传人:b****6 文档编号:4512690 上传时间:2022-12-01 格式:DOCX 页数:24 大小:22.06KB
下载 相关 举报
学生成绩管理系统C++语言.docx_第1页
第1页 / 共24页
学生成绩管理系统C++语言.docx_第2页
第2页 / 共24页
学生成绩管理系统C++语言.docx_第3页
第3页 / 共24页
学生成绩管理系统C++语言.docx_第4页
第4页 / 共24页
学生成绩管理系统C++语言.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

学生成绩管理系统C++语言.docx

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

学生成绩管理系统C++语言.docx

学生成绩管理系统C++语言

#include〈fstream〉

#include〈iostream〉

#include〈string〉

#include

#include

#defineNULL0//指定"NULL"为0

usingnamespacestd;

classteacher

{

protected:

stringnum,name,sex;//学号、姓名、性别

public:

teacher(){num=”0”;name=sex=”-”;}

};

classcourse

protected:

stringsubject[35],prace[35];//课程表

public:

course()

{for(inti=0;i〈35;i++)

subject[i]=prace[i]=”/";}

};

classstudent:

publicteacher,publiccourse//双重继承

private:

stringpassword;//密码

stringClass;//班级

floatmath,English,VC,physics,electron;//数学、英语、C++、物理、电模成绩

student*next;//指向下一节点的指针

public:

student(){Class=password=”0";math=English=VC=physics=electron=0;}

floatsum(student*p){return(p-〉math+p—〉English+p—>VC+p—>physics+p—〉electron);}

//求总成绩

voidRead();//从文件中读入数据,给链表赋值

voidinput();//输入成绩

voidinput_subject();//输入课表

voiddel(stringnum);//删除数据

voidinsert(student*);//插入数据

student*sign();//注册、登录

intseak(float);//排名

voidprint();//输出全部信息

voidprint(stringnum);//输出个人成绩信息

voidprint_subject(stringnum);//输出个人课表信息

voidprint(student*);//输出个人成绩信息

voidprint_subject(student*);//输出个人课表信息

voidWrite();//保存数据

};

intn=0;//定义全局变量n,n为节点数

stringa=”1234”;

student*head;//头指针

intmain()//主函数

stringnum="0";

intb=0,option=9;

students;

student*stud;

system(”color5f”);

s。

Read();

cout<〈”********************************************************************************”;

cout〈<"******************";

cout<〈"***#欢迎使用本学生成绩管理系统:

#***”;

cout〈〈”*########*”;

cout<〈"*#0.学生入口#*”;

cout〈〈”***1。

教师入口***”;

cout<〈"******************";

cout<<”--——请输入您的选择:

”;

while(a!

=”0”&&a!

=”1")

{

cin>〉a;

cout〈〈”******************”;

if(a!

=”0"&&a!

="1")

cout〈<”-———ˇ﹏ˇ糟糕!

输入有误,请重新输入您的选择:

”;

stud=s。

sign();

if(a=="0")//A学生入口

cout〈〈”********************************************************************************”;

cout〈<”*********选择菜单:

*********”;

cout〈〈”***1。

查看自己的成绩***”;

cout<〈”*2.查看自己的课表*";

cout〈<”***0。

退出***”;

do

cout〈〈”——-—请输入您的选择:

”;

cin〉>option;

while(option!

=0&&option!

=1&&option!

=2)

cout<<”——ˇ﹏ˇ糟糕!

输入有误,请重新输入您的选择:

”;

cin〉〉option;

switch(option)

case1:

{cout〈

print(stud);break;}//输出成绩

case2:

{s。

print_subject(stud);break;}//输出课表

default:

{option=0;break;}

}

}

while(option!

=0);

else//教师入口

do

{try{

cout<<"********************************************************************************”;

cout〈<”*********选择菜单:

*********";

cout〈〈”***1.查看自己的信息***”;

cout<<"*2.查看指定学生信息*”;

cout<〈”**#3.查看所有学生信息#**";

cout〈〈”**####4.录入学生信息####**”;

cout<〈”*#5.修改学生信息#*";

cout〈〈”***6。

删除学生信息****”;

cout〈<”*********0。

退出*********";

cout<〈”-———请输入您的选择:

";

cin>〉option;

if(option〈0||option>6)thrownum;

cout<〈endl;

switch(option)

{

case1:

//查看自己的信息

{

cout〈<"-—1。

查看成绩——”;

cout〈〈”——2。

查看课表——”;

cout〈〈"---—请输入您的选择:

”;

cin〉〉a;

if(a!

=”1"&&a!

="2”)thrownum;

if(a=="1")

{cout〈〈”——个人信息:

”<〈endl;

s。

print(stud);}//输出个人成绩信息

else

{cout〈<"-—课表:

”<

s。

print_subject(stud);//输出个人课表

}

cout<〈"-—按任意键返回主菜单:

";

getch();

system(”cls");

break;

case2:

//查看指定学生信息

{cout〈〈”-—请输入您要查找的学号:

";

cin〉〉num;

if(b=num。

length()!

=12)throw1;

cout〈<”——1。

查看成绩——”;

cout<<"-—2.查看课表——”;

cout<〈”--—-请输入您的选择:

”;

cin〉>a;

if(a!

=”1”&&a!

="2”)thrownum;

if(a==”1”)

{cout〈〈”——个人信息:

"<〈endl;

s.print(num);}//输出个人成绩信息

else

{cout<〈"-—课表:

”<

s。

print_subject(num);}//输出个人课表

cout<<”—-按任意键返回主菜单:

”;

getch();

system("cls");

break;

case3:

//查看所有学生信息

{cout<<"-—数据库中共有"〈〈n〈<”名学生的信息:

”<

if(head!

=NULL)

s。

print();//输出所有信息

cout〈<”--按任意键返回主菜单:

";

getch();

system("cls”);

break;

}

case4:

//录入学生信息

{

cout〈〈”-—1。

录入成绩--";

cout<〈”——2.录入课表--";

cout〈<"—-——请输入您的选择:

";

cin>〉a;

if(a!

=”1"&&a!

="2”)thrownum;

if(a==”1”)

s。

input();//输入成绩

else

s.input_subject();

s。

Write();//输入课表

cout〈〈”--按任意键返回主菜单:

”;

getch();

system(”cls”);

break;

}

case5:

//修改学生信息

cout〈〈"——1。

修改成绩—-”;

cout〈〈”——2。

修改课表—-";

cout〈〈”---—请输入您的选择:

”;

cin>〉a;

if(a!

=”1"&&a!

="2")thrownum;

if(a==”1")

s。

input();//修改成绩

else

s。

input_subject();

s.Write();//修改课表

cout〈〈"——按任意键返回主菜单:

";

getch();

system(”cls”);

break;

case6:

//删除学生信息

{

cout〈〈"--请输入要删除的学号:

";

cin〉〉num;

if(b=num.length()!

=12)throw1;

else

{s。

del(num);

s。

Write();}//删除后保存信息

cout〈〈”—-按任意键返回主菜单:

";

getch();

system(”cls");

break;

default:

{option=0;break;}//退出选择菜单

catch(int)

{cout〈〈”--ˇ﹏ˇ糟糕!

输入有误,请正确输入12位的学号!

”〈

cout<〈”-—按任意键返回主菜单:

”;

getch();

system("cls");

catch(string)

{cout〈〈”——ˇ﹏ˇ糟糕!

输入有误!

"〈〈endl;

cout<〈”——按任意键返回主菜单:

”;

getch();

system(”cls”);

}

while(option!

=0);

}

s。

Write();//退出前保存信息

deletehead;//撤销动态建立的空间

return0;

voidstudent:

Read()//从文件读入信息,给链表赋值

student*p,*p2;

ifstreaminfile(”student.txt”,ios:

in);

p=newstudent;

head=p;

head—>next=NULL;

if(!

infile)

cerr<〈"-—文件:

student。

txt读取失败!

”〈〈endl;

else

{infile〉〉n;

for(intl=0;l〈n;l++)

infile〉〉p—〉num〉>p—〉password>>p—〉name〉〉p—>sex〉〉p—>Class>〉

p—〉physics〉>p—〉electron〉>p—>math〉>p—〉English>>p-〉VC;

for(inti=0;i<35;i++)

infile>〉p—>subject[i]>〉p—>prace[i];

p2=p;

p=newstudent;

p2-〉next=p;

p2-〉next=NULL;

infile.close();

student*student:

sign()//注册、登录

student*p1,*p2,*stu;

stringnum1;

p1=head;

inti=9,m=0;

cout〈〈"***2。

注册***”;

cout〈<"*3。

登录*";

cout<〈”-—--请输入您的选择:

";

try

{

while(a!

=”2”&&a!

=”3”)

{

cin〉>a;

if(a!

=”2”&&a!

=”3”)

cout<〈”-———ˇ﹏ˇ糟糕!

输入有误,请重新输入您的选择:

”;

m=m+1;

if(m〉3)throwstu;

}

if(a==”2”)

while(m<3)

m=m+1;

stu=newstudent;

cout<〈”—-请输入学号:

”;

cin〉>stu-〉num;

while(i=stu—>num。

length()!

=12)

{

cout〈〈”—-——ˇ﹏ˇ糟糕!

输入有误,请正确输入12位的学号:

”;

cin〉〉stu—〉num;

while(stu->num!

=p1—〉num&&p1-〉next!

=NULL)

{p2=p1;p1=p1-〉next;}

if(stu—〉num==p1—〉num&&p1—〉password!

=”0”)

{cout〈〈"—-此学号已注册,请重新输入!

”〈〈endl;

continue;

if(stu—〉num==p1—〉num)

{

cout<〈"—-请输入密码:

”;

cin〉〉p1—〉password;

cout<〈”——请再次输入密码:

";

cin〉>num1;

if(p1—〉password!

=num1)

{cout〈〈”-—两次密码不匹配,请重新输入!

”〈

cout〈〈”-—请输入姓名:

”;

cin>〉p1—>name;

cout〈<”——请输入性别:

";

cin>>p1—〉sex;

else

cout〈〈”——请输入密码:

”;

cin〉〉stu—〉password;

cout〈〈"——请再次输入密码:

”;

cin>〉num1;

if(stu->password!

=num1)

{cout〈〈"——两次密码不匹配,请重新输入!

”〈

cout〈〈”——请输入姓名:

”;

cin〉〉stu—〉name;

cout<〈"--请输入性别:

”;

cin>〉stu—>sex;

insert(stu);

}

cout〈〈endl〈〈"-—*^_^*恭喜,注册成功!

"<

Write();//保存注册的信息

cout<〈”——按任意键返回主菜单:

”;

getch();

system(”cls”);

returnstu;

break;

}

else

while(m〈3)

m=m+1;

stu=newstudent;

cout〈〈”——请输入学号:

”;

cin〉〉stu->num;

while(i=stu—〉num.length()!

=12)

{

cout<<"——ˇ﹏ˇ糟糕!

输入有误,请正确输入12位的学号:

”;

cin〉〉stu—>num;

if(m〉3)throwstu;

}

cout<<”——请输入密码:

";

cin>>stu—〉password;

while(stu—〉num!

=p1-〉num&&p1—〉next!

=NULL)

{p2=p1;p1=p1—〉next;}

if(stu—〉num==p1—〉num&&stu—〉password==p1—〉password)

{cout<〈endl〈〈”——*^_^*恭喜,登录成功!

”〈〈endl<

cout〈〈"--按任意键返回主菜单:

";

getch();

system(”cls");

returnstu;break;

}

else

{cout<<”——学号或密码输入有误,请重新输入!

"〈〈endl;continue;}

}

}

catch(student*)

{cout〈〈”——您登录或注册的次数已超过3次,程序已自动退出!

"〈

(1);}

voidstudent:

:

input()//输入成绩信息

{

student*p1,*p2;

intr=0;

stringnum;

p1=head;

cout<〈”-—请输入学号:

”;

cin〉〉num;

if(r=num。

length()!

=12)throwr;

while(p1-〉num!

=num&&p1-〉next!

=NULL)

{p2=p1;p1=p1—>next;}//如果未找到此学号,则指针后移一个节点

if(p1->num==num)//找到就输入此学生信息

cout〈<”—-请输入姓名:

”;

cin〉〉p1—〉name;

cout<〈”请输入性别:

";

cin〉>p1—>sex;

cout<<”——请输入班级:

”;

cin〉〉p1—>Class;

cout〈〈”-—请输入数学成绩:

”;

cin〉〉p1—〉math;

cout<〈”—-请输入英语成绩:

”;

cin〉〉p1—〉English;

cout〈〈"—-请输入C++成绩:

";

cin〉>p1—>VC;

cout〈〈"—-请输入物理成绩:

”;

cin>〉p1-〉physics;

cout〈〈”——请输入电模成绩:

";

cin>>p1—〉electron;

else//未找到则新建一个节点

{

p1=newstudent;

p1—〉num=num;

cout〈〈"--请输入姓名:

”;

cin〉>p1->name;

cout〈〈"请输入性别:

";

cin〉>p1—〉sex;

cout〈〈”-—请输入班级:

";

cin>〉p1—>Class;

cout<〈”—-请输入数学成绩:

";

cin〉〉p1—〉math;

cout<<”--请输入英语成绩:

”;

cin>〉p1-〉English;

cout〈<”—-请输入C++成绩:

”;

cin〉〉p1—〉VC;

cout〈〈"——请输入物理成绩:

”;

cin>〉p1—〉physics;

cout〈<”--请输入电模成绩:

”;

cin〉>p1-〉electron;

insert(p1);//将新建的节点插入到链表中

}

voidstudent:

input_subject()//输入课表信息

{

student*p1,*p2;

intr=0,t=0;

stringnum;

p1=head;

cout〈〈”——请输入学号:

";

cin〉〉num;

if(t=num.length()!

=12)throwr;

while(p1—>num!

=num&&p1—>next!

=NULL)

{p2=p1;p1=p1—〉next;}//如果未找到此学号,则指针后移一个节点

if(p1-〉num==num)//找到就输入此学生课表信息

for(inti=0;i<5;i++)

for(intj=0;j<7;j++)

cout<<”-—请输入星期”<〈j+1〈<”第”<〈i+1<〈”大节课的科目:

”;

cin>>p1—〉subject[r];

cout<<”—-请输入星期"〈

";

cin〉〉p1—>prace[r];

r=r+1;

}

}

else//未找到,则新建一个节点

p1=newstudent;

for(inti=0;i〈5;i++)

for(intj=0;j〈7;j++)

cout<〈”——请输入星期”<

”;

cin〉>p1-〉subject[r];

cout<〈"—-请输入星期”<〈j+1〈〈”第”<〈i+1〈〈”大节课的地点:

”;

cin>〉p1—〉prace[r];

r=r+1;

insert(p1);//将新建的节点插入到链表中

voidstudent:

:

del(stringnum)//删除信息

student*p1,*p2;

if(head==NULL)//如果链表为空,则返回删除失败

{cout<〈"-—删除失败,链表为空!

"〈

p1=head;

while(num!

=p1—〉num&&p1—〉next!

=NULL)

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

if(num==p1—〉num)//如果有此学号

if(p1==head)head=p1—>next;

elsep2—〉next=p1—〉next;

cout<〈”—-学号:

”〈〈num<〈"已成功删除。

”〈〈endl;

n=n—1;

}

elsecout<〈"—-未找到此学号,删除失败"〈〈num;//如无此学号,返回删除失败

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

当前位置:首页 > 幼儿教育 > 幼儿读物

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

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