#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<math.h>
#define N 100
struct studentinfmansys
{ 
    char Major[30];
    char Name[15];
    char Num[20];
    char Sex[5];
    char HouseAddr[50];
    char CommunicationAddr[50];
    char Work[50];
    char HousePho[20];
    char PersonPho[20];    
    char Postalcode[10];
    char Mail[20];
};
struct studentaddbooinfmansys
{
    char Name[15];
    char Num[20];
    char Sex[5];
    char HouseAddr[50];
    char HousePho[20];
    char PersonPho[20];
    char QQ[15];
    char Mail[20];
};
struct studentscrinfmansys
{
    char Name[15];
    char Num[20];
    char Sex[5];
    float Chinese;
    float Math;
    float English;
    float ComputerBasis;
    float Php;
    float Java;
    float RouterSwitch;
    float Cprogram;
    float Total[N];
    float Average[N];
    float score[8];

};
void MainPrint();                    /* 首页                        */
void StudentPerInfManSys();          /* 学生个人信息管理系统        */
void AddStuPerInf();                 /* 添加学生个人信息            */
void QueryStuPerInf();               /* 查询学生个人信息            */
void ModifyStuPerInf();              /* 修改学生个人信息            */
void DeleteStuPerInf();              /* 删除学生个人信息            */
void SavaStuPerInf();                /* 保存学生个人信息            */
void BrowsStuPerInf();                  /* 浏览学生信息                */
void BrowsStuPerInfName();
void BrowsStuPerInfNum();
void BrowsStuPerInfPho();
void BrowsStuInfHouPho();
void BrowsStuInfPerPho();
void OutputAllStuInf();              /* 输出所有学生信息            */
void QueryStuPerInf();               /* 查询学生个人信息            */
void PrintfStuPerInf();              /* 打印学生个人信息            */
void GoBack();                       /* 返回                        */
void StudentAddBooInfManSys();       /* 学生通讯录信息系统管理      */ 
void AddStuPerAddBooInf();           /* 添加学生个人通讯录信息      */
void QueryStuAddBooInf();            /* 查询学生通讯录信息          */
void QueryAllStuAddBooInf();         /* 查询所有学生通讯录信息      */
void QueryStuPerAddBooInf();         /* 查询学生个人通讯录信息      */
//void ModifyStuAddBooInf();           /* 修改学生通讯录信息        */
void ModifyStuPerAddBooInf();        /* 修改学生个人通讯录信息      */
void DeleteStuAddBooInf();           /* 删除学生通讯录信息          */
void DeleteAllStuAddBooInf();        /* 删除所有学生通讯录信息      */
void DeleteStuPerAddBooInf();        /* 删除学生个人通讯录信息      */
void SavaStuAddBooInf();             /* 保存学生通讯录信息          */
void BrowsStuAddBooInf();            /* 浏览学生通信录信息          */
void OutputAllStuAddBooInf();        /* 输出所有学生通讯录信息      */
void QueryStuPerAddBooInf();         /* 查询学生个人通讯录信息      */
void printfAllStuAddBooInf();        /* 打印所有学生通讯录信息      */
void PrintfStuPerAddBooInf();        /* 打印学生个人通讯录信息      */
void StudentScrInfManSys();          /* 学生成绩信息管理系统        */
void AddStuPerScrInf();              /* 添加学生成绩信息            */
void QueryStuScrInf();               /* 查询学生成绩信息==          */
void QueryAllStuScrInf();            /* 查询所有学生成绩信息==      */
void QueryStuPerScrInf();            /* 查询学生个人成绩信息==      */
void ModifyStuPerScrInf();           /* 修改学生个人成绩信息        */
void DeleteStuScrInf();              /* 删除学生成绩信息            */
void DeleteAllStuScrInf();           /* 删除所有学生成绩信息        */
void DeleteStuPerScrInf();           /* 删除学生个人成绩信息        */
void InnovateFun();                  /* 创新功能                    */
void QueryStuScrInf();               /* 查询学生成绩信息==          */
void QueryAllStuScrInf();            /* 查询所有学生成绩信息==      */
void StatisticsStuPoiInf();          /* 统计学生分数段信息          */
void StatisticsAllStuScrInf();       /* 统计所有学生成绩分数段信息?*/
void QueryStuPerScrInf();            /* 查询学生个人成绩信息==      */
void OutputStuSubScrInf();           /* 输出学生单科成绩信息        */
void OutputAllStuSubScrInf();        /* 输出所有学生单科成绩信息    */
void BrowsStuScrInf();               /* 浏览学生成绩信息            */
void OutputAllStuScrInf();           /* 输出所以学生成绩信息        */
void StatisticsStuPoiInf();          /* 统计学生分数段信息?        */
void MainMen();                      /* 主菜单                      */
void SystemHel();                    /* 系统帮助                    */
void SoftwareSpe();                  /* 软件说明书                  */
void SoftwareAcc();                  /* 软件开发依据              */
void CompanyBri();                   /* 公司简介                    */
void SoftWareUpg();                  /* 软件升级                    */
void QueryStuName();
void QueryStuNum();
void ModifyName();
void ModifyNum();
void DeleteName();
void DeleteNum();
//void LogOut();                       /* 退出系统                    */
void main()
{
/*{    char choose='\0',yes_no='\0';
    system("color f"); 
    do
    {
    system("cls");
    printf("                         这是学生信息管理系统主页\n               ");
    printf("                                                                \n");
    printf("                                                  设计者:陈煜超\n");
    printf("\t -----------------------------------------------------------\n");
    printf("\t|***********************************************************|\n");
    printf("\t|*                                                         *|\n");
    printf("\t|*                       学生信息管理系统                  *|\n");
    printf("\t|*                                                         *|\n");
    printf("\t|*                    1.学生个人信息管理系统               *|\n");
    printf("\t|*                                                         *|\n");
    //printf("\t|*                    2.学生通讯录管理系统                 *|\n");
    //printf("\t|*                                                         *|\n");
    //printf("\t|*                    3.学生成绩信息管理系统               *|\n");
    //printf("\t|*                                                         *|\n");
    //printf("\t|*                    4.系统帮助                           *|\n");
    printf("\t|*                                                         *|\n");
    printf("\t|*                    0.退出系统                           *|\n");
    printf("\t|*                                                         *|\n");
    printf("\t|*                                                         *|\n");
    printf("\t|***********************************************************|\n");
    printf("\t ----------------------------------------------------------- \n");
    printf("请你选择数字0-4来实现以上的功能:");
    choose=getche();  
    switch(choose)
        {
        case'1':StudentPerInfManSys();break;   
        //case'2':StudentAddBooInfManSys();break;
        //case'3':StudentScrInfManSys();break;
        //case'4':SystemHel();break;
        case'0':break;
        default:printf("\n          %c请在数字0-4选择!\n");    break;
        }
        if(choose=='0') break;
        printf("\n                 即将进入主菜单,要继续选择吗(Y/N)?\n");
        do
        {
            yes_no=getche();
        }while(yes_no!='Y'&&yes_no!='y'&&yes_no!='N'&&yes_no!='n');
}while(yes_no=='y'||yes_no=='Y');
}*/
    
    char choose='\0',yes_no='\0';
    do
    {
        system("color 3f");
        system("cls");
        MainPrint();
        printf("请你选择数字0-4来实现以上的功能:");
        choose=getche();  
        switch(choose)
        {
        case'1':StudentPerInfManSys();break;   
        //case'2':StudentAddBooInfManSys();break;
        //case'3':StudentScrInfManSys();break;
        //case'4':SystemHel();break;
        case'0':break;
        default:printf("\n          %c请在数字0-4选择!\n");    break;
        }
        if(choose=='0') break;
        printf("\n                 即将进入主菜单,要继续选择吗(Y/N)?\n");
        do
        {
            yes_no=getche();
        }while(yes_no!='Y'&&yes_no!='y'&&yes_no!='N'&&yes_no!='n');
}while(yes_no=='y'||yes_no=='Y');
}
void MainPrint()
{
    printf("                         这是学生信息管理系统主页\n               ");
    printf("                                                                \n");
    printf("                                                  设计者:陈煜超\n");
    printf("\t -----------------------------------------------------------\n");
    printf("\t|***********************************************************|\n");
    printf("\t|*                                                         *|\n");
    printf("\t|*                       学生信息管理系统                  *|\n");
    printf("\t|*                                                         *|\n");
    printf("\t|*                    1.学生个人信息管理系统               *|\n");
    printf("\t|*                                                         *|\n");
    //printf("\t|*                    2.学生通讯录管理系统                 *|\n");
    //printf("\t|*                                                         *|\n");
    //printf("\t|*                    3.学生成绩信息管理系统               *|\n");
    //printf("\t|*                                                         *|\n");
    //printf("\t|*                    4.系统帮助                           *|\n");
    printf("\t|*                                                         *|\n");
    printf("\t|*                    0.退出系统                           *|\n");
    printf("\t|*                                                         *|\n");
    printf("\t|*                                                         *|\n");
    printf("\t|***********************************************************|\n");
    printf("\t ----------------------------------------------------------- \n");
}


void StudentPerInfManSys()
{    char choose='\0',yes_no='\0';
    system("color 9f"); 
    do
    {
    system("cls");
    printf("                     这是学生个人信息管理系统页面\n               ");
    printf("                                                                \n");
    printf("                                                  设计者:陈煜超\n");
    printf("\t -----------------------------------------------------------\n");
    printf("\t|***********************************************************|\n");
    printf("\t|*                                                         *|\n");
    printf("\t|*                       学生信息管理系统                  *|\n");
    printf("\t|*                                                         *|\n");
    printf("\t|*                    1.添加学生个人信息                   *|\n");
    printf("\t|*                                                         *|\n");
    printf("\t|*                    2.查询学生个人信息                   *|\n");
    printf("\t|*                                                         *|\n");
    printf("\t|*                    3.修改学生个人信息                   *|\n");
    printf("\t|*                                                         *|\n");
    printf("\t|*                    4.删除学生个人信息                   *|\n");
    printf("\t|*                                                         *|\n");
    printf("\t|*                    5.保存学生个人信息                   *|\n");
    printf("\t|*                                                         *|\n");
    printf("\t|*                    6.浏览学生个人信息                   *|\n");
    printf("\t|*                                                         *|\n");
    printf("\t|*                    7.返回                               *|\n");
    printf("\t|*                                                         *|\n");
    printf("\t|*                    0.退出系统                           *|\n");
    printf("\t|*                                                         *|\n");
    printf("\t|*                                                         *|\n");
    printf("\t|***********************************************************|\n");
    printf("\t ----------------------------------------------------------- \n");
    printf("请你选择数字0-7来实现以上的功能:");
    choose=getch();
    switch(choose)
    {
        case'1':AddStuPerInf();break;
        case'2':QueryStuPerInf();break;
        case'3':ModifyStuPerInf();break;
        case'4':DeleteStuPerInf();break;
        case'5':SavaStuPerInf();break;
        case'6':BrowsStuPerInf();break;
        case'7':main();break;
        case'0':break;
        default:printf("\n             %c是非法选项!\n",choose);break;
    }
    if(choose=='0')break;
    printf("\n             你要继续选择吗(Y/N)?\n");
    do
    {
        yes_no=getche();
    }while(yes_no!='Y'&&yes_no!='y'&&yes_no!='n'&&yes_no!='N');
}while(yes_no=='y'||yes_no=='Y');
}

void AddStuPerInf()
{
    int i=0;char yes_no='\0';
    struct studentinfmansys stu1[N]={0};
    FILE *fp=NULL;
    system("color 5f");
    system("cls");
    fp=fopen("h:\\学生信息管理系统.txt","w");
    if(fp==NULL)
    {
        printf("\n           打开文件失败!\n");return;
    }
    printf("\n欢迎进入添加学生个人信息系统\n");
    printf("\n           请输入第%d个记录:\n",i+1);    
    printf("\n输入学生专业:(用#结束程序)");
    scanf("%s",stu1[i].Major);
    printf("\n输入学生姓名:(用#结束程序)");
    scanf("%s",stu1[i].Name);
    printf("\n输入学生学号:(用#结束程序)");
    scanf("%s",stu1[i].Num);    
    printf("\n输入学生性别:");
    scanf("%s",stu1[i].Sex);
    printf("\n输入学生家庭地址:");
    scanf("%s",stu1[i].HouseAddr);
    printf("\n输入学生通信地址:");
    scanf("%s",stu1[i].CommunicationAddr);
    printf("\n输入学生工作单位:");
    scanf("%s",stu1[i].Work);
    printf("\n输入学生家庭电话:");
    scanf("%s",stu1[i].HousePho);
    printf("\n输入学生联系电话:");
    scanf("%s",stu1[i].PersonPho);
    printf("\n输入学生家庭地址邮政编码:");
    scanf("%s",stu1[i].Postalcode);
    printf("\n输入学生E-mail:");
    scanf("%s",stu1[i].Mail);
    while(stu1[i].Name[0]!='#'&&stu1[i].Num[0]!='#'&&stu1[i].Major[0]!='#')
    {
        fprintf(fp,"%5d%30s%10s%15s%5s%30s%30s%10s%10s%15s%15s%15s\n",i,stu1[i].Major,stu1[i].Name,stu1[i].Num,stu1[i].Sex,
        stu1[i].HouseAddr,stu1[i].CommunicationAddr,stu1[i].Work,stu1[i].HousePho,stu1[i].PersonPho,stu1[i].Postalcode,stu1[i].Mail);
        i++; 
    printf("\n           请输入第%d个记录:\n",i+1);
    printf("\n输入学生专业:(用#结束程序)");
    scanf("%s",stu1[i].Major);
    printf("\n输入学生姓名:(用#结束程序)");
    scanf("%s",stu1[i].Name);
    printf("\n输入学生学号:(用#结束程序)");
    scanf("%s",stu1[i].Num);
    printf("\n输入学生性别:");
    scanf("%s",stu1[i].Sex);
    printf("\n输入学生家庭地址:");
    scanf("%s",stu1[i].HouseAddr);
    printf("\n输入学生通信地址:");
    scanf("%s",stu1[i].CommunicationAddr);
    printf("\n输入学生工作单位:");
    scanf("%s",stu1[i].Work);
    printf("\n输入学生家庭电话:");
    scanf("%s",stu1[i].HousePho);
    printf("\n输入学生联系电话:");
    scanf("%s",stu1[i].PersonPho);
    printf("\n输入学生家庭地址邮政编码:");
    scanf("%s",stu1[i].Postalcode);
    printf("\n输入学生E-mail:");
    scanf("%s",stu1[i].Mail);
    }
fclose(fp);
}


void QueryStuPerInf()
{
    char choose='\0',yes_no='\0';
    system("color 4f");
    do
    {
    system("cls");
    printf("                        查询学生个人信息页面\n               ");
    printf("                                                                \n");
    printf("                                                  设计者:陈煜超\n");
    printf("\t -----------------------------------------------------------\n");
    printf("\t|***********************************************************|\n");
    printf("\t|*                                                         *|\n");
    printf("\t|*                     查询学生信息                        *|\n");
    printf("\t|*                                                         *|\n");
    printf("\t|*                    1.按姓名查询                         *|\n");
    printf("\t|*                                                         *|\n");
    printf("\t|*                    2.按学号查询                         *|\n");
    printf("\t|*                                                         *|\n");
    printf("\t|*                    3.返回                               *|\n");
    printf("\t|*                                                         *|\n");
    printf("\t|*                    0.退出系统                           *|\n");
    printf("\t|*                                                         *|\n");
    printf("\t|*                                                         *|\n");
    printf("\t|***********************************************************|\n");
    printf("\t ----------------------------------------------------------- \n");
    printf("请你选择数字0-3来实现以上的功能:");
    /*scanf("%s",&choose);
    while(choose!='1'&&choose!='2'&&choose!='3'&&choose!='0')
    {
        printf("\n请正确输入您的选择:");
        scanf("%s",&choose);

    }*/    
    choose=getch();
    switch(choose)
    {
    case'1':QueryStuName();break;
    case'2':QueryStuNum();break;
    case'3':StudentPerInfManSys();break;
    case'0':break;
    default:printf("\n             %c是非法选项!\n请您单击Y/y或N/n来选择是否继续:",choose);break;
    }
    if(choose=='0')break;
    printf("\n            你要继续选择吗(Y/N)?\n");
    do
    {
        yes_no=getche();
    }while(yes_no!='Y'&&yes_no!='y'&&yes_no=='n'&&yes_no!='N');
}while(yes_no=='y'||yes_no=='Y');
}


void ModifyStuPerInf()
{
    char choose='\0',yes_no='\0';
    system("color 5f");
    do
    {
    system("cls");
    printf("                        修改学生个人信息页面\n               ");
    printf("                                                                \n");
    printf("                                                  设计者:陈煜超\n");
    printf("\t -----------------------------------------------------------\n");
    printf("\t|***********************************************************|\n");
    printf("\t|*                                                         *|\n");
    printf("\t|*                     修改学生信息                        *|\n");
    printf("\t|*                                                         *|\n");
    printf("\t|*                    1.按姓名修改                         *|\n");
    printf("\t|*                                                         *|\n");
    printf("\t|*                    2.按学号修改                         *|\n");
    printf("\t|*                                                         *|\n");
    printf("\t|*                    3.返回                               *|\n");
    printf("\t|*                                                         *|\n");
    printf("\t|*                    0.退出系统                           *|\n");
    printf("\t|*                                                         *|\n");
    printf("\t|*                                                         *|\n");
    printf("\t|***********************************************************|\n");
    printf("\t ----------------------------------------------------------- \n");
    printf("请你选择数字0-3来实现以上的功能:");
    choose=getch();
    switch(choose)
    {
    case'1':ModifyName();break;
    case'2':ModifyNum();break;
    case'3':StudentPerInfManSys();break;
    case'0':break;
    default:printf("\n             %c是非法选项!\n请您单击Y/y或N/n来选择是否继续:",choose);break;
    }
    if(choose=='0')break;
//    printf("\n            11你要继续选择吗(Y/N)?\n");
    do
    {
        yes_no=getche();
    }while(yes_no!='Y'&&yes_no!='y'&&yes_no!='n'&&yes_no!='N');
}while(yes_no=='y'||yes_no=='Y');
}

void DeleteStuPerInf()
{
    char choose='\0',yes_no='\0';
    system("color 2f");
    do
    {
    system("cls");
    printf("                        删除学生个人信息页面\n                    ");
    printf("                                                                \n");
    printf("                                                  设计者:陈煜超\n");
    printf("\t -----------------------------------------------------------\n");
    printf("\t|***********************************************************|\n");
    printf("\t|*                                                         *|\n");
    printf("\t|*                     删除学生信息                        *|\n");
    printf("\t|*                                                         *|\n");
    printf("\t|*                    1.按姓名删除                         *|\n");
    printf("\t|*                                                         *|\n");
    printf("\t|*                    2.按学号删除                         *|\n");
    printf("\t|*                                                         *|\n");
    printf("\t|*                    3.返回                               *|\n");
    printf("\t|*                                                         *|\n");
    printf("\t|*                    0.退出系统                           *|\n");
    printf("\t|*                                                         *|\n");
    printf("\t|*                                                         *|\n");
    printf("\t|***********************************************************|\n");
    printf("\t ----------------------------------------------------------- \n");
    printf("请你选择数字0-3来实现以上的功能:");
    choose=getch();
    switch(choose)
    {
    case'1':DeleteName();break;
    case'2':DeleteNum();break;
    case'3':StudentPerInfManSys();break;
    case'0':break;
    default:printf("\n             %c是非法选项!\n",choose);break;
    }
    if(choose=='0')break;
    printf("\n              123456你要继续选择吗(Y/N)?\n");
    do
    {
        yes_no=getche();
    }while(yes_no!='Y'&&yes_no!='y'&&yes_no!='n'&&yes_no!='N');
}while(yes_no=='y'||yes_no=='Y');
}

void SavaStuPerInf()
{
    printf("5.保存学生个人信息 ");

}

void BrowsStuPerInf()
{

    char choose='\0',yes_no='\0';
    system("color 4f");
    do
    {
    system("cls");
    printf("                        浏览学生个人信息页面\n               ");
    printf("                                                                \n");
    printf("                                                  设计者:陈煜超\n");
    printf("\t -----------------------------------------------------------\n");
    printf("\t|***********************************************************|\n");
    printf("\t|*                                                         *|\n");
    printf("\t|*                     浏览学生个人信息                    *|\n");
    printf("\t|*                                                         *|\n");
    printf("\t|*                    1.按姓名浏览                         *|\n");
    printf("\t|*                                                         *|\n");
    printf("\t|*                    2.按学号浏览                         *|\n");
    printf("\t|*                                                         *|\n");
    printf("\t|*                    3.按电话浏览                         *|\n");
    printf("\t|*                                                         *|\n");
    printf("\t|*                    4.返回                               *|\n");
    printf("\t|*                                                         *|\n");
    printf("\t|*                    0.退出系统                           *|\n");
    printf("\t|*                                                         *|\n");
    printf("\t|*                                                         *|\n");
    printf("\t|***********************************************************|\n");
    printf("\t ----------------------------------------------------------- \n");
    printf("请你选择数字0-4来实现以上的功能:");
    choose=getch();
    switch(choose)
    {
    case'1':BrowsStuPerInfName();break;
    case'2':BrowsStuPerInfNum();break;
    case'3':BrowsStuPerInfPho();break;
    case'4':StudentPerInfManSys();break;
    case'0':break;
    default:printf("\n             %c是非法选项!\n,choose");break;
    }
    if(choose=='0')break;
    printf("\n            你要继续选择吗(Y/N)?\n");
    do
    {
        yes_no=getche();
    }while(yes_no!='Y'&&yes_no!='y'&&yes_no!='n'&&yes_no!='N');
}while(yes_no=='y'||yes_no=='Y');
}

void QueryStuName()
{int i=0,j=0,n=0;     
    char ch[20]="",yes_no='\0';
    struct studentinfmansys ex5[N]={0};
    FILE *fp=NULL;
    fp=fopen("h:\\学生信息管理系统.txt","r");
    if(fp==NULL) 
    {    printf("\n 打开文件失败!\n");  return; }    
    while(feof(fp)==0)
    {    fscanf(fp,"%d%s%s%s%s%s%s%s%s%s%s%s\n",&i,ex5[i].Major,ex5[i].Name,ex5[i].Num,ex5[i].Sex,
        ex5[i].HouseAddr,ex5[i].CommunicationAddr,ex5[i].Work,ex5[i].HousePho,ex5[i].PersonPho,ex5[i].Postalcode,ex5[i].Mail);

    i++;
    n++;
    }
    fclose(fp);
    do
    {
        system("color  8f");
        system("cls");
        printf("\n                   欢迎进入查询学生系统!\n");
        printf("\n请输入要查学的学生的姓名:");
        scanf("%s",&ch);
        for(i=0;i<n;i++)
        if(strcmp(ex5[i].Name,ch)==0)
        {    printf("\n        您查询的是姓名为%s的学生,其他的信息如下:",ex5[i].Name);
            printf("\n专业:%s\n姓名:%s\n学号:%s\n性别:%s\n家庭地址:%s\n通讯地址:%s\n工作单位:%s\n家庭电话:%s\n学生电话:%s\n邮政编码: %s\n电子邮箱:%s\n",
                    ex5[i].Major,ex5[i].Name,ex5[i].Num,ex5[i].Sex,ex5[i].HouseAddr,ex5[i].CommunicationAddr,ex5[i].Work,ex5[i].HousePho,ex5[i].PersonPho,ex5[i].Postalcode,ex5[i].Mail);
        break;}
        if(i==n)printf("\n                      查无此人.......\n");
        printf("\n                 要继续选择查询学生吗(Y/N)?\n");
        do
        {
            yes_no=getche();
        }while(yes_no!='Y'&&yes_no!='y'&&yes_no!='N'&&yes_no!='n');
    }while(yes_no=='y'||yes_no=='Y');
}

