• 教室管理系统(极其简陋)


      1 #include<bits/stdc++.h>
      2 #include<windows.h>
      3 #include<conio.h>
      4 #include "mmsystem.h"//导入声音头文件
      5 #pragma comment(lib,"winmm.lib")//导入声音头文件库
      6 //   0 = 黑色      8 = 灰色
      7 //   1 = 蓝色      9 = 淡蓝色
      8 //   2 = 绿色      A = 淡绿色
      9 //   3 = 浅绿色    B = 淡浅绿色
     10 //   4 = 红色      C = 淡红色
     11 //   5 = 紫色      D = 淡紫色
     12 //   6 = 黄色      E = 淡黄色
     13 //   7 = 白色      F = 亮白色
     14 //   10= 亮绿 
     15 //   12= 亮红 
     16 //   控制台前景颜色
     17 struct Room 
     18 {
     19     int cap;
     20     int c[7][4];
     21 }room[200];
     22 char *sub[]={"","高等数学","英语    ","c语言   ","思修    "}; 
     23 char *cou[]={"","高等数学","英语","c语言","思修"}; 
     24 void set_position(int x,int y,int n,int m)//重置窗口大小 
     25 {
     26     HANDLE hout = GetStdHandle(STD_OUTPUT_HANDLE); 
     27     SMALL_RECT rc = {x,y,n, m}; // 重置窗口位置和大小
     28     SetConsoleWindowInfo(hout,true ,&rc);
     29 }
     30 void hide()//隐藏光标 
     31 {
     32     HANDLE hout=GetStdHandle(STD_OUTPUT_HANDLE);
     33     CONSOLE_CURSOR_INFO x={1,0};
     34     SetConsoleCursorInfo(hout, &x);
     35 }
     36 
     37 void change_color(int a, int b)//设置颜色,a为字体颜色,b为背景色 
     38 {
     39     HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
     40     SetConsoleTextAttribute(handle, a | b);
     41 }
     42 using namespace std;
     43 void read(int &x,int &pd)//读入整数X,读到了整数pd为1,否则为0 
     44 {
     45     int fh=1;pd=0;
     46     char c;x=0;
     47     while(!isdigit(c=getchar())&&c!='-'&&c!='
    '&&c!=EOF);
     48     if (c=='-'){fh=-1;c=getchar();}
     49     while(isdigit(c))x=x*10+c-'0',c=getchar(),pd=1;
     50     x*=fh;
     51 }
     52 void gotoxy(int x,int y)//指定位置输出 
     53 {
     54     COORD pos;  
     55     pos.X=x;  
     56     pos.Y=y;  
     57     //CONSOLE_SCREEN_BUFFER_INFO csbiInfo;
     58     HANDLE h;
     59     h= GetStdHandle(STD_OUTPUT_HANDLE);
     60     SetConsoleCursorPosition(h,pos);
     61 }
     62 void play(char *s,int delay)//延时输出字符数组 
     63 {
     64     int len=strlen(s);
     65     clock_t start,pause;
     66     start=clock();
     67     for(int i=0;i<len;)
     68     {
     69         if((pause=clock())-start>=delay)
     70         {
     71             printf("%c",s[i++]); 
     72             //cout<<s[i++];
     73             start=pause;
     74         }
     75     }
     76 }
     77 void ssplay(int x,int y,char *s,int cnt )//在(x,y)输出s,闪烁cnt次 
     78 {
     79     char *ss="                      ";
     80     for(int i=1;i<=cnt;i++)
     81     {
     82         gotoxy(x,y); play(ss,0); 
     83         Sleep(100);
     84         gotoxy(x,y); play(s,0);     
     85         Sleep(100);
     86         
     87     }
     88 }
     89 void hx_char(char *s,int x,int y,int n,int m,int xx,int yy,int delay)//回形输出,起点(x,y),终点(xx,yy),长为m,高为n
     90 {
     91     int lx[4]={1,0,-1,0};
     92     int ly[4]={0,1,0,-1};
     93     bool f[300][300]; 
     94     memset(f,0,sizeof(f));
     95     int i=x,j=y,k=0;
     96     gotoxy(i,j);play(s,delay); f[i][j]=1;
     97     while(i!=xx||j!=yy)
     98     {
     99         while(f[lx[k]+i][ly[k]+j]==1||lx[k]+i>=x+m||lx[k]+i<x||ly[k]+j>=y+n||ly[k]+j<y)k=(k+1)%4;
    100         i+=lx[k]; j+=ly[k];
    101         f[i][j]=1;
    102         gotoxy(i,j);
    103         play(s,delay);
    104         //gotoxy(x+2,y+20);
    105         //printf("%d %d %d %d %d %d ",i,j,k,xx,yy,f[i+lx[k]][j+ly[k]]);
    106     }
    107 }
    108 void hx_string(char s[][120],int x,int y,int n,int m,int xx,int yy,int delay)//回形输出,起点(x,y),终点(xx,yy),长为m,高为n,宣告报废 
    109 {
    110     int lx[4]={2,0,-2,0};
    111     int ly[4]={0,1,0,-1};
    112     bool f[300][300]; 
    113     memset(f,0,sizeof(f));
    114     int i=x,j=y,k=0;
    115     char ss[]={"a"};ss[0]=s[i][j]; 
    116     gotoxy(i,j);play(ss,delay); f[i][j]=1;
    117     while(i!=xx||j!=yy)
    118     {
    119         while(f[lx[k]+i][ly[k]+j]==1||lx[k]+i>=x+m||lx[k]+i<x||ly[k]+j>=y+n||ly[k]+j<y)k=(k+1)%4;
    120         i+=lx[k]; j+=ly[k];
    121         f[i][j]=1;
    122         if (k==0){gotoxy(i,j);printf("%c%c",s[j][i],s[j][i+1]);}
    123         if (k==2){gotoxy(i-1,j);printf("%c%c",s[j][i-1],s[j][i]);}
    124         if (k==1||k==3){gotoxy(i,j);printf("%c",s[j][i]);}
    125         Sleep(delay); 
    126         //gotoxy(i,j); ss[0]=s[j][i]; play(ss,delay);
    127         //gotoxy(x+2,y+20);
    128         //printf("%d %d %d %d %d %d ",i,j,k,xx,yy,f[i+lx[k]][j+ly[k]]);
    129     }
    130 }
    131 void start_concole()//加载动画 
    132 {
    133     char *s[4]={"<欢迎来到教室信息管理系统>","制作人: 孟强定,  任梦石, 麦麦提, 吴凡, 李嘉璐","希望你能喜欢!!!!!!!!!!!!","如果不喜欢请按alt+F4"};
    134     gotoxy(45,4);change_color(10,0);play(s[0],20);
    135     change_color(8,0);hx_char("*",20,5,14,75,20,6,10);
    136     change_color(11,0);
    137     gotoxy(25,7);play(s[1],20);
    138     gotoxy(25,9);play(s[2],20);
    139     gotoxy(25,11);play(s[3],20);
    140     change_color(1,192);gotoxy(50,13);printf("加载中");for(int i=1;i<=2;i++){gotoxy(56,13);printf("  ");play(". . . . .",250);gotoxy(56,13);play("           ",250);}
    141 }
    142 void clear()//清空控制台 
    143 {
    144     change_color(7,0);
    145     system("cls");
    146 }
    147 void main_menu()//宣告报废 
    148 {
    149     char *ss={"a"};
    150     char s[30][120]={};
    151     FILE *fin=fopen("main_menu.in","rb");
    152     int j=0;
    153     for(int i=0;i<19;i++)  
    154         {
    155             //while(j<97)s[i][j++]=fgetc(fin);
    156             while((s[i][j]=fgetc(fin))!='
    ') {/*if (s[i][j]=='*'){printf("%d %d
    ",i,j);Sleep(1000);}*/j++;}
    157             //printf("%d %d %s ",i,strlen(s[i]),s[i]);
    158             //printf("%s",s[i]);
    159             j=0;
    160         }
    161     fclose(fin);
    162     for(int i=0;i<19;i++)
    163     for(int j=0;j<strlen(s[i]);j+=2)
    164         {
    165             gotoxy(j,i);
    166             //printf("%d %d 
    ",i,j);
    167             //if (s[i][j]=' ')printf("@");
    168             printf("%c%c",s[i][j],s[i][j+1]);
    169             //if (j>=strlen(s[i])-3)
    170             //printf("%d",strlen(s[i]));
    171             //ss[0]=s[i][j];
    172             //play(ss,50);
    173             //Sleep(20);
    174         }
    175     //printf("%c %c
    ",s[19][4],s[20][5]);
    176 
    177     //hx_string(s,20,5,)
    178     int xx=26,yy=11,n=2,m=63,x=20,y=5;
    179     while(xx!=x-1||yy!=y-1)
    180     {
    181         //hx_char("*",xx,yy,n,m,xx,yy+1,0);
    182         hx_string(s,xx,yy,n,m,xx,yy+1,0);
    183         Sleep(200);
    184         xx--; yy--;
    185         n+=2; m+=2;
    186     }
    187 }
    188 void menu_concole()//菜单信息 
    189 {
    190     char *s[10]={"初始化          ","教室信息管理    ","课程信息管理    ","教室分配        ","退出            ","关机            "};
    191     gotoxy(0,0);
    192     change_color(10,0);gotoxy(53,4);  printf("功能菜单");
    193     change_color(8,16);hx_char("*",20,6,14,75,20,7,0);
    194     int j=0;
    195     for(int i=8;i<=18;i+=2)
    196     {
    197         gotoxy(42,i);
    198         change_color(12,0);printf("%s",s[j++]);
    199         change_color(7,0);printf("       请按%d",j);
    200     }
    201      
    202 }
    203 
    204 void water_end()//过场动画 
    205 {
    206     change_color(8,0);
    207     for(int i=17,j=2,n=20,m=81;n+2&&m+2;i++,j++,n-=2,m-=2)
    208     {
    209         //printf("%d ",n);
    210         hx_char(" ",i-1,j-1,n+2,m+2,i-1,j,0);
    211         if (m==0||n==0)return ;
    212         hx_char("*",i,j,n,m,i,j+1,0);
    213         Sleep(40);
    214     }
    215     Sleep(500);
    216 }
    217 void water_begin()//暂时不用的过场动画 
    218 {
    219     
    220     //menu_concole();
    221     int x=20, y=5,xx=26,yy=12,n=14,m=75;
    222     int i=xx,j=yy;
    223     while(i!=x||j!=y+1)
    224     {
    225         //menu_concole();
    226         //clear();
    227         if (i%2==0) hx_char("|",x,y,n,m,i,j,1);
    228         else  hx_char("-",x,y,n,m,i,j,1);
    229         Sleep(100);    
    230         i--;j--;
    231     }
    232     printf("!!!!");
    233 } 
    234 void end()//结束动画 
    235 {
    236     //system("cls");
    237     water_end();
    238      change_color(1,112);
    239     gotoxy(50,8); printf("欢迎下次再来  !!");
    240     gotoxy(50,11); printf("按任意键关闭窗口");
    241     gotoxy(50,16);
    242     change_color(0,0);
    243     exit(0);
    244 }
    245 void initialize()//初始化 
    246 {
    247     FILE *fp=fopen("classroom.txt","w");
    248     clear(); 
    249     for(int i=1;i<=50;i++)
    250     {
    251         room[i].cap=60;
    252         for(int j=1;j<=5;j++)
    253         for(int k=1;k<=4;k++)
    254             room[i].c[j][k]=rand()%5,fprintf(fp,"%d%c",room[i].c[j][k],k==4?'
    ':' ');    
    255     }
    256     fclose(fp);
    257     change_color(1,192);gotoxy(42,13);printf("初始化中请等待");for(int i=1;i<=2;i++){gotoxy(56,13);printf("  ");play(". . . . .",250);gotoxy(56,13);play("           ",250);}
    258     clear(); 
    259     change_color(12,0);ssplay(47,13,"---初始化成功---",2);
    260     Sleep(500);    
    261 }
    262 void display_room_info(int num,int pd)// 教室信息展示 
    263 {
    264     //printf("!!!  %d  !!!!",room[nu].c[j][i]);
    265     clear();
    266     change_color(8,16);hx_char("*",18,5,14,77,18,6,0);
    267     char *s[]={"星期","","","","",""};
    268     int x=25,y=4; 
    269     gotoxy(x-6,y); change_color(10,0);printf("1-%d教室:",num);
    270     y+=2;
    271     gotoxy(x,y); change_color(11,0);
    272     printf("%s    ",s[0]);
    273     for(int i=1;i<=4;i++)printf("%s           ",s[i]);
    274     printf("%s",s[5]);
    275     x-=6;y+=2;gotoxy(x,y);printf("节次"); 
    276     for(int i=1;i<=4;i++)
    277     for(int j=1;j<=5;j++)
    278     {    
    279         if (j==1){change_color(11,0);y+=2;gotoxy(x,y);printf("  %d           ",i);}
    280         change_color(7,0);printf("%s",sub[room[num].c[j][i]]);
    281         if (j==5)continue;
    282         printf("     ");
    283     }
    284     gotoxy(x-4,y+4);
    285     //if (pd)system("pause"); 
    286     if (pd) {printf("请按任意键退出...");char c=getch();}
    287 } 
    288 void room_change(int num)//教室更改子目录 
    289 {
    290     
    291     char *s[]={"输入无效数据请重新输入","请输入x y z (x为星期,y为节次,z为课程代号)","退出请输入-1","请在此输入:"}; 
    292     int color[]={12,7,7,11};
    293     int x,y,z,flag=true,pd,tot=0;
    294     while(true)
    295     {
    296         clear();
    297         display_room_info(num,0);
    298         gotoxy(18,26);change_color(11,0);if (tot){printf("已成功更改%d次",tot);}
    299         int xx=18,yy=19;
    300         for(int i=0;i<=3;i++)
    301         {
    302             gotoxy(xx,yy);
    303             change_color(color[i],0);
    304             if (i==0&&flag==false)ssplay(xx,yy,s[i],2);
    305             if (i!=0)play(s[i],0);
    306             yy++;
    307         }
    308         xx=70,yy=20;
    309         change_color(6,0);
    310         for(int i=0;i<=4;i++)
    311         {
    312             yy++;
    313             gotoxy(xx,yy);
    314             printf("%d:%s",i,sub[i]);    
    315         } 
    316         change_color(11,0);
    317         gotoxy(31,22);
    318         read(x,pd);if (x==-1)return; if (pd==0){flag=false;continue;} 
    319         read(y,pd);if (pd==0){flag=false;continue;} 
    320         read(z,pd);if (pd==0){flag=false;continue;} 
    321         if(x<=0||x>5||y<=0||y>4||z< 0||z>4){flag=false;continue;} 
    322         flag=true;
    323         room[num].c[x][y]=z;    
    324         display_room_info(num,0);
    325         tot++;
    326         //change_color(12,0);play("更改成功",0); 
    327         //change_color(7,0);play("是否继续更改y/n",0);
    328         //char c=getch();
    329         //if (c=='n')return ; 
    330     }
    331 }
    332 void room_manage_change()//教室更改主目录 
    333 {
    334     int color[]={12,7,7};
    335     char *s[20]={"输入无效数据请重新输入","请输入需要更改的教室的编号x (0<x<=50)","退出请输入-1","请在此输入:"};
    336     int k=0,pd;
    337     while(true)
    338     {
    339         clear();
    340         int x=43,y=9; 
    341         for(int i=0;i<=3;i++)
    342         {
    343             gotoxy(x,y); 
    344             if (i!=0){change_color(11,0);printf("");}
    345             //printf("%d %d ",i,k);
    346             change_color(color[i],0);
    347             if (i==0&&k==1)ssplay(x,y,s[i],2);
    348             if (i!=0) play(s[i],0);
    349             y+=2;
    350         }
    351         int num;
    352         read(num,pd);
    353         if (num==-1)return ;
    354         if (num<=0||num>50)k=1;
    355         if (num>0&&num<=50){room_change(num);k=0;}
    356     }
    357 }
    358 void room_manage_search()//教室查询 
    359 {
    360     int color[]={12,7,7};
    361     char *s[20]={"输入无效数据请重新输入","请输入需要查询的教室的编号x (0<x<=50)","退出请输入-1","请在此输入:"};
    362     int k=0,pd=0;
    363     while(true)
    364     {
    365         clear();
    366         int x=43,y=9; 
    367         for(int i=0;i<=3;i++)
    368         {
    369             gotoxy(x,y); 
    370             if (i!=0){change_color(11,0);printf("");}
    371             //printf("%d %d ",i,k);
    372             change_color(color[i],0);
    373             if (i==0&&k==1)ssplay(x,y,s[i],2);
    374             if (i!=0) play(s[i],0);
    375             y+=2;
    376         }
    377         int num;
    378         //scanf("%d",&num);
    379         read(num,pd);
    380         if (num==-1)return ;
    381         if (num<=0||num>50)k=1;
    382         if (num>0&&num<=50){display_room_info(num,1);k=0;}
    383     }
    384 }
    385 
    386 void room_manage()//教室信息管理主菜单 
    387 {
    388 
    389     char *s[20]={"|              |"," 查询   请按1 "," 更改   请按2 "," 退出   请按3 ","|_            _|","教室信息管理"}; 
    390     int delay=20;
    391     while(true)
    392     {
    393         clear();
    394         gotoxy(50,4);change_color(10,0);play(s[5],0);
    395         change_color(8,16);hx_char("*",20,6,14,75,20,7,0);
    396         int x=47,y=9;    
    397         for(int i=1;i<=3;i++,y+=2)
    398         {
    399             gotoxy(x,y);change_color(12,0);play(s[0],0);
    400             gotoxy(x,y+1); 
    401             change_color(12,0);  play("|",0);
    402             change_color(7,0);   play(s[i],delay);
    403             change_color(12,0);  play("|",0);
    404             
    405         }
    406         gotoxy(x,y);change_color(12,0);play(s[4],0);
    407         char s=getch();
    408         if (s=='1') room_manage_search();
    409         if (s=='2') room_manage_change();
    410         if (s=='3') return;
    411         delay=0;
    412     }
    413     
    414 }
    415 bool sub_judge(int x,int y,int z,int d)//判断教室 
    416 {
    417     return room[x].c[y][z]==d?true:false;
    418 }
    419 void display_course_info(int kx,int ky,int z,int pd,int &cnt)// 教室信息展示 
    420 {
    421     //printf("!!!  %d  !!!!",room[nu].c[j][i]);
    422     char *s[]={"",""}; 
    423     clear();
    424     change_color(8,16);hx_char("*",18,5,14,77,18,6,0);
    425     int x=25,y=4;
    426     cnt=0; 
    427     gotoxy(x-6,y); change_color(10,0);
    428     printf("星期%d,第%d节课,%s%s课的教室:",kx,ky,z==0?s[0]:s[1],cou[z]);
    429      y+=4;
    430     gotoxy(x,y); change_color(11,0);
    431     for(int i=1;i<=50;i++)
    432     {
    433         if (room[i].c[kx][ky]==z){printf("%-2d:%2d教室    ",++cnt,i);if (cnt%5==0){y+=2;gotoxy(x,y);}}
    434     }
    435     if (cnt==0)printf("无!!!"); 
    436     gotoxy(18,20);
    437     //if (pd)system("pause"); 
    438     if (pd) {printf("请按任意键退出...");gotoxy(0,0);char c=getch();}
    439     
    440 } 
    441 void course_change(int kx,int ky,int z)//课程更改子目录 
    442 {
    443     char *s[20]={"输入无效数据请重新输入","请输入x y(x为教室号,y为所改课程)","退出请输入-1","请在此输入:"};
    444     int color[]={12,7,7,11};
    445     int rom,course,tot=0,flag=true,pd,cnt; 
    446     while(true)
    447     {
    448         display_course_info(kx,ky,z,0,cnt);
    449         gotoxy(18,26);if (tot){printf("已成功更改%d次",tot);}
    450         int x=18,y=20;
    451         for(int i=0;i<=3;i++)
    452         {
    453             gotoxy(x,y);
    454             change_color(color[i],0);
    455             if (i==0&&flag==false)ssplay(x,y,s[i],2);
    456             if (i!=0)play(s[i],0);
    457             y++;
    458         }
    459         change_color(6,0);
    460         x=70;y=20;
    461         for(int i=0;i<=4;i++)
    462         {
    463             y++;
    464             gotoxy(x,y);
    465             printf("%d:%s",i,sub[i]);    
    466         } 
    467         change_color(11,0);gotoxy(29,23);
    468         read(rom,pd);if (pd==0){flag=false;continue;}if (rom==-1)return;
    469         read(course,pd);if (pd==0){flag=false;continue;} 
    470         if (rom<=0||rom>50||course<0||course>4||cnt==0||sub_judge(rom,kx,ky,z)==false){flag=false;continue;}
    471         flag=true;
    472         room[rom].c[kx][ky]=course;
    473         tot++;    
    474     }
    475 }
    476 void course_manage_change()//课程更改主目录 
    477 {
    478     int color[]={12,7,7,12};
    479     char *s[20]={"输入无效数据请重新输入","请输入x y z(x为星期,y为节次,z为课程代号)","退出请输入-1","请在此输入:"};
    480     int pd=0,flag=0,kx,ky,z,num,tot=0;
    481     while(true)
    482     {
    483         clear();
    484         int x=43,y=9; 
    485         for(int i=0;i<=3;i++)
    486         {
    487             gotoxy(x,y); 
    488             if (i!=0){change_color(11,0);printf("");}
    489             //printf("%d %d ",i,k);
    490             change_color(color[i],0);
    491             if (i==0&&flag==1)ssplay(x,y,s[i],2);
    492             if (i!=0) play(s[i],0);
    493             y+=2;
    494         }
    495         change_color(6,0);
    496         x=20;y=10;
    497         for(int i=0;i<=4;i++)
    498         {
    499             y++;
    500             gotoxy(x,y);
    501             printf("%d:%s",i,sub[i]);    
    502         } 
    503         flag=0;
    504         gotoxy(56,15);
    505         change_color(11,0);
    506         read(kx,pd);if (kx==-1)return ;if (pd==0){flag=1;continue;} 
    507         read(ky,pd);if (pd==0){flag=1;continue;} 
    508         read(z,pd);if (pd==0){flag=1;continue;} 
    509         if(kx<=0||kx>5||ky<=0||ky>4||z< 0||z>4){flag=1;continue;}     
    510         course_change(kx,ky,z);
    511         //if (num<=0||num>50)k=1;
    512         //if (num>0&&num<=50){display_room_info(num,1);k=0;}
    513     }
    514 }
    515 void course_manage_search()//课程查询 
    516 {
    517     int color[]={12,7,7,12};
    518     char *s[20]={"输入无效数据请重新输入","请输入x y z(x为星期,y为节次,z为课程代号)","退出请输入-1","请在此输入:"};
    519     int pd=0,flag=0,kx,ky,z,num,cnt;
    520     while(true)
    521     {
    522         clear();
    523         int x=43,y=9; 
    524         for(int i=0;i<=3;i++)
    525         {
    526             gotoxy(x,y); 
    527             if (i!=0){change_color(11,0);printf("");}
    528             //printf("%d %d ",i,k);
    529             change_color(color[i],0);
    530             if (i==0&&flag==1)ssplay(x,y,s[i],2);
    531             if (i!=0) play(s[i],0);
    532             y+=2;
    533         }
    534         change_color(6,0);
    535         x=20;y=10;
    536         for(int i=0;i<=4;i++)
    537         {
    538             y++;
    539             gotoxy(x,y);
    540             printf("%d:%s",i,sub[i]);    
    541         } 
    542         flag=0;
    543         gotoxy(56,15);
    544         change_color(11,0);
    545         read(kx,pd);if (kx==-1)return ;if (pd==0){flag=1;continue;} 
    546         read(ky,pd);if (pd==0){flag=1;continue;} 
    547         read(z,pd);if (pd==0){flag=1;continue;} 
    548         if(kx<=0||kx>5||ky<=0||ky>4||z< 0||z>4){flag=1;continue;}     
    549         display_course_info(kx,ky,z,1,cnt);
    550         //if (num<=0||num>50)k=1;
    551         //if (num>0&&num<=50){display_room_info(num,1);k=0;}
    552     }
    553 }
    554 void course_manage()//课程信息管理主菜单 
    555 {
    556     char *s[20]={"|              |"," 查询   请按1 "," 更改   请按2 "," 退出   请按3 ","|_            _|","课程信息管理"}; 
    557     int delay=20;
    558     while(true)
    559         {
    560         clear();
    561         gotoxy(50,4);change_color(10,0);play(s[5],0);
    562         change_color(8,16);hx_char("*",20,6,14,75,20,7,0);
    563         int x=47,y=9;    
    564         for(int i=1;i<=3;i++,y+=2)
    565         {
    566             gotoxy(x,y);change_color(12,0);play(s[0],0);
    567             gotoxy(x,y+1); 
    568             change_color(12,0);  play("|",0);
    569             change_color(7,0);   play(s[i],delay);
    570             change_color(12,0);  play("|",0);
    571             
    572         }
    573         gotoxy(x,y);change_color(12,0);play(s[4],0);
    574         char s=getch();
    575         if (s=='1') course_manage_search();
    576         if (s=='2') course_manage_change();
    577         if (s=='3') return;
    578         delay=0;
    579     }
    580 }
    581 void room_distribute_low()
    582 {
    583         int color[]={12,7,7,12};
    584     char *s[20]={"输入无效数据请重新输入","请输入x y (x为星期,y为节次)","退出请输入-1","请在此输入:","人工分配"};
    585     int pd=0,flag=0,kx,ky,num;
    586     while(true)
    587     {
    588         clear();
    589         gotoxy(50,4);change_color(10,0);play(s[4],0);
    590         change_color(8,16);hx_char("*",20,6,14,75,20,7,0);
    591         int x=43,y=9; 
    592         //for(int i=1;i<=50;i++)if (room[i].c[) 
    593         for(int i=0;i<=3;i++)
    594         {
    595             gotoxy(x,y); 
    596             if (i!=0){change_color(11,0);printf("");}
    597             //printf("%d %d ",i,k);
    598             change_color(color[i],0);
    599             if (i==0&&flag==1)ssplay(x,y,s[i],2);
    600             if (i!=0) play(s[i],0);
    601             y+=2;
    602         }
    603         flag=0;
    604         gotoxy(56,15);
    605         change_color(11,0);
    606         read(kx,pd);if (kx==-1)return ;if (pd==0){flag=1;continue;} 
    607         read(ky,pd);if (pd==0){flag=1;continue;} 
    608         if(kx<=0||kx>5||ky<=0||ky>4){flag=1;continue;}     
    609         course_change(kx,ky,0);
    610         //if (num<=0||num>50)k=1;
    611         //if (num>0&&num<=50){display_room_info(num,1);k=0;}
    612     }
    613 } 
    614 void distribute(int kx,int ky,int num,int course)//自动分配 
    615 {
    616     for(int i=1;i<=50&&num>0;i++)
    617     {
    618         if (room[i].c[kx][ky]==0){room[i].c[kx][ky]=course;num--;}
    619     }
    620 }
    621 void distribute_smart(int kx,int ky)//批量自动分配子目录 
    622 {
    623     char *s[20]={"输入无效数据请重新输入","请输入x y(x为教室号数量,y为所改课程)","退出请输入-1","请在此输入:"};
    624     int color[]={12,7,7,11};
    625     int num,course,tot=0,flag=true,pd,cnt; 
    626     while(true)
    627     {
    628         display_course_info(kx,ky,0,0,cnt);
    629         gotoxy(18,26);if (tot){printf("已成功更改%d次",tot);}
    630         int x=18,y=20;
    631         for(int i=0;i<=3;i++)
    632         {
    633             gotoxy(x,y);
    634             change_color(color[i],0);
    635             if (i==0&&flag==false)ssplay(x,y,s[i],2);
    636             if (i!=0)play(s[i],0);
    637             y++;
    638         }
    639         change_color(6,0);
    640         x=70;y=20;
    641         for(int i=0;i<=4;i++)
    642         {
    643             y++;
    644             gotoxy(x,y);
    645             printf("%d:%s",i,sub[i]);    
    646         } 
    647         gotoxy(29,23); change_color(11,0);
    648         read(num,pd);if (pd==0){flag=false;continue;}if (num==-1)return;
    649         read(course,pd);if (pd==0){flag=false;continue;} 
    650         if (num<=0||num>cnt||course<=0||course>4){flag=false;continue;}
    651         distribute(kx,ky,num,course);
    652         tot++;
    653     }
    654 }
    655 void room_distribute_smart()//批量自动分配主目录 
    656 {
    657     int color[]={12,7,7,12};
    658     char *s[20]={"输入无效数据请重新输入","请输入x y (x为星期,y为节次)","退出请输入-1","请在此输入:","批量分配"};
    659     int pd=0,flag=0,kx,ky,num;
    660     while(true)
    661     {
    662         clear();
    663         gotoxy(50,4);change_color(10,0);play(s[4],0);
    664         change_color(8,16);hx_char("*",20,6,14,75,20,7,0);
    665         int x=43,y=9; 
    666         //for(int i=1;i<=50;i++)if (room[i].c[) 
    667         for(int i=0;i<=3;i++)
    668         {
    669             gotoxy(x,y); 
    670             if (i!=0){change_color(11,0);printf("");}
    671             //printf("%d %d ",i,k);
    672             change_color(color[i],0);
    673             if (i==0&&flag==1)ssplay(x,y,s[i],2);
    674             if (i!=0) play(s[i],0);
    675             y+=2;
    676         }
    677         flag=0;
    678         gotoxy(56,15);
    679         change_color(11,0);
    680         read(kx,pd);if (kx==-1)return ;if (pd==0){flag=1;continue;} 
    681         read(ky,pd);if (pd==0){flag=1;continue;} 
    682         if(kx<=0||kx>5||ky<=0||ky>4){flag=1;continue;}     
    683         distribute_smart(kx,ky);
    684         //if (num<=0||num>50)k=1;
    685         //if (num>0&&num<=50){display_room_info(num,1);k=0;}
    686     }
    687 }
    688 void room_distribute()//教室分配 
    689 {
    690     char *s[20]={"|                  |"," 批量分配   请按1 "," 人工分配   请按2 "," 退出       请按3 ","|_                _|","课程信息管理"}; 
    691     int delay=20;
    692     while(true)
    693         {
    694         clear();
    695         gotoxy(50,4);change_color(10,0);play(s[5],0);
    696         change_color(8,16);hx_char("*",20,6,14,75,20,7,0);
    697         int x=47,y=9;    
    698         for(int i=1;i<=3;i++,y+=2)
    699         {
    700             gotoxy(x,y);change_color(12,0);play(s[0],0);
    701             gotoxy(x,y+1); 
    702             change_color(12,0);  play("|",0);
    703             change_color(7,0);   play(s[i],delay);
    704             change_color(12,0);  play("|",0);
    705             
    706         }
    707         gotoxy(x,y);change_color(12,0);play(s[4],0);
    708         char s=getch();
    709         if (s=='1') room_distribute_smart();
    710         if (s=='2') room_distribute_low();
    711         if (s=='3') return;
    712         delay=0;
    713     }
    714 } 
    715 int main()
    716 {  
    717     //system("start 1.mp3");
    718     set_position(0,0,120,25);//设置控制台大小 
    719     SetConsoleTitleA("教室信息管理系统---CUMTB 1.0");//设置控制台标题 
    720     clear();
    721     hide();
    722     start_concole(); water_end(); Sleep(200);
    723     //water_begin();
    724     while(true) 
    725     {
    726         clear();
    727         menu_concole();
    728         //gotoxy(21,20);printf("请在此输入:"); 
    729         char s=getch();
    730         if (s=='1') initialize();
    731         if (s=='2') room_manage();
    732         if (s=='3') course_manage();
    733         if (s=='4') room_distribute();
    734         if (s=='5')end();
    735         if (s=='6')system("shutdown -s -c '你咋这么皮呢!!!'");
    736         if (s=='7')system("shutdown -a");    
    737     }
    738     return 0;
    739 }
    View Code
  • 相关阅读:
    曾国藩家书人但有恒、事无不成
    pythonredis
    tableSorter使用介绍
    Python模块学习 subprocess 创建子进程
    曾国藩家书用人必先知人
    身份证号码的规则及验证原理
    KeyDown,KeyPress 和KeyUp 之我谈(更新版本)
    Python基础综合练习
    熟悉常用的Linux操作
    大数据概述
  • 原文地址:https://www.cnblogs.com/mmmqqdd/p/11026674.html
Copyright © 2020-2023  润新知