请假管理系统源代码

请假管理系统源代码
请假管理系统源代码

#include

#include

#include

#include

#define select int

typedef struct // 账户信息{

char name[20]; //https://www.360docs.net/doc/629796133.html,

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,https://www.360docs.net/doc/629796133.html,)==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,https://www.360docs.net/doc/629796133.html,)==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");

|\n");

printf("| ---------------------------- 学生请假系统-------

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");

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(" ---

printf("| 学生%s 请假申--------------- \n");

请反馈信息:

\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(" 请输入密码 :");// 直接输入密码

相关主题
相关文档
最新文档