📄 学生选课系统.cpp
字号:
cout<<"请输入课程号:";
cin>>cno;
a.Setcno(Queryf("course.txt",cno));
a.Input();
ifstream fin(fp);
fin.close();
fin.clear();
fin.open("course.txt");
if (!fin)
{
a.Writef("course.txt");
a.Output();
cout<<"添加成功!";
return;
}
fin.get();
while (!fin.eof())
{
fin>>m_ccno>>m_ccname>>m_cxingzhi>>m_ikeshi>>m_caddress>>m_ctime
>>m_fxuefen>>m_imaxcourse>>m_ifactcourse;
if(strcmp(a.Getaddress(),m_caddress)==0&&strcmp(a.Gettime(),m_ctime)==0)
{
cout<<"\n\n\t\t上课时间与"<<a.Getcname()<<"发生冲突!"<<endl;
cout<<"请按任意键继续!";
getch();
handle_Memu5();
}
}
fin.close();
a.Writef("course.txt");
a.Output();
cout<<"添加成功!";
cout<<"是否继续输入:Y(是)/其它(否)";
cin>>flag;
}
}
void CCourse::delcourse(char *cno,int *p)
{
char flag;
Readf1("course.txt");
cout<<"请输入要删除的课程号:";
cin>>cno;
if(Queryf1(cno,p))
{
course[*p].Output();
cout<<"是否删除(Y/N):"<<endl;
cin>>flag;
if(toupper(flag)=='Y')
{
if(*p==count1)
count1=count1-1;
else
{
for(int i=*p;i<count1-1;i++)
course[i]=course[i+1];
count1=count1-1;
}
Writef1("course.txt",course,count1);
cout<<"成功删除course文本里的此课程信息!"<<endl;
}
}
else
cout<<"没有这门课!"<<endl;
}
//*********************************************************************
void CCourse::show2(char *fp)
{
ifstream fin(fp);
if (!fin)
{
cout<<"您还没有任何添加学生"<<endl;
cout<<"\n\t按任意键继续...";
getch();
return;
}
fin.get();
while (!fin.eof())
{
fin>>m_ccno>>m_ccname>>m_cxingzhi>>m_ikeshi>>m_caddress>>m_ctime
>>m_fxuefen>>m_imaxcourse>>m_ifactcourse;
Output();
}
fin.close();
}
//*********************************************************************
CCourse::~CCourse(){}
/*********************************************************************
* *
*********************************************************************/
class CTeacher
{
public:
CTeacher(){};
friend class CLand;
friend class CSubject;
char *Gettno()
{
return m_ctno;
}
void Settname();
void Settno(char *tno);
void Setsex();
void Setzhicheng();
void Setxi();
void Readf(char *fp);
void Writef(char *fp);
char* Queryf(char *fp,char *tno);
void Readf1(char *fp);
void Writef1(char *fp,CTeacher teacher[],int count3);
int Queryf1(char *tno,int *p);
void Output();
void Input();
void addteacher();
void delteacher();
void show3(char *fp);
~CTeacher();
protected:
char m_ctname[20],m_ctno[20],m_ctxi[20],m_ctsex,m_ctzhicheng[20];
CCourse course;CStudent student;
};
//*********************************************************************
CTeacher teach[60];
//*********************************************************************
void CTeacher::Settno(char *tno)
{
strcpy(m_ctno,tno);
}
//********************************************************************
void CTeacher::Input()
{
cout<<"请输入教师名:";
cin>>m_ctname;
cout<<"请输入教师所属系:";
cin>>m_ctxi;
cout<<"性别:(a=男,b=女)";
cin>>m_ctsex;
while(m_ctsex!='a'&&m_ctsex!='b')
{
cout<<"你的输入有误,请重新输入:";
cin>>m_ctsex;
}
cout<<"请输入教师职称:";
cin>>m_ctzhicheng;
}
//*********************************************************************
void CTeacher::Output()
{
cout<<"教师号:"<<setw(20)<<m_ctno<<endl;
cout<<"教师名:"<<setw(20)<<m_ctname<<endl;
cout<<"教师所属系:"<<setw(20)<<m_ctxi<<endl;
cout<<"性别:"<<setw(20);
switch(m_ctsex)
{
case'a':
cout<<"男"<<endl;
break;
case'b':
cout<<"女"<<endl;
break;
default:
cout<<"输入有误"<<endl;
}
cout<<"教师职称:"<<setw(20)<<m_ctzhicheng<<endl;
}
//*********************************************************************
void CTeacher::Writef(char *fp)
{
ofstream fout(fp,ios::app);
if (!fout)
{
cout<<"文件不能打开"<<endl;
exit(0);
}
else
{
fout<<endl;
fout<<m_ctno<<setw(20)<<m_ctname<<setw(20)<<m_ctxi<<setw(20)
<<m_ctsex<<setw(20)<<m_ctzhicheng;
}
fout.close();
}
//*********************************************************************
void CTeacher::Readf(char *fp)
{
ifstream fin(fp);
if (!fin)
{
cout<<"文件不能打开"<<endl;
exit(0);
}
fin.get();
while (!fin.eof())
{
fin>>m_ctno>>m_ctname>>m_ctxi>>m_ctsex>>m_ctzhicheng;
}
fin.close();
}
//*********************************************************************
char * CTeacher::Queryf(char *fp,char *tno)
{
ifstream fin(fp);
if (!fin)
{
fin.close();
fin.clear();
}
fin.get();
while (!fin.eof())
{
fin>>m_ctno>>m_ctname>>m_ctxi>>m_ctsex>>m_ctzhicheng;
if (strcmp(m_ctno,tno)==0)
{
cout<<"此教师已经注册,请按任意键继续!";
Output();
getch();
handle_Memu5();
}
}
return tno;
fin.close();
}
//*********************************************************************
void CTeacher::addteacher()
{
char flag='Y';
char tno[20];
while(toupper(flag)=='Y')
{
cout<<"请输入您的教师号:";
cin>>tno;
teach[count3].Settno(teach[count3].Queryf("teacher.txt",tno));
teach[count3].Input();
teach[count3].Writef("teacher.txt");
teach[count3].Output();
count3++;
cout<<"添加成功!";
cout<<"是否继续输入:Y(是)/其它(否)";
cin>>flag;
if(toupper(flag)!='Y')
break;
}
}
//************************************************************************
void CTeacher::Writef1(char *fp,CTeacher teach[],int count3)
{
ofstream fout(fp);
if (!fout)
{
cout<<"文件不能打开"<<endl;
exit(0);
}
else
{
for(int i=0;i<count3;i++)
{
fout<<endl;
fout<<teach[i].m_ctno<<setw(20)<<teach[i].m_ctname<<setw(20)<<teach[i].m_ctxi<<setw(20)
<<teach[i].m_ctsex<<setw(20)<<teach[i].m_ctzhicheng;
}
}
fout.close();
}
//*****************************************************************************
void CTeacher::Readf1(char *fp)
{
ifstream fin(fp);
int i=0;
if (!fin)
{
cout<<"尚未添加教师!按任意键继续..."<<endl;
getch();
handle_Memu5();
}
fin.get();
while (!fin.eof())
{
fin>>teach[i].m_ctno>>teach[i].m_ctname>>teach[i].m_ctxi
>>teach[i].m_ctsex>>teach[i].m_ctzhicheng;
i++;
}
count3=i;
fin.close();
}
//**************************************************************
int CTeacher::Queryf1(char *tno,int *p)
{
for(int j=0;j<count3;j++)
{
if(strcmp(teach[j].Gettno(),tno)==0)
{
*p=j;
return 1;
}
}
return 0;
}
//********************************************************************
void CTeacher::delteacher()
{
int*p;
char flag;
p=new int;
char tno[20];
Readf1("teacher.txt");
cout<<"请输入要删除的教师号:";
cin>>tno;
if(Queryf1(tno,p))
{
teach[*p].Output();
cout<<"是否删除(Y/n):"<<endl;
cin>>flag;
if(toupper(flag)=='Y')
{
if(*p==count3)
count3=count3-1;
else
{
for(int i=*p;i<count3-1;i++)
teach[i]=teach[i+1];
count3=count3-1;
}
Writef1("teacher.txt",teach,count3);
delete p;
cout<<"删除成功!"<<endl;
}
}
else
{
cout<<"没有这个教师!"<<endl;
delete p;
}
}
//*********************************************************************
void CTeacher::show3(char *fp)
{
ifstream fin(fp);
if (!fin)
{
cout<<"\n\n\t您还没有任何添加教师"<<endl;
cout<<"\n\t请按任意键继续...";
getch();
return;
}
fin.get();
while (!fin.eof())
{
fin>>m_ctno>>m_ctname>>m_ctxi>>m_ctsex>>m_ctzhicheng;
Output();
}
fin.close();
}
//*********************************************************************
CTeacher::~CTeacher(){}
/*********************************************************************
* *
*********************************************************************/
class CSubject
{
public:
CSubject(){};
char *Getsno(void)
{
return stu.m_csno;
}
char *Getcno(void)
{
return course.m_ccno;
}
char *Getaddress(void)
{
return course.m_caddress;
}
char *Gettime(void)
{
return course.m_ctime;
}
char *Setcno();
void Readf(char *fp);
void Writef(char *fp,char*sno,char *cno);
void Queryf(char *fp,char *sno);
void xuanke(char *fp,char *sno);
void Output();
void tuixuan(char *sno);
void Output1();
void Input();
void show4(char *fp);
void show5(char *fp,char *sno);
void show6(char *fp);
void Readf1(char *fp);
void Writef1(char *fp,CSubject subject[],int count2);
int Queryf1(char *sno,char *cno,int *p);
void Queryf2(char *sno,int *p);
void Queryf3(char *cno,int *p);
void getmark(char *fp);
char* xiugai(char *cno,char *address,char *time);
void Readf2(char *fp,char *sno);
void Setaddress(char address[20]);
void Settime(char time[20]);
~CSubject();
protected:
int m_imaxcourse,m_ifactcourse;
int m_cmark;
CStudent stu;
CCourse course;
CTeacher teacher;
};
//*********************************************************************
CSubject subject[600];
//*********************************************************************
char* CSubject::Setcno()
{
char cno[20];
cout<<"请输入课程号:";
cin>>cno;
strcpy(course.m_ccno,cno);
return course.m_ccno;
}
//*********************************************************************
void CSubject::Setaddress(char address[20])
{
strcpy(course.m_caddress,address);
}
//*********************************************************************
void CSubject::Settime(char time[20])
{
strcpy(course.m_ctime,time);
}
//*********************************************************************
void CSubject::Output()
{
cout<<"学号 :"<<setw(20)<<stu.m_csno<<endl;
cout<<"课程号:"<<setw(20)<<course.m_ccno<<endl;
cout<<"课程名:"<<setw(20)<<course.m_ccname<<endl;
cout<<"上课地点:"<<setw(20)<<course.m_caddress<<endl;
cout<<"课程性质:"<<setw(20)<<course.m_cxingzhi<<endl;//
cout<<"上课时间:"<<setw(20)<<course.m_ctime<<endl;
cout<<"学分:"<<setw(20)<<course.m_fxuefen<<endl;//
cout<<"课程课时:"<<setw(20)<<course.m_ikeshi<<endl;
}
//*********************************************************************
void CSubject::Output1()
{
cout<<"课程号:"<<setw(20)<<course.m_ccno<<endl;
}
//*********************************************************************
void CSubject::Writef(char *fp,char *sno,char *cno)
{
ofstream fout(fp,ios::app);
if (!fout)
{
cout<<"文件不能打开"<<endl;
exit(0);
}
else
{
fout<<endl;
fout<<sno<<setw(20)<<cno<<setw(20)<<course.m_ccname
<<setw(20)<<course.m_caddress<<setw(20)<<course.m_cxingzhi
<<setw(20)<<course.m_ctime<<setw(20)<<course.m_fxuefen<<setw(20)<<course.m_ikeshi;
}
fout.close();
}
//*********************************************************************
void CSubject::Readf(char *fp)
{
ifstream fin(fp);
if (!fin)
{
cout<<"文件不能打开"<<endl;
exit(0);
}
fin.get();
while (!fin.eof())
{
fin>>stu.m_csno>>course.m_ccno>>course.m_ccname>>course.m_caddress
>>course.m_cxingzhi>>course.m_ctime>>course.m_fxuefen>>course.m_ikeshi;
}
fin.close();
}
void CSubject::Readf2(char *fp,char *sno)
{
char cno[20];
ifstream fin(fp);
cout<<"请输入课程号";
cin>>cno;
if (!fin)
{
cout<<"老师还没有打分"<<endl;
cout<<"请按任意键继续...";
getch();
handle_Memu3(sno);
}
fin.get();
while (!fin.eof())
{
fin>>stu.m_csno>>course.m_ccno>>course.m_ccname>>m_cmark;
if(strcmp(cno,course.m_ccno)==0 && strcmp(sno,stu.m_csno)==0)
{
cout<<course.m_ccno<<" "<<course.m_ccname<<" "<<m_cmark;
}
}
fin.close();
}
//*********************************************************************
void CSubject::Queryf(char *fp,char *sno)
{
ifstream fin(fp);
int flag=0;
if (!fin)
{
cout<<"\n\n\n\t\t对不起,暂时还没有学生!"<<endl;
cout<<"\t\t请你先到管理员处注册。请按任意键继续.."<<endl;
getch();
handle_Memu1();
}
fin.get();
while (!fin.eof())
{
fin>>stu.m_csno>>stu.m_csname>>stu.m_csex>>stu.m_cbanji>>stu.m_czhuanye
>>stu.m_imaxcourse>>stu.m_ifactcourse;
if (strcmp(sno,stu.m_csno)==0)
{
flag=1;
break;
}
}
if(!flag)
{
cout<<"\n\n\n\t\t对不起,暂时没有这个学生!"<<endl;
cout<<"\t\t请你先到管理员处注册。请按任意键继续.."<<endl;
getch();
handle_Memu1();
}
fin.close();
}
//************************************************************************
void CSubject::Writef1(char *fp,CSubject subject[],int count2)
{
ofstream fout(fp);
if (!fout)
{
cout<<"文件不能打开"<<endl;
exit(0);
}
else
{
for(int i=0;i<count2;i++)
{
fout<<endl;
fout<<subject[i].stu.m_csno<<setw(20)<<subject[i].course.m_ccno<<setw(20)
<<subject[i].course.m_ccname<<setw(20)<<subject[i].course.m_caddress<<setw(20)
<<subject[i].course.m_cxingzhi<<setw(20)<<subject[i].course.m_ctime<<setw(20)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -