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

📄 evo03.cpp

📁 学籍管理
💻 CPP
📖 第 1 页 / 共 5 页
字号:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#include <iostream>
#include <windows.h>
using namespace std;

FILE *fppw,*fpmsg,*fpinfo,*fpa,*fpcrcl,*fptch;


static char usn[20],rlname[11];
static int crcl_num,tch_num,stu_num,sj,stu_flag[100],crcl_stu[100][50],log_stu;
static float stu_score[100];

static struct curriculum
{
    char cnum[10];
    char cname[11];
    float cscore;
    char cteacher[11];
    char croom[11];
    char ckkr[11];
    int cstat;
    int ctotal;
    int ccurrent;
}crcl[50];
   
static struct student
{
    char un[20];
    char name[9];
    char num[11];
    char sex[5];
    char pro[11];
    char pstat[11];    
    char jg[11];
    char birth[11];
    char tel[15];
    char mail[50];
}stu[101];

static struct teacher
{
    char un[20];
    char name[9];
}tch[50];    

static struct anc
{
    char title[51];
    char fbz[20];
    int contentlen;
    char content[10000];
    char date[20];
}a[10]; 

static int st;
int pf();
int cjb();//
int loadinfo();//
int ancmnt();//
int login ();//
int menu();//
int chkinfo();// 
int amdinfo();// 
int chkcrcl();//
int xk();// 
int amdcrcl();//
int msg();//
int acct();//学生部分未完成,删除本身帐号未完成// 

//-----------------------cmps----------------------//

int anccmp( const void *a ,const void *b)  
{  
return strcmp((*(anc *)b).date,(*(anc *)a).date);  
}

int cmp_save( const void *a ,const void *b)  
{  
return strcmp(((student *)a)->un,((student *)b)->un);
}

int cmpn( const void *a ,const void *b)  
{  
return sj*strcmp(((student *)a)->name,((student *)b)->name);
}

int cmpu( const void *a ,const void *b)  
{  
return sj*strcmp(((student *)a)->num,((student *)b)->num);
}

int cmps( const void *a ,const void *b)  
{  
return sj*strcmp(((student *)a)->sex,((student *)b)->sex);
}

int cmpp( const void *a ,const void *b)  
{  
return sj*strcmp(((student *)a)->pro,((student *)b)->pro);
}

int cmpo( const void *a ,const void *b)  
{  
return sj*strcmp(((student *)a)->pstat,((student *)b)->pstat);
}

int cmpj( const void *a ,const void *b)  
{  
return sj*strcmp(((student *)a)->jg,((student *)a)->jg);
}

int cmpb( const void *a ,const void *b)  
{  
return sj*strcmp(((student *)a)->birth,((student *)a)->birth);
}

//-----------------------cmps----------------------//

int main ()
{
    while(st=login (),st==3)
    ;
    menu();
    return 0;
}



int login ()
{
    char c,psw[30],usnl[20],pswl[30],pw_num;
    int i,j,st=3,rst;
    while (st==3)
    {
        fppw=fopen("data\\pw.txt","r+");
        if (fppw==NULL)
        {
            system("mkdir data");
            system("mkdir data\\msg");
            fppw=fopen("data\\pw.txt","w+");
            fprintf(fppw,"1\n$admin$123456$0$\n");
            rewind(fppw);
            system("CLS");
            cout<<"\n\n     欢迎使用学习本管理系统,初始化软件     \n\n            管理员帐号admin  密码123456 \n\n\n                ";
            system("pause"); 
        }
        system ("CLS");
        for (i=0;i<6;i++)
        cout<<"\n";
        cout<<"                           学  籍  管  理  系  统    \n\n\n\n";
        cout<<"         帐号:";
        gets(usn);
        cout<<"\n\n         密码:";
        for (i=0;;)
        {
            c=getch();
            if (c==13)
            {
                psw[i]='\0';
                break;
            }
            if (c=='\b')
            {
                if (i>0)
                {
                    printf ("\b \b");
                    i--;
                }    
                else ;
            }
            else
            {
                printf ("*");
                psw[i++]=c;
            }
        }
        
        fscanf(fppw,"%d",&pw_num);
        j=0;
        while(j++<pw_num)
        {
            fscanf(fppw," $%[^$]$%[^$]$%d$",usnl,pswl,&rst);
            if (strcmp(usn,usnl)==0&&strcmp(psw,pswl)==0)
            {
                loadinfo();
                fclose(fppw);
                st=rst;
                return rst;
            } 
        }
        fclose(fppw);
        if (st<3)
        return st;//0 ad,1 tc,2 stu,3 again
        else 
        {
            system("CLS");
            cout<<"\n\n\n\n\n\n\n\n                   输入的帐号或密码或错误,或者用户不存在!\n\n\n\n                            "; 
            system("pause"); 
        }    
    }    
}



