📄 学生信息管理系统.cpp
字号:
show();
cout<<setw(10)<<mdep;
output_file<<setw(10)<<mdep;
FirstB::show_ms();
cout<<setw(10)<<fdepA;
output_file<<setw(10)<<fdepA;
FirstA::show_fs();
}
}
void Manag::show_BC() //显示并用文件流输出获得主修学位B跟第二学位C双学位学生
{
if(FirstB::Mpass()&&FirstC::Fpass())
{
show();
cout<<setw(10)<<mdep;
output_file<<setw(10)<<mdep;
FirstB::show_ms();
cout<<setw(10)<<fdepC;
output_file<<setw(10)<<fdepC;
FirstC::show_fs();
}
}
void Manag::show_CA() //显示并用文件流输出获得主修学位C跟第二学位A双学位学生
{
if(FirstC::Mpass()&&FirstA::Fpass())
{
show();
cout<<setw(10)<<mdep;
output_file<<setw(10)<<mdep;
FirstC::show_ms();
cout<<setw(10)<<fdepA;
output_file<<setw(10)<<fdepA;
FirstA::show_fs();
}
}
void Manag::show_CB() //显示并用文件流输出获得主修学位C跟第二学位B双学位学生
{
if(FirstC::Mpass()&&FirstB::Fpass())
{
show();
cout<<setw(10)<<mdep;
output_file<<setw(10)<<mdep;
FirstC::show_ms();
cout<<setw(10)<<fdepB;
output_file<<setw(10)<<fdepB;
FirstB::show_fs();
}
}
void Manag::show_A() //显示并用文件流输出只能获得主修学位A学生
{
if((FirstA::Mpass())&&(!FirstA::Fpass()&&!FirstB::Fpass()&&!FirstC::Fpass()))
{
show();
cout<<setw(10)<<mdep;
output_file<<setw(10)<<mdep;
FirstA::show_ms();
}
}
void Manag::show_B() //显示并用文件流输出只能获得主修学位B学生
{
if((FirstB::Mpass())&&(!FirstA::Fpass()&&!FirstB::Fpass()&&!FirstC::Fpass()))
{
show();
cout<<setw(10)<<mdep;
output_file<<setw(10)<<mdep;
FirstB::show_ms();
}
}
void Manag::show_C() //显示并用文件流输出只能获得主修学位C学生
{
if((FirstC::Mpass())&&(!FirstA::Fpass()&&!FirstB::Fpass()&&!FirstC::Fpass()))
{
show();
cout<<setw(10)<<mdep;
output_file<<setw(10)<<mdep;
FirstC::show_ms();
}
}
void Manag::show_NA() //显示并用文件流输出不能获得主修学位A学生
{
if(!FirstA::Mpass()){
if(FirstA::Mscore[0]!=0){
show();
cout<<setw(10)<<mdep;
output_file<<setw(10)<<mdep;
FirstA::show_ms();}
}
}
void Manag::show_NB() //显示并用文件流输出不能获得主修学位B学生
{
if(!FirstB::Mpass()){
if(FirstB::Mscore[0]!=0){
show();
cout<<setw(10)<<mdep;
output_file<<setw(10)<<mdep;
FirstB::show_ms();}
}
}
void Manag::show_NC() //显示并用文件流输出不能获得主修学位C学生
{
if(!FirstC::Mpass()){
if(FirstC::Mscore[0]!=0){
show();
cout<<setw(10)<<mdep;
output_file<<setw(10)<<mdep;
FirstC::show_ms();}
}
}
int main()
{
Manag stu[20]; //用类Manag创建20个学生对象
Base *a; //声明4个类型指针
FirstA *b;
FirstB *c;
FirstC *d;
cout<<"**************学生信息管理系统**************\n"; //进入用户界面
input_file.open("Basefile.DAT"); //开始从文件读取数据
for(int i=0;i<20;i++){
a=&stu[i];
a->set();}
input_file.close();
for(i=0;i<20;i++){
b=&stu[i];
input_file.open("FfirstA.DAT");
for(int j=0;j<20;j++){
b->set_ms();}
input_file.close();
}
for(i=0;i<20;i++){
c=&stu[i];
input_file.open("FfirstB.DAT");
for(int j=0;j<20;j++){
c->set_ms();}
input_file.close();
}
for(i=0;i<20;i++){
d=&stu[i];
input_file.open("FfirstC.DAT");
for(int j=0;j<20;j++){
d->set_ms();}
input_file.close();
}
for(i=0;i<20;i++){
b=&stu[i];
input_file.open("SecondA.DAT");
for(int j=0;j<20;j++){
b->set_fs();}
input_file.close();
}
for(i=0;i<20;i++){
c=&stu[i];
input_file.open("SecondB.DAT");
for(int j=0;j<20;j++){
c->set_fs();}
input_file.close();
}
for(i=0;i<20;i++){
d=&stu[i];
input_file.open("SecondC.DAT");
for(int j=0;j<20;j++){
d->set_fs();}
input_file.close();
}
cout<<"文件数据读取读取完毕!\n"; //读取数据完毕,开始选择身份登录操作
int n; //用do while循环实现多次操作
do{
cout<<"请选择您的身份登录:\n1.招生办人员\n2.主修系教务员\n3.第二专业教务员\n4.学位办人员\n5.退出\n";
cin>>n;
if(n==1){
cout<<"1.修改学生基本资料\n"; //实现招生办人员修改学生基本资料功能
int n;cin>>n;
if(n==1){
cout<<"输入要修改学生的学号:\n"; //要求输入要修改学生的学号并用for循环进行数据合法性判断
long num;cin>>num;
for(i=0;i<20;i++){
a=&stu[i];
a->modifyB(num);} //如果输入学号与所给文件中有匹配的,调用函数进行修改
if(a->modifyB(num)) cout<<"没有这个学号的学生!\n"; //如果没有匹配的,提示错误
else cout<<"修改成功!\n";
temp=0;}
else cout<<"选择错误!\n";
}
else if(n==2){
cout<<"1.主修系A\n2.主修系B\n3.主修系C\n";
int n;cin>>n; //主修系人员进行相关操作
if(n==1){
cout<<"1.输出优秀学生\n2.输出需补考学生\n3.修改学生成绩\n";
int n;cin>>n;
if(n==1){ //显示并输出主修系A中的优秀学生到文件
output_file.open("GoutA.dat");
for(i=0;i<20;i++){
b=&stu[i];
b->show_good();}
output_file.close();
cout<<"成功输出数据到文件!\n";}
else if(n==2){ //显示并输出主修系A中的需补考学生到文件
output_file.open("BoutA.dat");
for(i=0;i<20;i++){
b=&stu[i];
b->show_Mfail();}
output_file.close();
cout<<"成功输出数据到文件!\n";}
else if(n==3){ //显示并修改主修系A中学生成绩
cout<<"输入要修改学生的学号:\n"; //要求输入要修改学生的学号并用for循环进行数据合法性判断
long num;cin>>num;
int mscore[6];
for(i=0;i<20;i++){
b=&stu[i];
input_file.open("FfirstA.dat");
for(int j=0;j<20;j++){
input_file>>num1[j];
b->modify_M(num1[j],num); //如果输入学号与所给文件中有匹配的,调用函数进行修改
for(int k=0;k<6;k++){
input_file>>mscore[k];}
}
input_file.close();
}
if(temp==0) cout<<"没有这个学号的学生!\n"; //如果没有匹配的,提示错误
else cout<<"修改成功!\n";
temp=0;}
else cout<<"选择错误!\n";}
else if(n==2){
cout<<"1.输出优秀学生\n2.输出需补考学生\n3.修改学生成绩\n";
int n;cin>>n;
if(n==1){ //显示并输出主修系B中的优秀学生到文件
output_file.open("GoutB.dat");
for(i=0;i<20;i++){
c=&stu[i];
c->show_good();}
output_file.close();
cout<<"成功输出数据到文件!\n";}
else if(n==2){ //显示并输出主修系B中的需补考学生到文件
output_file.open("BoutB.dat");
for(i=0;i<20;i++){
c=&stu[i];
c->show_Mfail();}
output_file.close();
cout<<"成功输出数据到文件!\n";}
else if(n==3){ //修改主修系B的学生成绩
cout<<"输入要修改学生的学号:\n"; //要求输入要修改学生的学号并用for循环进行数据合法性判断
long num;cin>>num;
int mscore[7];
for(i=0;i<20;i++){
c=&stu[i];
input_file.open("FfirstB.dat");
for(int j=0;j<20;j++){
input_file>>num1[j];
c->modify_M(num1[j],num); //如果输入学号与所给文件中有匹配的,调用函数进行修改
for(int k=0;k<7;k++){
input_file>>mscore[k];}
}
input_file.close();
}
if(temp==0) cout<<"没有这个学号的学生!\n"; //如果没有匹配的,提示错误
else cout<<"修改成功!\n";
temp=0;}
else cout<<"选择错误!\n";}
else if(n==3){
cout<<"1.输出优秀学生\n2.输出需补考学生\n3.修改学生成绩\n";
int n;cin>>n;
if(n==1){ //显示并输出主修系C中的优秀学生到文件
output_file.open("GoutC.dat");
for(i=0;i<20;i++){
d=&stu[i];
d->show_good();}
output_file.close();
cout<<"成功输出数据到文件!\n";}
else if(n==2){ //显示并输出主修系C中的需补考学生到文件
output_file.open("BoutC.dat");
for(i=0;i<20;i++){
d=&stu[i];
d->show_Mfail();}
output_file.close();
cout<<"成功输出数据到文件!\n";}
else if(n==3){ //修改主修系C的学生成绩
cout<<"输入要修改学生的学号:\n"; //要求输入要修改学生的学号并用for循环进行数据合法性判断
long num;cin>>num;
int mscore[5];
for(i=0;i<20;i++){
d=&stu[i];
input_file.open("FfirstC.dat");
for(int j=0;j<20;j++){
input_file>>num1[j];
d->modify_M(num1[j],num); //如果输入学号与所给文件中有匹配的,调用函数进行修改
for(int k=0;k<5;k++){
input_file>>mscore[k];}
}
input_file.close();
}
if(temp==0) cout<<"没有这个学号的学生!\n"; //如果没有匹配的,提示错误
else cout<<"修改成功!\n";
temp=0;}
else cout<<"选择错误!\n";}
else cout<<"选择错误!\n";
}
else if(n==3){ //第二专业人员进行相关操作
cout<<"1.第二专业A\n2.第二专业B\n3.第二专业C\n";
int n;cin>>n;
if(n==1){
cout<<"1.输出需补考学生\n2.修改学生成绩\n";
int n;cin>>n;
if(n==1){ //显示并输出第二专业A中的需补考学生到文件
output_file.open("SoutA.dat");
for(i=0;i<20;i++){
b=&stu[i];
b->show_Ffail();}
output_file.close();
cout<<"成功输出数据到文件!\n";}
else if(n==2){
cout<<"输入要修改学生的学号:\n"; //要求输入要修改学生的学号并用for循环进行数据合法性判断
long num;cin>>num;
int fscore[5];char fdep[30];
for(i=0;i<20;i++){
b=&stu[i];
input_file.open("SecondA.dat");
for(int j=0;j<20;j++){
input_file>>num1[j];
b->modify_F(num1[j],num); //如果输入学号与所给文件中有匹配的,调用函数进行修改
input_file>>fdep;
for(int k=0;k<5;k++){
input_file>>fscore[k];}
}
input_file.close();
}
if(temp==0) cout<<"没有这个学号的学生!\n"; //如果没有匹配的,提示错误
else cout<<"修改成功!\n";
temp=0;}
else cout<<"选择错误!\n";}
else if(n==2){
cout<<"1.输出需补考学生\n2.修改学生成绩\n";
int n;cin>>n;
if(n==1){ //显示并输出第二专业B中的需补考学生到文件
output_file.open("SoutB.dat");
for(i=0;i<20;i++){
c=&stu[i];
c->show_Ffail();}
output_file.close();
cout<<"成功输出数据到文件!\n";}
else if(n==2){
cout<<"输入要修改学生的学号:\n"; //要求输入要修改学生的学号并用for循环进行数据合法性判断
long num;cin>>num;
int fscore[4];char fdep[30];
for(i=0;i<20;i++){
c=&stu[i];
input_file.open("SecondB.dat");
for(int j=0;j<20;j++){
input_file>>num1[j];
c->modify_F(num1[j],num); //如果输入学号与所给文件中有匹配的,调用函数进行修改
input_file>>fdep;
for(int k=0;k<4;k++){
input_file>>fscore[k];}
}
input_file.close();
}
if(temp==0) cout<<"没有这个学号的学生!\n"; //如果没有匹配的,提示错误
else cout<<"修改成功!\n";
temp=0;}
else cout<<"选择错误!\n";}
else if(n==3){
cout<<"1.输出需补考学生\n2.修改学生成绩\n";
int n;cin>>n;
if(n==1){ //显示并输出第二专业C中的需补考学生到文件
output_file.open("SoutC.dat");
for(i=0;i<20;i++){
d=&stu[i];
d->show_Ffail();}
output_file.close();
cout<<"成功输出数据到文件!\n";}
else if(n==2){
cout<<"输入要修改学生的学号:\n"; //要求输入要修改学生的学号并用for循环进行数据合法性判断
long num;cin>>num;
int fscore[3];char fdep[30];
for(i=0;i<20;i++){
d=&stu[i];
input_file.open("SecondC.dat");
for(int j=0;j<20;j++){
input_file>>num1[j];
d->modify_F(num1[j],num); //如果输入学号与所给文件中有匹配的,调用函数进行修改
input_file>>fdep;
for(int k=0;k<3;k++){
input_file>>fscore[k];}
}
input_file.close();
}
if(temp==0) cout<<"没有这个学号的学生!\n"; //如果没有匹配的,提示错误
else cout<<"修改成功!\n";
temp=0;}
else cout<<"选择错误!\n";}
else cout<<"选择错误!\n";
}
else if(n==4){ //学位办人员进行相关操作
cout<<"1.输出获得双学位学生\n2.输出只获得主学位学生\n3.输出不能获得学位学生\n";
int n;cin>>n;
if(n==1){ //显示并输出能获得双学位学生到文件
output_file.open("DdoubleA.dat");
for(i=0;i<20;i++){
stu[i].show_AB();
stu[i].show_AC();}
output_file.close();
output_file.open("DdoubleB.dat");
for(i=0;i<20;i++){
stu[i].show_BA();
stu[i].show_BC();}
output_file.close();
output_file.open("DdoubleC.dat");
for(i=0;i<20;i++){
stu[i].show_CA();
stu[i].show_CB();}
output_file.close();
cout<<"成功输出数据到文件!\n";}
else if(n==2){ //显示并输出只能获得主修学位学生到文件
output_file.open("FpassA.dat");
for(i=0;i<20;i++){
stu[i].show_A();}
output_file.close();
output_file.open("FpassB.dat");
for(i=0;i<20;i++){
stu[i].show_B();}
output_file.close();
output_file.open("FpassC.dat");
for(i=0;i<20;i++){
stu[i].show_C();}
output_file.close();
cout<<"成功输出数据到文件!\n";}
else if(n==3){ //显示并输出不能获得主修学位学生到文件
output_file.open("NpassA.dat");
for(i=0;i<20;i++){
stu[i].show_NA();}
output_file.close();
output_file.open("NpassB.dat");
for(i=0;i<20;i++){
stu[i].show_NB();}
output_file.close();
output_file.open("NpassC.dat");
for(i=0;i<20;i++){
stu[i].show_NC();}
output_file.close();
cout<<"成功输出数据到文件!\n";}
else cout<<"输出数据失败!\n";
}
else if(n!=5) cout<<"选择错误!\n";
}while(n!=5);
cout<<"谢谢使用!\n";
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -