精华内容
下载资源
问答
  • jsp写的学生考勤信息系统,可用于毕业设计,平时上课完成作业。(SP(全称JavaServer Pages)是由Sun Microsystems公司主导创建的一种动态网页技术标准。JSP部署于网络服务器上,可以响应客户端发送的请求,并根据...
  • 信 阳 师 范 学 院 课 程 设 计 课 程 C++程序设计 题 目 学生考勤信息管理系统 院 系 计算机与信息技术学院 专业班级 2013 级软件工程 学生姓名 学生学号 指导教师 20 16 年 1 月2 日 课程设计成绩评价表 课程名称 ...
  • 信 阳 师 范 学 院 课 程 设 计 课 题 院 程 目 系 C++程序设计 学生考勤信息管理系统 计算机与信息技术学院 专业班级 学生姓名 学生学号 指导教师 2013级软件工程 2016年 1月2 日 课程设计成绩评价表 课程名称 C++...
  • JSP学生考勤信息管理系统

    热门讨论 2012-03-24 00:52:01
    JSP学生考勤信息管理系统
  • 基于安卓Android学生考勤信息管理系统.zip
  • PAGEPAGE 1信息科学与技术学院《软件工程》课程设计题目名称:学生考勤信息管理系统学生姓名:李盟郭鹏李文捷学 号:200708914120070819442007081976专 业:信息管理与信息系统班 级:07级(1)(2)(3)班指导教师:戴...

    PAGE

    PAGE 1

    信息科学与技术学院

    《软件工程》课程设计

    题目名称:

    学生考勤信息管理系统

    学生姓名:

    李盟

    郭鹏

    李文捷

    学 号:

    2007089141

    2007081944

    2007081976

    专 业:

    信息管理与信息系统

    班 级:

    07级(1)(2)(3)班

    指导教师:

    戴建国

    职 称:

    讲师

    完成日期:

    2010年6月23号

    目录

    TOC \o "1-3" \h \z \u HYPERLINK \l "_Toc265771040" 第一章 简介 PAGEREF _Toc265771040 \h 4

    HYPERLINK \l "_Toc265771041" 第二章 需求分析 PAGEREF _Toc265771041 \h 5

    HYPERLINK \l "_Toc265771042" 2.1客户需求分析 PAGEREF _Toc265771042 \h 5

    HYPERLINK \l "_Toc265771043" 2.2功能需求分析 PAGEREF _Toc265771043 \h 5

    HYPERLINK \l "_Toc265771044" 2.2.1系统功能体系图 PAGEREF _Toc265771044 \h 5

    HYPERLINK \l "_Toc265771045" 2.2.2 系统功能模块设计 PAGEREF _Toc265771045 \h 7

    HYPERLINK \l "_Toc265771050" 2.3系统的性能及运行需求 PAGEREF _Toc265771050 \h 9

    HYPERLINK \l "_Toc265771051" 2.4 系统实现 PAGEREF _Toc265771051 \h 10

    HYPERLINK \l "_Toc265771052" 第三章 系统分析与设计 PAGEREF _Toc265771052 \h 11

    HYPERLINK \l "_Toc265771053" 3.1 详细设计说明书 PAGEREF _Toc265771053 \h 11

    HYPERLINK \l "_Toc265771054" 3.2数据库设计 PAGEREF _Toc265771054 \h 11

    HYPERLINK \l "_Toc265771055" 3.2.1数据库逻辑结构设计 PAGEREF _Toc265771055 \h 11

    HYPERLINK \l "_Toc265771056" 3.2.2数据库物理结构设计 PAGEREF _Toc265771056 \h 12

    HYPERLINK \l "_Toc265771057" 3.3 E-R图 PAGEREF _Toc265771057 \h 13

    HYPERLINK \l "_Toc265771060" 3.4数据库表 PAGEREF _Toc265771060 \h 15

    HYPERLINK \l "_Toc265771061" 第四章 系统运行 PAGEREF _Toc265771061 \h 16

    HYPERLINK \l "_Toc265771062" 4.1 功能实现界面 PAGEREF _Toc265771062 \h 16

    HYPERLINK \l "_Toc265771064" 第五章 开发总结与分工 PAGEREF _Toc265771064 \h 20

    HYPERLINK \l "_Toc265771065" 5.1总结 PAGEREF _Toc265771065 \h 20

    HYPERLINK \l "_Toc265771066" 5.2 分工 PAGEREF _Toc265771066 \h 20

    第一章 简介

    随着计算机的普及和计算机科学技术的飞速发展,人们开始越来越多地利用计算机解决实际问题。学生考勤管理是高校信息管理的重要部分。面对大量的学生学籍等信息,采用人力处理将浪费大量的时间、人力和物力,且数据的准确性低。因此,开发一个界面友好,易于操作的学生考勤管理软件进行自动化处理变得十分重要,这正是本系统开发的目的和意义。

    本系统的开发,考虑了一定的前瞻性,在设计将通用化,可扩展化,为用户提供最大限度的开放,允许用户定义考勤制度,适应各单位具体的需要。预计运行寿命5年。另外,由于本系统投资小,见效快,软硬件投资和开发环境也不受太多限制,开发费用比较容易低廉,在法律法规方面也没有特殊的限制,因此对于使用单位而言,容易接受。

    考勤管理系统包括的主要功能有:

    学生信息

    出勤信息

    密码修改

    帮助说明

    退出系统

    另外,考勤管理系统使用了非菜单形式的主界面风格,直接单击

    展开全文
  • 基于安卓Android学生考勤信息管理系统
  • c++学生考勤信息管理系统

    万次阅读 多人点赞 2018-01-04 19:46:09
    学生考勤信息管理系统记录了学生的缺课情况,它包括: 缺课日期、第几节课、课程名称、学生姓名、学生学号、缺课类型(迟到、请假及旷课)。系统具有以下功能: 1)录入学生的缺课记录; 2)修改某个学生的缺课记录...

    学生考勤信息管理系统记录了学生的缺课情况,它包括:

    缺课日期、第几节课、课程名称、学生姓名、学生学号、缺课类型(迟到、请假及旷课)。系统具有以下功能:

      1)录入学生的缺课记录;

      2)修改某个学生的缺课记录;

      3)查询某个学生的缺课情况;

      4)统计 旷课学生姓名及旷课次数,按旷课次数由多到少排序;

      5)统计 有学生旷课的课程及旷课人次(每次课时累加),按旷课人次由多到少排序;

     

    重新修改了下,之前的4,5功能未实现。

    #include<iostream>
    #include<fstream>
    #include<cstring>
    #include<cstdlib>
    #include<string>
    #include<map>
    #include<algorithm>
    using namespace std;
    #define N 999
    int n;
    class STU
    {
    public:
        STU() {}
        void input(char d[],int X,string n,string sn,int sd,int cl)
        {
            strcpy(date,d);
            ClassX=X;
            ClassN=n;
            stuN=sn;
            stuID=sd;
            ClassL=cl;
        }
        void print()
        {
            cout<<"缺课日期 课节 课程名称 学生姓名 学生学号 缺课类型\t"<<endl;
            cout<<date<<"\t"<<ClassX<<"\t"<<ClassN<<"\t"<<stuN<<"\t"<<stuID<<"\t"<<ClassL<<endl;
        }
        friend void Change(STU stu[]);
        friend void Find(STU stu[]);
        friend void chaxun1(STU stu[]);
        friend void chaxun2(STU stu[]);
    private:
        string  stuN;
        int  stuID;
        char date[15];
        int  ClassX;
        string ClassN;
        int  ClassL;
    };
    
    //主菜单
    void meau()
    {
        cout<<endl;
        cout<<endl;
        cout<<"学生后勤管理系统"<<endl;
        cout<<"1-录入学生的缺课记录"<<endl;
        cout<<"2-修改某个学生的缺课记录"<<endl;
        cout<<"3-查询某个学生的缺课情况"<<endl;
        cout<<"4-统计旷课信息"<<endl;
        cout<<"5-退出系统"<<endl;
        cout<<endl;
        cout<<endl;
    
    }
    //输入学生的缺课记录
    void Input(STU stu[])
    {
        char date[15];
        string stuN, ClassN;
        int  stuID,ClassX,ClassL;
        while(1)
        {
            cout<<"请输入记录情况个数"<<endl;
            cin>>n;
            for(int i=0; i<n; i++)
            {
                cout<<"请输入第"<<i+1<<"种情况"<<endl;
                cout<<"请输入缺课日期\n";
                cin>>date;
                cout<<"请输入第几节课\n";
                cin>>ClassX;
                cout<<"请输入课程名称\n";
                cin>>ClassN;
                cout<<"请输入学生姓名\n";
                cin>>stuN;
                cout<<"请输入学生学号\n";
                cin>>stuID;
                cout<<"请输入缺课类型,1代表请假,2代表旷课, 3代表迟到\n";
                cin>>ClassL;
                stu[i].input(date,ClassX,ClassN,stuN,stuID,ClassL);
            }
            cout<<"输入信息完毕!是否继续输入?y是继续,n是停止:"<<endl;
            char cc;
            getchar();
            cin>>cc;
            if(cc=='n')
                return ;
        }
    }
    //修改某个学生的缺课记录
    void Change(STU stu[])
    {
        cout<<"请输入将要修改的学生姓名或者学号,1代表姓名,2代表学号:"<<endl;
        int x;
        cin>>x;
        if(x==1)
        {
            cout<<"请输入将要修改的学生姓名:"<<endl;
            string name;
            cin>>name;
            for(int i=0; i<n; i++)
            {
                if(stu[i].stuN==name)
                {
                    stu[i].print();
                    cout<<"是否对该学生信息进行修改,y代表进行,n代表不进行:"<<endl;
                    getchar();
                    char cc;
                    cin>>cc;
                    if(cc=='n')
                        continue;
                    else if(cc='y')
                    {
                        cout<<"请选择修改内容:"<<endl;
                        cout<<"修改日期请按1:\n修改课节请按2:\n修改课程名称请按3:\n修改缺课类型请按4:\n";
                        cin>>x;
                        switch(x)
                        {
                        case 1:
                        {
                            char date[20];
                            cout<<"请输入正确日期"<<endl;
                            cin>>date;
                            strcpy(stu[i].date,date);
                        }
                        break;
                        case 2:
                        {
                            cout<<"请输入正确课节"<<endl;
                            cin>>x;
                            stu[i].ClassX=x;
                        }
                        break;
                        case 3:
                        {
                            cout<<"请输入正确课程名称"<<endl;
                            cin>>name;
                            stu[i].ClassN=name;
                        }
                        break;
                        case 4:
                        {
                            cout<<"请输入正确缺课类型"<<endl;
                            cin>>x;
                            stu[i].ClassL=x;
                        }
                        break;
                        default :
                            cout<<"抱歉,没有该选项。"<<endl;
                        }
                        break;
                        cout<<"输出修改后的学生信息:"<<endl;
                        stu[i].print();
                    }
                    else cout<<"抱歉,没有该选项。"<<endl;
                }
            }
        }
        else if(x==2)
        {
            cout<<"请输入要修改的学号:"<<endl;
            cin>>x;
            for(int i=0; i<n; i++)
            {
                if(stu[i].stuID==x)
                {
                    cout<<"是否对该学生信息进行修改,y代表进行,n代表不进行:"<<endl;
                    stu[i].print();
                    getchar();
                    char cc;
                    cin>>cc;
                    if(cc=='n')
                        continue;
                    else if(cc='y')
                    {
                        cout<<"请选择修改内容:"<<endl;
                        cout<<"修改日期请按1:\n修改课节请按2:\n修改课程名称请按3:\n修改缺课类型请按4:\n";
                        cin>>x;
                        switch(x)
                        {
                        case 1:
                        {
                            cout<<"请输入正确日期"<<endl;
                            char name[20];
                            cin>>name;
                            strcpy(stu[i].date,name);
                        }
                        break;
                        case 2:
                        {
                            cout<<"请输入正确课节"<<endl;
                            cin>>x;
                            stu[i].ClassX=x;
                        }
                        break;
                        case 3:
                        {
                            cout<<"请输入正确课程名称"<<endl;
                            string name;
                            cin>>name;
                            stu[i].ClassN=name;
                        }
                        break;
                        case 4:
                        {
                            cout<<"请输入正确缺课类型"<<endl;
                            cin>>x;
                            stu[i].ClassL=x;
                        }
                        break;
                        default :
                            cout<<"抱歉,没有该选项。"<<endl;
                        }
                        break;
                        cout<<"输出修改后的学生信息:"<<endl;
                        stu[i].print();
                    }
                    else
                        cout<<"抱歉,没有该选项。"<<endl;
                }
            }
        }
        else
            cout<<"抱歉,没有该选项。"<<endl;
    }
    //查询某个学生的缺课情况
    void Find(STU stu[])
    {
        cout<<"请输入将要查询的学生姓名(1)或者学号(2)"<<endl;
        int x;
        cin>>x;
        if(x==1)
        {
            cout<<"请输入将要查询的学生姓名"<<endl;
            string name;
            cin>>name;
            for(int i=0; i<n; i++)
            {
                if(stu[i].stuN==name)
                    stu[i].print();
            }
        }
        else if(x==2)
        {
            cout<<"请输入将要查询的学生学号"<<endl;
            cin>>x;
            for(int i=0; i<n; i++)
            {
                if(stu[i].stuID==x)
                    stu[i].print();
            }
        }
        else cout<<"抱歉,没有该选项。"<<endl;
    }
    
    //统计旷课学生信息
    void chaxun1(STU stu[])
    {
        map<string,int> A;
        A.clear();
        for(int s=0; s<n; s++)
        {
            if(stu[s].ClassL==2)
            {
                A[stu[s].stuN]++;
            }
        }
        map<string,int>::iterator it;
        int k=0,ant[N];
        string sn[N];
        for(it=A.begin(); it!=A.end(); it++)
        {
            sn[k]=(*it).first;
            ant[k]=(*it).second;
    
            k++;
        }
        for(int i=0; i<k-1; i++)
            for(int j=i+1; j<k; j++)
            {
                if(ant[i]<ant[j])
                {
                    int temp;
                    string ss;
                    temp=ant[i];
                    ant[i]=ant[j];
                    ant[j]=temp;
                    ss=sn[i];
                    sn[i]=sn[j];
                    sn[j]=ss;
                }
            }
        for(int m=0; m<k; m++)
        {
            cout<<"学生姓名 旷课次数"<<endl;
            cout<<sn[m]<<"\t"<<ant[m]<<endl;
        }
    
    }
    //统计旷课课程信息
    void chaxun2(STU stu[])
    {
        map<string,int> A;
        A.clear();
        for(int i=0; i<n; i++)
        {
            if(stu[i].ClassL==2)
            {
                A[stu[i].ClassN]++;
            }
        }
        map<string,int>::iterator it;
        for(it=A.begin(); it!=A.end(); it++)
        {
            cout<<"课程名称 旷课总人次"<<endl;
            cout<<(*it).first<<"\t"<<(*it).second<<endl;
        }
    }
    int main()
    {
    
        STU stu[N];
    
        while(1)
        {
            meau();
            cout<<"请输入对应功能序号"<<endl;
            int x;
            cin>>x;
            switch(x)
            {
            case 1:
                Input(stu);
                break;
            case 2:
            {
                if(n==0)
                    cout<<"错误,无信息!\n";
                else
                    Change(stu);
            }
            break;
            case 3:
            {
                if(n==0)
                    cout<<"错误,无信息!\n";
                else
                    Find(stu);
            }
            break;
            case 4:
            {
                if(n==0)
                    cout<<"错误,无信息!\n";
                else
                {
                    cout<<"\n查看学生旷课信息请按1:\n";
                    cout<<"\n查看课程旷课信息请按2:\n";
                    cin>>x;
                    if(x==1)
                        chaxun1(stu);
                    else if(x==2)
                        chaxun2(stu);
                    else
                        cout<<"抱歉,没有该选项。"<<endl;
                }
    
            }
            break;
            case 5:
            {
                cout<<"退出该系统。"<<endl;
                return 0;
                break;
            }
            default:
                cout<<"对不起,该项功能不存在."<<endl;
    
            }
    
        }
        return 0;
    }
    

     

    展开全文
  • 教师管理学生管理、院系管理、课程管理、课程安排、考勤管理
  • 学生考勤信息管理系统记录了学生的缺课情况,它包括:缺课日期、第几节课、课程名称、学生姓名、学生学号、缺课类型(迟到、请假及旷课)。系统具有以下功能:1)、录入学生的缺课记录;2)、修改某个学生的缺课记录;3)...

    学生考勤信息管理系统记录了学生的缺课情况,它包括:

    缺课日期、第几节课、课程名称、学生姓名、学生学号、缺课类型(迟到、请假及旷课)。系统具有以下功能:

    1)、录入学生的缺课记录;

    2)、修改某个学生的缺课记录;

    3)、查询某个学生的缺课情况;

    4)、统计 旷课学生姓名及旷课次数,按旷课次数由多到少排序;

    5)、统计 有学生旷课的课程及旷课人次(每次课时累加),按旷课人次由多到少排序;

    重新修改了下,之前的4,5功能未实现。

    #include

    #include

    #include

    #include

    #include

    #include

    #include

    using namespace std;

    #define N 999

    int n;

    class STU

    {

    public:

    STU() {}

    void input(char d[],int X,string n,string sn,int sd,int cl)

    {

    strcpy(date,d);

    ClassX=X;

    ClassN=n;

    stuN=sn;

    stuID=sd;

    ClassL=cl;

    }

    void print()

    {

    cout<

    cout<

    }

    friend void Change(STU stu[]);

    friend void Find(STU stu[]);

    friend void chaxun1(STU stu[]);

    friend void chaxun2(STU stu[]);

    private:

    string stuN;

    int stuID;

    char date[15];

    int ClassX;

    string ClassN;

    int ClassL;

    };

    //主菜单

    void meau()

    {

    cout<

    cout<

    cout<

    cout<

    cout<

    cout<

    cout<

    cout<

    cout<

    cout<

    }

    //输入学生的缺课记录

    void Input(STU stu[])

    {

    char date[15];

    string stuN, ClassN;

    int stuID,ClassX,ClassL;

    while(1)

    {

    cout<

    cin>>n;

    for(int i=0; i

    {

    cout<

    cout<

    cin>>date;

    cout<

    cin>>ClassX;

    cout<

    cin>>ClassN;

    cout<

    cin>>stuN;

    cout<

    cin>>stuID;

    cout<

    cin>>ClassL;

    stu[i].input(date,ClassX,ClassN,stuN,stuID,ClassL);

    }

    cout<

    char cc;

    getchar();

    cin>>cc;

    if(cc=='n')

    return ;

    }

    }

    //修改某个学生的缺课记录

    void Change(STU stu[])

    {

    cout<

    int x;

    cin>>x;

    if(x==1)

    {

    cout<

    string name;

    cin>>name;

    for(int i=0; i

    {

    if(stu[i].stuN==name)

    {

    stu[i].print();

    cout<

    getchar();

    char cc;

    cin>>cc;

    if(cc=='n')

    continue;

    else if(cc='y')

    {

    cout<

    cout<

    cin>>x;

    switch(x)

    {

    case 1:

    {

    char date[20];

    cout<

    cin>>date;

    strcpy(stu[i].date,date);

    }

    break;

    case 2:

    {

    cout<

    cin>>x;

    stu[i].ClassX=x;

    }

    break;

    case 3:

    {

    cout<

    cin>>name;

    stu[i].ClassN=name;

    }

    break;

    case 4:

    {

    cout<

    cin>>x;

    stu[i].ClassL=x;

    }

    break;

    default :

    cout<

    }

    break;

    cout<

    stu[i].print();

    }

    else cout<

    }

    }

    }

    else if(x==2)

    {

    cout<

    cin>>x;

    for(int i=0; i

    {

    if(stu[i].stuID==x)

    {

    cout<

    stu[i].print();

    getchar();

    char cc;

    cin>>cc;

    if(cc=='n')

    continue;

    else if(cc='y')

    {

    cout<

    cout<

    cin>>x;

    switch(x)

    {

    case 1:

    {

    cout<

    char name[20];

    cin>>name;

    strcpy(stu[i].date,name);

    }

    break;

    case 2:

    {

    cout<

    cin>>x;

    stu[i].ClassX=x;

    }

    break;

    case 3:

    {

    cout<

    string name;

    cin>>name;

    stu[i].ClassN=name;

    }

    break;

    case 4:

    {

    cout<

    cin>>x;

    stu[i].ClassL=x;

    }

    break;

    default :

    cout<

    }

    break;

    cout<

    stu[i].print();

    }

    else

    cout<

    }

    }

    }

    else

    cout<

    }

    //查询某个学生的缺课情况

    void Find(STU stu[])

    {

    cout<

    int x;

    cin>>x;

    if(x==1)

    {

    cout<

    string name;

    cin>>name;

    for(int i=0; i

    {

    if(stu[i].stuN==name)

    stu[i].print();

    }

    }

    else if(x==2)

    {

    cout<

    cin>>x;

    for(int i=0; i

    {

    if(stu[i].stuID==x)

    stu[i].print();

    }

    }

    else cout<

    }

    //统计旷课学生信息

    void chaxun1(STU stu[])

    {

    map A;

    A.clear();

    for(int s=0; s

    {

    if(stu[s].ClassL==2)

    {

    A[stu[s].stuN]++;

    }

    }

    map::iterator it;

    int k=0,ant[N];

    string sn[N];

    for(it=A.begin(); it!=A.end(); it++)

    {

    sn[k]=(*it).first;

    ant[k]=(*it).second;

    k++;

    }

    for(int i=0; i

    for(int j=i+1; j

    {

    if(ant[i]

    {

    int temp;

    string ss;

    temp=ant[i];

    ant[i]=ant[j];

    ant[j]=temp;

    ss=sn[i];

    sn[i]=sn[j];

    sn[j]=ss;

    }

    }

    for(int m=0; m

    {

    cout<

    cout<

    }

    }

    //统计旷课课程信息

    void chaxun2(STU stu[])

    {

    map A;

    A.clear();

    for(int i=0; i

    {

    if(stu[i].ClassL==2)

    {

    A[stu[i].ClassN]++;

    }

    }

    map::iterator it;

    for(it=A.begin(); it!=A.end(); it++)

    {

    cout<

    cout<

    }

    }

    int main()

    {

    STU stu[N];

    while(1)

    {

    meau();

    cout<

    int x;

    cin>>x;

    switch(x)

    {

    case 1:

    Input(stu);

    break;

    case 2:

    {

    if(n==0)

    cout<

    else

    Change(stu);

    }

    break;

    case 3:

    {

    if(n==0)

    cout<

    else

    Find(stu);

    }

    break;

    case 4:

    {

    if(n==0)

    cout<

    else

    {

    cout<

    cout<

    cin>>x;

    if(x==1)

    chaxun1(stu);

    else if(x==2)

    chaxun2(stu);

    else

    cout<

    }

    }

    break;

    case 5:

    {

    cout<

    return 0;

    break;

    }

    default:

    cout<

    }

    }

    return 0;

    }

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

    展开全文
  • C语言编写的学生考勤信息管理系统

    千次阅读 2020-03-18 12:27:57
    printf("\n\n\n\n\n\t\t ※欢迎进入学生考勤系统 \n"); color(10); printf("\n\n\n\t\t\t\t\t\t\t\tby 广东工业大学19级计科3班");color(16); Sleep(2000); } system("cls"); char i; while(1) { color...
    						录入信息需要先后顺序,不然可能有BUG
    
    #include <stdlib.h>
    #include <stdio.h>
    #include <string.h>
    #include<conio.h>
    #include <windows.h>
    struct  student
    {
    	char name[16];            //姓名
    	char ID[10];              //学号
    	int classes;              //班级 
    	char speciality[16];      //专业 
    	char phone[16];           //电话
    	int age;                  //年龄 
    	int year;                 //出生日期--年
    	int month;                //出生日期--月
    	int day;                  //出生日期--日
    	char dormitory[10];       //宿舍
    	int QQ;                   //QQ 
    	int math[10];			  //下标决定第几次考勤,数组内容是考勤情况(1-正常 2-迟到 3-早退 4-旷课)
    	int english[10];
    	int c[10];
    }stu[100];
    struct subject
    {
    	char course_number[10];   //课程编号  
    	char course_name[10];     //课程名称
    	int course_score;         //课程学分
    	char teacher_name[10];    //任课教师 
    	char time[16];           //上课时间 
    	int class_times;          //上课次数
    	char class_place[10];     //上课地点 
    	struct student Student;
    }sub[100];
    int e=0; 
    int main();
    void backup();
    void student();
    void student_information();
    void student_information_enter();
    void student_information_search();
    void student_information_delete();
    void student_information_enter_1();
    void student_information_enter_2();
    void student_information_search_all();
    void student_information_search_ID();
    void student_information_search_name();
    void student_information_delete_ID();
    void student_information_delete_name();
    void student_attendance();
    void student_attendance_enter();
    void student_attendance_search();
    void student_attendance_search_name();
    void student_attendance_search_ID();
    void course();
    void course_enter();
    void course_search();
    void course_search_all();
    void course_search_coursename();
    void course_search_teachername();
    void color(short x);
    void color(short x) //自定义函根据参数改变颜色   
    {  
        if(x>=0 && x<=15)//参数在0-15的范围颜色  
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), x);    //只有一个参数,改变字体颜色   
        else//默认的颜色白色  
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7);  
    }  
    int main()
    {
    	if(e==0)
    	{
    		e++;
    		printf("\n\n\n\n\n\t\t         ※欢迎进入学生考勤系统             \n");
    color(10);
    		printf("\n\n\n\t\t\t\t\t\t\t\tby 广东工业大学19级计科3班");color(16);
    		Sleep(2000);
    	}
    	system("cls");
    	char i;
    	while(1)
    	{
    color(15);
    		printf("\n\n\n\n\n");
    		printf("\t\t丨                            丨\n");
    		printf("\t\t丨           1.学生           丨\n");
    		printf("\t\t丨                            丨\n");
    		printf("\t\t丨           2.课程           丨\n");
    		printf("\t\t丨                            丨\n");
    		printf("\t\t丨           3.备份           丨\n");
    		printf("\t\t丨                            丨\n");
    		printf("\t\t丨           4.退出           丨\n");
    		printf("\t\t丨                            丨\n");
    color(16);
    		i=getch();
     		switch (i)
    		{
    			case '1': student(); 									    break;
    			case '2': course();	    						        	break;
    			case '3': backup(); 	     							    break;
    			case '4':				 									break;		
    			default: printf("\t\t你输入的数字错误,	请重新输入!\n");   break;
    		}		
    		if (i=='4')
    		{
    			system("cls");
    			color(7);
    			printf("\n\n\n\n\n\n\n\n\t\t\t即将退出退出系统,欢迎下次使用!\n");
    			break;
    		}
    	}
    	Sleep(1500);
    	system("pause");
    	exit(0);
    	return 0;
    }
    void student()
    {
    	system("cls");
    	char i;
    	while(1)
    	{
    color(15);		
    		printf("\n\n\n\n\n");
    		printf("\t\t丨                            丨\n");
    		printf("\t\t丨         1.学生信息         丨\n");
    		printf("\t\t丨                            丨\n");
    		printf("\t\t丨         2.学生考勤         丨\n");
    		printf("\t\t丨                            丨\n");
    		printf("\t\t丨         3.主菜单           丨\n");
    		printf("\t\t丨                            丨\n");
    color(16);
    		i=getch();
    		switch(i)
    		{
    			case '1':student_information();   		   		      break;//学生信息操作 
    			case '2':student_attendance();    		 		      break;//学生考勤操作
    			case '3':                        						  break;//返回主菜单
    			default:printf("\t\t您输入的数字错误,请重新输入!\n");	  break; //出错提示
    		}
    		if(i=='3')	
    			break;
    	}
    	main();
    }
    void student_information()
    {
    	system("cls");
    	char i;
    	while(1)
    	{
    color(15);
    		printf("\n\n\n\n\n");
    		printf("\t\t丨                            丨\n");
    		printf("\t\t丨        1.学生信息录入      丨\n");
    		printf("\t\t丨                            丨\n");
    		printf("\t\t丨        2.学生信息查询      丨\n");
    		printf("\t\t丨                            丨\n");
    		printf("\t\t丨        3.学生信息删除      丨\n");
    		printf("\t\t丨                            丨\n");
    		printf("\t\t丨        4.上一级菜单        丨\n");
    		printf("\t\t丨                            丨\n");
    color(16);
    		i=getch();
    		switch(i)
    		{
    			case '1':student_information_enter();   		   	   break;//学生信息录入 
    			case '2':student_information_search();    		   break;//学生信息查询 
    			case '3':student_information_delete();               break;//学生信息删除
    			case '4': 										   break;//返回上一级菜单 
    			default:printf("\t\t您输入的数字错误,请重新输入!\n"); break;//出错提示 
    		}
    		if(i=='4')	
    			break;
    	}
    	student();
    }
    void student_information_enter()
    {
    	char i;
    	system("cls");
    	while(1)
    	{
    color(15);
    		printf("\n\n\n\n\n");
    		printf("\t\t丨                            丨\n");
    		printf("\t\t丨  1.学生信息全部清零再录入  丨\n");
    		printf("\t\t丨                            丨\n");
    		printf("\t\t丨  2.学生信息追加录入        丨\n");
    		printf("\t\t丨                            丨\n");
    		printf("\t\t丨  3.上一级菜单              丨\n");
    		printf("\t\t丨                            丨\n");
    color(16);
    		i=getch();
    		switch(i)
    		{
    			case '1':student_information_enter_1();   		   		  break;//生信息全部清零再录入 
    			case '2':student_information_enter_2();    		 		  break;//学生信息追加录入
    			case '3':                        							  break;//回上一级菜单 
    			default:printf("\t\t您输入的数字错误,请重新输入!\n");		  break;//出错提示
    		}
    		if(i=='3')	
    			break;
    	}
    	student_information();
    }
    void student_information_enter_1()
    {
    	int i;
    	char k,j;
    	FILE *fp;
    	system("cls");
    	printf("\n\n\n\n\n");
    	if((fp=fopen("ARecord.txt","w"))==NULL)
    	{
    		printf("\t\t文件打开失败!\n");
    		system("pause");
    		student_information_enter();
    	}
    	for(i=0,k='1';k=='1';i++)//k来判断是否继续录入学生信息 
    	{
    color(11);		
    		for(j='0';j=='0';)//j来判断是否确定学生信息 
    		{	
    				printf("\t\t请输入第%d个学生的姓名:",i+1);
    				scanf("%s",&stu[i].name);
    				printf("\t\t请输入第%d个学生的学号:",i+1);
    				scanf("%s",&stu[i].ID);
    				printf("\t\t请输入第%d个学生的班级:",i+1);
    				scanf("%d",&stu[i].classes);
    				printf("\t\t请输入第%d个学生的专业:",i+1);
    				scanf("%s",&stu[i].speciality);
    				printf("\t\t请输入第%d个学生的电话:",i+1);
    				scanf("%s",&stu[i].phone);
    				printf("\t\t请输入第%d个学生的年龄:",i+1);
    				scanf("%d",&stu[i].age);
    				printf("\t\t请输入第%d个学生的出生日期(格式:年-月-日例如:2020 2 2):", i + 1);
    				scanf("%d%d%d", &stu[i].year, &stu[i].month, &stu[i].day);
    				printf("\t\t请输入第%d个学生的宿舍:",i+1);
    				scanf("%s",&stu[i].dormitory);
    				printf("\t\t请输入第%d个学生的QQ:",i+1);
    				scanf("%d",&stu[i].QQ);
    color(14);
    				printf("\t\t请确定信息 (重输-0 确定-1):\n");
    color(16);
    				j=getch();
    		}
    		if(fwrite(&stu[i], sizeof(struct student),1,fp)!=1)
    		{
    			printf("文件写入错误\n");
    			system("pause");
    			student_information_enter();
    		}
    color(14);
    		printf("\t\t是否继续输入下一个学生的信息  终止-0 继续-1:\n\n");
    color(16);
    		k=getch();
    	}
    color(16);
    	fclose(fp);
    color(4);
    	printf("\n\t\t保存成功\n");
    color(16);
    	Sleep(1000);
    	student_information_enter();
    }
    void student_information_enter_2()
    {
    	int i,t,x,m,f;
    	char j,k;
    	char student_name[16];
    	FILE *fp;
    	system("cls");
    	printf("\n\n\n\n\n");
    	if((fp=fopen("ARecord.txt","r"))==NULL)
    	{
    		printf("\t\t文件打开失败!\n");
    		system("pause");
    		student_information_enter();
    	}
    	for (m=0;feof(fp)==0;m++)
    	{
    		fread(&stu[m], sizeof(struct student), 1, fp);  //读取文件内容
    	}
    color(11);
    	for(i=m-1,k='1';k=='1';i++)//k来判断是否继续输入学生信息,i是读取数据之后数组的最后一个+1 
    	{
    		for(j='0',t=1;j=='0';)//j来判断是否确定学生信息 
    		{	
    				printf("\t\t请输入第%d个学生的姓名:",i+1);
    				scanf("%s",&student_name);
    				for(x=0;x<m;x++)
    				{
    					t=strcmp(stu[x].name,student_name);//对输入的学生姓名进行比较,得到下标 
    					if(t==0)
    					{
    						printf("该生已存在!\n");//该学生已存在,返回 
    						break;
    					}			
    				}
    				strcpy(stu[i].name,student_name);
    				printf("\t\t请输入第%d个学生的学号:",i+1);
    				scanf("%s",&stu[i].ID);
    				printf("\t\t请输入第%d个学生的班级:",i+1);
    				scanf("%d",&stu[i].classes);
    				printf("\t\t请输入第%d个学生的专业:",i+1);
    				scanf("%s",&stu[i].speciality);
    				printf("\t\t请输入第%d个学生的电话:",i+1);
    				scanf("%s",&stu[i].phone);
    				printf("\t\t请输入第%d个学生的年龄:",i+1);
    				scanf("%d",&stu[i].age);
    				printf("\t\t请输入第%d个学生的出生日期(格式:年-月-日例如:2020 2 2):", i + 1);
    				scanf("%d%d%d", &stu[i].year, &stu[i].month, &stu[i].day);
    				printf("\t\t请输入第%d个学生的宿舍:",i+1);
    				scanf("%s",&stu[i].dormitory);
    				printf("\t\t请输入第%d个学生的QQ:",i+1);
    				scanf("%d",&stu[i].QQ);
    color(14);
    				printf("\t\t请确定信息 (重输-0 确定-1):\n");
    color(16);
    				j=getch();
    		}
    		if(t!=0)
    		{
    			if((fp=fopen("ARecord.txt","w"))==NULL)
    			{
    				printf("\t\t文件打开失败!\n");
    				system("pause");			
    				student_information_enter();
    			}
    			for(f=0;f<i;f++)
    			{
    				if(fwrite(&stu[f], sizeof(struct student),1,fp)!=1)
    				{
    					printf("\t\t文件写入错误\n");
    					system("pause");
    					student_information_enter();
    				}
    			}
    		}
    color(14);
    		printf("\t\t是否继续输入下一个学生的信息  终止-0 继续-1:\n\n");
    		k=getch();
    color(16);
    	}
    color(16);
    	fclose(fp);
    color(4);
    	printf("\n\t\t保存成功\n");
    color(16);
    	Sleep(1000);
    	student_information_enter();
    }
    void student_information_search()
    {
    	char i;
    	system("cls");
    	while(1)
    	{
    color(15);
    		printf("\n\n\n\n\n");
    		printf("\t\t丨                            丨\n");
    		printf("\t\t丨       1.按学号查询         丨\n");
    		printf("\t\t丨                            丨\n");
    		printf("\t\t丨       2.按姓名查询         丨\n");
    		printf("\t\t丨                            丨\n");
    		printf("\t\t丨       3.查询所有人         丨\n");
    		printf("\t\t丨                            丨\n");
    		printf("\t\t丨       4.上一级菜单         丨\n");
    		printf("\t\t丨                            丨\n");
    color(16);
    		i=getch();
    		switch(i)	
    		{
    			case '1':student_information_search_ID();   		   break;//按学号查询 
    			case '2':student_information_search_name();    	   	   break;//按姓名查询 
    			case '3':student_information_search_all();             break;//查询所有人
    			case '4': 										       break;//返回上一级菜单 
    			default:printf("\t\t您输入的数字错误,请重新输入!\n");     break;//出错提示 
    		}
    		if(i=='4')	
    			break;
    	}
    	student_information();
    }
    void student_information_search_name()
    {
    	system("cls");
    	printf("\n\n\n\n\n");
    	int i=0,j=0,t=1,k;
    	char x='1';
    	FILE *fp;
    	char student_name[16] = { 0 };
    	if ((fp = fopen("ARecord.txt", "r")) == NULL)   //将文件内容读入内存
    	{
    		printf("\t\t文件打开失败!\n");
    		system("pause");
    		student_information_search();
    	}
    	for (i=0;feof(fp)==0;i++)
    	{
    		fread(&stu[i], sizeof(struct student), 1, fp);  //读取文件内容
    	}
    	while(x!='0')
    	{
    color(6);
    		printf("\t\t请输入需要查询学生的姓名:");
    		scanf("%s", &student_name);
    		for (j=0,t=1;j<i;j++)
    		{
    			t=strcmp(stu[j].name,student_name);
    			if(t==0)
    			{
    				break;	
    			}	
    		}
    		if (t==0)   //查询成功
    		{
    			printf("姓名\t\t学号\t\t班级\t\t专业\t\t电话\t\t年龄\t\t生日\t\t宿舍\t\tQQ\n");
    			printf("%s     \t%s \t%d \t\t%s \t\t%s \t%d \t\t%d.%d.%d \t%s \t%d\n",stu[j].name,stu[j].ID,stu[j].classes,stu[j].speciality,stu[j].phone,stu[j].age,stu[j].year,stu[j].month,stu[j].day,stu[j].dormitory,stu[j].QQ);
    		}
    		else
    		{
    color(12);
    			printf("\t\t未找到该学生信息!\n");
    color(16);
    		}
    color(14);
    		printf("\t\t继续-1,退出-0\n");
    color(16);
    		x=getch(); 
    	}
    color(16);
    	fclose(fp);
    	student_information_search();
    }
    void student_information_search_ID()
    {
    	system("cls");
    	printf("\n\n\n\n\n");
    	int i=0,j=0,t=1;
    	char x='1';
    	FILE *fp;
    	char student_ID[10] = { 0 };
    	if ((fp = fopen("ARecord.txt", "r")) == NULL)   //将文件内容读入内存
    	{
    		printf("\t\t文件打开失败!\n");
    		system("pause");
    		student_information_search();
    	}
    	for (i=0;feof(fp)==0;i++)
    	{
    		fread(&stu[i], sizeof(struct student), 1, fp);  //读取文件内容
    	}
    	while(x!='0')
    	{
    color(6);
    		printf("\t\t请输入需要查询学生的学号:");
    		scanf("%s", &student_ID);
    		for (j=0,t=1;j<i;j++)
    		{
    			t=strcmp(stu[j].ID,student_ID); 
    			if(t==0)
    			{
    				break;	
    			}	
    		}
    		if (t==0)   //查询成功
    		{
    			printf("姓名\t\t学号\t\t班级\t\t专业\t\t电话\t\t年龄\t\t生日\t\t宿舍\t\tQQ\n");
    			printf("%s     \t%s \t%d \t\t%s \t\t%s \t%d \t\t%d.%d.%d \t%s \t%d\n",stu[j].name,stu[j].ID,stu[j].classes,stu[j].speciality,stu[j].phone,stu[j].age,stu[j].year,stu[j].month,stu[j].day,stu[j].dormitory,stu[j].QQ);
    		}
    		else
    		{
    color(12);
    			printf("\t\t未找到该学生信息!\n");
    color(16);
    		}
    color(14);
    		printf("\t\t继续-1,退出-0\n");
    color(16);
    		x=getch();
    	}
    color(16);
    	fclose(fp);
    	student_information_search();
    }
    void student_information_search_all()
    {
    	system("cls");
    	printf("\n\n\n\n\n");
    	int i,j;
    	FILE *fp;
    	if ((fp = fopen("ARecord.txt", "r")) == NULL)   //将文件内容读入内存
    	{
    		printf("\t\t文件打开失败!\n");
    		system("pause");
    		student_information_search();
    	}
    	for (i=0;feof(fp)==0;i++)
    	{
    		fread(&stu[i], sizeof(struct student), 1, fp);  //读取文件内容
    	}
    color(6);
    	printf("姓名\t\t学号\t\t班级\t\t专业\t\t电话\t\t年龄\t\t生日\t\t宿舍\t\tQQ\n");
    	for(j=0;j<i;j++)
    		printf("%s     \t%s \t%d \t\t%s \t\t%s \t%d \t\t%d.%d.%d \t%s \t%d\n",stu[j].name,stu[j].ID,stu[j].classes,stu[j].speciality,stu[j].phone,stu[j].age,stu[j].year,stu[j].month,stu[j].day,stu[j].dormitory,stu[j].QQ);
    color(16);
    	system("pause");
    	student_information_search();
    }
    
    void student_information_delete()
    {
    	system("cls");
    	char i;
    	while(1)
    	{
    color(15);
    		printf("\n\n\n\n\n");
    		printf("\t\t丨                            丨\n");
    		printf("\t\t丨        1.按姓名删除        丨\n");
    		printf("\t\t丨                            丨\n");
    		printf("\t\t丨        2.按学号删除        丨\n");
    		printf("\t\t丨                            丨\n");
    		printf("\t\t丨        3.上一级菜单        丨\n");
    		printf("\t\t丨                            丨\n");
    color(16);
    		i=getch();
    		switch(i)
    		{
    			case '1':student_information_delete_name();   		  		break;//按姓名删除
    			case '2':student_information_delete_ID();    		 	    break;//按学号删除  
    			case '3':                        						    break;//返回上一级菜单 
    			default:printf("\t\t您输入的数字错误,请重新输入!\n");	  		break; //出错提示
    		}
    		if(i=='3')	
    			break;
    	}
    	student_information();
    }
    void student_information_delete_name()
    {
    	system("cls");
    	printf("\n\n\n\n\n");
    	FILE *fp;
    	int i,j,t,f;
    	char p,x;
    	char student_name[16];
    	while(1)
    	{
    		if((fp=fopen("ARecord.txt","r"))==NULL)
    		{
    			printf("\t\t文件打开失败!\n");
    			system("pause");
    			student_information_delete();
    		}
    		for(i=0;feof(fp)==0;i++)
    		{
    			fread(&stu[i],sizeof(struct student),1,fp);
    		}
    		
    color(11);
    		printf("\t\t请输入要删除信息的学生姓名:");
    color(16);
    		scanf("%s",&student_name);
    		for(j=0,t=1;j<i;j++)
    		{
    			t=strcmp(stu[j].name,student_name);
    			if(t==0)
    			{
    				break;
    			}
    		}
    		if(t==0)
    		{
    color(12);
    			printf("\t\t请确认你是否要删除信息 确定-1 取消-0\n");
    color(16);
    			p=getch();
    			if(p=='1')
    			{
    				for(;j<i-1;j++)
    				{
    					stu[j]=stu[j+1];  
    				}
    				if((fp=fopen("ARecord.txt","w"))==NULL)
    				{
    					printf("\t\t文件打开失败!\n");
    					system("pause");
    					student_information();
    				}
    				for(f=0;f<i-2;f++)
    				{
    					if(fwrite(&stu[f], sizeof(struct student),1,fp)!=1)
    					{
    						printf("\t\t文件写入错误\n");
    						system("pause");
    						student_information_delete();
    					}
    						
    				}
    color(12);
    				printf("\t\t信息删除成功\n");
    
    			}
    			else
    			{
    				printf("\t\t你取消了删除操作\n");
    color(16);
    			} 
    		}
    		else
    		{
    color(11);
    			printf("\t\t该生不存在\n");
    color(16);
    		}
    color(14);
    		printf("\t\t是否继续删除信息 继续-1 退出-0\n");
    color(16);
    		x=getch();
    		if(x=='0')
    			break;
    	}
    	fclose(fp);
    	student_information_delete();
    }
    void student_information_delete_ID()
    {
    	system("cls");
    	printf("\n\n\n\n\n");
    	FILE *fp;
    	int i,j,t,f;
    	char x,p;
    	char student_ID[16];
    	while(1)
    	{
    		if((fp=fopen("ARecord.txt","r"))==NULL)
    		{
    			printf("\t\t文件打开失败!\n");
    			system("pause");
    			student_information_delete();
    		}
    		for(i=0;feof(fp)==0;i++)
    		{
    			fread(&stu[i],sizeof(struct student),1,fp);
    		}
    color(11);
    		printf("\t\t请输入要删除信息的学生学号:");
    color(16);
    		scanf("%s",&student_ID);
    		for(j=0,t=1;j<i;j++)
    		{
    			t=strcmp(stu[j].ID,student_ID);
    			if(t==0)
    			{
    				break;
    			}
    		}
    		if(t==0)
    		{
    color(12);
    			printf("\t\t请确认你是否要删除信息 确定-1 取消-0\n");
    color(26);
    			p=getch();
    			if(p=='1')
    			{
    				for(;j<i-1;j++)
    					stu[j]=stu[j+1];    
    				if((fp=fopen("ARecord.txt","w"))==NULL)
    				{
    					printf("\t\t文件打开失败!\n");
    					system("pause");
    					student_information_delete();
    				}
    				for(f=0;f<i-2;f++)
    				{
    					if(fwrite(&stu[f], sizeof(struct student),1,fp)!=1)
    					{
    						printf("\t\t文件写入错误\n");
    						system("pause");
    						student_information_delete();
    					}
    						
    				}
    color(12);
    				printf("\t\t信息删除成功\n");
    			}
    			else
    			{
    				printf("\t\t你取消了删除操作\n");
    color(16);
    			} 
    		}
    		else
    		{
    color(11);
    			printf("\t\t该生不存在\n");
    color(16);
    		}
    color(14);
    		printf("\t\t是否继续删除信息 继续-1 退出-0\n");
    color(16);
    		x=getch();
    		if(x=='0')
    			break;
    	}
    	fclose(fp);
    	student_information_delete();
    }
    void student_attendance()
    {
    	system("cls");
    	char i;
    	while(1)
    	{
    color(15);
    		printf("\n\n\n\n\n");
    		printf("\t\t丨                            丨\n");
    		printf("\t\t丨         1.考勤录入         丨\n");
    		printf("\t\t丨                            丨\n");
    		printf("\t\t丨         2.考勤查询         丨\n");
    		printf("\t\t丨                            丨\n");
    		printf("\t\t丨         3.上一级菜单       丨\n");
    		printf("\t\t丨                            丨\n");	
    color(16);
    		i=getch();
    		switch(i)
    		{
    			case '1':student_attendance_enter();   		   		     	  break;//考勤录入 
    			case '2':student_attendance_search();    		 		      break;//考勤查询
    			case '3':													  break;//上一级菜单
    			default:printf("\t\t您输入的数字错误,请重新输入!\n");	 	  break;//出错提示
    		}
    		if(i=='3')	
    			break;
    	}
    	student();
    }
    void student_attendance_enter()
    {
    	int i,j,k,l,t,f,s;
    	char h,g,n,x='1';
    	FILE *fp;
    	char student_name[16]; 
    	if((fp=fopen("ARecord.txt","r"))==NULL)
    	{
    		printf("\t\t文件打开失败!\n");
    		system("pause");
    		student_attendance();
    	}
    	for (i=0;feof(fp)==0;i++)
    	{
    		fread(&stu[i], sizeof(struct student), 1, fp);  //读取文件内容
    	}
    	while(1)
    	{
    		system("cls");
    color(15);
    		printf("\n\n\n\n\n");
    		printf("\t\t丨                            丨\n");
    		printf("\t\t丨          1.高数            丨\n");
    		printf("\t\t丨                            丨\n");
    		printf("\t\t丨          2.英语            丨\n");
    		printf("\t\t丨                            丨\n");
    		printf("\t\t丨          3.c程序           丨\n");
    		printf("\t\t丨                            丨\n");
    		printf("\t\t丨          4.上一级菜单      丨\n");
    		printf("\t\t丨                            丨\n");
    color(16);
    		n=getch();
    			switch(n)
    			{
    				case '1':
    color(11);
    					printf("\t\t请输入学生姓名:");
    color(16);
    					scanf("%s",&student_name);
    					for (j=0,t=1;j<i;j++)
    					{
    						t=strcmp(stu[j].name,student_name);
    						if(t==0)
    						{
    							break;	
    						}	
    					}
    					if (t==0)   //查询成功
    					{
    						for(h='1';h=='1';)
    						{
    							for(g='0';g=='0';)
    							{
    color(11);
    								printf("\t\t请输入这是第几次考勤:");
    								scanf("%d",&l);
    								printf("\t\t请输入考勤情况(1-正常 2-迟到 3-早退 4-旷课):");
    color(16);
    								scanf("%d",&stu[j].math[l-1]);
    color(14);
    								printf("\t\t重输-0 确定-1\n");
    								g=getch();
    							}
    							printf("\t\t是否继续该生的考勤记录(继续-1 退出-0)\n");
    color(16);
    							h=getch();
    			  			}
    			  		}
    					else
    					{
    color(11);
    						printf("\t\t未找到该学生信息!\n");
    color(16);
    					}
    					if(t==0)
    					{
    						if((fp=fopen("ARecord.txt","w"))==NULL)
    						{
    							printf("\t\t文件打开失败!\n");
    							system("pause");
    							student_attendance();
    						}
    						for(f=0;f<i;f++)
    						{
    							if(fwrite(&stu[f], sizeof(struct student),1,fp)!=1)
    							{
    								printf("\t\t文件写入错误\n");
    								system("pause");
    								student_attendance();
    							}
    						}
    					}
    				break;
    				case '2':
    color(11);
    					printf("\t\t请输入学生姓名:");
    color(16);
    					scanf("%s",&student_name);
    					for (j=0,t=1;j<i;j++)
    					{
    						t=strcmp(stu[j].name,student_name);
    						if(t==0)
    						{
    							break;	
    						}	
    					}
    					if (t==0)   //查询成功
    					{
    						for(h='1';h=='1';)
    						{
    							for(g='0';g=='0';)
    							{
    color(11);
    								printf("\t\t请输入这是第几次考勤:");
    								scanf("%d",&l);
    								printf("\t\t请输入考勤情况(1-正常 2-迟到 3-早退 4-旷课):");
    color(16);
    								scanf("%d",&stu[j].english[l-1]);
    color(14);
    								printf("\t\t重输-0 确定-1\n");
    								g=getch();
    							}
    							printf("\t\t是否继续该生的考勤记录(继续-1 退出-0)\n");
    color(16);
    							h=getch();
    			  			}
    			  		}
    					else
    					{
    color(11);
    						printf("\t\t未找到该学生信息!\n");
    color(16);
    					}
    					if(t==0)
    					{
    						if((fp=fopen("ARecord.txt","w"))==NULL)
    						{
    							printf("\t\t文件打开失败!\n");
    							system("pause");
    							student_attendance();
    						}
    						for(f=0;f<i;f++)
    						{
    							if(fwrite(&stu[f], sizeof(struct student),1,fp)!=1)
    							{
    								printf("\t\t文件写入错误\n");
    								system("pause");
    								student_attendance();
    							}
    						}
    					}
    				break;
    				case '3':
    color(11);
    					printf("\t\t请输入学生姓名:");
    color(16);
    					scanf("%s",&student_name);
    					for (j=0,t=1;j<i;j++)
    					{
    						t=strcmp(stu[j].name,student_name);
    						if(t==0)
    						{
    							break;	
    						}	
    					}
    					if (t==0)   //查询成功
    					{
    						for(h='1';h=='1';)
    						{
    							for(g='0';g=='0';)
    							{
    color(11);
    								printf("\t\t请输入这是第几次考勤:");
    								scanf("%d",&l);
    								printf("\t\t请输入考勤情况(1-正常 2-迟到 3-早退 4-旷课):");
    color(16);
    								scanf("%d",&stu[j].c[l-1]);
    color(14);
    								printf("\t\t重输-0 确定-1\n");
    								g=getch();
    							}
    							printf("\t\t是否继续该生的考勤记录(继续-1 退出-0)\n");
    color(16);
    							h=getch();
    			  			}
    			  		}
    					else
    					{
    color(11);
    						printf("\t\t未找到该学生信息!\n");
    color(16);
    					}
    					if(t==0)
    					{
    						if((fp=fopen("ARecord.txt","w"))==NULL)
    						{
    							printf("\t\t文件打开失败!\n");
    							system("pause");
    							student_attendance();
    						}
    						for(f=0;f<i;f++)
    						{
    							if(fwrite(&stu[f], sizeof(struct student),1,fp)!=1)
    							{
    								printf("\t\t文件写入错误\n");
    								system("pause");
    								student_attendance();
    							}
    						}
    					}
    				break;
    				case '4':break;	
    				default:printf("\t\t你输入的数字错误,请重新输入!\n");
    			}
    		if(n=='4')
    			break;
    	}
    	fclose(fp);
    	student_attendance();
    }
    void student_attendance_search()
    {
    	char i;
    	system("cls");
    	while(1)
    	{
    color(15);
    		printf("\n\n\n\n\n");
    		printf("\t\t丨                            丨\n");
    		printf("\t\t丨        1.按姓名查询        丨\n");
    		printf("\t\t丨                            丨\n");
    		printf("\t\t丨        2.按学号查询        丨\n");
    		printf("\t\t丨                            丨\n");
    		printf("\t\t丨        3.上一级菜单        丨\n");
    		printf("\t\t丨                            丨\n");
    color(16);
    		i=getch();
    		switch(i)
    		{
    			case '1':student_attendance_search_name();   		   		      break;//学生信息操作 
    			case '2':student_attendance_search_ID();    		 		      break;//学生考勤操作
    			case '3':                        						  	 	  break;//返回上一级菜单
    			default:printf("\t\t您输入的数字错误,请重新输入!\n");	 	 		  break; //出错提示
    		}
    		if(i=='3')	
    			break;
    	}
    	student_attendance();
    }
    void student_attendance_search_name()
    {
    	int i,j,m,t;
    	char l,n,x='1';
    	int a,b,c,d;
    	FILE *fp;
    	char student_name[16]; 
    	int classes;
    		if((fp=fopen("course.txt","r"))==NULL)
    	{
    		printf("\t\t文件打开失败!\n");
    		system("pause");
    		student_attendance_search();
    	}
    	for (i=0;feof(fp)==0;i++)
    	{
    		fread(&sub[i], sizeof(struct subject), 1, fp);  //读取文件内容
    	}
    	if((fp=fopen("ARecord.txt","r"))==NULL)
    	{
    		printf("\t\t文件打开失败!\n");
    		system("pause");
    		student_attendance_search();;
    	}
    	for (i=0;feof(fp)==0;i++)
    	{
    		fread(&stu[i], sizeof(struct student), 1, fp);  //读取文件内容
    	}	
    	while(x!=0)
    	{
    		system("cls");
    color(15);
    		printf("\n\n\n\n\n");
    		printf("\t\t丨                            丨\n"); 
    		printf("\t\t丨 1.显示某人某门考勤信息     丨\n"); 
    		printf("\t\t丨                            丨\n"); 
    		printf("\t\t丨 2.显示某人所有课程考勤信息 丨\n"); 
    		printf("\t\t丨                            丨\n"); 
    		printf("\t\t丨 3.显示某班所有人考勤情况   丨\n"); 
    		printf("\t\t丨                            丨\n");   
    		printf("\t\t丨 0.返回上一级菜单           丨\n");
    		printf("\t\t丨                            丨\n"); 
    color(16);
    		n=getch();
    		switch(n)	
    		{
    			case '1':
    color(15);
    				system("cls");
    				loop:printf("\n\n\n\n\n");
    				printf("\t\t丨                            丨\n"); 
    				printf("\t\t丨           1.高数           丨\n"); 
    				printf("\t\t丨                            丨\n"); 
    				printf("\t\t丨           2.英语           丨\n"); 
    				printf("\t\t丨                            丨\n"); 
    				printf("\t\t丨           3.c程序          丨\n"); 
    				printf("\t\t丨                            丨\n");   
    				printf("\t\t丨      0.返回上一级菜单      丨\n");
    				printf("\t\t丨                            丨\n"); 
    color(16);
    				l=getch();
    				switch(l)
    				{
    					case '1':
    						a=0;b=0;c=0;d=0;
    color(6);
    						printf("\t\t请输入该生姓名:");
    						scanf("%s",&student_name);
    						for (j=0,t=1;j<i;j++)
    						{
    							t=strcmp(stu[j].name,student_name);
    							if(t==0)
    							{
    								break;	
    							}	
    						}
    						if (t==0)   //查询成功
    						{
    							getchar();
    							if(stu[j].math[0]=='\0')
    								{
    									printf("\t\t该生暂无考勤记录\n");
    									break;
    								}
    							printf("姓名\t学号\t\t课程编号\t课程名称\t考勤违纪\t第几次课 \n");
    							for(m=0;stu[j].math[m]!='\0';m++)
    							{
    								if(stu[j].math[m]==1)
    									printf("%s\t%s\t%s\t\t%s\t\t正常\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[0].course_number,sub[0].course_name,m+1);
    								if(stu[j].math[m]==2)
    									printf("%s\t%s\t%s\t\t%s\t\t迟到\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[0].course_number,sub[0].course_name,m+1);
    								if(stu[j].math[m]==3)
    									printf("%s\t%s\t%s\t\t%s\t\t早退\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[0].course_number,sub[0].course_name,m+1);
    								if(stu[j].math[m]==4)
    									printf("%s\t%s\t%s\t\t%s\t\t旷课\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[0].course_number,sub[0].course_name,m+1);
    							}
    						}
    						else
    						{
    							printf("\t\t未找到该学生信息!\n");
    						}
    					break;
    						case '2':
    						a=0;b=0;c=0;d=0;
    						printf("\t\t请输入该生姓名:");
    						scanf("%s",&student_name);
    						for (j=0,t=1;j<i;j++)
    						{
    							t=strcmp(stu[j].name,student_name);
    							if(t==0)
    							{
    								break;	
    							}	
    						}
    						if (t==0)   //查询成功
    						{
    							getchar();
    							if(stu[j].math[0]=='\0')
    								{
    									printf("\t\t该生暂无考勤记录\n");
    									break;
    								}
    							printf("姓名\t学号\t\t课程编号\t课程名称\t考勤违纪\t第几次课 \n");
    							for(m=0;stu[j].english[m]!='\0';m++)
    							{
    								if(stu[j].english[m]==1)
    								{
    									a++;
    									printf("%s\t%s\t%s\t\t%s\t\t正常\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[1].course_number,sub[1].course_name,m+1);
    								}
    								if(stu[j].english[m]==2)
    								{
    									b++;
    									printf("%s\t%s\t%s\t\t%s\t\t迟到\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[1].course_number,sub[1].course_name,m+1);
    								}
    								if(stu[j].english[m]==3)
    								{
    									c++;
    									printf("%s\t%s\t%s\t\t%s\t\t早退\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[1].course_number,sub[1].course_name,m+1);
    								}
    								if(stu[j].english[m]==4)
    								{
    									d++;
    									printf("%s\t%s\t%s\t\t%s\t\t旷课\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[1].course_number,sub[1].course_name,m+1);
    								}
    							}
    							printf("各类违规记录:总考勤次数:%d  正常:%d 迟到:%d 早退:%d 旷课:%d\n",a+b+c+d,a,b,c,d);
    						}
    						else
    						{
    							printf("\t\t未找到该学生信息!\n");
    						}
    					break;
    						case '3':
    						a=0;b=0;c=0;d=0;
    						printf("\t\t请输入该生姓名:");
    						scanf("%s",&student_name);
    						for (j=0,t=1;j<i;j++)
    						{
    							t=strcmp(stu[j].name,student_name);
    							if(t==0)
    							{
    								break;	
    							}	
    						}
    						if (t==0)   //查询成功
    						{
    							getchar();
    							if(stu[j].math[0]=='\0')
    								{
    									printf("\t\t该生暂无考勤记录\n");
    									break;
    								}
    							printf("姓名\t学号\t\t课程编号\t课程名称\t考勤违纪\t第几次课 \n");
    							for(m=0;stu[j].c[m]!='\0';m++)
    							{
    								if(stu[j].c[m]==1)
    								{
    									a++;
    									printf("%s\t%s\t%s\t\t%s\t\t正常\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[2].course_number,sub[2].course_name,m+1);
    								}
    								if(stu[j].c[m]==2)
    								{
    									b++;
    									printf("%s\t%s\t%s\t\t%s\t\t迟到\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[2].course_number,sub[2].course_name,m+1);
    								}
    								if(stu[j].c[m]==3)
    								{
    									c++;
    									printf("%s\t%s\t%s\t\t%s\t\t早退\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[2].course_number,sub[2].course_name,m+1);
    								}
    								if(stu[j].c[m]==4)
    								{
    									d++;
    									printf("%s\t%s\t%s\t\t%s\t\t旷课\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[2].course_number,sub[2].course_name,m+1);
    								}
    							}
    							printf("各类违规记录:总考勤次数:%d  正常:%d 迟到:%d 早退:%d 旷课:%d\n",a+b+c+d,a,b,c,d);
    						}
    						else
    						{
    							printf("\t\t未找到该学生信息!\n");
    						}
    					break;
    					case '0':goto loop;break;
    					default:printf("\t\t你输入的课程名称错误!\n");break;
    				}
    			break;
    			case '2':
    				printf("\t\t请输入该生姓名:");
    				scanf("%s",&student_name);
    				for (j=0,t=1;j<i;j++)
    				{
    					t=strcmp(stu[j].name,student_name);
    					if(t==0)
    					{
    						break;	
    					}	
    				}
    				if (t==0)   //查询成功
    				{
    					getchar();
    					if(stu[j].math[0]=='\0')
    					{
    						printf("\t\t该生暂无考勤记录\n");
    						break;
    					}
    					a=0;b=0;c=0;d=0;
    					printf("姓名\t学号\t\t课程编号\t课程名称\t考勤违纪\t第几次课 \n");
    					for(m=0;stu[j].math[m]!='\0';m++)
    					{
    						if(stu[j].math[m]==1)
    						{
    							a++;
    							printf("%s\t%s\t%s\t\t%s\t\t正常\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[0].course_number,sub[0].course_name,m+1);
    						}
    						if(stu[j].math[m]==2)
    						{
    							b++;
    							printf("%s\t%s\t%s\t\t%s\t\t迟到\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[0].course_number,sub[0].course_name,m+1);
    						}
    						if(stu[j].math[m]==3)
    						{
    							c++;
    							printf("%s\t%s\t%s\t\t%s\t\t早退\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[0].course_number,sub[0].course_name,m+1);
    						}
    						if(stu[j].math[m]==4)
    						{
    							d++;
    							printf("%s\t%s\t%s\t\t%s\t\t旷课\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[0].course_number,sub[0].course_name,m+1);
    						}
    					}
    					printf("各类违规记录:总考勤次数:%d  正常:%d 迟到:%d 早退:%d 旷课:%d\n\n",a+b+c+d,a,b,c,d);
    					a=0;b=0;c=0;d=0;
    					printf("姓名\t学号\t\t课程编号\t课程名称\t考勤违纪\t第几次课 \n");
    					for(m=0;stu[j].english[m]!='\0';m++)
    					{
    						if(stu[j].english[m]==1)
    						{
    							a++;
    							printf("%s\t%s\t%s\t\t%s\t\t正常\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[1].course_number,sub[1].course_name,m+1);
    						}
    						if(stu[j].english[m]==2)
    						{
    							b++;
    							printf("%s\t%s\t%s\t\t%s\t\t迟到\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[1].course_number,sub[1].course_name,m+1);
    						}
    						if(stu[j].english[m]==3)
    						{
    							c++;
    							printf("%s\t%s\t%s\t\t%s\t\t早退\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[1].course_number,sub[1].course_name,m+1);
    						}
    						if(stu[j].english[m]==4)
    						{
    							d++;
    							printf("%s\t%s\t%s\t\t%s\t\t旷课\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[1].course_number,sub[1].course_name,m+1);
    						}
    					}
    					printf("各类违规记录:总考勤次数:%d  正常:%d 迟到:%d 早退:%d 旷课:%d\n\n",a+b+c+d,a,b,c,d);
    					a=0;b=0;c=0;d=0;
    					printf("姓名\t学号\t\t课程编号\t课程名称\t考勤违纪\t第几次课 \n");
    					for(m=0;stu[j].c[m]!='\0';m++)
    					{
    						if(stu[j].c[m]==1)
    						{
    							a++;
    							printf("%s\t%s\t%s\t\t%s\t\t正常\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[2].course_number,sub[2].course_name,m+1);
    						}
    						if(stu[j].c[m]==2)
    						{
    							b++;
    							printf("%s\t%s\t%s\t\t%s\t\t迟到\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[2].course_number,sub[2].course_name,m+1);
    						}
    						if(stu[j].c[m]==3)
    						{
    							c++;
    							printf("%s\t%s\t%s\t\t%s\t\t早退\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[2].course_number,sub[2].course_name,m+1);
    						}
    						if(stu[j].c[m]==4)
    						{
    							d++;
    							printf("%s\t%s\t%s\t\t%s\t\t旷课\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[2].course_number,sub[2].course_name,m+1);
    						}
    					}
    					printf("各类违规记录:总考勤次数:%d  正常:%d 迟到:%d 早退:%d 旷课:%d\n",a+b+c+d,a,b,c,d);
    				}
    				else
    				{
    					printf("\t\t未找到该学生信息!\n");
    				}	
    			break;
    			case '3':
    				printf("\t\t请输入查询班级:");
    				scanf("%d",&classes);
    				for (j=0,t=0;j<i;j++)
    				{
    					if(stu[j].classes==classes)
    					{
    						t++;
    						a=0;b=0;c=0;d=0;
    						printf("姓名\t学号\t\t课程编号\t课程名称\t考勤违纪\t第几次课 \n");
    						for(m=0;stu[j].math[m]!='\0';m++)
    						{
    							if(stu[j].math[m]==1)
    							{
    								a++;
    								printf("%s\t%s\t%s\t\t%s\t\t正常\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[0].course_number,sub[0].course_name,m+1);
    							}
    							if(stu[j].math[m]==2)
    							{
    								b++;
    								printf("%s\t%s\t%s\t\t%s\t\t迟到\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[0].course_number,sub[0].course_name,m+1);
    							}
    							if(stu[j].math[m]==3)
    							{
    								c++;
    								printf("%s\t%s\t%s\t\t%s\t\t早退\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[0].course_number,sub[0].course_name,m+1);
    							}
    							if(stu[j].math[m]==4)
    							{
    								d++;
    								printf("%s\t%s\t%s\t\t%s\t\t旷课\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[0].course_number,sub[0].course_name,m+1);
    							}
    					}
    					printf("各类违规记录:总考勤次数:%d  正常:%d 迟到:%d 早退:%d 旷课:%d\n",a+b+c+d,a,b,c,d);
    						a=0;b=0;c=0;d=0;
    					printf("姓名\t学号\t\t课程编号\t课程名称\t考勤违纪\t第几次课 \n");
    					for(m=0;stu[j].english[m]!='\0';m++)
    					{
    						if(stu[j].english[m]==1)
    						{
    							a++;
    							printf("%s\t%s\t%s\t\t%s\t\t正常\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[1].course_number,sub[1].course_name,m+1);
    						}
    						if(stu[j].english[m]==2)
    						{
    							b++;
    							printf("%s\t%s\t%s\t\t%s\t\t迟到\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[1].course_number,sub[1].course_name,m+1);
    						}
    						if(stu[j].english[m]==3)
    						{
    							c++;
    							printf("%s\t%s\t%s\t\t%s\t\t早退\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[1].course_number,sub[1].course_name,m+1);
    						}
    						if(stu[j].english[m]==4)
    						{
    							d++;
    							printf("%s\t%s\t%s\t\t%s\t\t旷课\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[1].course_number,sub[1].course_name,m+1);
    						}
    					}
    					printf("各类违规记录:总考勤次数:%d  正常:%d 迟到:%d 早退:%d 旷课:%d\n",a+b+c+d,a,b,c,d);
    						a=0;b=0;c=0;d=0;
    					printf("姓名\t学号\t\t课程编号\t课程名称\t考勤违纪\t第几次课 \n");
    					for(m=0;stu[j].c[m]!='\0';m++)
    					{
    						if(stu[j].c[m]==1)
    						{
    							a++;
    							printf("%s\t%s\t%s\t\t%s\t\t正常\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[2].course_number,sub[2].course_name,m+1);
    						}
    						if(stu[j].c[m]==2)
    						{
    							b++;
    							printf("%s\t%s\t%s\t\t%s\t\t迟到\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[2].course_number,sub[2].course_name,m+1);
    						}
    						if(stu[j].c[m]==3)
    						{
    							c++;
    							printf("%s\t%s\t%s\t\t%s\t\t早退\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[2].course_number,sub[2].course_name,m+1);
    						}
    						if(stu[j].c[m]==4)
    						{
    							d++;
    							printf("%s\t%s\t%s\t\t%s\t\t旷课\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[2].course_number,sub[2].course_name,m+1);
    						}
    					}
    					printf("各类违规记录:总考勤次数:%d  正常:%d 迟到:%d 早退:%d 旷课:%d\n",a+b+c+d,a,b,c,d);
    					}
    				}
    				if(t==0)
    					printf("\t\t暂无该班级\n");
    			break;
    			case '0':break;
    			default:printf("\t\t你输入的数字错误!\n");break;
    color(16);
    		}
    		if(n=='0')
    			break;
    color(14);
    		printf("\t\t继续-1  退出-0");
    color(16);
    		x=getch();
    	}
    	fclose(fp);
    	student_attendance_search();
    }
    void student_attendance_search_ID()
    {
    	int i,j,m,t;
    	char l,n,x='1';
    	int a,b,c,d;
    	FILE *fp;
    	char student_number[16];
    	int classes; 
    		if((fp=fopen("course.txt","r"))==NULL)
    	{
    		printf("\t\t文件打开失败!\n");
    		system("pause");
    		student_attendance_search();
    	}
    	for (i=0;feof(fp)==0;i++)
    	{
    		fread(&sub[i], sizeof(struct subject), 1, fp);  //读取文件内容
    	}
    	if((fp=fopen("ARecord.txt","r"))==NULL)
    	{
    		printf("\t\t文件打开失败!\n");
    		system("pause");
    		student_attendance_search();
    	}
    	for (i=0;feof(fp)==0;i++)
    	{
    		fread(&stu[i], sizeof(struct student), 1, fp);  //读取文件内容
    	}
    	
    	while(x!='0')
    	{
    		a=0;b=0;c=0;d=0;
    		system("cls");
    color(15);
    		printf("\n\n\n\n\n");
    		printf("\t\t丨                            丨\n"); 
    		printf("\t\t丨 1.显示某人某门考勤信息     丨\n"); 
    		printf("\t\t丨                            丨\n"); 
    		printf("\t\t丨 2.显示某人所有课程考勤信息 丨\n"); 
    		printf("\t\t丨                            丨\n"); 
    		printf("\t\t丨 3.显示某班所有人考勤情况   丨\n"); 
    		printf("\t\t丨                            丨\n");   
    		printf("\t\t丨 0.返回上一级菜单           丨\n");
    		printf("\t\t丨                            丨\n"); 
    color(16);
    		n=getch();
    		switch(n)
    		
    		{
    			case '1':
    color(15);
    				system("cls");
    				loop:printf("\n\n\n\n\n");
    				printf("\t\t丨                            丨\n"); 
    				printf("\t\t丨           1.高数           丨\n"); 
    				printf("\t\t丨                            丨\n"); 
    				printf("\t\t丨           2.英语           丨\n"); 
    				printf("\t\t丨                            丨\n"); 
    				printf("\t\t丨           3.c程序          丨\n"); 
    				printf("\t\t丨                            丨\n");   
    				printf("\t\t丨      0.返回上一级菜单      丨\n");
    				printf("\t\t丨                            丨\n"); 
    color(16);
    				l=getch();
    				switch(l)
    				{
    					case '1':
    						a=0;b=0;c=0;d=0;
    color(6);
    						printf("\t\t请输入该生学号:");
    						scanf("%s",&student_number);
    						for (j=0,t=1;j<i;j++)
    						{
    							t=strcmp(stu[j].ID,student_number);
    							if(t==0)
    							{
    								break;	
    							}	
    						}
    						if (t==0)   //查询成功
    						{
    							getchar();
    							if(stu[j].math[0]=='\0')
    								{
    									printf("\t\t该生暂无考勤记录\n");
    									break;
    								}
    							printf("姓名\t学号\t\t课程编号\t课程名称\t考勤违纪\t第几次课 \n");
    							for(m=0;stu[j].math[m]!='\0';m++)
    							{
    								if(stu[j].math[m]==1)
    								{
    									a++;
    									printf("%s\t%s\t%s\t\t%s\t\t正常\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[0].course_number,sub[0].course_name,m+1);
    								}
    								if(stu[j].math[m]==2)
    								{
    									b++;
    									printf("%s\t%s\t%s\t\t%s\t\t迟到\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[0].course_number,sub[0].course_name,m+1);
    								}
    								if(stu[j].math[m]==3)
    								{
    									c++;
    									printf("%s\t%s\t%s\t\t%s\t\t早退\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[0].course_number,sub[0].course_name,m+1);
    								}
    								if(stu[j].math[m]==4)
    								{
    									d++;
    									printf("%s\t%s\t%s\t\t%s\t\t旷课\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[0].course_number,sub[0].course_name,m+1);
    								}
    							}
    							printf("各类违规记录:总考勤次数:%d  正常:%d 迟到:%d 早退:%d 旷课:%d\n",a+b+c+d,a,b,c,d);
    						}
    						else
    						{
    							printf("\t\t未找到该学生信息!\n");
    						}
    					break;
    					case '2':
    						a=0;b=0;c=0;d=0;
    						printf("\t\t请输入该生学号:");
    						scanf("%s",&student_number);
    						for (j=0,t=1;j<i;j++)
    						{
    							t=strcmp(stu[j].ID,student_number);
    							if(t==0)
    							{
    								break;	
    							}	
    						}
    						if (t==0)   //查询成功
    						{
    							getchar();
    							if(stu[j].math[0]=='\0')
    								{
    									printf("\t\t该生暂无考勤记录\n");
    									break;
    								}
    							printf("姓名\t学号\t\t课程编号\t课程名称\t考勤违纪\t第几次课 \n");
    							for(m=0;stu[j].english[m]!='\0';m++)
    							{
    								if(stu[j].english[m]==1)
    								{
    									a++;
    									printf("%s\t%\t%s\t\t%s\t\t正常\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[1].course_number,sub[1].course_name,m+1);
    								}
    								if(stu[j].english[m]==2)
    								{
    									b++;
    									printf("%s\t%s\t%s\t\t%s\t\t迟到\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[1].course_number,sub[1].course_name,m+1);
    								}
    								if(stu[j].english[m]==3)
    								{
    									c++;
    									printf("%s\t%s\t%s\t\t%s\t\t早退\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[1].course_number,sub[1].course_name,m+1);
    								}
    								if(stu[j].english[m]==4)
    								{
    									d++;
    									printf("%s\t%s\t%s\t\t%s\t\t旷课\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[1].course_number,sub[1].course_name,m+1);
    								}
    							}
    							printf("各类违规记录:总考勤次数:%d  正常:%d 迟到:%d 早退:%d 旷课:%d\n",a+b+c+d,a,b,c,d);
    						}
    						else
    						{
    							printf("\t\t未找到该学生信息!\n");
    						}
    					break;
    					case '3':
    						a=0;b=0;c=0;d=0;
    						printf("\t\t请输入该生学号:");
    						scanf("%s",&student_number);
    						for (j=0,t=1;j<i;j++)
    						{
    							t=strcmp(stu[j].ID,student_number);
    							if(t==0)
    							{
    								break;	
    							}	
    						}
    						if (t==0)   //查询成功
    						{
    							getchar();
    							if(stu[j].math[0]=='\0')
    								{
    									printf("\t\t该生暂无考勤记录\n");
    									break;
    								}
    							printf("姓名\t学号\t\t课程编号\t课程名称\t考勤违纪\t第几次课 \n");
    							for(m=0;stu[j].c[m]!='\0';m++)
    							{
    								if(stu[j].c[m]==1)
    								{
    									a++;
    									printf("%s\t%s\t%s\t\t%s\t\t正常\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[2].course_number,sub[2].course_name,m+1);
    								}
    								if(stu[j].c[m]==2)
    								{
    									b++;
    									printf("%s\t%s\t%s\t\t%s\t\t迟到\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[2].course_number,sub[2].course_name,m+1);
    								}
    								if(stu[j].c[m]==3)
    								{
    									c++;
    									printf("%s\t%s\t%s\t\t%s\t\t早退\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[2].course_number,sub[2].course_name,m+1);
    								}
    								if(stu[j].c[m]==4)
    								{
    									d++;
    									printf("%s\t%s\t%s\t\t%s\t\t旷课\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[2].course_number,sub[2].course_name,m+1);
    								}
    							}
    							printf("各类违规记录:总考勤次数:%d  正常:%d 迟到:%d 早退:%d 旷课:%d\n",a+b+c+d,a,b,c,d);
    						}
    						else
    						{
    							printf("\t\t未找到该学生信息!\n");
    						}
    					break;
    					case 0:goto loop;break;
    					default:printf("\t\t你输入的课程名称错误!\n");break;
    				}
    			break;
    			case '2':	
    				printf("\t\t请输入该生学号:");
    				scanf("%s",&student_number);
    				for (j=0,t=1;j<i;j++)
    				{
    					t=strcmp(stu[j].ID,student_number);
    					if(t==0)
    					{
    						break;	
    					}	
    				}
    				if (t==0)   //查询成功
    				{
    					getchar();
    					if(stu[j].math[0]=='\0')
    					{
    						printf("\t\t该生暂无考勤记录\n");
    						break;
    					}
    					a=0;b=0;c=0;d=0;
    					printf("姓名\t学号\t\t课程编号\t课程名称\t考勤违纪\t第几次课 \n");
    					for(m=0;stu[j].math[m]!='\0';m++)
    					{
    						if(stu[j].math[m]==1)
    						{
    							a++;
    							printf("%s\t%s\t%s\t\t%s\t\t正常\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[0].course_number,sub[0].course_name,m+1);
    						}
    						if(stu[j].math[m]==2)
    						{
    							b++;
    							printf("%s\t%s\t%s\t\t%s\t\t迟到\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[0].course_number,sub[0].course_name,m+1);
    						}
    						if(stu[j].math[m]==3)
    						{
    							c++;
    							printf("%s\t%s\t%s\t\t%s\t\t早退\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[0].course_number,sub[0].course_name,m+1);
    						}
    						if(stu[j].math[m]==4)
    						{
    							d++;
    							printf("%s\t%s\t%s\t\t%s\t\t旷课\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[0].course_number,sub[0].course_name,m+1);
    						}
    					}
    					printf("各类违规记录:总考勤次数:%d  正常:%d 迟到:%d 早退:%d 旷课:%d\n\n",a+b+c+d,a,b,c,d);
    					a=0;b=0;c=0;d=0;
    					printf("姓名\t学号\t\t课程编号\t课程名称\t考勤违纪\t第几次课 \n");
    					for(m=0;stu[j].english[m]!='\0';m++)
    					{
    						if(stu[j].english[m]==1)
    						{
    							a++;
    							printf("%s\t%s\t%s\t\t%s\t\t正常\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[1].course_number,sub[1].course_name,m+1);
    						}
    						if(stu[j].english[m]==2)
    						{
    							b++;
    							printf("%s\t%s\t%s\t\t%s\t\t迟到\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[1].course_number,sub[1].course_name,m+1);
    						}
    						if(stu[j].english[m]==3)
    						{
    							c++;
    							printf("%s\t%s\t%s\t\t%s\t\t早退\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[1].course_number,sub[1].course_name,m+1);
    						}
    						if(stu[j].english[m]==4)
    						{
    							d++;
    							printf("%s\t%s\t%s\t\t%s\t\t旷课\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[1].course_number,sub[1].course_name,m+1);
    						}
    					}
    					printf("各类违规记录:总考勤次数:%d  正常:%d 迟到:%d 早退:%d 旷课:%d\n\n",a+b+c+d,a,b,c,d);
    					a=0;b=0;c=0;d=0;
    					printf("姓名\t学号\t\t课程编号\t课程名称\t考勤违纪\t第几次课 \n");
    					for(m=0;stu[j].c[m]!='\0';m++)
    					{
    						if(stu[j].c[m]==1)
    						{
    							a++;
    							printf("%s\t%s\t%s\t\t%s\t\t正常\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[2].course_number,sub[2].course_name,m+1);
    						}
    						if(stu[j].c[m]==2)
    						{
    							b++;
    							printf("%s\t%s\t%s\t\t%s\t\t迟到\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[2].course_number,sub[2].course_name,m+1);
    						}
    						if(stu[j].c[m]==3)
    						{
    							c++;
    							printf("%s\t%s\t%s\t\t%s\t\t早退\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[2].course_number,sub[2].course_name,m+1);
    						}
    						if(stu[j].c[m]==4)
    						{
    							d++;
    							printf("%s\t%s\t%s\t\t%s\t\t旷课\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[2].course_number,sub[2].course_name,m+1);
    						}
    					}
    					printf("各类违规记录:总考勤次数:%d  正常:%d 迟到:%d 早退:%d 旷课:%d\n",a+b+c+d,a,b,c,d);
    				}
    				else
    				{
    					printf("\t\t未找到该学生信息!\n");
    				}	
    			break;
    			case '3':
    				printf("\t\t请输入查询班级:");
    				scanf("%d",&classes);
    				for (j=0,t=0;j<i;j++)
    				{
    					if(stu[j].classes==classes)
    					{
    						t++;
    						a=0;b=0;c=0;d=0;
    						printf("姓名\t学号\t\t课程编号\t课程名称\t考勤违纪\t第几次课 \n");
    						for(m=0;stu[j].math[m]!='\0';m++)
    						{
    							if(stu[j].math[m]==1)
    							{
    								a++;
    								printf("%s\t%s\t%s\t\t%s\t\t正常\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[0].course_number,sub[0].course_name,m+1);
    							}
    							if(stu[j].math[m]==2)
    							{
    								b++;
    								printf("%s\t%s\t%s\t\t%s\t\t迟到\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[0].course_number,sub[0].course_name,m+1);
    							}
    							if(stu[j].math[m]==3)
    							{
    								c++;
    								printf("%s\t%s\t%s\t\t%s\t\t早退\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[0].course_number,sub[0].course_name,m+1);
    							}
    							if(stu[j].math[m]==4)
    							{
    								d++;
    								printf("%s\t%s\t%s\t\t%s\t\t旷课\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[0].course_number,sub[0].course_name,m+1);
    							}
    						}
    						printf("各类违规记录:总考勤次数:%d  正常:%d 迟到:%d 早退:%d 旷课:%d\n\n",a+b+c+d,a,b,c,d);
    						a=0;b=0;c=0;d=0;
    						printf("姓名\t学号\t\t课程编号\t课程名称\t考勤违纪\t第几次课 \n");
    						for(m=0;stu[j].english[m]!='\0';m++)
    						{
    							if(stu[j].english[m]==1)
    							{
    								a++;
    								printf("%s\t%s\t%s\t\t%s\t\t正常\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[1].course_number,sub[1].course_name,m+1);
    							}
    							if(stu[j].english[m]==2)
    							{
    								b++;
    								printf("%s\t%s\t%s\t\t%s\t\t迟到\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[1].course_number,sub[1].course_name,m+1);
    							}
    							if(stu[j].english[m]==3)
    							{
    								c++;
    								printf("%s\t%s\t%s\t\t%s\t\t早退\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[1].course_number,sub[1].course_name,m+1);
    							}
    							if(stu[j].english[m]==4)
    							{
    								d++;
    								printf("%s\t%s\t%s\t\t%s\t\t旷课\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[1].course_number,sub[1].course_name,m+1);
    							}
    						}
    						printf("各类违规记录:总考勤次数:%d  正常:%d 迟到:%d 早退:%d 旷课:%d\n\n",a+b+c+d,a,b,c,d);
    						a=0;b=0;c=0;d=0;
    						printf("姓名\t学号\t\t课程编号\t课程名称\t考勤违纪\t第几次课 \n");
    						for(m=0;stu[j].c[m]!='\0';m++)
    						{
    							if(stu[j].c[m]==1)
    							{
    								a++;
    								printf("%s\t%s\t%s\t\t%s\t\t正常\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[2].course_number,sub[2].course_name,m+1);
    							}
    							if(stu[j].c[m]==2)
    							{
    								b++;
    								printf("%s\t%s\t%s\t\t%s\t\t迟到\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[2].course_number,sub[2].course_name,m+1);
    							}
    							if(stu[j].c[m]==3)
    							{
    								c++;
    								printf("%s\t%s\t%s\t\t%s\t\t早退\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[2].course_number,sub[2].course_name,m+1);
    							}
    							if(stu[j].c[m]==4)
    							{
    								d++;
    								printf("%s\t%s\t%s\t\t%s\t\t旷课\t\t第%d次课\n",stu[j].name,stu[j].ID,sub[2].course_number,sub[2].course_name,m+1);
    							}
    						}
    						printf("各类违规记录:总考勤次数:%d  正常:%d 迟到:%d 早退:%d 旷课:%d\n",a+b+c+d,a,b,c,d);
    					}
    				}
    				if(t==0)
    					printf("\t\t暂无该班级\n");
    			break;	
    			case '4':break;
    			default:printf("\t\t你输入的数字错误!\n");break;
    color(16);
    		}
    		if(n=='4')	
    			break;
    color(14);
    		printf("\t\t继续-1  退出-0");
    color(16);
    		x=getch();
    	}
    	fclose(fp);
    	student_attendance_search();
    }
    void course()
    {
    	char i;
    	while(1)
    	{	
    color(15);
    		system("cls");
    		printf("\n\n\n\n\n");			
    		printf("\t\t丨                            丨\n"); 
    		printf("\t\t丨          1.课程录入        丨\n"); 
    		printf("\t\t丨                            丨\n"); 
    		printf("\t\t丨          2.课程查询        丨\n"); 
    		printf("\t\t丨                            丨\n"); 
    		printf("\t\t丨          3.主菜单          丨\n"); 
    		printf("\t\t丨                            丨\n");   
    color(16);
    		i=getch();
    		switch(i)
    		{
    			case '1':course_enter();   		   		     		  	  break;//课程录入 
    			case '2':course_search();    		 		     		  break;//课程查询
    			case '3':                        						  break;//返回主菜单
    			default:printf("\t\t您输入的数字错误,请重新输入!\n");	  break;//出错提示
    		}
    		if(i=='3')	
    			break;
    	}
    	main();
    }
    void course_enter()
    {
    	int i,f,x;
    	char j,k;
    	FILE *fp;
    	system("cls");
    	if((fp=fopen("course.txt","w"))==NULL)
    	{
    		printf("\t\t文件打开失败!\n");
    		system("pause");
    		course();
    	}
    	printf("\n\n\n\n\n");
    	for(j='1',x=0;j=='1';x++)
    	{
    color(11);
    		for(k=0;k==0;)
    		{
    			printf("\t\t请输入课程的编号:");
    			scanf("%s",&sub[x].course_number);
    			printf("\t\t请输入课程的名称:");
    			scanf("%s",&sub[x].course_name);
    			printf("\t\t请输入课程的学分:");
    			scanf("%d",&sub[x].course_score);
    			printf("\t\t请输入课程的任课教师:");
    			scanf("%s",&sub[x].teacher_name);
    			printf("\t\t请输入课程的上课时间(例如:周1上午10.00-12.00):");
    			scanf("%s",&sub[x].time);
    			printf("\t\t请输入课程的上课次数:");
    			scanf("%d",&sub[x].class_times);
    			printf("\t\t请输入课程的上课地点(例如:教1-101):");
    			scanf("%s",&sub[x].class_place);
    			printf("\t\t请确定信息(确定-1,重输-0):\n");
    			k=getch();
    		}
    		if(fwrite(&sub[x], sizeof(struct subject),1,fp)!=1)
    		{
    			printf("\t\t文件写入错误\n");
    			system("pause");
    			course();
    		}
    color(16);
    color(14);
    		printf("\t\t是否继续输入下一个课程 继续-1 终止-0:\n");
    color(16);
    		j=getch();
    	}
    	fclose(fp);
    	course();
    }
    void course_search()
    {
    	char i;
    	while(1)
    	{
    color(15);
    		system("cls");
    		printf("\n\n\n\n\n");			
    		printf("\t\t丨                            丨\n"); 
    		printf("\t\t丨      1.按课程名称查询      丨\n"); 
    		printf("\t\t丨                            丨\n"); 
    		printf("\t\t丨      2.按任课教师查询      丨\n"); 
    		printf("\t\t丨                            丨\n"); 
    		printf("\t\t丨      3.显示所有课程        丨\n"); 
    		printf("\t\t丨                            丨\n"); 
    		printf("\t\t丨      4.上一级菜单          丨\n");  
    		printf("\t\t丨                            丨\n");    
    color(16);
    		i=getch();
    		switch(i)
    		{
    			case '1':course_search_coursename();   		   		 break;//按课程名称查询 
    			case '2':course_search_teachername();    		 		 break;//按任课教师查询
    			case '3':course_search_all();                     	 break;//显示所有课程
    			case '4':											break;
    			default:printf("\t\t您输入的数字错误,请重新输入!\n");	 break; //出错提示
    		}
    		if(i=='4')	
    			break;
    	}
    	course();
    }
    void course_search_coursename()
    {
    	system("cls");
    	printf("\n\n\n\n\n");
    	int i=0,j=0,t=1;
    	char x='1';
    	FILE *fp;
    	char course_name[10]; 
    	if((fp=fopen("course.txt","r"))==NULL)
    	{
    		printf("\t\t文件打开失败!\n");
    		system("pause");
    		course_search();
    	}
    	for (i=0;feof(fp)==0;i++)
    	{
    		fread(&sub[i], sizeof(struct subject), 1, fp);  //读取文件内容
    	}
    	while(x!='0')
    	{
    color(6);
    		printf("\t\t请输入需要查询课程名称:");
    		scanf("%s", &course_name);
    		for (j=0,t=1;j<i;j++)
    		{
    			t=strcmp(sub[j].course_name,course_name);
    			if(t==0)
    			{
    				break;	
    			}	
    		}
    		if (t==0)   //查询成功
    		{
    			printf("课程编号\t课程名称\t课程学分\t任课教师\t     上课时间\t\t上课次数\t上课地点\n");
    			printf("%s\t\t  %s\t\t   %d\t\t  %s\t\t%s\t   %d\t\t%s\n",sub[j].course_number,sub[j].course_name,sub[j].course_score,sub[j].teacher_name,sub[j].time,sub[j].class_times,sub[j].class_place);
    		}
    		else
    		{
    			printf("\t\t未找到该课程信息!\n");
    		}
    color(16);
    color(14);
    		printf("\t\t继续-1,退出-0\n");
    color(16);
    		x=getch(); 
    	}
    	fclose(fp);
    	course_search();
    }
    void course_search_teachername()
    {
    	system("cls");
    	printf("\n\n\n\n\n");
    	int i=0,j=0,t=1;
    	char x='1';
    	FILE *fp;
    	char teacher_name[10]; 
    	if((fp=fopen("course.txt","r"))==NULL)
    	{
    		printf("\t\t文件打开失败!\n");
    		system("pause");
    		course_search();
    	}
    	for (i=0;feof(fp)==0;i++)
    	{
    		fread(&sub[i], sizeof(struct subject), 1, fp);  //读取文件内容
    	}
    		while(x!='0')
    	{
    color(6);
    		printf("\t\t请输入任课教师名称:");
    		scanf("%s", &teacher_name);
    		for (j=0,t=1;j<i;j++)
    		{
    			t=strcmp(sub[j].teacher_name,teacher_name);
    			if(t==0)
    			{
    				break;	
    			}	
    		}
    		if (t==0)   //查询成功
    		{
    			printf("课程编号\t课程名称\t课程学分\t任课教师\t     上课时间\t\t上课次数\t上课地点\n");
    			printf("%s\t\t  %s\t\t   %d\t\t  %s\t\t%s\t   %d\t\t%s\n",sub[j].course_number,sub[j].course_name,sub[j].course_score,sub[j].teacher_name,sub[j].time,sub[j].class_times,sub[j].class_place);
    		}
    		else
    		{
    			printf("\t\t未找到该课程信息!\n");
    		}
    color(16);
    color(14);
    		printf("\t\t继续-1,退出-0\n");
    color(16);
    		x=getch(); 
    	}
    	fclose(fp);
    	course_search();
    }
    void course_search_all()
    {
    	system("cls");
    	printf("\n\n\n\n\n");
    	int j;
    	FILE *fp;
    	if((fp=fopen("course.txt","r"))==NULL)
    	{
    		printf("文件打开失败!\n");
    		system("pause");
    		course_search();
    	}
    color(6);
    	printf("课程编号\t课程名称\t课程学分\t任课教师\t     上课时间\t\t上课次数\t上课地点\n");
    	for (j=0;feof(fp)==0;j++)
    	{
    		fread(&sub[j], sizeof(struct subject), 1, fp);  //读取文件内容
    		printf("%s\t\t  %s\t\t   %d\t\t  %s\t\t%s\t   %d\t\t%s\n",sub[j].course_number,sub[j].course_name,sub[j].course_score,sub[j].teacher_name,sub[j].time,sub[j].class_times,sub[j].class_place);
    	}
    	fclose(fp);
    color(16);
    	system("pause");
    	course_search();
    }
    void backup()
    {
    	system("cls");
    	printf("\n\n\n\n\n");
    	FILE *source,*end;
    	char ch;
    	if((source=fopen("ARecord.txt","r"))==NULL)
    	{
    		printf("\t\t文件打开失败!\n");
    		system("pause");
    		main();
    	}
    	if((end=fopen("backup.txt","w"))==NULL)
    	{
    		printf("\t\t文件打开失败!\n");
    		system("pause");
    		main();
    	}
    color(4);
    	printf("\t\t文件备份中....!\n\n\n");
    color(16);
    	Sleep(1500);
    	 for ( ch=fgetc(source); ch != EOF; ch=fgetc(source) )
        {
            fputc(ch,end);
        }
        system("cls");
    color(3);
    	printf("\n\n\n\n\n\n\n\n\t\t文件备份成功!");
    color(16);
    	Sleep(1000);
        fclose(source);
        fclose(end);
        puts("ok");
        main();
    }
    
    
    展开全文
  • 信 阳 师 范 学 院 课 程 设 计 课 程 课 程 C++程序设计 题 目 学生考勤信息管理系统 院 系 计算机和信息技术学院 专业班级 20XX级软件工程 学生姓名 学生学号 指导老师 20XX年 1月2 日 课程设计成绩评价表 课程...
  • 基于 java 的学生考勤信息管理系统设计 摘 要 学生考勤信息管理系统用于实现学校对在校学生的考勤信息的管理是典型的管理 信息系统学生考勤信息的手工登记查询是一项非常繁重而枯燥的劳动在计算机技 师飞速发展的...
  • Oracle数据库作业——学生考勤系统的Oracle实现1学生考勤管理系统背景分析随着高校校园信息化的逐步完善,有效地借助网络、数据库等技术提高工作和管理效率。如今针对师生的成绩查询系统、教务管理系统、招生就业...
  • 高校学生考勤管理系统信息技术的深入发展,各管理系统得到广泛应用,高校信息化管理也已经成熟稳定。要把高校各管理过程紧密的联系起来,需要对教学资源进行有效组织,开发适合管理的教学管理系统。而学生考勤系统的...
  • 基于的学生考勤信息管理系统设计 摘 要 学生考勤信息管理系统用于实现学校对在校学生的考勤信息的管理是典型的管理信息系统学生考勤信息的手工登记查询是一项非常繁重而枯燥的劳动在计算机技师飞速发展的今天应用...
  • android学生移动考勤信息管理系统

    千次阅读 热门讨论 2018-04-23 21:17:40
    android学生移动考勤信息管理系统emmmm本系统带程序说明书 有需要的可以去我上传的资源里面找,找不到的话,评论我,或者站内私信留下邮箱,我看到机会给你发,也可以主动联系我博客名。因为最近太忙一直没有上传完...
  • 学生信息管理系统,可运行,项目不大,适合课程设计,包括学生的增删改查,并可对学生考勤
  • 考勤管理系统是高校对考勤实行了高校教育信息化管理,好多帮科技学生考勤管理系统中主要涉及的管理任务有4个方面:学生基本信息管理、考勤信息管理、考勤查询浏览管理以及系统管理,实现学生考勤的录入、按班级统计...
  • 3.考勤信息管理学生编号、考勤名称、考勤内容、开始日期、结束日期、检查老师、考勤结果。 4.请假信息管理:学生编号、状态、请假内容、批准人、开始日期、结束日期、请假天数等。 5.修改密码:管理登录系统后...
  • 学生考勤管理系统

    2020-12-02 14:51:30
    这里写自定义目录标题学生考勤管理系统 学生考勤管理系统 背景分析: 随着高校校园信息化的逐步完善,有效地借助网络、数据库等技术提高工作和管理效率。如今针对师生的成绩查询系统、教务管理系统、招生就业系统、...
  • 晚归与考勤管理信息系统 开发文档 学生晚归与考勤管理信息系统开发 系统分析及设计 3.1 系统预期用户 本系统的预期用户是任何想了解学生在校的考勤情况的用户 3.2 功能说明 学生晚归与考勤管理系统是目前广西机电...
  • java学生考勤管理系统

    2019-06-27 09:08:17
    学生考勤管理系统设计一个基于java与RFID的考勤系统。 应用背景:单位员工考勤等。 业务流程与需求分析: 考勤主体需求:记录员工何时到达,何时离开(甚至可以包括何处)。并可以按照要求,提供考勤的统计情况。 ...
  • {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里云数据库专家保驾护航,为用户的数据库应用系统进行性能和风险评估,参与配合进行...
  • 学生的考勤检查都是依赖任课老师人工记录的,面对这么多的学生信息,老师信息和授课信息只能靠任课教师上课之前一一统计,让任课教师感到非常的辛苦和劳累,因为要统计的信息非常多,所以开发设计学生考勤管理系统。...
  • 这样使整个系统既快速、高效的为用户提供信息服务,同时又保证了系统的安全性。管理员登陆系统后,可以对所有的信息进行查看和修改功能。...3.考勤信息管理:当日考勤登记、考勤信息统计、考勤信...
  • 适合课程设计的时候看看,c++语言开发,有详细的代码和系统分析

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 464
精华内容 185
关键字:

学生考勤信息管理系统