📄 practice.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 + -