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

📄 evo03.cpp

📁 学籍管理
💻 CPP
📖 第 1 页 / 共 5 页
字号:
                cin>>str; 
                for (i=0,j=0;i<stu_num;i++)
                {
                    if (strcmp(stu[i].name,str)==0)
                    stu_flag[j++]=i;
                }
                findf=j;
                if(j==0)
                {
                    system("CLS");
                    cout<<"没有找到相关姓名";
                    found=0;
                }
            }
            else if(c=='u'||c=='U') 
            {
                found=1; 
                cout<<"________________________________________________________________________________\n\n";
                cout<<"请输入你要查找的学号\n";
                cin>>str; 
                for (i=0,j=0;i<stu_num;i++)
                {
                    if (strcmp(stu[i].num,str)==0)
                    stu_flag[j++]=i;
                }
                findf=j;
                if(j==0)
                {
                    system("CLS");
                    cout<<"没有找到相关学号";
                    found=0;
                }
            }
            if(found==1)
            {
                flag=1;
                while(flag)
                {
                    system("CLS");                        
                    flr_flag=0;
                    flag=1;
                    while (flag)//10学生 
                    {
                        if (flr_flag==0)
                        {
                            slct=0;
                            system("CLS");
                            printf ("%6s%10s%12s%6s%12s%12s%12s\n________________________________________________________________________________\n","序号","姓名","学号","性别","学院专业","政治面貌","籍贯");
                            for (i=0;i<findf;i++)
                            printf ("%6d%10s%12s%6s%12s%12s%12s\n",i,stu[stu_flag[i]].name,stu[stu_flag[i]].num,stu[stu_flag[i]].sex,stu[stu_flag[i]].pro,stu[stu_flag[i]].pstat,stu[stu_flag[i]].jg);
                            printf ("\n________________________________________________________________________________\n");
                            cout<<"用数字键选择学生\n"; 
                            printf ("R=滚动到右半页     X=回到主菜单\n"); 
                            while (c=getch(),c>'0'+j&&c<'0'&&c!='r'&&c!='R'&&c!='x'&&c!='X')
                            ;
                            if (c=='r'||c=='R')
                            lr_flag=1;
                            if (c=='x'||c=='X')
                            {
                                system("CLS");
                                flag=0;
                            }      
                            else
                            slct=1;
                        }                
                        else 
                        {
                            slct=0;
                            system("CLS");
                            printf ("%6s%10s%12s%16s%21s\n________________________________________________________________________________\n","序号","姓名","生日","宿舍电话","邮箱");
                            for (i=0;i<findf;i++)
                            printf ("%6d%10s%12s%16s%21s\n",i,stu[stu_flag[i]].name,stu[stu_flag[i]].birth,stu[stu_flag[i]].tel,stu[stu_flag[i]].mail);
                            printf ("\n________________________________________________________________________________\n");
                            cout<<"用数字键选择学生\n"; 
                            printf ("L=滚动到左半页     X=回到主菜单\n"); 
                            while (c=getch(),c>'0'+j&&c<'0'&&c!='l'&&c!='L'&&c!='x'&&c!='X')
                            ;
                            if (c=='l'||c=='L')
                            flr_flag=0;
                            if (c=='x'||c=='X')
                            {
                                system("CLS");
                                flag=0;
                            }
                            else
                            slct=1;
                        }//end right
                        if (slct==1)
                        {
                            this_flag=stu_flag[c-'0'];
                            cflag=1;
                            thislr_flag=0;
                            while (cflag)
                            {
                                if (thislr_flag==0)
                                {
                                    amdflag=0;
                                    system("CLS");
                                    printf ("%10s%12s%6s%12s%12s%12s\n________________________________________________________________________________\n","姓名","学号","性别","学院专业","政治面貌","籍贯");
                                    printf ("%10s%12s%6s%12s%12s%12s\n",stu[this_flag].name,stu[this_flag].num,stu[this_flag].sex,stu[this_flag].pro,stu[this_flag].pstat,stu[this_flag].jg);
                                    printf ("\n________________________________________________________________________________\n");
                                    cout<<"A=修改\n"; 
                                    printf ("R=滚动到右半页     X=回到主菜单\n"); 
                                    while (c=getch(),c!='x'&&c!='X'&&c!='r'&&c!='R'&&c!='a'&&c!='A')
                                    ;
                                    if (c=='r'||c=='R')
                                    thislr_flag=1;
                                    if (c=='x'||c=='X')
                                    {
                                        system("CLS");
                                        cflag=0;
                                    }
                                    if (c=='a'||c=='A')
                                    amdflag=1;//1 for 修改 
                                    else if (c=='d'||c=='D')
                                    amdflag=2;//2 for 删除           
                                }//end left
                                else 
                                {
                                    amdflag=0;
                                    system("CLS");
                                    printf ("%10s%12s%16s%21s\n________________________________________________________________________________\n","姓名","生日","宿舍电话","邮箱");
                                    printf ("%10s%12s%16s%21s\n",stu[this_flag].name,stu[this_flag].birth,stu[this_flag].tel,stu[this_flag].mail);
                                    printf ("\n________________________________________________________________________________\n");
                                    cout<<"A=修改\n";  
                                    printf ("L=滚动到左半页     X=回到主菜单\n"); 
                                    while (c=getch(),c!='x'&&c!='X'&&c!='l'&&c!='L'&&c!='a'&&c!='A')
                                    ;
                                    if (c=='l'||c=='L')
                                    thislr_flag=0;
                                    if (c=='x'||c=='X')
                                    {
                                        system("CLS");
                                        return 0;
                                    }
                                   if (c=='a'||c=='A')
                                   amdflag=1;//1 for 修改
                                   else if (c=='d'||c=='D')
                                   amdflag=2;//2 for 删除 
                               }//end right
                               if (amdflag==1)
                               {
                                   amd_cflag=1; 
                                   while (amd_cflag)
                                   {
                                       cout<<"________________________________________________________________________________\n\n";
                                       cout<<"N=修改姓名       U=修改学号    S=修改性别   P=修改专业\n";
                                       cout<<"O=修改政治面貌   J=修改籍贯   B=修改生日   H=修改电话\n";
                                       cout<<"M=修改邮箱  X=取消\n";
                                       while (c=getch(),c!='n'&&c!='N'&&c!='u'&&c!='U'&&c!='s'&&c!='S'&&c!='p'&&c!='P'
                                       &&c!='o'&&c!='O'&&c!='j'&&c!='J'&&c!='b'&&c!='B'&&c!='h'&&c!='H'&&c!='m'&&c!='M'&&c!='x'&&c!='X')
                                       ;
                                       if (c>='a')
                                       c-=32;
                                       switch (c)
                                       {
                                           case 'N':cout<<"请输入名字\n";cin>>stu[this_flag].name;cout<<"\n修改成功\n\n";break; 
                                           case 'U':cout<<"请输入学号\n";
                                                    cin>>str;
                                                    for (i=0,chongfu=0;i<stu_num;i++)
                                                    {
                                                        if (strcmp(str,stu[i].num)==0&&this_flag!=i) chongfu=1;
                                                    }
                                                    if (chongfu==1)
                                                    {
                                                        cout<<"该学号已存在,修改失败!";
                                                    }
                                                    else
                                                    { 
                                                        cout<<"\n修改成功\n\n";
                                                        strcpy(stu[i].num,str);
                                                    }    
                                                    break; 
                                           case 'S':cout<<"请输入性别\n";cin>>stu[this_flag].sex;cout<<"\n修改成功\n\n";break; 
                                           case 'P':cout<<"请输入专业\n";cin>>stu[this_flag].pro;cout<<"\n修改成功\n\n";break; 
                                           case 'O':cout<<"请输入政治面貌\n";cin>>stu[this_flag].pstat;cout<<"\n修改成功\n\n";break; 
                                           case 'J':cout<<"请输入籍贯\n";cin>>stu[this_flag].jg;cout<<"\n修改成功\n\n";break; 
                                           case 'B':cout<<"请输入生日\n";cin>>stu[this_flag].birth;cout<<"\n修改成功\n\n";break; 
                                           case 'H':cout<<"请输入电话\n";cin>>stu[this_flag].tel;cout<<"\n修改成功\n\n";break; 
                                           case 'M':cout<<"请输入邮箱\n";cin>>stu[this_flag].mail;cout<<"\n修改成功\n\n";break; 
                                           case 'X':amd_cflag=0;break; 
                                       }
                                   } 
                               }//修改 
                               else if (amdflag==2)
                               {
                                   cout<<"确定要删除该学生吗?\nY=是     N=否\n";
                                   while (c=getch(),c!='y'&&c!='Y'&&c!='n'&&c!='N')
                                   ;
                                   if (c=='y'||c=='Y')
                                   {
                                       stu_num--;
                                       strcpy(stu[this_flag].num,"zzzzzzzzzz");
                                       deleteflag=1;
                                       cout<<"删除成功!\n"; 
                                   }
                                   else
                                   deleteflag=0;                                    
                               }//删除
                               if (amdflag==1||(amdflag==2&&deleteflag==1))
                               {
                                   qsort(stu,stu_num,sizeof(stu[0]),cmp_save);
                                   fclose(fpinfo);
                                   fpinfo=fopen("data\\info.txt","w");
                                   fprintf(fpinfo,"%d\n",stu_num);
                                   for (i=0;i<stu_num;i++)
                                   fprintf (fpinfo,"$%s$%s$%s$%s$%s$%s$%s$%s$%s$%s$\n",stu[i].un,stu[i].name,stu[i].num,stu[i].sex,stu[i].pro,stu[i].pstat,
                                   stu[i].jg,stu[i].birth,stu[i].tel,stu[i].mail);  
                               }//保存           
                            }//end while
                        }//end 1学生界面              
                    }//end while 
                }//end 10学生界面           
            }//end 找到    
        }//end 姓名 
    }//end 查找             
}    