void QueryStuNum()
{int i=0,j=0,n=0;     
    char ch[20]="",yes_no='\0';
    struct studentinfmansys ex5[N]={0};
    FILE *fp=NULL;
    fp=fopen("h:\\学生信息管理系统.txt","r");
    if(fp==NULL) 
    {    printf("\n 打开文件失败!\n");  return; }    
    while(feof(fp)==0)
    {    fscanf(fp,"%d%s%s%s%s%s%s%s%s%s%s%s\n",&i,ex5[i].Major,ex5[i].Name,ex5[i].Num,ex5[i].Sex,
        ex5[i].HouseAddr,ex5[i].CommunicationAddr,ex5[i].Work,ex5[i].HousePho,ex5[i].PersonPho,ex5[i].Postalcode,ex5[i].Mail);

    i++;
    n++;
    }
    fclose(fp);
    do
    {
        system("color  8f");
        system("cls");
        printf("\n                   欢迎进入查询学生系统!\n");
        printf("\n请输入要查学的学生的学号:");
        scanf("%s",&ch);
        for(i=0;i<n;i++)
        if(strcmp(ex5[i].Num,ch)==0)
        {    printf("\n        您查询的是学号为 %s 的学生,其他的信息如下:",ex5[i].Num);
            printf("\n专业:%s\n姓名:%s\n学号:%s\n性别:%s\n家庭地址:%s\n通讯地址:%s\n工作单位:%s\n家庭电话:%s\n学生电话:%s\n邮政编码: %s\n电子邮箱:%s\n",
                    ex5[i].Major,ex5[i].Name,ex5[i].Num,ex5[i].Sex,ex5[i].HouseAddr,ex5[i].CommunicationAddr,ex5[i].Work,ex5[i].HousePho,ex5[i].PersonPho,ex5[i].Postalcode,ex5[i].Mail);
        break;}
        if(i==n)printf("\n                      查无此人.......\n");
        printf("\n                 要继续选择查询学生吗(Y/N)?\n");
        do
        {
            yes_no=getche();
        }while(yes_no!='Y'&&yes_no!='y'&&yes_no!='N'&&yes_no!='n');
    }while(yes_no=='y'||yes_no=='Y');
}

void ModifyName()
{ 
    int k=0;
    long offset;
    char NameKey[20];
    FILE *fp;
    struct studentinfmansys one;
    
    printf("\n请输入姓名:");
    scanf("%s",NameKey);
    
    if((fp=fopen("h:\\学生信息管理系统.txt","r+"))==NULL)
    {  
        printf("\n不能打开学生信息管理系统 !");
        exit();
    }
    while(!feof(fp))
    {  
        offset=ftell(fp);
        fscanf(fp,"%s%s%s%s%s%s%s%s%s%s%s\n",one.Major,one.Name,one.Num,one.Sex,one.HouseAddr,one.CommunicationAddr,one.Work,one.HousePho,one.PersonPho,one.Postalcode,one.Mail);
        if(!strcmp(NameKey,one.Name))
        {
            k=1;
            break;  
        }
    }
    if(k)
    {  
    printf("\n已经找到该记录:");
        printf("\n%20s,%15s,%20d,%5s,%50s,%50s,%50s,%20s,%20s,%10s,%20s\n",one.Major,one.Name,one.Num,one.Sex,
        one.HouseAddr,one.CommunicationAddr,one.Work,one.HousePho,one.PersonPho,one.Postalcode,one.Mail);


/*    printf("\n        您查询的是学号为 %s 的学生,其他的信息如下:",one.Name);
    printf("\n专业:%s\n姓名:%s\n学号:%s\n性别:%s\n家庭地址:%s\n通讯地址:%s\n工作单位:%s\n家庭电话:%s\n学生电话:%s\n邮政编码: %s\n电子邮箱:%s\n",
           one.Major,one.Name,one.Num,one.Sex,one.HouseAddr,one.CommunicationAddr,one.Work,one.HousePho,one.PersonPho,one.Postalcode,one.Mail);*/
    printf("\n输入学生专业:(用#结束程序)"); /*修改记录的内容*/
    scanf("%s",one.Major);
    printf("\n输入学生姓名:(用#结束程序)");
    scanf("%s",one.Name);
    printf("\n输入学生学号:(用#结束程序)");
    scanf("%s",one.Num);    
    printf("\n输入学生性别:");
    scanf("%s",one.Sex);
    printf("\n输入学生家庭地址:");
    scanf("%s",one.HouseAddr);
    printf("\n输入学生通信地址:");
    scanf("%s",one.CommunicationAddr);
    printf("\n输入学生工作单位:");
    scanf("%s",one.Work);
    printf("\n输入学生家庭电话:");
    scanf("%s",one.HousePho);
    printf("\n输入学生联系电话:");
    scanf("%s",one.PersonPho);
    printf("\n输入学生家庭地址邮政编码:");
    scanf("%s",one.Postalcode);
    printf("\n输入学生E-mail:");
    scanf("%s",one.Mail);
        fseek(fp,offset,SEEK_SET);
        printf("%ld",ftell(fp));
        fprintf(fp,"%30s%10s%15s%5s%30s%30s%10s%10s%15s%15s%15s\n",one.Major,one.Name,one.Num,one.Sex,
        one.HouseAddr,one.CommunicationAddr,one.Work,one.HousePho,one.PersonPho,one.Postalcode,one.Mail);
    }
    else
        printf("\n对不起,123该学生信息管理系统没有此人!");/*对不起,通讯簿中没有此人的记录*/
        printf("\n                 要继续选择查询学生吗(Y/N)?\n");
    fclose(fp);
}

void ModifyNum()
{ 
    int k=0;
    long offset;
    char NumKey[20];
    FILE *fp=NULL;
    struct studentinfmansys one;
    
    printf("\n请输入学号:");
    scanf("%s",NumKey);
    
    if((fp=fopen("h:\\学生信息管理系统.txt","r+"))==NULL)
    {  
        printf("\n不能打开学生信息管理系统 !");
        exit();
    }
    while(!feof(fp))
    {  
        offset=ftell(fp);
        fscanf(fp,"%s%s%s%s%s%s%s%s%s%s%s\n",one.Major,one.Name,one.Num,one.Sex,one.HouseAddr,one.CommunicationAddr,one.Work,one.HousePho,one.PersonPho,one.Postalcode,one.Mail);
        if(!strcmp(NumKey,one.Num))
        {
            k=1;
            break;  
        }
    }
    if(k)
    {  
    printf("\n        您查询的是学号为 %s 的学生,其他的信息如下:",one.Num);
    printf("\n专业:%s\n姓名:%s\n学号:%s\n性别:%s\n家庭地址:%s\n通讯地址:%s\n工作单位:%s\n家庭电话:%s\n学生电话:%s\n邮政编码: %s\n电子邮箱:%s\n",
           one.Major,one.Name,one.Num,one.Sex,one.HouseAddr,one.CommunicationAddr,one.Work,one.HousePho,one.PersonPho,one.Postalcode,one.Mail);


    printf("\n输入学生专业:(用#结束程序)"); /*修改记录的内容*/
    scanf("%s",one.Major);
    printf("\n输入学生姓名:(用#结束程序)");
    scanf("%s",one.Name);
    printf("\n输入学生学号:(用#结束程序)");
    scanf("%s",one.Num);    
    printf("\n输入学生性别:");
    scanf("%s",one.Sex);
    printf("\n输入学生家庭地址:");
    scanf("%s",one.HouseAddr);
    printf("\n输入学生通信地址:");
    scanf("%s",one.CommunicationAddr);
    printf("\n输入学生工作单位:");
    scanf("%s",one.Work);
    printf("\n输入学生家庭电话:");
    scanf("%s",one.HousePho);
    printf("\n输入学生联系电话:");
    scanf("%s",one.PersonPho);
    printf("\n输入学生家庭地址邮政编码:");
    scanf("%s",one.Postalcode);
    printf("\n输入学生E-mail:");
    scanf("%s",one.Mail);
        fseek(fp,offset,SEEK_SET);
        printf("%ld",ftell(fp));
        fprintf("%30s%10s%15s%5s%30s%30s%10s%10s%15s%15s%15s\n",one.Major,one.Name,one.Num,one.Sex,
        one.HouseAddr,one.CommunicationAddr,one.Work,one.HousePho,one.PersonPho,one.Postalcode,one.Mail);
    }

    else
        printf("\n对不起,该学生信息管理系统没有此人!");/*对不起,通讯簿中没有此人的记录*/
        printf("\n                 要继续选择查询学生吗(Y/N)?\n");
    fclose(fp);
}


void DeleteName()
{  
    int k=0;
    long offset1;
    char NameKey[15],choose='\0';
    struct studentinfmansys one;
    FILE *fp=NULL;
    printf("\n请输入你要删除的学生姓名:");
    scanf("%s",NameKey);
    if((fp=fopen("h:\\学生信息管理系统.txt","r+"))==NULL)
    {  
        printf("\n不能打开学生信息管理系统文件!");
        exit();
    }
    while(!feof(fp))
    {  
        offset1=ftell(fp);
    fscanf(fp,"%30s%10s%15s%5s%30s%30s%10s%10s%15s%15s%15s\n",one.Major,one.Name,one.Num,one.Sex,
        one.HouseAddr,one.CommunicationAddr,one.Work,one.HousePho,one.PersonPho,one.Postalcode,one.Mail);    /*读取流*/
        if(!strcmp(NameKey,one.Name))
        {
            k=1;
            break;  
        }
    }
    if(k)
    { 
        printf("\n已经找到该记录:");
        printf("\n你找到的学生姓名:%s 其他信息如下:\n",one.Name);
           printf("\n专业:%s\n姓名:%s\n学号:%s\n,性别:%s\n家庭地址:%s\n通讯地址:%s\n工作单位:%s\n家庭电话:%s\n学生电话:%s\n邮政编码: %s\n电子邮箱:%s\n",
                   one.Major,one.Name,one.Num,one.Sex,one.HouseAddr,one.CommunicationAddr,one.Work,one.HousePho,one.PersonPho,one.Postalcode,one.Mail);          /*输出该学生信息*/
        printf("你确定要删除该学生所有信息吗?如果确定要删除,请从键盘输出Y或y,否则从键盘输入N或n:");
        scanf("%s",&choose);
        //choose=getche();
        if(choose)
       // if(choose=='Y'||choose=='y'||choose=='N'||choose=='n')
        {   
            fseek(fp,offset1,SEEK_SET);
        fprintf("\n%s%s%s%s%s%s%s%s%s%s%s\n","","","","","","","","","","","");/*删除学生信息*/
        }
        else
        {    printf("你输入是非法的,请重新从键盘输出Y或y,否则从键盘输入N或n:");
            choose=getche();
        }    
    }else

        printf("\n对不起!学生信息管理系统文件没有该学生的信息.");
        fclose(fp);
}
void DeleteNum()
{  
    int k=0;
    long offset1;
    char NumKey[15],yes_no='\0',choose='\0';
    struct studentinfmansys one;
    FILE *fp;
    printf("\n请输入你要删除的学生姓名:");
    scanf("%s",NumKey);
    if((fp=fopen("h:\\学生信息管理系统.txt","r+"))==NULL)
    {  
        printf("\n不能打开学生信息管理系统文件!");
        exit();
    }
    while(!feof(fp))
    {  
        offset1=ftell(fp);
    fscanf(fp,"%5d,%20s,%15s,%20d,%5s,%50s,%50s,%50s,%20s,%20s,%10s,%20s\n",one.Major,one.Name,one.Num,one.Sex,
        one.HouseAddr,one.CommunicationAddr,one.Work,one.HousePho,one.PersonPho,one.Postalcode,one.Mail);   /*读取流*/
        if(!strcmp(NumKey,one.Num))
        {
            k=1;
            break;  
        }
    }
    if(k)
    { 
        printf("\n已经找到该记录:");
        printf("\n你找到的学生学号:%s 其他信息如下:\n",one.Num);
        printf("\n%20s,%15s,%20d,%5s,%50s,%50s,%50s,%20s,%20s,%10s,%20s\n",one.Major,one.Name,one.Num,one.Sex,
        one.HouseAddr,one.CommunicationAddr,one.Work,one.HousePho,one.PersonPho,one.Postalcode,one.Mail);   

/*输出该学生信息*/
        printf("你确定要删除该学生所有信息吗?如果确定要删除,请从键盘输出Y或y,否则从键盘输入N或n:");
        choose=getche();
        if(choose=='Y'||choose=='y'||choose=='N'||choose=='n')
        {   
            fseek(fp,offset1,SEEK_SET);
        fprintf("\n%20s,%15s,%20d,%5s,%50s,%50s,%50s,%20s,%20s,%10s,%20s\n","","","","","","","","","","","");/*删除学生信息*/
        }
        else
        {    printf("你输入是非法的,请重新从键盘输出Y或y,否则从键盘输入N或n:");
            choose=getche();
        }    
    }else

        printf("\n对不起!学生信息管理系统文件没有该学生的信息.");
        fclose(fp);
}

