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

📄 practice.cpp

📁 选课系统
💻 CPP
字号:


//**************************************题目:选课管理程序*****************************************************************
//******************************功能:为教务提供登记课程的功能,为学生提供选课的功能***************************************

#include <iostream>     //头文件
#include <cmath>        //头文件
#include <stdlib.h>     //头文件
#include <conio.h>      //头文件
#include <cstring>      //头文件
#include <iomanip>      //头文件
using namespace std;    //名字域
char num1;              //定义全局变量 记录选择进入方式                     
int n=0;                //用于结构数组apply下标的变化
int flag=1,flag1=2;     //flag用于判断记录中是否有匹配的密码及用户名,flag1用于判断通用密码是否正确
int m1[20]={0},m3[20]={0};//m1为1班各科选择人数,m2为2班各科选择人数
int m2[20]={0},m4[20]={0};//m3为1班各科选择人数,m4为2班各科选择人数	
char a[12][8];                      //记录教务选择结果
int j=0;
void huanhang(int);     //定义换行函数  
void clear();           //定义清屏函数 
void menu1();           //主菜单(教务,学生,退出)
void menu2();           //二级菜单(选择进入方式)
void shenqing(int);     //申请密码用户名的函数
void menu4();           //对密码及用户名进行判断,决定能否进入
void jiaowuChoice();    //教务进行选课
void studentChoice();   //学生进行选课
int mainmenu();        //主菜单
void returnMenu();

struct denglu           //定义结构记录密码记帐号
{
	char zhanghao[9];   //帐号
	char password[9];   //密码	
}apply[100],t,p;        //定义结构型变量apply,t,p;

void huanhang(int num)  //换行函数
{
	for(int i=0;i<num;i++)
		cout<<endl;
}
void clear()           //清屏函数
{
    cin.get();
	system("cls");
}
void menu1()           //菜单1
{  huanhang(4);        //调用换行函数
    cout<<"                            "<<"欢迎使用本选课系统"<<endl;
	huanhang(4);
    cout<<"                        "<<"请输入你要选择服务的代码"<<endl;
    cout<<"                               1、教务"<<endl;
    cout<<"                               2、学生"<<endl;
    cout<<"                               3、退出"<<endl;
}
void menu2()          //菜单2(选择进入方式)
{        
         clear();     //调用清屏函数
		 huanhang(2); //调用换行函数
		 cout<<"           请输入您的登陆方式"<<endl;
		 cout<<endl;
         cout<<"           a.已注册,立即登录"<<endl;
		 cout<<"           b.未注册申请帐户密码"<<endl;
		 cout<<"           c.使用通用密码"<<endl;
         
       	 
}

