解析一下这个校园门户程序设计逐步使用的算法及结构他的Dev C 的基础程序框架实现的功能意义,为什么要放在这里用具体你们对这个代码怎么看。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>

#define MAX_SIZE 20

//学生信息结构体
struct stu_information
{
char Name[MAX_SIZE];//为什么这里用max size
int Gender;//这种部分可以用中文嘛姓名学号等
int Sno;
char ID[MAX_SIZE];
char telephone[MAX_SIZE];
char mailbox[MAX_SIZE];
char Cipher[MAX_SIZE];
}*s;

int num=0;

int CheckIfExist(char *User,char *C,struct stu_information *s); //这是什么意思
void EnterPassWard(char *passward);
void logon();

int main()
{
int flag=1;
char Flag,ch;
s=(struct stu_information )malloc(100sizeof(struct stu_information));//头结点
char UserName[MAX_SIZE];
char Cipher[MAX_SIZE];

while(1)
{
    system("cls");//清空
    printf("请选择一项服务:\n1.登录已有账号\n2.注册新用户\n");
    flag=getch();
    if(flag==49)
    {
        system("cls");
        printf("输入用户名:");
        scanf("%s",UserName);

L1: printf("密码:");
EnterPassWard(Cipher);

        flag=CheckIfExist(UserName,Cipher,s);

        if(flag==0)

{
printf("密码错误!\n");
goto L1;
}
else if(flag==-1)
{
printf("\n用户不存在!\n");
printf("是否注册新用户?(Y/N)");
getchar();
scanf("%c",&Flag);
if(Flag=='Y'|| Flag=='y')
logon();
}
else
{
L3: system("cls");
printf("请选择一项服务:\n1.正方教务系统\n2.正方学工系统\n3.电子注册\n4.优慕课平台\n5.学生请假申请\n6.泛微OA\n7.图书借阅\n8.网上缴费");
flag=getch();
switch(flag-48)
{
case 1:
system("cls");
printf("欢迎来到正方教务系统!");
break;
case 2:
system("cls");
printf("欢迎来到正方学工系统!");
break;
case 3:
system("cls");
printf("电子注册!");
break;
case 4:
system("cls");
printf("欢迎来到优慕课平台!");
break;
case 5:
system("cls");
printf("学生请假申请!");
break;
case 6:
system("cls");
printf("泛微OA!");
break;
case 7:
system("cls");
printf("图书借阅!");
break;
case 8:
system("cls");
printf("网上缴费!");
break;
default:
goto L3;
}
}
}
else if(flag==50)
{
logon();
}

    while((ch=getch())=='\n');
}
return 0;

}
int CheckIfExist(char *User,char *C,struct stu_information *s)
{
for(int i=0;i<num;i++)
{
if(strcmp(User,s[i].mailbox)==0)
{
if(strcmp(C,s[i].Cipher)==0)
return 1;
else
return 0;
}

}
return -1;

}

void EnterPassWard(char passward)
{
int i=0;
char c;
while(1)
{
c=getch();
if (c == 8) //删除
{
if (i == 0)
{
continue;
}
printf("\b");
printf(" ");
printf("\b");
i--;
}
else if (c == '\r') //回车
{
passward[i]='\0';
break;
}
else //普通输入
{
if (i == MAX_SIZE-1)
{
continue;
}
printf("
");//回显
passward[i++] = c;
}
}

}
void logon()
{
system("cls");
int i=0;
char passward[MAX_SIZE];
char passward_[MAX_SIZE];
printf("输入姓名:");
scanf("%s",s[num].Name);

printf("输入性别:(1表示男,0表示女)");  //若错误输入,这里不会检测,直接影响后续
scanf("%d",&s[num].Gender);

printf("输入学号:");
scanf("%d",&s[num].Sno);

L2: printf("身份证号:");
scanf("%s",s[num].ID);
while(s[num].ID[i]!='\0')
i++;
if(i!=18)
{
i=0;
printf("身份证号输入错误,请重新输入");
goto L2;
}

printf("联系电话:");
scanf("%s",s[num].telephone);

printf("邮箱:");
scanf("%s",s[num].mailbox);

L3: printf("输入新密码:");
EnterPassWard(passward);

printf("\n确认新密码:");
EnterPassWard(passward_);

if(strcmp(passward,passward_)==0)
{
    i=0;
    printf("\n注册成功!你的用户名为:%s",s[num].mailbox);
    while(passward[i]!='\0')
    {
        s[num].Cipher[i]=passward[i];
        i++;
    }
    num++;
    return ;
}
else
{
    printf("\n请重新确认密码!\n");
    goto L3;
}