void BrowsStuPerInfName()         /*通过学生姓名浏览学生个人信息*/
{    int i=0,j=0,count=0,n=0;     
    char ch[20]="",yes_no='\0';
    struct studentinfmansys ex1[N]={0};
    FILE *fp=NULL;
    fp=fopen("h:\\学生信息管理系统.txt","r");
    if(fp==NULL) 
    {    printf("\n 打开文件失败!\n");  return; }    
    while(feof(fp)==0)

    {    fscanf(fp,"%5d,%20s,%15s,%20d,%5s,%50s,%50s,%50s,%20s,%20s,%10s,%20s\n",&i,ex1[i].Major,ex1[i].Name,ex1[i].Num,ex1[i].Sex,
        ex1[i].HouseAddr,ex1[i].CommunicationAddr,ex1[i].Work,ex1[i].HousePho,ex1[i].PersonPho,ex1[i].Postalcode,ex1[i].Mail);
    i++;n++; }
    fclose(fp);
    do
    {
        system("color  8f");
        system("cls");
        printf("\n                   欢迎进入查询学生系统!\n");
        printf("\n请输入要查学的学生的姓名:");
        scanf("%s",&ch);
        for(i=0;i<n;i++)
        if(strcmp(ex1[i].Name,ch)==0)
        {    printf("\n        您查询的是姓名为%s的学生,其他的信息如下:",ex1[i].Name);
            printf("\n        专业:%20s  姓名:%20s  学号:%15s 性别:%50s 家庭地址:%50s 通讯地址:%50s 工作单位:%50s 家庭电话:%20s 学生电话:%20s 邮政编码:%10s 电子邮箱:%20s",
                    ex1[i].Major,ex1[i].Name,ex1[i].Num,ex1[i].Sex,ex1[i].HouseAddr,ex1[i].CommunicationAddr,ex1[i].Work,ex1[i].HousePho,ex1[i].PersonPho,ex1[i].Postalcode,ex1[i].Mail);
        break;}
        if(i==n)printf("\n                      查无此人.......\n");
        printf("\n                 要继续选择查询学生吗(Y/N)?\n");
        do
        {
            yes_no=getche();
        }while(yes_no!='Y'&&yes_no!='y'&&yes_no!='N'&&yes_no!='n');
    }while(yes_no=='y'||yes_no=='Y');

}

void BrowsStuPerInfNum()          /*通过学生学号浏览学生个人信息*/
{    int i=0,j=0,count=0,n=0;     
    char ch[20]="",yes_no='\0';
    struct studentinfmansys ex1[N]={0};
    FILE *fp=NULL;
    fp=fopen("e:\\学生信息管理系统.txt","r");
    if(fp==NULL) 
    {    printf("\n 打开文件失败!\n");  return; }    
    while(feof(fp)==0)

    {    fscanf(fp,"%5d,%20s,%15s,%20d,%5s,%50s,%50s,%50s,%20s,%20s,%10s,%20s\n",&i,ex1[i].Major,ex1[i].Name,ex1[i].Num,ex1[i].Sex,
        ex1[i].HouseAddr,ex1[i].CommunicationAddr,ex1[i].Work,ex1[i].HousePho,ex1[i].PersonPho,ex1[i].Postalcode,ex1[i].Mail);
    i++;n++; };
    fclose(fp);
    do
    {
        system("color  8f");
        system("cls");
        printf("\n                   欢迎进入查询学生系统!\n");
        printf("\n请输入要查学的学生的学号:");
        scanf("%s",&ch);
        for(i=0;i<n;i++)
        if(strcmp(ex1[i].Num,ch)==0)
        {    printf("\n        您查询的是学号为%s的学生,他的成绩如下:",ex1[i].Num);
            printf("\n        专业:%20s  姓名:%20s  学号:%15s 性别:%50s 家庭地址:%50s 通讯地址:%50s 工作单位:%50s 家庭电话:%20s 学生电话:%20s 邮政编码:%10s 电子邮箱:%20s",
                    ex1[i].Major,ex1[i].Name,ex1[i].Num,ex1[i].Sex,ex1[i].HouseAddr,ex1[i].CommunicationAddr,ex1[i].Work,ex1[i].HousePho,ex1[i].PersonPho,ex1[i].Postalcode,ex1[i].Mail);
        break;}
        if(i==n)printf("\n                      查无此人.......\n");
        printf("\n                 要继续选择查询学生吗(Y/N)?\n");
        do
        {
            yes_no=getche();
        }while(yes_no!='Y'&&yes_no!='y'&&yes_no!='N'&&yes_no!='n');
    }while(yes_no=='y'||yes_no=='Y');

}

