#include<iostream.h>
#include<string.h>
//#include <conio.h>
//#include <stdio.h>
#include <stdlib.h>
//#include <iomanip.h>
//#include <fstream.h>
#include"course.h"
#include"UnderGrastudent.h"
#include"Grastudent.h"
// 退出系统函数
void tuichu()
{
system("cls");
cout<<"感谢您使用学生选课系统\n"<<endl;
//getch();
exit(-1);
}
// 选课系统初始登陆界面——登陆角色
char menu()
{
char c;
char*a=new char;
system("cls");
cout<<endl;
cout<<"*************************************\n"
<<"* 学生选课系统 *\n"
<<"* *\n"
<<"* 1.本科生 *\n"
<<"* 2.研究生 *\n"
<<"* 3.退出 *\n"
<<"* *\n"
<<"*************************************\n"<<endl;
while(1)
{
cout<<"\n请选择登陆角色: ";
cin>>a;
if(*a=='1')
{ c='1';
return c;}
else if(*a=='2')
{ c='2';
return c;}
else if(*a=='3')
tuichu();
else
cout<<"\t输入有误!请重新输入\n"<<endl;
}
}
// 选课菜单
char SelectCourseMenu()
{
char c;
char*a=new char;
cout<<endl;
cout<<"*************************************\n"
<<"* 学生选课菜单 *\n"
<<"* *\n"
<<"* 1.选课 *\n"
<<"* 2.查看我的选课情况 *\n"
<<"* 3.退出 *\n"
<<"* *\n"
<<"*************************************\n"<<endl;
while(1)
{
cout<<"\n请选择适当的操作: ";
cin>>a;
if(*a=='1')
{ c='1';
return c;}
else if(*a=='2')
{ c='2';
return c;}
else if(*a=='3')
tuichu();
else
cout<<"\t输入有误!请重新输入\n"<<endl;
}
}
//列出本科生已选课程清单
void selectedCMenu(int d)
{ cout<<"\n当前选课学生信息为:"<<endl;
cout <<"----------------------------------------------------"<<endl;
cout <<"序号\t"<<"学号\t"<<"姓名\t"<<"班导师\t"<<"选课数\t"<<"总学分\t"<<"学费"<<endl;
cout<<d+1<<"\t"; UnderGraST[d].display();
cout <<"----------------------------------------------------"<<endl;
cout<<"选课清单:"<<endl;
cout <<"------------------------------------------------"<<endl;
cout <<"课程类型\t"<<"课程名称\t"<<"学分\t"<<"选课人数"<<endl;
cout <<"------------------------------------------------"<<endl;
for(int i=0;i<5;i++)
{ course *cc=UnderGraST[d].getCourse();
if (cc[i].getName()!="")
cout<<cc[i].getType()<<"\t"<<cc[i].getName()<<"\t"<<cc[i].getCredit()<<"\t"<<cc[i].getNoOfSelCour()<<endl;
}
cout <<"------------------------------------------------"<<endl;
}
//列出研究生已选课程清单
void selectedCMenuG(int d)
{ cout<<"\n当前选课学生信息为:"<<endl;
cout <<"----------------------------------------------------"<<endl;
cout <<"序号\t"<<"学号\t"<<"姓名\t"<<"导师\t"<<"选课数\t"<<"总学分\t"<<"学费"<<endl;
cout<<d+1<<"\t"; UnderGraST[d].display();
cout <<"----------------------------------------------------"<<endl;
cout<<"选课清单:"<<endl;
cout <<"------------------------------------------------"<<endl;
cout <<"课程类型\t"<<"课程名称\t"<<"学分\t"<<"选课人数"<<endl;
cout <<"------------------------------------------------"<<endl;
for(int i=0;i<5;i++)
{ course *cc=GraST[d].getCourse();
if (cc[i].getName()!="")
cout<<cc[i].getType()<<"\t"<<cc[i].getName()<<"\t"<<cc[i].getCredit()<<"\t"<<cc[i].getNoOfSelCour()<<endl;
}
cout <<"------------------------------------------------"<<endl;
}
//列出课程信息
void CourseInfo()
{
cout <<"*********************课程信息*****************"<<endl<<endl;
cout <<"---------------------------------------------------------"<<endl;
cout <<"序号\t"<<"课程类别\t"<<"课程名称\t"<<"学分"<<"\t"<<"选课人数"<<endl;
cout <<"---------------------------------------------------------"<<endl;
for (int i=0;i<sizeof(cour)/sizeof(course);i++)
{cout<<i+1<<"\t";
cout<<cour[i].getType()<<"\t";
cout<<cour[i].getName()<<"\t";
cout<<cour[i].getCredit()<<"\t";
cout<<cour[i].getNoOfSelCour()<<endl;}
cout <<"---------------------------------------------------------"<<endl;
cout<<" 选课总人数: "
<<course::getTotalNoOfSelCour()<<endl<<endl;
}
void UGStudentList()//列表显示注册本科生信息
{system("cls");
cout <<"*********************已注册学生信息*****************"<<endl<<endl;
cout <<"----------------------------------------------------"<<endl;
cout <<"序号\t"<<"学号\t"<<"姓名\t"<<"班导师\t"<<"选课数\t"<<"总学分\t"<<"学费"<<endl;
for (int i=0;i<sizeof(UnderGraST)/sizeof(UnderGrastudent);i++)
{cout<<i+1<<"\t"; UnderGraST[i].display();}
cout <<"----------------------------------------------------"<<endl;
}
void GStudentList()//列表显示注册研究生信息
{system("cls");
cout <<"*********************已注册学生信息*****************"<<endl<<endl;
cout <<"----------------------------------------------------"<<endl;
cout <<"序号\t"<<"学号\t"<<"姓名\t"<<"导师\t"<<"选课数\t"<<"总学分\t"<<"学费"<<endl;
for (int i=0;i<sizeof(GraST)/sizeof(Grastudent);i++)
{cout<<i+1<<"\t"; GraST[i].display();}
cout <<"----------------------------------------------------"<<endl;
}
//本科生选课
void SelectCourseUG()
{ int a1,a;
char b, ee;
UGStudentList(); //显示已注册的学生信息,只有已注册的学生才有权限选课
//指定要选课的学生,准备选课
while(1)
{ cout<<"\n请键入拟选课学生的序号开始选课,键入0退出: ";
cin>>a;
if(a>0&&a<=sizeof(UnderGraST)/sizeof(UnderGrastudent))
{ cout<<"\n当前选课学生:"<<UnderGraST[a-1].getName()<<endl;
break; }
else if(a==0)
{ tuichu();}
else
cout<<"\n该学生没有注册!请重新输入"<<endl;
}
while(1)//while2开始
{ b=SelectCourseMenu();//打开选课菜单
if (b=='1')
{ //system("cls");
CourseInfo();//列出课程信息
break;
}
else if(b=='2')
{ selectedCMenu(a-1);
cout<<"按R键返回选课菜单界面"<<endl;
while(1)//while1开始
{cin>>ee;
if (ee=='R'||ee=='r')
{ break; }
}//while1结束
}
}//while2结束
int aa= UnderGraST[a-1].getnoOfCourse();//已选课门数
if (aa>=5)
{ if(aa>=5)
cout<<"你已经选满5门课,不能再选!按R键返回登陆界面。";
while(1)//while3开始
{cin>>ee;
if (ee=='R'||ee=='r')
{ break; }
}//While3结束
}
else
{ while(1)//while5开始
{ cout<<"还可以选"<<5-aa<<"门课,键入课程序号,回车选课;键入0,回车退出选课,返回登陆界面"<<endl;
cin>>a1;
if(a1>0&&a1<=sizeof(cour)/sizeof(course))
{ if (cour[a1-1].getNoOfSelCour()>=5)//为测试方便,设为5,实际为15
{cout<<"该课程选课人数已满,请重新选其他课!"<<endl;}
else
{
int nn=UnderGraST[a-1].setselCourse(cour[a1-1],aa);
if (nn==1)
{ UnderGraST[a-1].calTuition(aa);//计算学费
selectedCMenu(a-1);//列出学生的选课信息
aa= UnderGraST[a-1].getnoOfCourse();
}
if(aa==5)
{cout<<"你已经选满5门课,不能再选!按R键返回登陆界面。";
break;}
}
}
else if (a1==0)
{ cout<<"你已经终止了选课,共选课"<<aa<<"门,按R键返回登陆界面"<<endl;
break;}
else
{cout<<"课程不存在,请重新选课!"<<endl;}
}//while5结束
while(1)//while6开始
{cin>>ee;
if (ee=='R'||ee=='r')
{ break; }
}//While6结束
}
}
//研究生选课
void SelectCourseG()
{ int a1,a;
char b, ee;
GStudentList(); //显示已注册的学生信息,只有已注册的学生才有权限选课
//指定要选课的学生,准备选课
while(1)
{ cout<<"\n请键入拟选课学生的序号开始选课,键入0退出: ";
cin>>a;
if(a>0&&a<=sizeof(GraST)/sizeof(Grastudent))
{ cout<<"\n当前选课学生:"<<GraST[a-1].getName()<<endl;
break; }
else if(a==0)
{ tuichu();}
else
cout<<"\n该学生没有注册!请重新输入"<<endl;
}