#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;
}