📄 学生选课系统.cpp
字号:
<<subject[i].course.m_fxuefen<<setw(20)<<subject[i].course.m_ikeshi;
}
}
fout.close();
}
//*****************************************************************************
void CSubject::Readf1(char *fp)
{
ifstream fin(fp);
int i=0;
if (!fin)
{
cout<<"还没有选课记录!"<<endl;
cout<<"按任意键继续!";
getch();
handle_Memu5();
}
fin.get();
while (!fin.eof())
{
fin>>subject[i].stu.m_csno>>subject[i].course.m_ccno>>subject[i].course.m_ccname
>>subject[i].course.m_caddress>>subject[i].course.m_cxingzhi
>>subject[i].course.m_ctime>>subject[i].course.m_fxuefen
>>subject[i].course.m_ikeshi;
i++;
}
count2=i;
fin.close();
}
//**************************************************************
int CSubject::Queryf1(char *sno,char*cno,int *p)
{
for(int j=0;j<count2;j++)
{
if(strcmp(subject[j].Getsno(),sno)==0&&strcmp(subject[j].Getcno(),cno)==0)
{
*p=j;
return 1;
}
}
return 0;
}
//**************************************************************
void CSubject::Queryf2(char * sno,int *p)
{
int flag=0;
for(int j=0;j<count2;)
{
if(strcmp(subject[j].Getsno(),sno)==0)
{
flag=1;
*p=j;
if(*p==count2)
count2=count2-1;
else
{
for(int i=*p;i<count2-1;i++)
subject[i]=subject[i+1];
j--;
count2=count2-1;
}
}
j++;
}
if(flag==1)
{
Writef1("subject.txt",subject,count2);
cout<<"成功删除subject文本里的此学生相关选课信息!"<<endl;
}
else
cout<<"此学生还没有选课记录!";
}
//**************************************************************
void CSubject::Queryf3(char * cno,int *p)
{
int flag=0;
for(int j=0;j<count2;)
{
flag=1;
if(strcmp(subject[j].Getcno(),cno)==0)
{
*p=j;
if(*p==count2)
count2=count2-1;
else
{
for(int i=*p;i<count2-1;i++)
subject[i]=subject[i+1];
j--;
count2=count2-1;
}
}
j++;
}
if(flag==1)
{
Writef1("subject.txt",subject,count2);
cout<<"成功删除subject文本里的此课程的选课信息!"<<endl;
}
else
cout<<"还没有人选过该课程!";
}
//***************************************************************
void CSubject::tuixuan(char *sno)
{
int*p;
char flag;
p=new int;
char cno[20];
Readf1("subject.txt");
cout<<"请输入你要删除的课程号:";
cin>>cno;
if(Queryf1(sno,cno,p))
{
subject[*p].Output();
cout<<"是否删除(Y/n):"<<endl;
cin>>flag;
if(toupper(flag)=='Y')
{
if(*p==count2)
count2=count2-1;
else
{
for(int i=*p;i<count2-1;i++)
subject[i]=subject[i+1];
count2=count2-1;
}
Writef1("subject.txt",subject,count2);
cout<<"成功退掉此课程!"<<endl;
}
}
else
{
cout<<"你没有选过该课程!"<<endl;
}
}
//*********************************************************************
char* CSubject::xiugai(char *cno,char *time,char *address)
{
cout<<"请输入要修改课程的课程号:";
cin>>cno;
Readf1("subject.txt");
cout<<"输入新的上课时间:";
cin>>time;
cout<<"输入新的上课地点:";
cin>>address;
for(int j=0;j<count2;j++)
{
if(strcmp(subject[j].Getcno(),cno)==0)
{
subject[j].Settime(time);
subject[j].Setaddress(address);
subject[j].Output();
}
}
Writef1("subject.txt",subject,count2);
cout<<"成功修改subject文本里的课程的时间地点!"<<endl;
return cno;
}
//*********************************************************************
void CSubject::show4(char *fp)
{
ifstream fin(fp);
if (!fin)
{
cout<<"你还没有任何选课记录"<<endl;
cout<<"请按任意键继续...";
getch();
return;
}
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;
Output();
}
fin.close();
}
//*******************************************************************
void CSubject::show5(char *fp,char *sno)
{
ifstream fin(fp);
if (!fin)
{
cout<<"你还没有任何课程记录"<<endl;
cout<<"请你先到管理员处添加课程"<<endl;
cout<<"按任意键继续。";
getch();
handle_Memu1();
}
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;
if(strcmp(stu.m_csno,sno)==0)
Output();
}
fin.close();
}
//*******************************************************************
void CSubject::show6(char *fp)
{
char cno[20];
cout<<"请输入课程号:";
cin>>cno;
ifstream fin(fp);
if (!fin)
{
cout<<"还没有任何学生选课"<<endl;
cout<<"按任意键继续。";
getch();
handle_Memu4();
}
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;
if(strcmp(course.m_ccno,cno)==0)
Output();
}
fin.close();
}
//********************************************************************
void CSubject::xuanke(char *fp,char *sno)
{
char zhuanye[20],address[20],time[20],cno[20];
int i=0,j=0,flag=0;
Queryf("student.txt",sno);
ifstream fin(fp);
fin.open("subject.txt");
if(!fin)
{
fin.clear();
}
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;
if(strcmp(sno,stu.m_csno)==0)
{
cout<<"你已经选了以下课程:"<<endl;
Output();
i++;
}
}
if(i>=5)
{
cout<<"你已经选了5门课程,不能再选!";
cout<<"\t\t请按任意键继续!";
getch();
return;
}
fin.close();
fin.clear();
fin.open("student.txt");
if (!fin)
{
fin.clear();
cerr<<"\n\n\n\n\t\t还没有学生1"<<endl;
cout<<"\t\t请到管理员处添加学生!"<<endl;
cout<<"\t\t请按任意键继续!";
getch();
system("cls");
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)
strcpy(zhuanye,stu.m_czhuanye);
}
cout<<"所有课程如下:"<<endl;
cout<<"公共课:"<<endl;
fin.close();
fin.clear();
fin.open("course.txt");
if (!fin)
{
fin.clear();
cerr<<"\n\n\n\n\t\t还没有任何课程"<<endl;
cout<<"\t\t请到管理员处添加课程!"<<endl;
cout<<"\t\t请按任意键继续!";
getch();
system("cls");
handle_Memu1();
}
while (!fin.eof())
{
fin>>course.m_ccno>>course.m_ccname>>course.m_cxingzhi>>course.m_ikeshi
>>course.m_caddress>>course.m_ctime>>course.m_fxuefen
>>course.m_imaxcourse>>course.m_ifactcourse;
if (strcmp(zhuanye,course.m_cxingzhi)!=0)
cout<<"\t 课程号: "<<course.m_ccno<<" "
<<"课程名: "<<course.m_ccname<<endl;
}
cout<<"专业课:"<<endl;
fin.close();
fin.clear();
fin.open("course.txt");
if (!fin)
{
}
while (!fin.eof())
{
fin>>course.m_ccno>>course.m_ccname>>course.m_cxingzhi>>course.m_ikeshi
>>course.m_caddress>>course.m_ctime>>course.m_fxuefen
>>course.m_imaxcourse>>course.m_ifactcourse;
if (strcmp(zhuanye,course.m_cxingzhi)==0)
cout<<"\t课程号: "<<course.m_ccno<<" "
<<"课程名: "<<course.m_ccname<<endl;
}
while(flag==0)
{
cout<<"\n\t 输入你所要选的课程 : ";
cin>>cno;
fin.close();
fin.clear();
fin.open("course.txt");
if (!fin)
{
}
while (!fin.eof())
{
fin>>course.m_ccno>>course.m_ccname>>course.m_cxingzhi>>course.m_ikeshi
>>course.m_caddress>>course.m_ctime>>course.m_fxuefen
>>course.m_imaxcourse>>course.m_ifactcourse;
if (strcmp(cno,course.m_ccno)==0)
{
strcpy(address,course.m_caddress);
strcpy(time,course.m_ctime);
}
}
fin.close();
fin.clear();
fin.open("course.txt");
if(!fin)
{
}
while (!fin.eof())
{
fin>>course.m_ccno>>course.m_ccname>>course.m_cxingzhi>>course.m_ikeshi>>
course.m_caddress>>course.m_ctime>>course.m_fxuefen>>
course.m_imaxcourse>>course.m_ifactcourse;
if (strcmp(cno,course.m_ccno)==0)
{
flag=1;
break;
}
}
if(flag==0)
{
cout<<"没有此课程:"<<endl;
}
}
fin.close();
fin.clear();
fin.open("subject.txt");
if (!fin)
{
fin.close();
fin.clear();
fin.open("course.txt");
if(!fin)
{
}
while (!fin.eof())
{
fin>>course.m_ccno>>course.m_ccname>>course.m_cxingzhi>>course.m_ikeshi>>
course.m_caddress>>course.m_ctime>>course.m_fxuefen>>
course.m_imaxcourse>>course.m_ifactcourse;
if(strcmp(cno,course.m_ccno)==0)
{
Writef("subject.txt",sno,cno);
cout<<"\n\n\t\t选课成功!"<<endl;
Output();
cout<<"按任意键继续"<<endl;
getch();
return;
}
}
cout<<"操作有误,选课失败!";
}
fin.get();
int count=0;
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;
if (strcmp(cno,course.m_ccno)==0 && strcmp(sno,stu.m_csno)==0)
{
cout<<"你已经选过该课程!";
cout<<"按任意键继续。";
getch();
return;
}
if(strcmp(time,course.m_ctime)==0 && strcmp(sno,stu.m_csno)==0)
{
cout<<"上课时间与"<<course.m_ccname<<"发生冲突!"<<endl;
cout<<"请按任意键继续! ";
getch();
return;
}
else
if(strcmp(sno,stu.m_csno)==0)
count++;
if(count>=5)
{
cout<<"选课人数已满!";
cout<<"按任意键继续。";
getch();
return;
}
}
fin.close();
fin.clear();
fin.open("subject.txt");
if(!fin)
{
fin.clear();
}
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;
if(strcmp(sno,stu.m_csno)==0)
j++;
}
if(j>=5)
{
cout<<"你已经选了5门课程,不能再选!";
cout<<"按任意键继续。";
getch();
fin.close();
return;
}
fin.close();
fin.close();
fin.clear();
fin.open("course.txt");
if(!fin)
{
}
while (!fin.eof())
{
fin>>course.m_ccno>>course.m_ccname>>course.m_cxingzhi>>course.m_ikeshi>>
course.m_caddress>>course.m_ctime>>course.m_fxuefen>>
course.m_imaxcourse>>course.m_ifactcourse;
if(strcmp(cno,course.m_ccno)==0)
{
Writef("subject.txt",sno,cno);
cout<<"\n\n\t\t选课成功!"<<endl;
Output();
cout<<"按任意键继续"<<endl;
getch();
return;
}
}
cout<<"操作有误,选课失败!";
}
//******************************************************************************************
void CSubject::getmark(char *fp)
{
char sno[20],cno[20];
int m_cmark;
ifstream fin(fp);
fin.close();
fin.clear();
fin.open("subject.txt");
cout<<"所有学生选课情况如下:";
show4("subject.txt");
cout<<"请输入学号:";
cin>>sno;
cout<<"请输入课程号:";
cin>>cno;
if(!fin)
{
cout<<"你还没有任何选课记录!请按任意键继续!";
getch();
handle_Memu4();
}
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;
if(strcmp(sno,stu.m_csno)==0&&strcmp(cno,course.m_ccno)==0)
{
cout<<"请输入分数:";
m_cmark=shuzi();
cout<<sno<<" "<<course.m_ccname<<" "<<m_cmark;
ofstream fout("mark.txt",ios::app);
if (!fout)
{
cout<<"文件不能打开"<<endl;
exit(0);
}
else
{
fout<<endl;
fout<<stu.m_csno<<setw(20)<<course.m_ccno<<setw(20)<<course.m_ccname<<setw(20)<<m_cmark;
}
fout.close();
}
}
cout<<"你输入的学号或课程号不存在!";
}
//*******************************************************************
CSubject::~CSubject(){}
/*********************************************************************
* *
*********************************************************************/
class CLand
{
public:
CLand(){};
char *Setsno();
char *Setscode();
char *Settno();
char *Settcode();
char *Setadmin();
char *Setadmincode();
void modifiy(char *fp);
void modifiy1(char *fp);
void modifiy2(char *fp);
void Readf(char *fp);
void Writef1(char *fp);
void Readf1(char *fp);
void Writef(char *fp);
void Readf2(char *fp);
void Writef2(char *fp);
char *Queryf(char *fp);
char *Queryf1(char *fp);
char *Queryf2(char *fp);
private:
char m_cscode[20],m_ctcode[20],m_cacode[20],m_cadmin[20],m_cadmincode[20];
CStudent stu;
CTeacher teacher;
};
//************************************************************************
CLand land[600];
//*********************************************************************
char* CLand::Setsno()
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -