我想在这一个学生管理程序中加个登录界面,但是加不来。可不可以教一下我哦!
【#include<stdio.h>

#include<stdlib.h>

#include<string.h>

#define SIZE 3 /*定义常量SIZE便于以后的修改*/

struct student /*定义一个结构体数组存放学生的信息*/

{

    int number; /*学号*/

    char name[20];/*名字*/

    char xueyuan[20];/*学院*/

    int cla;/*班级*/

    int score[3];/*分数*/

    int sum;/*总分*/

    int average;/*平均分*/

}stu[SIZE];

 

void menu();/*调用菜单函数*/

void write();/*读入信息*/

void save(int x);/*保存stud.dat文件函数*/

void SaveOneStudent(int i);/*保存一个学生信息*/

void SaveAllStudent(int n);/*保存全部学生信息*/

void inturn (struct student c[]);/*用于对学生的信息按学号排序的函数*/

void save2();/*将排序后的信息存入student.dat文件中*/

int AddStudent(int n);/*增加学生信息*/

void InputOnestudent(int i);/*输入一个同学信息*/

int DelStudent(int n);/*删除学生信息*/

void ModifyStudent(int n);/*修改学生信息*/

void OutputOneStudent(int i);/*查询一个学生信息*/

void SearchMenu(int n);/*查询学生信息操作*/

void SearchNumber(int n);/*按学号查询学生信息*/

void SearchName(int n);/*按姓名查询学生信息*/

void SearchXueyuan(int n);/*按所在学院查询学生信息*/

void SearchCla(int n);/*按所在班级查询学生信息*/

void tongji();/*学生信息统计操作*/

void tongji2();/*统计不及格率操作*/

void zfsc();/*总分排序操作*/

void avecz();/*按平均分统计人数操作*/

void avecz();/*按平均分统计人数操作*/

void search();/*查找最高成绩操作*/

void tongji2();/*统计不及格率操作*/

void read();/*读取student.dat文件文件中学生的信息*/

 

/*主函数************************************************************************************/

int main()

{

    int n=SIZE;

    int choice;/*用户选择变量*/

    printf("*******************************************************************************\n");

    printf("*                                                                             *\n");

    printf("*          Hwadee            &学生成绩文件管理&          Hwadee               *\n");

    printf("*                                                                             *\n");

    printf("*******************************************************************************\n\n\n");

    printf("******************************●●欢迎使用●●*********************************");

    while (1)

    {

         menu();/*调用菜单函数形成操作界面*/

         printf("请选择:");

         scanf("%d", &choice);

         if ( choice==0 )

         {

              printf("\t\t\t\t谢谢使用!!!");

              break;

          }

       switch(choice) /*多重选择实现功能不同的功能*/

       {  

            case 1:

                write();

              inturn(stu);

              save(SIZE);

                break;

            case 2:

              AddStudent(n);

                break;

           case 3:

              DelStudent(n);

              break;

           case 4:

                ModifyStudent(n);

              break;

           case 5:

              SearchMenu(n);

              break;

           case 6:

              tongji();

              break;

           case 0:

              printf("\n谢谢使用!再见!\n");

           default:

              printf("\n按键错误!请重新选择!\n");

       }/*结束switch*/

    }/*结束while*/

}

 
//部分程序清单

/*菜单函数*************************************************************************************/

void menu()

{

    printf("************请输入所需操作***********\n");/*选择功能菜单*/

    printf("*************************************\n");

    printf("1.学生成绩写入及排序\n");

    printf("2.增加学生信息\n");

    printf("3.删除学生信息\n");
 printf("4.修改学生信息\n");                             

    printf("5.查询学生信息\n");

    printf("6.学生成绩统计操作\n");

    printf("0.退出系统\n");

    printf("**************************************\n");

}

 

/*写入函数*************************************************************************************/

void write()

{

    int i;/*计数变量*/

    for(i=0;i<SIZE;i++)

    {

        printf("学号:");

        scanf("%d",&stu[i].number);

        printf("姓名:");

        scanf("%s",&stu[i].number);

        printf("学院:");

        scanf("%s",&stu[i].xueyuan);

        printf("班级:");

        scanf("%d",&stu[i].cla);

        printf("高数:");

        scanf("%d",&stu[i].score[0]);

        printf("英语:");

        scanf("%d",&stu[i].score[1]);

        printf("C语言:");

        scanf("%d",&stu[i].score[2]);

        stu[i].sum=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2]);/*计算总成绩*/

        printf("总成绩:%d",stu[i].sum);

        stu[i].average=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3;/*计算平均成绩*/

        printf("平均成绩:%d\n",stu[i].average);

    }

}

 