int loadinfo()
{
    int i;
    char c;
    fpinfo=fopen("data\\info.txt","r+");
    if (fpinfo==NULL)
    {
        fpinfo=fopen("data\\info.txt","w+");
        fprintf (fpinfo,"0\n");
        rewind(fpinfo);
    }
    fscanf (fpinfo,"%d",&stu_num);
    for (i=0;i<stu_num;i++)
    {
        fscanf (fpinfo," $%[^$]$%[^$]$%[^$]$%[^$]$%[^$]$%[^$]$%[^$]$%[^$]$%[^$]$%[^$]$",&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);
        if (st==2&&strcmp(usn,stu[i].un)==0)
        log_stu=i;
    }
    fclose(fpinfo);
    fptch=fopen("data\\teacher.txt","r+");
    if (fptch==NULL)
    {
        fptch=fopen("data\\teacher.txt","w+");
        fprintf(fptch,"0\n");
        rewind(fptch);
    }
    fscanf(fptch,"%d",&tch_num);
    for (i=0;i<tch_num;i++)
    {
        fscanf(fptch," $%[^$]$%[^$]$",tch[i].un,tch[i].name);
        if (strcmp(usn,tch[i].un)==0)
        strcpy(rlname,tch[i].name);
    }
    fclose(fptch);
    fpcrcl=fopen("data\\crcl.txt","r+");
    if (fpcrcl==NULL)
    {
        fpcrcl=fopen("data\\crcl.txt","w+");
        fprintf(fpcrcl,"0\n");
        rewind(fpcrcl);
    }
    fclose(fpcrcl);
    if (st==0)
    strcpy(rlname,"管理员");  
    return 0;
}



int ancmnt()
{
    SYSTEMTIME time,*t;
    int i,j,an,flag,temp,inputflag;
    char c,c1,c2,cinput;   
    FILE *tpt[10][2];
    fpa=fopen("data\\ancmnt.txt","r+");
    if (fpa==NULL)
    {
        fpa=fopen("data\\ancmnt.txt","w+");
        fprintf (fpa,"0\n");
        rewind(fpa);
    }
    fscanf (fpa,"%d",&an);
    for (i=0;i<an;i++)
    {
        fscanf(fpa," $%[^$]$%[^$]$%[^$]$%d\n",a[i].title,a[i].fbz,a[i].date,&a[i].contentlen);
        tpt[i][0]=tpt[i][1]=fpa;
        for (j=0;j<a[i].contentlen;j++)
        a[i].content[j]=fgetc(fpa);
    }
    for (i=an;i<10;i++)
    strcpy(a[i].date,"0000-00-00");
    while (1)
    {
        system("CLS");
        cout<<"                 公 告 栏\n";
        cout<<"   _____________________________________\n\n";
        for (i=0;i<an;i++)
        {
            printf ("%d. %s (%s,%s)\n",i,a[i].title,a[i].fbz,a[i].date);
        }

⌨️ 快捷键说明

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