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

📄 main.cpp

📁 学生选课部分基本实现了学生对课程信息的查看、查找、删除、选择等功能;教务处管理部分基本实现教师对课程和学生的信息输入及修改等功能。
💻 CPP
📖 第 1 页 / 共 2 页
字号:
/////头文件//////////////////////////////////////////////////////////////////
#include <string.h>
#include <stdio.h>
#include <iostream.h>
#include <stdlib.h>
#include <iomanip.h>
#include <fstream.h>
#include <conio.h>
#include"subject.h"
////////////////////总菜单界面//////////////////
char face()
{
	int k=0;
	char a[3],c,i;
	system("cls");
	cout<<endl<<endl;
    cout<<"\t\t\t\t 选修课小系统                  \n\n"<<endl;
	cout<<"\t\t☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆\n"
        <<"\t\t                                          \n"
	 	<<"\t\t     操作方式:                            \n"
		<<"\t\t               1.学生选课                 \n"
	    <<"\t\t                                          \n"
		<<"\t\t               2.后台管理                 \n"
	    <<"\t\t                                          \n"
        <<"\t\t-------------------------------------------\n"<<endl;
	while(1)
	{
		cout<<"\n\t\t请选择登入方式: ";
		cin>>a;
		if(strlen(a)==1)
		{
            for(i='1';i<='2';i++)
            {
	             c=i;
	             if(c==a[0]) 
				   return c;
			}
		}
        cout<<"\n\n\t\t\t\t输入有误!\n"<<endl;
		k++;
	}
}
///////////////////学生选课界面///////////////////////
char student_face()
{
	char A[10];
	char b, i;
	int k = 0;
	system("cls");;
	cout<<"\n\n\n"
		<<"\t\t                  学生选修课系统            \n"
	    <<"\t\t   -----------------------------------------\n"
	   	<<"\t\t                                            \n"
		<<"\t\t       操作方式:                            \n"
		<<"\t\t                   1.学生选课               \n"
		<<"\t\t                                            \n"
        <<"\t\t                   2.学生情况               \n"
		<<"\t\t                                            \n"
		<<"\t\t                   3.选课情况               \n"
		<<"\t\t                                            \n"
		<<"\t\t                   4.退出系统               \n"
		<<"\t\t                                            \n"
		<<"\t\t\n"<<endl;
	while(1)
	{
	    cout<<"\t\t请选择操作方式: ";
        cin>>A;
		if(strlen(A)==1)
		{
            for(i='1';i<='4';i++)
            {
	             b=i;
	             if(b==A[0]) return b;
             }
		}
        cout<<"\n\t\t\t\t输入有误!\n"<<endl;
        k++;
	}
}
char admin_face()
{
	char A[10];
	char b, i;
	int k = 0;
	system("cls");;
    cout<<"\n\n\n"
        <<"\t\t--------------------------------------------------\n"
	    <<"\t\t                                                  \n"
	    <<"\t\t                  选修课系统后台管理              \n"
		<<"\t\t                                                  \n"
		<<"\t\t      操作方式:                                   \n"
	    <<"\t\t               1.增加学生   |     5.填写成绩      \n"
        <<"\t\t               2.增加课程   |     6.选课情况      \n"
		<<"\t\t               3.删除学生   |     7.保存数据      \n"
		<<"\t\t               4.删除课程   |     0.退出系统      \n"
		<<"\t\t                                                  \n"
	 	<<"\t\t--------------------------------------------------\n"<<endl;
    while(1)
	{
	    cout<<"\t\t 请选择操作方式: ";
        cin>>A;
		if(strlen(A)==1)
		{
            for(i='0';i<='9';i++)
            {
	             b=i;
	             if(b==A[0]) 
					 return b;
             }
		}
        cout<<"\n\t\t\t\t输入有误!\n"<<endl;;
        k++;
		if(k>2)
		{
			cout<<"错误输入超过三次!\n";
			exit(0);
		}
	}
}
/////////////////密码检查
void password()
{
	int k=0,i;
	char A[]="6666";
	char B[10];
	char a;
	system("cls");
	for(i=0;i<8;i++)
		cout<<endl;
	while(k<=2)
	{
     printf("\t\t请输入密码:");
		i=0;
		while(1)
		{
			a=getch();
			if(a==13) break;
			B[i]=a;
			i++;
			printf("*");
		}
		B[i]='\0';
	    if(strcmp(A,B)==0) 
			return;
		else 
		{
			k++;
			cout<<"\n\n\t\t\t密码输入错误!请重新输入!\n"<<endl;
		}
	    if(k>=3) 
		{
		system("cls");
		  cout<<"\n\n\t\t\t密码错误超过三次!请退出.."<<endl;
		  exit(0);
		}
	}
}
struct subject_message
{
	subject sub;
	subject_message *Next;
};
int face_2_7(student_message *Y,subject_message *P);
////////////学生选课///////
int face_1_1(student_message *P,subject_message *X)    
{
	system("cls");
	cout<<"\n\n\t\t\t\t学生选课操作"<<endl;
	student_message *q=P->Next;
	int i;
	char N[20],M[20];
	if(q!=NULL) 
		cout<<"\n\n\n\t\t所有学生名单如下:\n"<<endl;
	else 
	{
		cout<<"\n\n\n\t\t对不起,暂时没有学生名单!请按任意键继续.."<<endl; 
		return 1;
	}
	while(q)
	{
		q->stu.getname(N);
		cout<<"\t\t\t\t"<<N;
		cout<<endl;
		q = q->Next ;
	}
    q = P->Next;
	if(q==NULL) 
	   return 1;
	cout<<"\n\n\t\t 请输入学生姓名:";
	cin>>N;
	i=0;
	q=P->Next;
	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\n\t\t没有这个学生!! 请按任意键返回.."<<endl;
		return 1;
	} 
	else if(i>1)
	{
		cout<<"\n\n\t\t共找到"<<i<<"个姓名为"<<N<<"的学生"<<endl;
		cout<<"\t\t选择第几个:";
		cin>>k;
	}
	if(k>i||k<=0) 
	{
	   cout<<"\n\t\t\t输入有误!按任意键继续"<<endl;
	   return 1;
	}
	q = P->Next;
	j=0;
	while(q)
	{
		q->stu.getname(M);
		if(strcmp(N,M)==0) 
			j++;
		if(j==k)
		{
			if(q->stu.retfact_course()>=q->stu.retmax_course())
			{
		        cout<<"\n\t\t所选课程已满!按任意键继续"<<endl;
				return 1;
			}
			else
			{
				subject_message *t=X->Next;
				char N1[20];
				system("cls");;
				if(t!=NULL)
				{
				 	cout<<"\n\n\n\t\t所有课程如下:"<<endl;
					cout<<"\n\t\t\t\t课程名称\t\t 学分"<<endl;
				}
				else 
				{
					cout<<"\n\n\n\t\t对不起,暂时没有课程"<<endl; 
					return 1;
				}
				while(t)
				{
					t->sub.get_kname(N1);
					cout<<"\t\t\t\t "<<N1<<setw(26-strlen(N1))<<t->sub.read_credit()<<endl;
					t = t->Next ;
				}
                char N2[20];
				cout<<"\n\t    输入你所要选的课程 : ";
				cin>>N2;
				t = X->Next;
			    while(t)
				{
					t->sub.get_kname(N1);
					if(strcmp(N1,N2)==0)
					{
						if(q->stu.findcourse(N2)==1)
						{
						  cout<<"\n\t\t此课程你已选过了,不能再选.按任意键继续"<<endl;
						  return 1;
						}
						t=X->Next;
						char NA[20];
						while(t)
						{
							t->sub.get_kname(NA);
							if(strcmp(NA,N2)==0)
							{	
								if(t->sub.retactivestudent()>=t->sub.retmaxstudent ())
								{
								    cout<<"\n\t\t此课程已选满,不能选.按任意键继续"<<endl;
									return 1;
								}
							}
							t = t->Next;
						}
						q->stu.addcourse(N2,0.0);
						cout<<"\n\n\t\t选课成功!按任意键继续"<<endl;
						return 1;
					}
					t = t->Next;
				}
				cout<<"\n\t\t没有此课程!按任意键继续"<<endl;
			}
			return 1;
		}
		q = q->Next;
	}
	return 1;
}
int face_1_2(student_message *P,subject_message *X)   //学生情况
{
	student_message *q=P->Next;
	char N[20];
	system("cls");
	cout<<"\n\n\t\t\t\t学生情况操作"<<endl;
	int i;
	if(q!=NULL) 
	{
		cout<<"\n\n\n\t\t所有学生选课信息如下:\n"<<endl<<endl;
	    cout<<"\t\t  姓名\t\t\t选课情况\n"<<endl;
	}
	else 
	{   cout<<"\n\n\n\t\t对不起,暂时没有学生名单!!请按任意键继续.."<<endl; 
		return 1;
	}
	while(q)
	{
		q->stu.getname(N);
		cout<<"\t\t  "<<N<<setw(25-strlen(N))<<" 已选 "<<q->stu.retfact_course()<<" 门课 "<<endl;
		q = q->Next ;
	}
	char M[20];
	cout<<"\n\t\t输入要查看的学生姓名:";
	cin>>M;
	i=0;
	q=P->Next;
	while(q)
	{
		q->stu.getname(N);
		if(strcmp(N,M)==0)
			i++;
		q = q->Next;
	}
	int j=0,k=1;
	if(i==0)
	{
      cout<<"\n\t\t\t没找到这个学生!!请按任意键继续.."<<endl;
	  return 1;
	} 
	else if(i>1)
	{
      cout<<"\n\t\t共找到"<<i<<"个姓名为"<<M<<"的学生"<<endl;
	  cout<<"\t\t选择第几个:";
	  cin>>k;
	}
	if(k>i||k<=0) 
	{
	  cout<<"\n\t\t\t输入有误!按任意键继续.."<<endl;
      return 1;
	}
	q = P->Next;
	j=0;
	q=P->Next;
    while(q)
	{
		q->stu.getname(N);
		if(strcmp(N,M)==0) 
			j++;
		if(j==k)
		{
			system("cls");;
			course *T=q->stu.retroot();
			if(T==NULL) 
			{
				cout<<"\n\n\n\t\t\t"<<N<<"你还没有选课! 请按任意键继续.."<<endl;
				return 1;
			}
			if (T!=NULL) 
				T = T->Next;
       	    cout<<"\n\n\n\t\t"<<N<<"同学你已选"<<q->stu.retfact_course()<<"门课,具体如下\n\n"<<endl;
	 	    cout<<"\t\t\t课程名称\t\t成绩\n"<<endl;
			while(T)
			{

⌨️ 快捷键说明

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