《请假管理系统源代码.pdf》由会员分享,可在线阅读,更多相关《请假管理系统源代码.pdf(30页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、#include#include#include#include#define select int typedef struct /账户信息 char name20;/User.name char pw20;/User.pw User;typedef struct char Num20;char n120;char Class20;char time100;char reason100;char instructor100;Leave;typedef struct char n120;char Num20;/char name20;char Class20;char time100;char
2、 reason100;char instructor100;char suggest100;TEACHER;int check(char name20)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 name20,char pw20)User us
3、;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 n20;char plog20;char nlog20;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)
4、;printf(nn);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;i0)printf
5、(请重新输入密码(你还有%d 次机会):,a);printf(nn);scanf(%s,plog);if(login(nlog,plog)=1)goto success2;else return 0;if(login(nlog,plog)=1)success2:system(color F0);printf(nn);printf(登陆成功/n);Sleep(1000);system(cls);LEAVESYSTEM:printf(nn);printf(=n);printf(|1.提交请假申请|n);printf(|2.查询请假批准状态|n);printf(|如无需操作,可直接关闭程序|n);p
6、rintf(=n);printf(nn);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(nn);printf(=n);printf(|n);printf(|-提交请假申请 printf(|n);printf(=n);printf(nn);Leave a;S
7、leep(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(Us
8、er)fclose(t);fflush(t);/Sleep(1000);printf(n);printf(保存成功/n);printf(请不定时来查询你的假条申请状态!nnn);system(pause);system(cls);goto LEAVESYSTEM;if(s=2)/学生查询状态代码 system(color F0);system(cls);printf(nn);printf(=n);printf(|n);printf(|-查 询 请 假 批 准 状 态-|n);printf(|n);printf(=n);Sleep(1000);TEACHER b;FILE*t=fopen(rea
9、d.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(|班级:%sn n,b.Class);printf(|姓名:%sn n,b.n1);printf(|请假时间:%sn n,b.time);printf(|请假原因:%sn n,b.reason);printf(-n);Sleep(1000);printf(n);printf(-n);printf(申请状态:%sn,b.instructor)
10、;printf(辅导员意见:%sn,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;i0)printf(请重新输入密码(你还有%d 次机会):,a);printf(nn);scanf(%s,plog);if(login(nlog,plog)=1)
11、goto success3;else return 0;if(login(nlog,plog)=1)success3:system(color F0);printf(nn);printf(登陆成功/n);Sleep(1000);/Approvalsystem:system(cls);printf(nn);printf(=n);printf(|n);printf(|-学 生 请 假 系 统(辅 导 员端)-|n);printf(|n);printf(=n);printf(n);Sleep(1000);printf(=n);printf(|1.查看学生请假申请|n);printf(|2.返回登陆界
12、面|n);printf(|如无需操作,可直接关闭程序|n);printf(=n);printf(nn);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(nn);printf(=n);printf(|n);printf(|-查 看 学 生 请 假 申 请-|n);printf(|n);printf(=n);printf(nn);Sleep(1000);Lea
13、ve a;FILE*t=fopen(leave.dat,rb);while(1)int ch;if(!(fread(&a,sizeof(Leave),1,t)break;printf(-n);printf(|学生信息如下:n);printf(|班级:%sn,a.Class);printf(|姓名:%sn,a.n1);printf(|学号:%sn,a.Num);printf(|请假时间:%sn,a.time);printf(|请假原因:%sn,a.reason);printf(-n);Sleep(1000);printf(nnn);printf(n);printf(是否批准学生请假申请 n);p
14、rintf(-n);printf(-n);printf(1.批准学生请假申请 n);printf(2.不批准学生请假申请 n);printf(nnn);printf(请输入您要执行的选项:);scanf(%d,&ch);while(ch!=1&ch!=2)if(ch!=1&ch!=2)printf(选项不存在,请重新输入(1/2):);scanf(%d,&ch);if(ch=1)printf(nn);printf(-n);printf(执行中.n);printf(-n);Sleep(1000);TEACHER b;FILE*F=fopen(read.dat,ab);strcpy(b.instr
15、uctor,您的请假申请已被批准!);printf(n);printf(辅导员意见:);scanf(%s,b.suggest);strcpy(b.Class,a.Class);strcpy(b.n1,a.n1);strcpy(b.time,a.time);strcpy(b.reason,a.reason);strcpy(b.Num,a.Num);/FILE*f3=fopen(leave.dat,ab);fwrite(&b,sizeof(TEACHER),1,F);fclose(F);fflush(F);Sleep(1000);printf(nnn);printf(操作成功/n);system(
16、pause);printf(nnnnn);continue;if(ch=2)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);strcpy(b.time,a.time);strcpy(b.reason,a.reason);str
17、cpy(b.Num,a.Num);fwrite(&b,sizeof(TEACHER),1,F);fclose(F);fflush(F);Sleep(1000);printf(nnn);printf(操作成功/n);system(pause);printf(nnnnn);continue;if(s=2)system(cls);goto Login;/修改学生请假申请状态 反回 /如果是辅导员 if(strlen(n)=5)/如果是老师 int a,i;printf(n);printf(请输入密码:);/直接输入密码 scanf(%s,plog);for(a=2,i=0;i0)printf(请重新
18、输入密码(你还有%d 次机会):,a);printf(nn);scanf(%s,plog);if(login(nlog,plog)=1)goto success1;else return 0;if(login(nlog,plog)=1)success1:system(color F0);printf(nn);printf(登陆成功/n);Sleep(1000);system(cls);system(cls);printf(nn);printf(=n);printf(|n);printf(|-学 生 请 假 系 统(老 师端)-|n);printf(|n);printf(=n);Sleep(10
19、00);printf(nn);printf(-n);printf(学生请假加载中.n);printf(-n);Sleep(1000);/int i=0;TEACHER b;FILE*t=fopen(read.dat,rb);/rewind(t);while(1)if(!(fread(&b,sizeof(TEACHER),1,t)break;/long d=i*sizeof(TEACHER);/fseek(t,d,SEEK_SET);/fread(&b,sizeof(TEACHER),1,t);printf(-n);printf(|学生学号%s 请假申请反馈信息:n,b.Num);printf(
20、|班级:%sn,b.Class);printf(|姓名:%sn,b.n1);printf(|请假时间:%sn,b.time);printf(|请假原因:%sn,b.reason);printf(|申请状态:%sn,b.instructor);printf(-n);printf(nn);system(pause);if(c=-1)/账户不存在 system(color F0);system(cls);char n20;char p20;strcpy(n,nlog);/复制帐号 if(strlen(n)=9)/完成注册,存入 data.dat 文档 User u;printf(*n);printf
21、(*同学!第一次登录请完成注册 *n);printf(*n);printf(nn);printf(-n);printf(请 输 入 新 密 码 n);printf(-n);scanf(%s,p);strcpy(u.name,n);strcpy(u.pw,p);FILE*f=fopen(data.dat,ab);/打开文件 让指针 f 指向打开的文件 fwrite(&u,sizeof(User),1,f);/讲以变量 u 的地址开始的内存区域的一个数据写到 f 指向的文件中,每个数据占 sizeof(User)fclose(f);fflush(f);printf(注册成功/nnn);system
22、(pause);system(cls);if(strlen(n)=5)User u;printf(*n);printf(*老师!第一次登录请完成注册 *n);printf(*n);printf(nn);printf(-n);printf(请 输 入 新 密 码 n);printf(-n);scanf(%s,p);strcpy(u.name,n);strcpy(u.pw,p);FILE*f=fopen(data.dat,ab);/打开文件 让指针 f 指向打开的文件 fwrite(&u,sizeof(User),1,f);/讲以变量 u 的地址开始的内存区域的一个数据写到 f 指向的文件中,每个
23、数据占 sizeof(User)fclose(f);fflush(f);printf(注册成功/nnn);system(pause);system(cls);if(strlen(n)=4)User u;printf(*n);printf(*辅导员!第一次登录请完成注册 *n);printf(*n);printf(nn);printf(-n);printf(请 输 入 新 密 码 n);printf(-n);scanf(%s,p);strcpy(u.name,n);strcpy(u.pw,p);FILE*f=fopen(data.dat,ab);/打开文件 让指针 f 指向打开的文件 fwrite(&u,sizeof(User),1,f);/讲以变量 u 的地址开始的内存区域的一个数据写到 f 指向的文件中,每个数据占 sizeof(User)fclose(f);fflush(f);printf(注册成功/nnn);system(pause);system(cls);goto Login;return 0;(注:专业文档是经验性极强的领域,无法思考和涵盖全面,素材和资料部分来自网络,供参考。可复制、编制,期待你的好评与关注)