int chkcrcl()
{
    int i,j,crcl_ccl,ef;
    char c,c_stat[3][9]={"未开通","开通","停止选课"}; 
    system("CLS");
    fpcrcl=fopen("data\\crcl.txt","r+");
    if (fpcrcl==NULL)
    {
        fpcrcl=fopen("data\\crcl.txt","w+");
        fprintf(fpcrcl,"0\n");
        rewind(fpcrcl);
    }
    fscanf(fpcrcl,"%d",&crcl_num);
    for (i=0;i<crcl_num;i++)
    fscanf(fpcrcl," $%[^$]$%[^$]$%f$%[^$]$%[^$]$%[^$]$%d$%d$%d$",crcl[i].cnum,crcl[i].cname,&crcl[i].cscore,crcl[i].cteacher
    ,crcl[i].croom,crcl[i].ckkr,&crcl[i].cstat,&crcl[i].ctotal,&crcl[i].ccurrent);
    for (i=0;i<stu_num;i++)
    {
        fscanf(fpcrcl,"%f",&stu_score[i]);
        for (j=0;j<crcl_num;j++)
        fscanf(fpcrcl,"%d",&crcl_stu[i][j]);
    }    
    crcl_ccl=1;
    while (crcl_ccl)
    {
        system("CLS"); 
        printf ("%6s%12s%12s%8s%12s%10s%20s\n","序号","班号","科目名","学分数","任课老师","选课状态","当前学生数/学生上限");
        printf ("________________________________________________________________________________\n");
        for (i=0;i<crcl_num;i++)
        printf ("%6d%12s%12s%8.1f%12s%10d%10d/%-3d\n",i+1,crcl[i].cnum,crcl[i].cname,crcl[i].cscore,crcl[i].cteacher,
        c_stat[crcl[i].cstat],crcl[i].ccurrent,crcl[i].ctotal);
        printf ("\n________________________________________________________________________________\n");
        while (1)
        {
            cout<<"请输入要查看的班的序号,输入0返回主菜单\n";
            cin>>ef;
            if (ef==0) 
            return 0;
            if (ef<0||ef>crcl_num)
            {
                cout<<"无效的序号,请再次输入";
            }
            else
            break; 
        }
        ef--;
        {
            system("CLS");
            printf("班号:%16s12%s\n",crcl[ef].cnum,crcl[ef].cname);
            printf("学分:%16.1f\n",crcl[ef].cscore);
            printf("任课老师:%12s      上课课室:%12s\n",crcl[ef].cteacher,crcl[ef].croom);
            printf("开课人:%14s      开课状态:%12s\n",crcl[ef].ckkr,c_stat[crcl[ef].cstat]);
            printf("\n上课学生(%d)\n",crcl[ef].ccurrent);
            printf("%12s%12s%6s%12s\n","学号","姓名","性别","专业");
            printf("________________________________________________________________________________\n\n");
            for (i=0;i<stu_num;i++)
            {
                if (crcl_stu[i][ef]==3)
                printf ("%12s%12s%6s%12s\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].pro);
            }
            printf("________________________________________________________________________________\n");
            printf("按X键返回课程列表\n");
            while(c=getch(),c!='X'&&c!='x')
            ;        
        }//进入查看    
    }    
}


int xk()
{

⌨️ 快捷键说明

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