⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 学生选课系统.cpp

📁 能够添加课程、学生
💻 CPP
📖 第 1 页 / 共 5 页
字号:
				<<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 + -