void shenqing(int n)
{      int y;
	   cout<<"请依次输入帐号和密码(8位)"<<endl;
     
       cin>>apply[n].zhanghao ;               //输入帐号
	   for(y=0;y<8;y++)
	   {
		apply[n].password[y]=getch();
	    cout<<"*";                           //输入密码输出*
	   }
	 
}
void menu4()
{   
	int i,k=0,x;
	if(num1=='a')   //判断如果选择“已注册,立即登录”则进行如下判断
	{   cout<<"请输入帐号(8位)"<<endl;
		cin>>t.zhanghao;  // 输入已有帐号
		cout<<"请输入密码(8位)"<<endl;
	    for(i=0;i<8;i++)
		{
		   t.password[i]=getch();
		   cout<<"*";              //输入密码
		}
		for(x=0;x<100;x++)
		{
			if((strcmp(t.password,apply[x].password)==0)&&(strcmp(t.zhanghao,apply[x].zhanghao )==0)) //如果纪录中有此密码帐号且匹配,则从循环中跳出
					   break;//判断记录中是否有匹配用户如有则跳出进行下一步操作
		
		    else
			{
		     flag=0;//如果没有则将标记设为0;
			}
		}
	}
	if(num1=='b')//如果选择“未注册申请帐户密码”则进行如下操作
	{
    	shenqing(n);                            //调用shengqing函数
	    n++;                                    //每执行一次下标加一
	}
	int j;
	char tongyong[4];
	if(num1=='c')                                //如果选择使用通用密码
	{   
		cout<<"请输入帐号(任意字符即可)"<<endl;
		cin>>p.zhanghao;
		cout<<"请输入密码(通用)"<<endl;
	    for(j=0;j<4;j++)
		{
		  tongyong[j]=getch();                 //输入密码
		   cout<<"*";
		}
		if(tongyong[0]=='1'&&tongyong[1]=='2'&&tongyong[2]=='3'&&tongyong[3]=='4')//判断是否与通用密码匹配	
		flag1=1;                             //如果匹配标记记为1
		else                                // 否则标记记为0
			flag1=0;
	}
}
void jiaowuChoice()
{    
	
	int i=0,k;
	char *str[]={"马哲","毛概","计概","英语","邓论","力学","线代","高数"};
	cout<<"      请输入您选课的代码\n"<<endl;
	for(i=0;i<8;i++)
	{	cout<<setw(15)<<str[i]<<" ";
	    if(i==3)
			cout<<endl;
	}                                   //输出提示选项
	cout<<endl;
    cout<<"      选择之间不要有空格"<<endl;
    char b[12];	
	cin.getline(b,12);                  //输入选择数据
	for(j=0;b[j]!='\0';j++)
	{   
		strcpy(a[j],str[b[j]-'0'-1]);     //将选择附给数组a
	}
	

	    cout<<"┍━━━━";for(k=0;k<j;k++) cout<<"━━┯━━━";cout<<"━━┓"<<endl;  //插入表格
        cout<<"┃        ";for(k=0;k<j;k++) cout<<"    ┃  "<<a[k];cout<<"    ┃"<<endl;//进行判断若输入为一位数则输出00,
		cout<<"┠────";for(k=0;k<j;k++) cout<<"──┼───";cout<<"──┨"<<endl;
		cout<<"┃  1班   ";for(k=0;k<j;k++) {if(m1[k]<10) cout<<"    ┃    "<<0<<m1[k];
		else cout<<"    ┃     "<<m1[k];}cout<<"    ┃"<<endl;
        cout<<"┠────";for(k=0;k<j;k++) cout<<"──┼───";cout<<"──┨"<<endl;
        cout<<"┃  2班   ";for(k=0;k<j;k++) {if(m2[k]<10) cout<<"    ┃    "<<0<<m2[k];
		else cout<<"    ┃     "<<m2[k];}cout<<"    ┃"<<endl;
		cout<<"┠────";for(k=0;k<j;k++) cout<<"──┼───";cout<<"──┨"<<endl;
		cout<<"┃  3班   ";for(k=0;k<j;k++) {if(m3[k]<10) cout<<"    ┃    "<<0<<m3[k];
		else cout<<"    ┃     "<<m3[k];}cout<<"    ┃"<<endl;
        cout<<"┠────";for(k=0;k<j;k++) cout<<"──┼───";cout<<"──┨"<<endl;
        cout<<"┃  4班   ";for(k=0;k<j;k++) {if(m4[k]<10) cout<<"    ┃    "<<0<<m4[k];
		else cout<<"    ┃    "<<m4[k];}cout<<"    ┃"<<endl;
		cout<<"┕━━━━";for(k=0;k<j;k++) cout<<"━━┷━━━";cout<<"━━┛"<<endl;
        cout<<endl;
	    returnMenu();
		
}
void studentChoice()
{       int stuClass,stuChoice=0;int k;
		cout<<"┍━━━━";for(k=0;k<j;k++) cout<<"━━┯━━━";cout<<"━━┓"<<endl;  //插入表格
        cout<<"┃        ";for(k=0;k<j;k++) cout<<"    ┃  "<<a[k];cout<<"    ┃"<<endl;//进行判断若输入为一位数则输出00,
		cout<<"┠────";for(k=0;k<j;k++) cout<<"──┼───";cout<<"──┨"<<endl;
		cout<<"┃  1班   ";for(k=0;k<j;k++) {if(m1[k]<10) cout<<"    ┃    "<<0<<m1[k];
		else cout<<"    ┃     "<<m1[k];}cout<<"    ┃"<<endl;
        cout<<"┠────";for(k=0;k<j;k++) cout<<"──┼───";cout<<"──┨"<<endl;
        cout<<"┃  2班   ";for(k=0;k<j;k++) {if(m2[k]<10) cout<<"    ┃    "<<0<<m2[k];
		else cout<<"    ┃     "<<m2[k];}cout<<"    ┃"<<endl;
		cout<<"┠────";for(k=0;k<j;k++) cout<<"──┼───";cout<<"──┨"<<endl;
		cout<<"┃  3班   ";for(k=0;k<j;k++) {if(m3[k]<10) cout<<"    ┃    "<<0<<m3[k];
		else cout<<"    ┃     "<<m3[k];}cout<<"    ┃"<<endl;
        cout<<"┠────";for(k=0;k<j;k++) cout<<"──┼───";cout<<"──┨"<<endl;
        cout<<"┃  4班   ";for(k=0;k<j;k++) {if(m4[k]<10) cout<<"    ┃    "<<0<<m4[k];
		else cout<<"    ┃    "<<m4[k];}cout<<"    ┃"<<endl;
		cout<<"┕━━━━";for(k=0;k<j;k++) cout<<"━━┷━━━";cout<<"━━┛"<<endl;
        cout<<endl;
        cout<<"请输入你所在班级的班号"<<endl;
		cin>>stuClass;
		cout<<"请输入你选择课程的班号,如果选择完毕输入0"<<endl;
		cout<<"请在输入的数字间加空格"<<endl;
		
		while(cin>>stuChoice)
		{	if(stuClass==1)
		{  m1[stuChoice-1]++;}
		if(stuClass==2)
		{  m2[stuChoice-1]++;}
		 if(stuClass==3)
		{  m3[stuChoice-1]++;}
		if(stuClass==4)
		{  m4[stuChoice-1]++;}
		if(stuChoice==0) break;
		}
        cout<<"┍━━━━";for(k=0;k<j;k++) cout<<"━━┯━━━";cout<<"━━┓"<<endl;  //插入表格
        cout<<"┃        ";for(k=0;k<j;k++) cout<<"    ┃  "<<a[k];cout<<"    ┃"<<endl;//进行判断若输入为一位数则输出00,
		cout<<"┠────";for(k=0;k<j;k++) cout<<"──┼───";cout<<"──┨"<<endl;
		cout<<"┃  1班   ";for(k=0;k<j;k++) {if(m1[k]<10) cout<<"    ┃    "<<0<<m1[k];
		else cout<<"    ┃     "<<m1[k];}cout<<"    ┃"<<endl;
        cout<<"┠────";for(k=0;k<j;k++) cout<<"──┼───";cout<<"──┨"<<endl;
        cout<<"┃  2班   ";for(k=0;k<j;k++) {if(m2[k]<10) cout<<"    ┃    "<<0<<m2[k];
		else cout<<"    ┃     "<<m2[k];}cout<<"    ┃"<<endl;
		cout<<"┠────";for(k=0;k<j;k++) cout<<"──┼───";cout<<"──┨"<<endl;
		cout<<"┃  3班   ";for(k=0;k<j;k++) {if(m3[k]<10) cout<<"    ┃    "<<0<<m3[k];
		else cout<<"    ┃     "<<m3[k];}cout<<"    ┃"<<endl;
        cout<<"┠────";for(k=0;k<j;k++) cout<<"──┼───";cout<<"──┨"<<endl;
        cout<<"┃  4班   ";for(k=0;k<j;k++) {if(m4[k]<10) cout<<"    ┃    "<<0<<m4[k];
		else cout<<"    ┃    "<<m4[k];}cout<<"    ┃"<<endl;
		cout<<"┕━━━━";for(k=0;k<j;k++) cout<<"━━┷━━━";cout<<"━━┛"<<endl;
	returnMenu();	
}
void returnMenu()
{   
	huanhang(3);
	cout<<"返回主页请输入R "<<endl;
    char sign;
	cin>>sign;
	if(sign=='R')
	clear();
	mainmenu();
}
int mainmenu()                          
{   int num;flag=1;flag1=2;          //输入选择
	menu1();                        //调用菜单1
	cin>>num;                 //输入选择
	{
      if(num==3) return 0; //如果选择退出则退出系统
	  else
	  {
	    menu2();                      //否则进入菜单二
	    cin>>num1;                    //输入登陆选择
        menu4();//调用menu4这个函数
	    while((flag==0||flag1==0))         //如果密码错误返回上层菜单
		{  cout<<"密码有误系统正在给您时间查证密码"<<endl;
		cout<<"请待返回上一页后重新输入"<<endl; //输出提示
	       for(int i=0;i<1000000000;i++);//循环延时
		   menu2();                      //返回二层菜单                              
		   cin>>num1;              //输入进入方式                   
		   menu4();
		} 
	    if(num==1)                  //如果选择教务
		{
	      clear();                //清屏
		  huanhang(3);            //换行
	      jiaowuChoice();         //引用函数
		}
	    if(num==2)                  //如果选择学生
		{
		  clear();                //清屏
		  huanhang(3);            //换行
		  studentChoice();        //引用函数
		} 
	}
	}
}
int main()
{
	mainmenu();
    return 0;
}

⌨️ 快捷键说明

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