/*排序函数**************************************************************************************/

void inturn(struct student m[])

{

    int i,j;/*计数变量*/

    struct student temp;/*中间变量 类型为结构体*/

    for(i=0;i<SIZE-1;i++) /*运用冒泡排序对结构体数组进行排序*/

    for (j=i+1;j<SIZE-i-1;j++)

    {

       if(m[i].number>m[j].number)

       {

           temp=m[i];

           m[i]=m[j];

           m[j]=temp;

       }

    }

    printf("\n排序后的学生信息:\n\n");

    for (i=0;i<SIZE;i++)

    {

        printf("学号%d\t姓名%s\t学院%s\t班级%d\t高数%d\t英语%d\tC语言%d\t总成绩%d\t平均成绩%d\n\n",stu[i].number,stu[i].name,stu[i].xueyuan,stu[i].cla,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].sum,stu[i].average);

    }/*输出排序后的学生信息*/ 

}

/*写入文件*************************************************************************************/

void save(int x)

{

    FILE *fp;/*定义文件指针用于向文件读入数据*/

    int i;

    if((fp=fopen("student.dat","rb+"))==NULL)/*以二进制读,写方式打开文件*/

    {

        printf("cannot open file\n");

       exit(1);

    }

    for(i=0;i<SIZE;i++)

        if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)

            printf("file write error\n");

    fclose(fp);

    printf("\n信息保存成功!恭喜!!\n");

}

 

/*保存一个学生信息******************************************************************************/

void SaveOneStudent(int i)

{

    FILE *fp;

    if((fp=fopen("student.dat","rb+"))==NULL)/*以二进制读,写方式打开文件*/

    {

        printf("文件打开失败!\n");

        exit(1);

    }

    fseek(fp,i,0);/*文件指针定位到第i个学生*/

    fwrite(&stu[i],sizeof(struct student),1,fp);/*将第i个学生信息写入文件*/

    fclose(fp);

}

 

/*保存全部学生信息******************************************************************************/

void SaveAllStudent(int n)/*保存全部学生信息*/

{

    FILE *fp;

    if((fp=fopen("student.dat","wb"))==NULL)/*以二进制写方式打开文件*/

    {

        printf("文件打开失败!\n");

        exit(1);

    }

    fwrite(stu,sizeof(struct student),n,fp);/*将数组stu中全部学生信息写入文件*/

    fclose(fp);

}

 

/*将排序后的学生信息读入到另外的文件中**********************************************************/

void save2()

{

    FILE *fp;

    int i;

    if((fp=fopen("stud.dat","rb+"))==NULL)/*以二进制读,写方式打开文件*/

    {

        printf("文件打开失败!\n");

        exit(1);

    }

    for (i=0;i<SIZE;i++)

        if (fwrite(&stu[i],sizeof(struct student),1,fp)!=1)

        printf("file write error\n");

    fclose(fp);/*读取完毕关闭文件*/

}

 

/*增加学生信息*********************************************************************************/

int AddStudent(int n)

{

    char c='y';

    FILE *fp;

    if((fp=fopen("student.dat","ab"))==NULL)/*以二进制追加方式打开文件*/

    {

        printf("文件打开失败!\n");

        exit(1);

    }

    while(c=='y')

    {

        printf("\n请输入要增加的同学的信息:");

        InputOnestudent(n);/*调用函数输入第n个学生信息*/

       fwrite(&stu[n],sizeof(struct student),1,fp);/*将第n个学生信息保存至文件*/

       n++;/*学生数量增加1*/

        printf("\n继续输入其他同学信息吗?\n");

        printf("确定进行删除请按y;不进行删除请按n\n");

       c=getchar();

        getchar();

    }/*结束while*/

    printf("\n按任意键继续!\n");

    getchar();

    fclose(fp);

    return(n);

}

 

/*输入一个同学信息*****************************************************************************/

void InputOnestudent(int i)

{

    printf("学号\t姓名\t学院\t班级\t高数\t英语\tC语言\n");

    scanf("%d\t%s\t%s\t%d\t%d\t%d\t%d\t\n",&stu[i].number,stu[i].name,stu[i].xueyuan,&stu[i].cla,&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);      

    stu[i].sum=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2]);/*计算总成绩*/      

    stu[i].average=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3;/*计算平均成绩*/

}

 

/*删除学生信息*********************************************************************************/

int DelStudent(int n)

{

    int i,k=-1,x;

    char c1='y',c2;

    while(c1=='y')

    {

       c2='n';

        printf("\n请输入要删除的同学的学号:");

        scanf("%d",&x);

        for(i=0;i<n;i++)

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

           {

               k=i;/*找到要删除的同学学号,并用k记下其下标*/

               break;

           }

        if(k<0)/*k<0表示在数组中没有找到输入学号对应的学生*/

            printf("\n输入学号有误,请重新输入!");

        else

       {

            printf("\n该同学信息如下:\n");

            InputOnestudent(k);

            printf("\n确定删除?\n");

            printf("确定进行删除请按y;不进行删除请按n\n");

           c2=getchar();

           getchar();

           if(c2=='y')/*c2为y,表示确定进行删除操作*/

           {

               for(i=k;i<n;i++)

                  stu[i]=stu[i+1];/*删除第k个学生信息*/

               n--;/*学生人数减1*/

               printf("删除成功!恭喜!!\n");

           }

           else

               printf("\n取消删除!\n");

            printf("\n继续删除操作吗?");

            printf("\n继续删除请按y;不进行删除请按n\n");

           c1=getchar();

           getchar();

       }

    }/*结束while*/

    save(n);

    printf("\n按任意键继续!\n");

    getchar();

    return(n);

}

 

/*修改学生信息********************************************************************************/

void ModifyStudent(int n)

{

    struct student temp;

    int k=-1,x,i;

    char c1='y',c2;

    while(c1=='y')

    {

       c2='y';

        printf("\n请输入要修改的同学的学号:");

        scanf("%d",&x);

        for(i=0;i<n;i++)

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

           {

               k=i;/*找到要修改的同学学号,并用k记下其下标*/

               break;

           }

        if(k<0)/*k<0表示在数组中没有找到输入学号对应的学生*/

            printf("\n输入学号有误,请重新输入!");

        else

       {

            printf("请输入要修改学生修改后的的信息\n");

            printf("学号\t姓名\t学院\t班级\t高数\t英语\tC语言\t\n");

            scanf("%d\t%s\t%s\t%d\t%d\t%d\t%d\t\n",&temp.number,stu[i].name,temp.xueyuan,&temp.cla,&temp.score[0],&temp.score[1],&temp.score[2]);      

           temp.sum=(temp.score[0]+temp.score[1]+temp.score[2]);/*计算总成绩*/      

           temp.average=(temp.score[0]+temp.score[1]+temp.score[2])/3;/*计算平均成绩*/

            stu[k]=temp;/*修改该学生信息*/

            printf("\n修改成功!恭喜!!\n");

           break;

       }

        SaveAllStudent(k);/*保存修改后的学生信息*/

        printf("\n继续修改操作吗?");

        printf("\n继续修改请按y;不进行修改请按n\n");

       c1=getchar();

        getchar();

    }/*结束while*/

    printf("\n按任意键继续!\n");

    getchar();

}

 

/*查询一个学生信息**********************************************************************************/

void OutputOneStudent(int i)

{

    printf("学号:%d  姓名:%s  学院:%s  班级:%d\n",stu[i].number,stu[i].name,stu[i].xueyuan,stu[i].cla);

    printf("高数:%d  英语:%d  C语言:%d  总分:%d  平均分:%d\n",stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].sum,stu[i].average);

}

 

/*查询学生信息操作*********************************************************************************/

void SearchMenu(int n)

{

    int selet;

    while(1)

    {

        printf("**********************************************************\n");

        printf("******************** 欢迎进入查询系统  *******************\n");    

        printf("**********************************************************\n");

        printf("\n");

        printf("*********************  请输入所需操作  *******************\n");/*选择功能菜单*/

        printf("**********************************************************\n");

        printf("1.按学号查询\n");

        printf("2.按姓名查询\n");

        printf("3.按学院查询\n"); 

        printf("4.按班级查询\n");

        printf("0.返回主菜单\n");     

        printf("**********************************************************\n");

        printf("请输入操作选项:");

        scanf("%d"