学生成绩管理系统C++语言Word文档格式.docx
《学生成绩管理系统C++语言Word文档格式.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统C++语言Word文档格式.docx(24页珍藏版)》请在冰豆网上搜索。
![学生成绩管理系统C++语言Word文档格式.docx](https://file1.bdocx.com/fileroot1/2022-12/1/4fbd38d8-8ac2-4241-9ad8-2283b99df683/4fbd38d8-8ac2-4241-9ad8-2283b99df6831.gif)
//注册、登录
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〈〈”*########*”;
*#0.学生入口#*”;
cout〈〈”***1。
教师入口***”;
cout<
******************"
<
”--——请输入您的选择:
”;
while(a!
=”0”&&a!
=”1"
)
{
cin>
〉a;
cout〈〈”******************”;
if(a!
=”0"
&&
a!
="
1"
cout〈<
”-———ˇ﹏ˇ糟糕!
输入有误,请重新输入您的选择:
}
stud=s。
sign();
if(a=="
)//A学生入口
{
cout〈〈”********************************************************************************”;
”*********选择菜单:
*********”;
cout〈〈”***1。
查看自己的成绩***”;
〈”*2.查看自己的课表*"
”***0。
退出***”;
do
cout〈〈”——-—请输入您的选择:
cin〉>
option;
while(option!
=0&
&
option!
=1&&option!
=2)
{
cout<
”——ˇ﹏ˇ糟糕!
cin〉〉option;
}
switch(option)
case1:
{cout〈<
endl;
s。
print(stud);
break;
}//输出成绩
case2:
{s。
print_subject(stud);
}//输出课表
default:
{option=0;
}
}
while(option!
=0);
else//教师入口
do
{try{
********************************************************************************”;
”*********选择菜单:
*********"
cout〈〈”***1.查看自己的信息***”;
*2.查看指定学生信息*”;
〈”**#3.查看所有学生信息#**"
cout〈〈”**####4.录入学生信息####**”;
〈”*#5.修改学生信息#*"
cout〈〈”***6。
删除学生信息****”;
”*********0。
退出*********"
cout<
〈”-———请输入您的选择:
cin>
〉option;
if(option〈0||option>
6)thrownum;
〈endl;
switch(option)
{
case1:
//查看自己的信息
{
cout〈<
-—1。
查看成绩——”;
cout〈〈”——2。
查看课表——”;
cout〈〈"
---—请输入您的选择:
”;
cin〉〉a;
if(a!
a!
2”)thrownum;
if(a=="
{cout〈〈”——个人信息:
”<
〈endl;
s。
print(stud);
}//输出个人成绩信息
else
-—课表:
s。
//输出个人课表
}
-—按任意键返回主菜单:
getch();
system(”cls"
);
break;
}
//查看指定学生信息
{cout〈〈”-—请输入您要查找的学号:
cin〉〉num;
if(b=num。
length()!
=12)throw1;
”——1。
查看成绩——”;
-—2.查看课表——”;
〈”--—-请输入您的选择:
cin〉>
a;
=”1”&&a!
if(a==”1”)
{cout〈〈”——个人信息:
s.print(num);
}//输出个人成绩信息
{cout<
print_subject(num);
}//输出个人课表
”—-按任意键返回主菜单:
system("
cls"
);
break;
case3:
//查看所有学生信息
{cout<
-—数据库中共有"
〈〈n〈<
”名学生的信息:
endl;
if(head!
=NULL)
print();
//输出所有信息
”--按任意键返回主菜单:
cls”);
case4:
//录入学生信息
cout〈〈”-—1。
录入成绩--"
〈”——2.录入课表--"
—-——请输入您的选择:
cin>
〉a;
if(a!
&&a!
input();
//输入成绩
s.input_subject();
Write();
//输入课表
cout〈〈”--按任意键返回主菜单:
system(”cls”);
case5:
//修改学生信息
{
——1。
修改成绩—-”;
修改课表—-"
cout〈〈”---—请输入您的选择:
&&a!
2"
)thrownum;
if(a==”1"
//修改成绩
input_subject();
s.Write();
//修改课表
——按任意键返回主菜单:
getch();
system(”cls”);
case6:
//删除学生信息
--请输入要删除的学号:
if(b=num.length()!
{s。
del(num);
Write();
}//删除后保存信息
cout〈〈”—-按任意键返回主菜单:
default:
{option=0;
break;
}//退出选择菜单
catch(int)
{cout〈〈”--ˇ﹏ˇ糟糕!
输入有误,请正确输入12位的学号!
”〈<
〈”-—按任意键返回主菜单:
getch();
system("
catch(string)
{cout〈〈”——ˇ﹏ˇ糟糕!
输入有误!
〈〈endl;
〈”——按任意键返回主菜单:
getch();
system(”cls”);
while(option!
//退出前保存信息
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;
infile>
〉p—>
subject[i]>
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。
注册***”;
*3。
登录*"
〈”-—--请输入您的选择:
try
while(a!
=”2”&&a!
=”3”)
cin〉>
a;
if(a!
=”2”&
&a!
〈”-———ˇ﹏ˇ糟糕!
m=m+1;
if(m〉3)throwstu;
if(a==”2”)
while(m<
3)
m=m+1;
stu=newstudent;
〈”—-请输入学号:
stu-〉num;
while(i=stu—>
num。
=12)
cout〈〈”—-——ˇ﹏ˇ糟糕!
输入有误,请正确输入12位的学号:
cin〉〉stu—〉num;
while(stu->
num!
=p1—〉num&
&p1-〉next!
{p2=p1;
p1=p1-〉next;
if(stu—〉num==p1—〉num&&
p1—〉password!
=”0”)
{cout〈〈"
—-此学号已注册,请重新输入!
”〈〈endl;
continue;
if(stu—〉num==p1—〉num)
—-请输入密码:
cin〉〉p1—〉password;
〈”——请再次输入密码:
num1;
if(p1—〉password!
=num1)
{cout〈〈”-—两次密码不匹配,请重新输入!
continue;
cout〈〈”-—请输入姓名:
〉p1—>
name;
”——请输入性别:
p1—〉sex;
cout〈〈”——请输入密码:
cin〉〉stu—〉password;
——请再次输入密码:
〉num1;
if(stu->
password!
{cout〈〈"
——两次密码不匹配,请重新输入!
continue;
cout〈〈”——请输入姓名:
cin〉〉stu—〉name;
--请输入性别:
〉stu—>
sex;
insert(stu);
cout〈〈endl〈〈"
-—*^_^*恭喜,注册成功!
endl〈〈endl;
Write();
//保存注册的信息
〈”——按任意键返回主菜单:
returnstu;
else
while(m〈3)
stu=newstudent;
cout〈〈”——请输入学号:
cin〉〉stu->
num;
while(i=stu—〉num.length()!
cout<
——ˇ﹏ˇ糟糕!
cin〉〉stu—>
if(m〉3)throwstu;
”——请输入密码:
stu—〉password;
while(stu—〉num!
=p1-〉num&&
p1—〉next!
{p2=p1;
p1=p1—〉next;
if(stu—〉num==p1—〉num&&stu—〉password==p1—〉password)
〈endl〈〈”——*^_^*恭喜,登录成功!
”〈〈endl<
--按任意键返回主菜单:
break;
”——学号或密码输入有误,请重新输入!
〈〈endl;
catch(student*)
{cout〈〈”——您登录或注册的次数已超过3次,程序已自动退出!
〈<
exit
(1);
:
input()//输入成绩信息
student*p1,*p2;
intr=0;
stringnum;
p1=head;
〈”-—请输入学号:
cin〉〉num;
if(r=num。
=12)throwr;
while(p1-〉num!
=num&
{p2=p1;
p1=p1—>
next;
}//如果未找到此学号,则指针后移一个节点
if(p1->
num==num)//找到就输入此学生信息
”—-请输入姓名:
cin〉〉p1—〉name;
〈”请输入性别:
p1—>
sex;
”——请输入班级:
cin〉〉p1—>
Class;
cout〈〈”-—请输入数学成绩:
cin〉〉p1—〉math;
〈”—-请输入英语成绩:
cin〉〉p1—〉English;
—-请输入C++成绩:
VC;
—-请输入物理成绩:
〉p1-〉physics;
cout〈〈”——请输入电模成绩:
p1—〉electron;
else//未找到则新建一个节点
p1=newstudent;
p1—〉num=num;
--请输入姓名:
p1->
请输入性别:
p1—〉sex;
cout〈〈”-—请输入班级:
〈”—-请输入数学成绩:
”--请输入英语成绩:
〉p1-〉English;
”—-请输入C++成绩:
cin〉〉p1—〉VC;
——请输入物理成绩:
〉p1—〉physics;
”--请输入电模成绩:
p1-〉electron;
insert(p1);
//将新建的节点插入到链表中
input_subject()//输入课表信息
student*p1,*p2;
intr=0,t=0;
cout〈〈”——请输入学号:
cin〉〉num;
if(t=num.length()!
=12)throwr;
while(p1—>
=num&&p1—>
next!
{p2=p1;
p1=p1—〉next;
}//如果未找到此学号,则指针后移一个节点
if(p1-〉num==num)//找到就输入此学生课表信息
for(inti=0;
5;
for(intj=0;
j<
7;
j++)
”-—请输入星期”<
〈j+1〈<
”第”<
〈i+1<
〈”大节课的科目:
p1—〉subject[r];
”—-请输入星期"
j+1〈<
第"
i+1<
大节课的地点:
cin〉〉p1—>
prace[r];
r=r+1;
else//未找到,则新建一个节点
p1=newstudent;
for(inti=0;
i〈5;
for(intj=0;
j〈7;
〈”——请输入星期”<
”第"
〈”大节课的科目:
p1-〉subject[r];
—-请输入星期”<
〈j+1〈〈”第”<
〈i+1〈〈”大节课的地点:
〉p1—〉prace[r];
r=r+1;
insert(p1);
voidstudent:
del(stringnum)//删除信息
student*p1,*p2;
if(head==NULL)//如果链表为空,则返回删除失败
{cout<
-—删除失败,链表为空!
while(num!
=p1—〉num&&p1—〉next!
next;
if(num==p1—〉num)//如果有此学号
if(p1==head)head=p1—>
elsep2—〉next=p1—〉next;
〈”—-学号:
”〈〈num<
已成功删除。
n=n—1;
elsecout<
—-未找到此学号,删除失败"
〈〈num;
//如无此学号,返回删除失败