资源描述
#include <stdio、h〉
#include 〈stdlib、h>
#include 〈string、h〉
#include 〈windows、h>
#define select int
typedef struct //账户信息
{
char name[20]; //User、name
char pw[20]; //User、pw
} User;
typedef struct
{
char Num[20];
char n1[20];
char Class[20];
char time[100];
char reason[100];
char instructor[100];
} Leave;
typedef struct
{
char n1[20];
char Num[20];
// char name[20];
char Class[20];
char time[100];
char reason[100];
char instructor[100];
char suggest[100];
} TEACHER;
int check (char name[20])
{
int i=0;
User ru;
FILE *f =fopen(”data、dat”,"rb");
rewind(f);
for(i=0; !feof(f); i++)
{
int d=i*sizeof(User);
fseek(f,d,SEEK_SET);
fread(&ru,sizeof(User),1,f);
if(strcmp(name,ru、name)==0)
return 1;
}
return —1;
}
int login(char name[20],char pw[20])
{
User us;
FILE *f =fopen("data、dat","rb");
while(!feof(f))
{
fread(&us,sizeof(User),1,f);
if(strcmp(name,us、name)==0)
{
if(strcmp(pw,us、pw)==0)return 1;
}
}
return -1;
}
int main()
{
char n[20];
char plog[20];
char nlog[20];
int c;
User u;
FILE *f =fopen("data、dat",”ab");
if(f!=NULL)
{
fwrite(&u,sizeof(User),1,f);
}
fclose(f);
Login:
system("color F0”);
system(”cls");
printf(”\n\n”);
printf(”========================================================================\n”);
printf(”| |\n");
printf("|---—-——-—----—-—-—--—-—-—--—-学生请假系统--———-——-—--——-—----------———|\n”);
printf(”| |\n”);
printf("========================================================================\n");
printf(”\n”);
Sleep(1000);
printf("\n");
printf("请输入帐号:");
scanf(”%s",nlog);
c=check(nlog);
if(c==1)//如果账户存在
{
strcpy(n,nlog);//复制登录帐号
if(strlen(n)==9)//如果就是学生
{
int a,i;
select s=0;
printf(”\n");
printf("请输入密码:");//直接输入密码
scanf("%s”,plog);
for(a=2,i=0; i〈4; i++,a--)
{
if(login(nlog,plog)==—1)//密码错误
{
system("color F0");
char plog[20]= {}; //登录数组初始化
system("cls");
printf(”\n”);
printf("************************************************************************\n");
printf("* 密码错误! *\n”);
printf(”************************************************************************\n");
printf(”\n\n");
if(a>0)
{
printf("请重新输入密码(您还有%d次机会):”,a);
printf("\n\n");
scanf(”%s",plog);
if(login(nlog,plog)==1)
goto success2;
}
else
return 0;
}
}
if(login(nlog,plog)==1)
{
success2: system("color F0”);
printf(”\n\n");
printf(" \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\登陆成功///////////////////////\n”);
Sleep(1000);
system(”cls”);
}
LEAVESYSTEM:
printf(”\n\n”);
printf("========================================================================\n");
printf("|1、提交请假申请 |\n");
printf("|2、查询请假批准状态 |\n");
printf("| 如无需操作,可直接关闭程序 |\n");
printf("========================================================================\n”);
printf("\n\n");
Sleep(1000);
printf(”请输入您要执行得选项:");
scanf(”%d”,&s);
Sleep(1000);
while(s!=1&&s!=2)
{
if(s!=1&&s!=2)
{ system(”color 0c");
printf("选项不存在,请重新输入(1/2):”);
s=0;
scanf("%d”,&s);
}
}
if(s==1)//写入请假
{
system(”color F0");
system("cls");
printf("\n\n");
printf(”========================================================================\n");
printf(”| |\n");
printf("|————-———-—------—-——-—---—--—-提交请假申请-——-————-------———-——-————--|\n”);
printf(”| |\n”);
printf("========================================================================\n");
printf("\n\n");
Leave a;
Sleep(1000);
printf(”请输入班级:\n”);
scanf("%s”,a、Class);
printf("请输入姓名:\n");
scanf("%s",a、n1);
printf("请详细输入请假时间:\n");
scanf(”%s”,a、time);
printf(”请详细输入请假原因:\n”);
scanf(”%s”,a、reason);
strcpy(nlog,a、Num);
strcpy(a、instructor,"0");
FILE *t=fopen("leave、dat”,"ab");
fwrite(&a,sizeof(Leave),1,t);//讲以变量u得地址开始得内存区域得一个数据写到f指向得文件中,每个数据占sizeof(User)
fclose(t);
fflush(t);
// Sleep(1000);
printf("\n");
printf(” \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\保存成功///////////////////////\n”);
printf(" 请不定时来查询您得假条申请状态!\n\n\n”);
system(”pause”);
system("cls");
goto LEAVESYSTEM;
}
if(s==2)//学生查询状态代码
{
system(”color F0");
system("cls");
printf("\n\n”);
printf("========================================================================\n");
printf("| |\n");
printf(”|—-—--——-——---———--———--—-——-查询请假批准状态-------—---———-——-—---—--—|\n");
printf(”| |\n”);
printf(”========================================================================\n”);
Sleep(1000);
TEACHER b;
FILE *t=fopen(”read、dat”,”rb");
while(1)
{
if(!(fread(&b,sizeof(TEACHER),1,t)))
break;
if((strcmp(nlog,b、Num))==0)
{
printf("-—---——--—------------———------—----——-—--———-------—----------\n");
printf(”|学生%s请假申请反馈信息: \n",b、n1);
printf("|班级:%s\n \n",b、Class);
printf("|姓名:%s\n \n",b、n1);
printf(”|请假时间:%s\n \n”,b、time);
printf("|请假原因:%s\n \n",b、reason);
printf("-—--—-——--——---—--------—--——————-————-—-—------—---—-—-——---——\n”);
Sleep(1000);
printf("\n");
printf(” -—--—-—-—-——-—--—-—--—-—————---——-------—-——-—-—--—-—----—-—-\n");
printf(" 申请状态:%s\n",b、instructor);
printf(" 辅导员意见:%s\n",b、suggest);
printf(" --—--—-—---—----—---—--—-——-——--———----—————------—---——-——--\n");
system(”pause");
Sleep(1000);
system("cls");
goto LEAVESYSTEM;
}
}
}
if(s==3)
{
goto Login;
}
}//身份学生
if(strlen(n)==4)//如果就是辅导员
{
int a,i;
select s;
printf("\n");
printf(”请输入密码:");//直接输入密码
scanf("%s",plog);
for(a=2,i=0; i<4; i++,a-—)
{
if(login(nlog,plog)==-1)//密码错误
{
system(”color 0c");
char plog[20]= {}; //登录数组初始化
system(”cls");
printf("\n");
printf(”************************************************************************\n”);
printf("* 密码错误! *\n");
printf(”************************************************************************\n”);
printf("\n\n”);
if(a〉0)
{
printf(”请重新输入密码(您还有%d次机会):”,a);
printf(”\n\n");
scanf("%s",plog);
if(login(nlog,plog)==1)
goto success3;
}
else
return 0;
}
}
if(login(nlog,plog)==1)
{
success3: system(”color F0");
printf("\n\n”);
printf(” \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\登陆成功///////////////////////\n”);
Sleep(1000);
}
//Approvalsystem:
system("cls");
printf("\n\n”);
printf("========================================================================\n”);
printf("| |\n");
printf("|——————----———--———-—-----学生请假系统(辅导员端)--———--—-----—-—--—--—-|\n");
printf("| |\n”);
printf(”========================================================================\n");
printf("\n");
Sleep(1000);
printf("========================================================================\n”);
printf("|1、查瞧学生请假申请 |\n");
printf("|2、返回登陆界面 |\n");
printf("| 如无需操作,可直接关闭程序 |\n”);
printf("========================================================================\n");
printf("\n\n");
Sleep(1000);
printf("请输入您要执行得选项:”);
scanf(”%d",&s);
while(s!=1&&s!=2)
{
if(s!=1&&s!=2)
{
printf(”选项不存在,请重新输入(1/2):”);
scanf(”%d",&s);
}
}
if(s==1)//辅导员读
{
system("cls”);
printf("\n\n”);
printf(”========================================================================\n");
printf("| |\n");
printf("|—-——-———-----—----——-—--—-—-查瞧学生请假申请—--——-——-—-——--—--—-—--—--|\n");
printf(”| |\n");
printf("========================================================================\n");
printf("\n\n");
Sleep(1000);
Leave a;
FILE *t=fopen(”leave、dat”,”rb”);
while(1)
{
int ch;
if(!(fread(&a,sizeof(Leave),1,t)))
break;
{
printf(”--—---—-—-—---——-----—-—--—----—---—-—---—----—-—--—-----—-—-\n”);
printf(”|学生信息如下:\n”);
printf("|班级:%s\n”,a、Class);
printf("|姓名:%s\n",a、n1);
printf("|学号:%s\n",a、Num);
printf(”|请假时间:%s\n",a、time);
printf("|请假原因:%s\n",a、reason);
printf("—----——---—-----—---------—--—----------—----—----——-—-----—-\n");
Sleep(1000);
printf(”\n\n\n");
printf(" \n”);
printf(” 就是否批准学生请假申请 \n");
printf(" -—-----——--——----—--—---—------——----———----———-——-—---——-— \n");
printf(" —---------—----——---——----—-—---—----—--—-—--—-—-—---—---—— \n”);
printf(" 1、批准学生请假申请 \n");
printf(" 2、不批准学生请假申请 \n”);
printf("\n\n\n");
printf("请输入您要执行得选项:”);
scanf(”%d”,&ch);
while(ch!=1&&ch!=2)
{
if(ch!=1&&ch!=2)
{
printf("选项不存在,请重新输入(1/2):");
scanf(”%d”,&ch);
}
}
if(ch==1)
{
printf(”\n\n”);
printf("-—----——---—---————-—-—--———-—---—-—----—-—————--—--—-—--—---\n”);
printf("执行中、、、、\n");
printf("—-—-—-—-—--—-—--—-—-—----———-——------—-—--------—----—----—--\n”);
Sleep(1000);
TEACHER b;
FILE *F=fopen("read、dat","ab");
strcpy(b、instructor,”您得请假申请已被批准!");
printf("\n”);
printf("辅导员意见:”);
scanf("%s”,b、suggest);
strcpy(b、Class,a、Class);
strcpy(b、n1,a、n1);
展开阅读全文