void BrowsStuPerInfPho()
{
    char choose='\0',yes_no='\0';
    system("color 4f");
    do
    {
        system("cls");
        printf("                        浏览学生信息页面\n               ");
    printf("                                                                \n");
    printf("                                                  设计者:陈煜超\n");
    printf("\t -----------------------------------------------------------\n");
    printf("\t|***********************************************************|\n");
    printf("\t|*                                                         *|\n");
    printf("\t|*                     浏览学生信息                        *|\n");
    printf("\t|*                                                         *|\n");
    printf("\t|*                    1.按家庭电话                         *|\n");
    printf("\t|*                                                         *|\n");
    printf("\t|*                    2.按个人电话                         *|\n");
    printf("\t|*                                                         *|\n");
    printf("\t|*                    3.返回                               *|\n");
    printf("\t|*                                                         *|\n");
    printf("\t|*                    0.退出系统                           *|\n");
    printf("\t|*                                                         *|\n");
    printf("\t|*                                                         *|\n");
    printf("\t|***********************************************************|\n");
    printf("\t ----------------------------------------------------------- \n");
    printf("请你选择数字0-3来实现以上的功能:");
    choose=getche();
switch(choose)
{
case'1':BrowsStuInfHouPho();break;
case'2':BrowsStuInfPerPho();break;
case'3':BrowsStuPerInf();break;
case'0':break; 
default:printf("\n             %c是非法选项!\n",choose);break;
    }
    if(choose=='0')break;
    printf("\n            你要继续选择吗(Y/N)?\n");
    do
    {
        yes_no=getche();
    }while(yes_no!='Y'&&yes_no!='y'&&yes_no!='n'&&yes_no!='N');
}while(yes_no=='y'||yes_no=='Y');
}

void BrowsStuInfHouPho()
{    int i=0,j=0,count=0,n=0;     
    char ch[20]="",yes_no='\0';
    struct studentinfmansys ex1[N]={0};
    FILE *fp=NULL;
    fp=fopen("h:\\学生信息管理系统.txt","r");
    if(fp==NULL) 
    {    printf("\n 打开文件失败!\n");  return; }    
    while(feof(fp)==0)

    {    fscanf(fp,"%5d,%20s,%15s,%20d,%5s,%50s,%50s,%50s,%20s,%20s,%10s,%20s\n",&i,ex1[i].Major,ex1[i].Name,ex1[i].Num,ex1[i].Sex,
        ex1[i].HouseAddr,ex1[i].CommunicationAddr,ex1[i].Work,ex1[i].HousePho,ex1[i].PersonPho,ex1[i].Postalcode,ex1[i].Mail);
    i++;n++; }
    fclose(fp);
    do
    {
        system("color  8f");
        system("cls");
        printf("\n                   欢迎进入浏览学生系统!\n");
        printf("\n请输入要浏览的学生家庭电话号码:");
        scanf("%s",&ch);
        for(i=0;i<n;i++)
        if(strcmp(ex1[i].HousePho,ch)==0)
        {    printf("\n        您浏览的是姓名为%s的学生,其他信息如下:",ex1[i].Name);
            printf("\n        专业:%20s  姓名:%20s  学号:%15s 性别:%50s 家庭地址:%50s 通讯地址:%50s 工作单位:%50s 家庭电话:%20s 学生电话:%20s 邮政编码:%10s 电子邮箱:%20s",
                    ex1[i].Major,ex1[i].Name,ex1[i].Num,ex1[i].Sex,ex1[i].HouseAddr,ex1[i].CommunicationAddr,ex1[i].Work,ex1[i].HousePho,ex1[i].PersonPho,ex1[i].Postalcode,ex1[i].Mail);
        break;}
        if(i==n)printf("\n                      查无此人的电话号码.......\n");
        printf("\n                 要继续选择查询学生吗(Y/N)?\n");
        do
        {
            yes_no=getche();
        }while(yes_no!='Y'&&yes_no!='y'&&yes_no!='N'&&yes_no!='n');
    }while(yes_no=='y'||yes_no=='Y');
}

void BrowsStuInfPerPho()
{    int i=0,j=0,count=0,n=0;     
    char ch[20]="",yes_no='\0';
    struct studentinfmansys ex1[N]={0};
    FILE *fp=NULL;
    fp=fopen("h:\\学生信息管理系统.txt","r");
    if(fp==NULL) 
    {    printf("\n 打开文件失败!\n");  return; }    
    while(feof(fp)==0)

    {    fscanf(fp,"%5d,%20s,%15s,%20d,%5s,%50s,%50s,%50s,%20s,%20s,%10s,%20s\n",&i,ex1[i].Major,ex1[i].Name,ex1[i].Num,ex1[i].Sex,
        ex1[i].HouseAddr,ex1[i].CommunicationAddr,ex1[i].Work,ex1[i].HousePho,ex1[i].PersonPho,ex1[i].Postalcode,ex1[i].Mail);
    i++;n++; }
    fclose(fp);
    do
    {
        system("color  8f");
        system("cls");
        printf("\n                   欢迎进入浏览学生系统!\n");
        printf("\n请输入要浏览的学生电话号码:");
        scanf("%s",&ch);
        for(i=0;i<n;i++)
        if(strcmp(ex1[i].PersonPho,ch)==0)
        {    printf("\n        您浏览的是姓名为%s的学生,他的成绩如下:",ex1[i].Name);
            printf("\n        专业:%20s  姓名:%20s  学号:%15s 性别:%50s 家庭地址:%50s 通讯地址:%50s 工作单位:%50s 家庭电话:%20s 学生电话:%20s 邮政编码:%10s 电子邮箱:%20s",
                    ex1[i].Major,ex1[i].Name,ex1[i].Num,ex1[i].Sex,ex1[i].HouseAddr,ex1[i].CommunicationAddr,ex1[i].Work,ex1[i].HousePho,ex1[i].PersonPho,ex1[i].Postalcode,ex1[i].Mail);
        break;}
        if(i==n)printf("\n                      查无此人的电话号码.......\n");
        printf("\n                 要继续选择查询学生吗(Y/N)?\n");
        do
        {
            yes_no=getche();
        }while(yes_no!='Y'&&yes_no!='y'&&yes_no!='N'&&yes_no!='n');
    }while(yes_no=='y'||yes_no=='Y');

}