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

📄 main.cpp

📁 学生选课部分基本实现了学生对课程信息的查看、查找、删除、选择等功能;教务处管理部分基本实现教师对课程和学生的信息输入及修改等功能。
💻 CPP
📖 第 1 页 / 共 2 页
字号:
			cout<<"\t\t\t "<<T->cname<<setw(25-strlen(T->cname))<<T->mark<<endl;
				T = T->Next;
			}
			j=0;
		}
		q = q->Next;
	}
	cout<<"\n\t\t请按任意键继续..."<<endl;
	return 1;
}
int face_1_3(subject_message *P)   //选课情况
{
	subject_message *q=P->Next;
	char N[20];
	system("cls");
	cout<<"\n\n\t\t\t\t选课情况操作"<<endl;
    if(q!=NULL) 
	{
		cout<<"\n\n\n\t\t所有选课情况如下:\n"<<endl;
		cout<<"\n\t\t\t课程名称\t\t选课人数\n"<<endl;
	}
	else
	{
		cout<<"\n\n\n\t\t对不起,暂时没有课程!!请按任意键继续.."<<endl; 
		return 1;
	}
	while(q)
	{
		q->sub.get_kname(N);
		cout<<"\t\t\t"<<N<<setw(28-strlen(N))<<q->sub.retactivestudent()<<endl;
		q = q->Next ;
	}
	cout<<"\n\t\t请按任意键继续.."<<endl;
	return 1;
}
int face_1_4(student_message *X,subject_message *P)   //退出系统
{
	face_2_7(X,P);
    exit(0);
	return 0;
}
//////////////////////后台管理界面///////////////////////////////
int face_2_1(student_message *P)   //增加学生 
{
	char N[20];
	system("cls");;
    cout<<"\n\n\t\t\t\t增加学生操作\n"<<endl;
	cout<<"\n\n\t\t请输入学生姓名:";
	cin>>N;
	cout<<endl<<"\t\t增加成功,按任意键继续"<<endl;
	student_message *new_xinxi = new student_message;
    new_xinxi->Next = P->Next ;
	new_xinxi->stu.read_name(N);
	P->Next = new_xinxi ;
	return 1;
}
int face_2_2(subject_message *P)   //增加课程
{
    float k;
	char N[20],M[20];
	system("cls");;
	cout<<"\n\n\t\t\t\t增加课程操作\n"<<endl;
	cout<<"\n\n\t\t  请输入课程名称:";
	cin>>N;
	cout<<endl;
	subject_message *q = P->Next;
	while(q)
	{
		q->sub.get_kname(M);
		if(strcmp(N,M)==0) 
		{
			cout<<"\n\t\t此课程已经存在,按任意键继续"<<endl;
			return 1;
		}
		q = q->Next;
	}
    cout<<"\t\t输入此课程的学分:";
	cin>>k;
	cout<<"\n\t\t增加课程操作成功,按任意键继续"<<endl;
	subject_message *new_xinxi = new subject_message;
    new_xinxi->Next = P->Next ;
	new_xinxi->sub.set_kname(N);
	new_xinxi->sub.get_credit(k);
	P->Next = new_xinxi ;
	return 1;
}
int face_2_3(student_message *P)   //删除学生
{
	system("cls");
	cout<<"\n\n\t\t\t\t删除学生操作"<<endl;
   	student_message *q = P->Next;
	if(q==NULL) 
		return 1;
	int i;
	char N[20],M[20];
	cout<<"\n\t请输入要删除的学生姓名 :";
	cin>>N;
	i=0;
	while(q)
	{
		q->stu.getname(M);
		if(strcmp(N,M)==0)
			i++;
		q = q->Next;
	}
	int j=0,k=1;
	if(i==0)
	{
	    cout<<"\n\t\t没有这个学生!!请按任意键继续.."<<endl;
		return 1;
	} 
	else if(i>1)
	{
		cout<<"\n\t\t共找到"<<i<<"个姓名为"<<N<<"的学生"<<endl;
		cout<<"\n\t\t要删除第几个:";
		cin>>k;
	}
	if(k>i||k<=0) 
		return 1;
	q = P->Next;
	student_message *R = P;
	j=0;     
	while(q)
	{
		q->stu.getname(M);
		if(strcmp(N,M)==0) 
			j++;
		if(j==k)
		{
			R->Next = q->Next;
			free(q);
			cout<<"\n\t\t删除学生操作成功,按任意键继续.."<<endl;
			return 1;
		}
		q = q->Next;
		R = R->Next;
	}
	return 1;
}
int face_2_4(subject_message *P)   //删除课程
{
    subject_message *q=P->Next;
	char N[20];
	system("cls");;
    cout<<"\n\n\t\t\t\t删除课程操作"<<endl;
	if(q!=NULL)
		cout<<"\n\n\n\t\t所有课程如下:\n"<<endl;
	else
	{
		cout<<"\n\n\n\t\t sorry,没有课程!!请按任意键继续.."<<endl; 
		return 1;
	}
	while(q)
	{
		q->sub.get_kname(N);
		cout<<"\t\t\t\t"<<N<<endl;
		q = q->Next ;
	}
	q = P->Next;
	subject_message *R = P;
	if(q==NULL) 
		return 1;
	char M[20];
	cout<<"\n\t    请输入要删除的课程 :";
	cin>>M;
	while(q)
	{
		q->sub.get_kname(N);
		if(strcmp(N,M)==0)
		{
			R->Next = q->Next;
			free(q);
		    cout<<"\n\t\t删除课程操作成功,按任意键继续"<<endl;
			return 1;
		}
		q = q->Next;
		R = R->Next;
	}
    cout<<"\n\t\t没有此课程!!\t请按任意键继续.."<<endl;
	return 1;
}
int face_2_5(student_message *X,subject_message *P)   //填写成绩
{
	subject_message *q=P->Next;
	char M[20],N[20],NA[20];
	float score;
	system("cls");
	cout<<"\n\n\t\t\t\t  填写成绩操作\n"<<endl;
	if(q!=NULL) 
		cout<<"\n\t\t\t课程名称\t\t选课人数\n"<<endl;
	else
	{
		cout<<"\n\n\n\t\t sorry!!没有任何选修课程。请按任意键继续.."<<endl; 
		return 1;
	}
	while(q)
	{
		q->sub.get_kname(N);
		cout<<"\t\t\t"<<N<<setw(28-strlen(N))<<q->sub.retactivestudent()<<endl;
		q = q->Next ;
	}
    q = P->Next;
	cout<<"\n\t请输入课程名称 :";
	cin>>M;
    while(q)
	{
		q->sub.get_kname(N);
		student_name *K = q->sub.retfirst();
		if(K!=NULL) 
			K = K->Next;
		if(strcmp(N,M)==0)
		{
			system("cls");;
    if(K!=NULL)
			{
				cout<<"\n\n\t\t请填写选修"<<M<<"的学生成绩\n"<<endl;
			    cout<<"\n\t\t\t姓名\t\t成绩"<<endl;
			}
			if(K==NULL)
			  cout<<"\n\t\t\t无任何信息!!请按任意键继续.."<<endl;
			while(K)
			{
			    cout<<"\n\t\t\t"<<K->tname<<"\t\t ";
	            cin>>score;
				student_message *XX = X->Next;
				while(XX)
				{
					XX->stu.getname(NA);
					if(strcmp(NA,K->tname)==0)
						XX->stu.wrecourse(M,score);
					XX = XX->Next;
				}
				K = K->Next;
			}
			if(K==NULL)
			  cout<<"\n\t\t填写成绩完毕!!请按任意键继续.."<<endl;
			return 1;
		}
		q = q->Next;
	}
	cout<<"\n\t\t没有此课程!!请按任意键继续.."<<endl;
	return 1;
}
int face_2_7(student_message *Y,subject_message *P)   //保存数据
{
	student_message *Z = Y->Next;
	subject_message *X = P->Next;
	system("cls");;
	fstream file("subject.txt",ios::out);
	while(X)
	{
		file.write ((char *)&(X->sub),sizeof(X->sub));
		X = X->Next;
	}
	file.close();
	fstream file1("student.txt",ios::out);
	fstream file2("course.txt",ios::out);
	while(Z)
	{
		file1.write ((char *)&(Z->stu),sizeof(Z->stu));
		int time = Z->stu.retfact_course();
		course *co = Z->stu.retroot(),*co1;
		if(co!=NULL)
		co1 = co->Next;
        while(time)
		{
			file2.write((char *)(co1),sizeof(*co1));
			co1 = co1->Next;
			time = time - 1;
		}
		Z = Z->Next;
	}
	file2.close ();
	file1.close();
    cout<<"\n\n\n\t\t\t保存数据成功!按任意键继续.."<<endl;
	return 1;
}
int face_2_0()    //退出系统
{
   exit(0);
	return 0;
}
int main()
{
	subject_message *P = new subject_message,*Q=P;
	P->Next = 0;
	subject M;
	fstream file("subject.txt",ios::in);
	while(1)
	{
		file.read((char *)&M,sizeof(M));
		if(!file) break;
		Q->Next = new subject_message;
		Q->Next ->Next = NULL;
		Q->Next ->sub = M;
		Q = Q->Next;
	}
	file.close ();
    student_message *Y = new student_message,*X=Y;
	Y->Next=NULL;
	student N;
	course O;
	fstream file1("student.txt",ios::in);
	fstream file2("course.txt",ios::in);
	while(1)
	{
		file1.read((char *)&N,sizeof(N));
		if(!file1) break;
		Y->Next = new student_message;
		Y->Next ->Next = NULL;
		Y->Next ->stu = N;
		int time = N.retfact_course();
		Y->Next->stu.clrroot ();
		while(time)
		{
			file2.read ((char *)&O,sizeof(course));
			if(!file2) break;
			Y->Next->stu.addcourse(O.cname ,O.mark); 
			time--;
		}
		Y=Y->Next;
	}
	file2.close ();
	file1.close ();
    Q=P->Next;
	while(Q)
	{
		Q->sub.clractivestudnet();
    	Q->sub.findstudent(X);
		Q = Q->Next;
	}
	char c;
	char b;
	b = face();
	if(b=='1')
	{
		while(1)
		{
			c = student_face();
			switch(c)
			{
			case '1': face_1_1(X,P);getch();break;  //学生选课
			case '2': face_1_2(X,P);getch();break;  //学生情况
	        case '3': face_1_3(P);getch();  break;  //选课情况
	        case '4': face_1_4(X,P);        break;  //退出系统
			} 
		}
	}
	if(b=='2')
	{   password();
		while(1)
		{   c = admin_face();
			switch(c)
			{
			case '1': face_2_1(X);getch();  break;   //增加学生 
	        case '2': face_2_2(P);getch();  break;   //增加课程
	        case '3': face_2_3(X);getch();  break;   //删除学生
			case '4': face_2_4(P);getch();  break;   //删除课程
			case '5': face_2_5(X,P);getch();break;   //填写成绩
	        case '6': face_1_3(P);getch();  break;   //选课情况
	        case '7': face_2_7(X,P);getch();break;   //保存数据
	        case '0': face_2_0();break;              //退出系统
			}
		}
	}
	return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -