请假管理系统源代码【创意版】.doc
请假管理系统源代码

#include <stdio.h>#include <stdlib.h>#include <string.h>#include <windows.h>#define select inttypedef struct //账户信息{char name[20]; //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;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,)==0)return 1;}return -1;}int login(char name[20],char pw[20]){FILE *f =fopen("data.dat","rb");while(!feof(f)){fread(&us,sizeof(User),1,f);if(strcmp(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("请输入密码:");//直接输入密码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;}elsereturn 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;}elsereturn 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);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("\n\n\n");printf(" \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\操作成功///////////////////////\n");system("pause");printf("\n\n\n\n\n");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);strcpy(b.Num,a.Num);fwrite(&b,sizeof(TEACHER),1,F);fclose(F);fflush(F);Sleep(1000);printf("\n\n\n");printf(" \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\操作成功///////////////////////\n");system("pause");printf("\n\n\n\n\n");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; 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 success1;}elsereturn 0;}}if(login(nlog,plog)==1){success1: system("color F0");printf("\n\n");printf(" \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\登陆成功///////////////////////\n");Sleep(1000);system("cls");}system("cls");printf("\n\n");printf("========================================================================\n");printf("||\n");printf("|---------------------------学生请假系统(老师端)-----------------------|\n");printf("||\n");printf("========================================================================\n");Sleep(1000);printf("\n\n");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("|班级:%s\n",b.Class);printf("|姓名:%s\n",b.n1);printf("|请假时间:%s\n",b.time);printf("|请假原因:%s\n",b.reason);printf("|申请状态:%s\n",b.instructor);printf("---------------------------------------------------------------\n");printf("\n\n");}system("pause");}}if(c==-1)//账户不存在{system("color F0");system("cls");char n[20];char p[20];strcpy(n,nlog);//复制帐号if(strlen(n)==9)//完成注册,存入data.dat文档{User u;printf("************************************************************************\n");printf("* 同学!第一次登录请完成注册*\n");printf("************************************************************************\n");printf("\n\n");printf(" ----------------------------------------------------------------------\n");printf(" 请输入新密码\n");printf(" ----------------------------------------------------------------------\n");scanf("%s",p);strcpy(,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(" \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\注册成功///////////////////////\n\n\n");system("pause");system("cls");}if(strlen(n)==5){User u;printf("************************************************************************\n");printf("* 老师!第一次登录请完成注册*\n");printf("************************************************************************\n");printf("\n\n");printf(" ----------------------------------------------------------------------\n");printf(" 请输入新密码\n");printf(" ----------------------------------------------------------------------\n");scanf("%s",p);strcpy(,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(" \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\注册成功///////////////////////\n\n\n");system("pause");system("cls");}if(strlen(n)==4){User u;printf("************************************************************************\n");printf("* 辅导员!第一次登录请完成注册*\n");printf("************************************************************************\n");printf("\n\n");printf(" ----------------------------------------------------------------------\n");printf(" 请输入新密码\n");printf(" ----------------------------------------------------------------------\n");scanf("%s",p);strcpy(,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(" \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\注册成功///////////////////////\n\n\n");system("pause");system("cls");}goto Login;}return 0;}。
课程设计考勤管理系统源代码【最新范本模板】

package kaoqin;import javax.swing。
*;import java.awt.*;import java.awt。
event.*;import java.sql.Connection;import java.sql.DriverManager;import java.sql。
ResultSet;import java.sql。
SQLException;import java。
sql.Statement;import java。
sql。
*;class AttendFrame extends JFrame//工作制类型{public AttendFrame(){this.setTitle(”工作制类型");this.setVisible(true);this.setContentPane(new JPanel());this。
setSize(300,200);create();}private void create(){JButton b1,b2,b3;Box box1,box2,box;b1=new JButton("非弹性工作制");b2=new JButton(”弹性工作制");b3=new JButton(”返回");box1=Box.createHorizontalBox();box2=Box。
createHorizontalBox();box=Box.createVerticalBox();box1。
add(b1);box1.add(Box.createHorizontalStrut(20));box1。
add(b2);box2.add(b3);box.add(box1);box.add(Box.createVerticalStrut(30));box.add(box2);this。
add(box);b1。
addActionListener(new ActionListener()// {@Overridepublic void actionPerformed(ActionEvent e){// TODO 自动生成的方法存根UBoundFrame frame=new UBoundFrame();dispose();}});b2.addActionListener(new ActionListener() //{@Overridepublic void actionPerformed(ActionEvent e){// TODO 自动生成的方法存根BoundFrame frame=new BoundFrame();dispose();}});b3。
课程设计考勤管理系统源代码

04
考勤管理界面
展示学生的考勤记录,包括迟到、早 退、旷课等情况,并提供添加、修改 、删除考勤记录的功能。
06
报表统计界面
提供多种报表统计功能,如学生出勤率统计、 成绩分布统计等,方便教师和管理员进行数据 分析和决策。
04
系统实现
开发环境搭建
01
安装Java开发环境 (JDK)
确保计算机上已安装适当版本的 Java开发工具包(JDK),并配 置好环境变量。
。
操作便捷性
系统应尽量减少用户的操作步 骤和复杂度,提高用户的使用 体验。
数据准确性
系统应确保数据的准确性和一 致性,避免因数据错误导致的 各种问题。
故障处理
系统应提供故障处理和恢复机 制,确保在出现问题时能及时
解决并恢复正常运行。
03
系统设计
总体设计
系统架构
采用B/S架构,前端使用 HTML、CSS、JavaScript等
促进信息化建设
推动学校信息化建设进程 ,提高学校管理水平和效 率。
系统概述
系统功能
实现学生考勤信息的录入、 查询、统计和分析等功能, 支持多种考勤方式和异常情 况处理。
系统架构
采用B/S架构,前端使用 Web技术实现用户界面,后 端使用数据库管理系统存储 和处理数据。
技术选型
前端采用HTML5、CSS3、 JavaScript等技术,后端采 用Java、Spring Boot、 MyBatis等技术,数据库使 用MySQL或Oracle等关系型 数据库。
系统特点
界面友好、操作简便、功能 强大、性能稳定、安全可靠 。
02
需求分析
功能需求
学生信息管理
系统需要提供对学生基本信息的增删 改查功能,包括姓名、学号、班级等 。
请假管理系统综合课程设计报告

中山大学南方学院
电子通信与软件工程系
课程名称:C语言程序设计
项目名称:请假管理系统
项目组成员及分工及成绩评定
指导教师评语:
指导教师(签名):
年月日
实验内容:
请假管理系统
①学生或者辅导员登录功能。
学生登录后,可以提交请假申请、查看请假状态。
●辅导员登录后,可以查看、批准或拒绝请假。
❍教师登录后,可以查看某个学生的请假条信息。
⏹请假内容:请假人,请假时间,请假理由,批准状态。
实验操作流程图:
功能一:请假管理系统的登录及注册代码如下:
功能二:学生登录界面,提交请假申请或者查看请假状态。
代码如下:
续上:
功能三:辅导员登录后可以查看、批准或者拒绝请假。
代码如下:
功能四:教师登录可以查看某个学生的请假条信息。
功能的测试:学生功能:
j。
学生请假管理系统需求分析设计文档(附待部分核心代码-ssh框架实现)精编版

2014 - 2015 学年第 2 学期1.总体目标 (1)1.1背景 (1)1.1.1引言 (1)1.2要求 (1)1.3目标 (1)2...................................................................................................................................... 需求分析 (2)2.1功能需求描述 (2)2.1.1基本功能: (2)2.1.2业务功能: (2)2.2用户需求描述 (2)2.2.1学生用户需求描述 (2)2.2.2任课教师用户需求描述 (2)3...................................................................................................................................... 数据库设计. (2)4.功能模块设计 (4)4.1系统流程 (5)5.主要功能的具体实现 (8)5.1请假功能的实现 (8)5.2审核功能的实现 (11)5.3权限修改功能 (15)5.4导入功能 (17)6.系统的运行环境需求 (18)6.1硬件环境: (18)6.2.软件环境: (18)7.测试结果与分析 (18)7.1主要测试内容 (18)7.2软件测试的目的 (19)7.3软件测试的任务 (19)7.4.1 功能测试 (19)7.4.2 (19)7.4.3文档测试 (19)7.5测试环境 (20)7.6系统具体测试 (20)8.课程设计总结 (21)1.总体目标1.1背景1.1.1引言目前高校大部分都还是采用学生写好请假条,然后到辅导员那里申请请假的方式进行请假,这种方式不仅麻烦而且比较费时。
在信息化的今天,能有效地借助网络才能提高办事效率。
学生请假系统的开发与实现

分类号密级U D C 编号本科毕业论文(设计) 题目学生请假系统的开发与实现所在院系计算机学院专业名称计算机科学与技术二○一九年四月论文原创性声明本人郑重声明:所呈交的学位论文,是本人在导师的指导下,独立进行研究工作所取得的成果。
除文中已注明引用的内容外,本论文不含任何其他个人或集体已经发表或撰写过的作品成果。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到违反本声明所引起的一切法律责任将由本人承担。
学位论文作者签名:年月一、概述我们身处的时代是一个不断发展的时代,人们的生活已经离不开互联网,慢慢的我们可以再网上完成我们的作业,我们可以在网上上课打卡,在网上交学费。
我们身处一个正在飞速进步的社会,面对越来越多的学生人数以及高校的分校区,一个行之有效的学生请假系统可以为我们减少很多麻烦,提高的学生和老师的办事效率,减少了纸质请假条带来的成本,节省了人力物力。
同时该系统操作简单内容完善,提高的学校对学生的管理效率,有助于学校实现科学管理。
目前大多数的高校仍然采用的是纸质的请假,这种请假方式既不方便也不快捷,学生如果想要请假必须和老师约好时间,去办公室写好请假条,获得老师批准并且盖章之后才算生效。
如果老师看不到请假条就按旷课处理,对于有急事的学生,这是极不公平的。
因此,学生请假系统无论对于老师还是学生来说都是提高管理效率和办事效率的途径。
二、主题1、选择的依据及研究意义现如今在许多高校中,学生请假管理一直是一个老生常谈、难以解决的大问题。
以我的本科高校来讲,如果有事或者生病需要请假,至少需要经过以下的步骤:首先,需要通过QQ或者微信等通信方式向辅导员申请并说明情况;然后,学生拟写假条,班主任签字署名方可完成请假;最后要将请假条交给相关代课老师,或者由班长转交。
这种传统的请假方式不仅步骤繁琐耗费学生大量的时间精力,而且从学校的管理层面来讲存在漏洞。
以下为传统纸质的请假方式存在的普遍问题:一、班主任需要耗费大量的时间精力去跟进学生在请假期间的动向以及安全问题;二、在纸质请假条上,学生可以模仿辅导员笔迹签名,而且存在着原来的请假时间被修改的风险;三、传统请假条需要耗费大量的纸张,不符合环保的理念。
学生考勤管理系统源代码【范本模板】

#include〈iostream〉#include〈cstring〉#include<windows。
h〉using namespace std;class time{public:time(int y=0,int m=0,int d=0){year=y;month=m;day=d;}~time(){}protected:int year,month,day;};//信息类class xinxi:public time{ public:xinxi(){tiaoshu++;}~xinxi(){tiaoshu—-;}void setname(char *n){strcpy(name,n);}void settime(int y,int m,int d){year=y;month=m;day=d;} void setqklx(char *qk){strcpy(queke,qk);}void setjieci(char *jc){strcpy(jieci,jc);}void setkechen(char *kc){strcpy(kechen,kc);}char *getname(){char *n;n=name;return n;}char *getqklx(){char *qk=queke;return qk;}char *getjieci(){char *jc;jc=jieci;return jc;}char *getkechen(){char *gk;gk=kechen;return gk;}int *gettime();private:char name[20];//姓名char jieci[3],kechen[10],queke[10];int tm[3];static int tiaoshu;};int xinxi::tiaoshu=0;int *xinxi::gettime(){int *t;t=tm;tm[0]=year;tm[1]=month;tm[2]=day;return t;}class qkechen:public xinxi{public:qkechen(){kcshu++;}~qkechen(){kcshu—-;}int getrc(xinxi st1[],int n,int j);char qkn[20];//公有数据成员private:int renci;static int kcshu;//静态数据成员};int qkechen::kcshu=0;int qkechen::getrc(xinxi st1[],int n,int j){renci=0;renci++;for(int i=0;i〈n;i++)if(*(st1[i+1].gettime()+1)==*(st1[j].gettime()+1)&&*(st1[i+1]。
员工请销假管理系统

题目员工请销假管理系统摘要目前,企业的请销假管理需要专门的人负责登记、审批和汇总,这些管理完全由人工操作,存在业务流程复杂、统计繁琐、工作量大,易出错和效率低的缺陷。
此外,这些数据都以纸质的形式存放,请销假数据存在丢失和难以长期保存的缺点。
这种请销假管理方式已经难以适应现代企业管理信息化建设的发展,现今员工信息管理的繁琐给具有强烈时间观念的行政人员带来了诸多不便,办公室缺少一种完善的管理软件,为了对员工请校假的管理方便,开发人员完成了全面的调查与分析,同时与目标用户进行了多次深入沟通,并在此基础上着手开发此软件。
当今社会正处于信息时代,信息技术已渗透到社会生活的各个领域,特别是企业的管理领域,用计算机来进行员工请假管理也已成为现代化企业运作必不可少的一部分。
现在利用计算机来管理员工请假工作,大大降低了工作人员的工作量,提高了工作。
考勤作为一个公司的基本管理,是单位对员工工作管理的基本依据,使用请销假系统,管理者可以快速记录公司全体员工当日的请假情况,并可统计员工请假情况。
设计请销假系统的目的是企业为了解决员工请假的繁琐工作,减轻企业不必要的劳动力,金钱的损耗,提高工作效率,为企业创造更多利益,实现单位的系统化,规范化和自动化。
设计请销假系统的目的是为了解决企业员工请假的繁琐工作,减轻企业不必要的劳动力,金钱的损耗,提高工作效率,为企业创造更多利益,实现单位的系统化,规范化和自动化。
因此本系统需要实现以下功能:员工信息维护,数据采集,基本数据维护,数据库管理,查询功能,请假记录系统的模块结构。
目录1 员工请销假系统分析 (1)1 需求分析 (1)1.1 系统整体功能介绍 (1)1.2 系统元素、实体介绍 (2)1.3 数据流图 (3)2 员工请销假系统设计 (4)2.1 数据库设计 (4)2.1.1 员工信息情况与部门情况之间的联系 (5)2.1.2 员工信息情况与请销假之间的联系 (5)2.1.3 用户与员工信息情况之间的联系 (5)2.2 全局E-R图 (5)2.3 按照概念结构中全局E-R图转换关系模式 (6)2.4 将关系模式转化为sqlserver所支持的数据模式 (6)2.5 数据关系图 (7)2.6 软硬件平台介绍 (7)3 员工请销假管理系统测试与实现 (9)3.1 用户登录成功界面 (9)3.2 基本的员工信息的管理 (9)3.3 员工的请销假 (10)3.4 审批 (11)4 系统总结 (13)5 参考文献 (13)1 员工请销假系统分析1 需求分析对于企业的员工来说,企业当然希望员工能够带给企业更高的效益,在整个的员工请销假管理系统中,最主要的是实现通过本系统的运作,方便迅速地获取、处理以及管理个人相关请假信息。
基于Java_的学生请假管理系统设计与实现

List < LeaveRecord > records = system.
queryLeaveRecords( startDate, endDate) ;
申请、审批、记录和统计等功能,通过自动化和数字化
新、审批结果通知等。
的方式,简化了学生请假流程,减少了人为错误的可
能性,提高了信息传递的效率。
本文的研究和实现,期望能够为学校提供一种现
代化的学生请假管理解决方案,促进学校管理工作的
1. 2 非功能需求
安全性 [2] :系统需要确保学生请假信息的安全性
系统。
通过以上的系统设计与实现,学生请假管理系统
能够提供方便的用户界面,有效处理请假申请、审批
和记录等业务逻辑,同时与数据库进行数据交互和存
储,实现学生请假信息的管理和统计功能。 系统的设
计和实现需要充分考虑系统的可扩展性、安全性和性
能,以满足学校的请假管理需求。
/ / 主程序入口
public class Main {
学生请假申请表单:它是提供给学生填写请假信
存储和访问。 在学生请假管理系统中,使用 Java 数据
的功能如下。
学生请假记录的存储和检索:主要功能是将学生
息的表单,包括请假原因、请假日期、请假时间段等。
审批界面:该界面能显示待审批的请假申请列
Hale Waihona Puke 的请假记录存储到数据库中,支持按条件进行检索和
查询。
表,提供审批操作的按钮和选项。
记录,包括请假日期、请假原因、请假状态等信息,方
于烦琐的手动操作和纸质文件,存在信息传递不畅、
便学校管理者进行查询和统计。
学生请假管理系统需求分析设计文档(附待部分核心代码s

2014 - 2015学年第 2 学期1.总体目标 (1)1.1背景 (1)1.1.1引言 (1)1.2要求 (1)1.3目标 (1)2.需求分析 (2)2.1功能需求描述 (2)2.1.1基本功能: (2)2.1.2业务功能: (2)2.2用户需求描述 (2)2.2.1学生用户需求描述 (2)2.2.2任课教师用户需求描述 (2)3.数据库设计 (2)4. 功能模块设计 (4)4.1系统流程 (5)5. 主要功能的具体实现 (8)5.1请假功能的实现 (8)5.2审核功能的实现 (11)5.3权限修改功能 (15)5.4导入功能 (17)6.系统的运行环境需求 (18)6.1硬件环境: (18)6.2.软件环境: (18)7.测试结果与分析 (18)7.1主要测试内容 (18)7.2软件测试的目的 (19)7.3软件测试的任务 (19)7.4.1功能测试 (19)7.4.2负载测试 (19)7.4.3文档测试 (19)7.5 测试环境 (20)7.6 系统具体测试 (20)8.课程设计总结 (21)1.总体目标1.1背景1.1.1引言目前高校大部分都还是采用学生写好请假条,然后到辅导员那里申请请假的方式进行请假,这种方式不仅麻烦而且比较费时。
在信息化的今天,能有效地借助网络才能提高办事效率。
因此,请假管理系统能够解决这种请假方式所带来的很多麻烦。
1.2要求请假管理系统要达到以下功能:增删查改:学生信息管理(导入/查/改/删)、老师(含辅导员和系领导)信息管理业务功能:学生填写请假事由、提交给辅导员审批、按请假制度超过3天的提交给系领导审批、打印请假条、学生查看历史请假记录、辅导员可按不同筛选条件查看请假记录。
1.3目标请假管理系统的基本目标是方便学生请假和校方的批假工作,系统实现后,应做该到:方便学生:学生可以通过登录本系统填写请假原因向校方申请请假,不用通过手写请假条后找到导员请假。
方便校方:学生在系统中申请请假后可以进入本系统进行审核,方便了校方很多请假方面的工作。
考勤管理系统源代码.docx

#include<stdio.h>#include<string.h>#include<stdlib.h>#include<conio.h>#include<malloc.h>#include<time.h>/* 所使用的头文件*/typedef struct/* 时间结构体定义*/{int hour;int minute;}TIME;typedef struct worker/* 职工结构体定义*/ {char id[10];char name[10];TIME time[20];struct worker *next;}worker;int menu_select(); void welcome();/* 主菜单 *//* 欢迎界面*/void createInfo(); void createRec(); void listRec(); void searchRec(); void saveRec();/* 新建职工信息*//* 录入考勤信息*//* 浏览当天考勤信息/*/ 查询考勤信息*//* 保存所有信息*/*/void deleteRec(); void modifyRec(); void loadRec();/* 删除考勤信息*//* 修改考勤信息*//* 加载文件信息*/void resetPassword(); int fun();/* 重设密码 *//* 判断输入选择是否正确*/worker *head=NULL;/* 链表头指针head*/ writeinfo_flag=0;/* 信息保存标记*/char password[16]="888888";/* 初始密码*/struct tm *timeinfo;int main()/* 主函数*/{char s[16];welcome();/* 欢迎界面*/loadRec();/* 加载文件信息*/printf("\n 提示 :\n\n printf("\t\t\t\n\n\n\n\n scanf("%s",s);初始密码为 :888888\n");请输入密码 ,进去系统(密码不超过/* 进入系统密码管理15 个字符 ):");*/while(strcmp(password,s)!=0){printf("\n 密码错误 ,请重新输入 :");scanf("%s",s);}system("cls");for(;;)/* 菜单循环 */{switch(menu_select()){case 0:system("cls");createInfo();break;case 1:system("cls");createRec();break;case 2:system("cls");listRec();break;case 3:system("cls");searchRec();break;case 4:system("cls");deleteRec();break;case 5:system("cls");modifyRec();break;case 6:system("cls");saveRec();break;case 7:system("cls");resetPassword();break;case 8:system("cls");if(writeinfo_flag==1)saveRec();return 0;default:{printf("\n选择错误,请按回车键返回后,重新输入(0~8)!");getchar();getchar();system("cls");break;}}}return 0;}/* 选择菜单 */int menu_select(){worker *p=head;int c,k;time_t nowtime;time( &nowtime );timeinfo = localtime( &nowtime );printf("\t\t**************选择菜单 **************\t");/* 在菜单中显示当前时间*/if(timeinfo->tm_wday==0){printf(" printf("时间 :星期天 ");%d:%d",timeinfo->tm_hour,timeinfo->tm_min);}elseprintf("时间期%d %d:%d",timeinfo->tm_wday,timeinfo->tm_hour,timeinfo->tm_min);printf("\n---------------------------------------------------------------------------");printf("\t\t\t0. 新建职工信息\n");:星printf("\t\t1. 录入考勤信息\n");printf("\t\t2. 浏览考勤信息\n");printf("\t\t3. 查询考勤信息\n");printf("\t\t4. 删除考勤信息\n");printf("\t\t5. 修改考勤信息\n");printf("\t\t6. 保存所有信息\n");printf("\t\t7. 重设密码 \n");printf("\t\t8. 退出 (退出后信息会自动保存在磁盘中)\n\t\t( 任何情况下按Ctrl+C序)\n");printf("\n---------------------------------------------------------------------------");printf("\n\n请输入您的选择(0~8):");scanf("%d",&c);if(timeinfo->tm_wday==0&&p!=NULL)/* 每周周日所有考勤信息初始化{*/退出程for(k=0;k<20;k++){p->time[k].hour=88;p->time[k].minute=88;}}return c;}void loadRec()/* 从磁盘导入信息*/ {worker *rear,*p,*pre;FILE *fp,*key;int i,pos=0;key=fopen("key.txt","r");if(key!=NULL){fscanf(key,"%s",password);fclose(key);}fp=fopen("workerRec.txt","r");if(fp!=NULL){fseek(fp, 0, SEEK_END);/* 指针移到文件末尾*/pos= ftell(fp);}if(fp==NULL||0 == pos)/* 打开职工信息文件和密码文件*/{printf("\n\n\n\n\n\n\t\t提示:\n\n\t\t数据库中没有职工信息,文本为空或文件不存在!\n");printf("\n\t\t请按回车键进入主菜单新建职工信息getchar();system("cls");return;^_^\n");/* 清屏 */}fseek(fp, 0, SEEK_SET);/* 指针移到文件开头*/ while(!feof(fp))/*fp不指向文件末尾*/{p=(worker*)malloc(sizeof(worker));/* 开辟一个新单元*/fscanf(fp,"%s%s",p->id,p->name);for(i=0;i<20;i++)fscanf(fp,"%d%d",&p->time[i].hour,&p->time[i].minute);if(head==NULL){head=p;pre=p;rear=p;}else{rear->next=p;pre=rear;rear=p;}}pre->next=NULL;fclose(fp);/* 关闭文件 */return;}void createInfo()/* 新建职工信息 */{worker *p,*rear;int i,k,n;char s[10];if(head!=NULL){printf("\n\n\n\n\n\n\n\t\t\t 职工信息数据库已存在 \n\n\t\t\t 新建职工信息将续接在信息库的后面 \n\n\n\t\t\t 按回车键继续 ");getchar();getchar();rear=head;while(rear->next!=NULL)rear=rear->next;system("cls");}printf("\n\n 请输入希望建立职工信息条数:");scanf("%s",s);if(fun(s)==0)return;elsen=atoi(s);printf("\n 请输入职工的工号(至多 6 个字符 )和姓名 (至多 5 个字符 ):\n");for(i=0;i<n;i++){p=(worker*)malloc(sizeof(worker));scanf("%s%s",p->id,p->name);if(strlen(p->id)>6||strlen(p->name)>5){printf("\n职工工号或姓名输入长度不合法!\n\n请按回车键返回主菜单\n",n);rear->next=NULL;free(p);getchar();getchar();system("cls");return;}for(k=0;k<20;k++)/* 时间初始化为88:88*/{p->time[k].hour=88;p->time[k].minute=88;}if(head==NULL){head=p;rear=p;}else{rear->next=p;rear=p;}}p->next=NULL;printf("\n%d条信息建立完毕!\n\n 请按回车键返回主菜单\n",n);getchar();getchar();system("cls");writeinfo_flag=1;return;}void createRec()/* 录入考勤信息*/{time_t nowtime;worker *p;char s[10],k[10],*g=k,ss[10];int c,m,week;time( &nowtime );timeinfo = localtime( &nowtime );week=timeinfo->tm_wday;if(head==NULL){printf("\n\n\n\n\t\t\t 数据库中没有职工信息 \n\n\t\t\t 无法使用该功能 \n\n\t\t\t 请按回车键返回主菜单新建职工信息 !");getchar();getchar();system("cls");return;}if(timeinfo->tm_wday==6||timeinfo->tm_wday==0){printf("\n\n\n\n\t\t\t 今天不是工作日\n\n\t\t\t无法录入考勤信息\n\n\t\t\t请按回车键返回主菜单!");getchar();getchar();system("cls");return;}printf("\n\n\n\t\t\t请选择录入考勤种类:\n\n\t\t\t1.上午上班(8:00)\n\n\t\t\t2.上午下班(11:30)\n\n\t\t\t3. 下午上班 (14:00)\n\n\t\t\t4. 下午下班 (17:30)\n\n");printf("\n\t\t您的选择(以回车键结束):");scanf("%s",k);if(fun(k)==0)return;elsem=atoi(k);if(m<1||m>4){printf("\n\n\t\t输入错误!\n\n\t\t请按回车键返回主菜单重新开始!\n");getchar();getchar();system("cls");return ;}system("cls");if(m==1&&(timeinfo->tm_hour>11||(timeinfo->tm_hour==11&&timeinfo->tm_min>30))){printf("\n\n\n\t\t\t现在已经过了上午下班的时间(11:30)\n\n\t\t\t无法录入上班的时间(8:00) 信息 \n\n\t\t\t 请按回车键返回主菜单");getchar();getchar();system("cls");return;}if(m==3&&(timeinfo->tm_hour>17||(timeinfo->tm_hour==17&&timeinfo->tm_min>30))){printf("\n\n\n\t\t\t现在已经过了下午下班的时间(17:30)\n\n\t\t\t无法录入上班的时间(14:00) 信息 \n\n\t\t\t 请按回车键返回主菜单");getchar();getchar();system("cls");return;}/* 可通过工号或姓名;录入*/printf("\n\n\n\t\t\t请选择输入工号还是姓名:\n\n\t\t\t1.选择输入工号\n\n\t\t\t2. 选择输入姓名 \n\n");printf("\n\t\t您的选择(以回车键结束):");scanf("%s",ss);if(fun(ss)==0)return;elsec=atoi(ss);if(c<1||c>2){printf("\n\n\t\t输入错误!\n\n\t\t请按回车键返回主菜单重新开始!\n");getchar();getchar();system("cls");return ;}system("cls");switch(c){case 1:{printf("\n\n\n\n\n\n\t\t\t 请输入工号 (以回车键结束): ");scanf("%s",s);for(p=head;strcmp(p->id,s)!=0&&p->next!=NULL;p=p->next);if(strcmp(p->id,s)!=0&&p->next==NULL){printf("\n\n\n\n\t\t\t 不存在该工号\n");printf("\n\n\n\n\t\t\t 请按回车键返回主菜单重新开始!\n");getchar();getchar();system("cls");return;}if((m==2||m==4)&&p->time[4*week+m-6].hour==88){printf("\n\n\n\n\t\t\t 该职工无上班记录,无法记录下班信息,请先录入上班信息\n");printf("\n\n\n\n\t\t\t请按回车键返回主菜单重新开始!\n");getchar();getchar();system("cls");return;}p->time[4*week+m-5].hour=(timeinfo->tm_hour);/* 存储时间*/p->time[4*week+m-5].minute=(timeinfo->tm_min);break;}case 2:{printf("\n\n\n\n\n\n\t\t\t 请输入姓名 (以回车键结束): ");scanf("%s",s);for(p=head;strcmp(p->name,s)!=0&&p->next!=NULL;p=p->next);if(strcmp(p->name,s)!=0&&p->next==NULL){printf("\n\n\n\n\t\t\t 不存在该姓名\n");printf("\n\n\n\n\t\t\t 请按回车键返回主菜单重新开始!\n");getchar();getchar();system("cls");return;}if((m==2||m==4)&&p->time[4*week+m-6].hour==88){printf("\n\n\n\n\t\t\t 该职工无上班记录,无法记录下班信息,请先录入上班信息\n");printf("\n\n\n\n\t\t\t 请按回车键返回主菜单重新开始!\n");getchar();getchar();system("cls");return;}time( &nowtime );timeinfo = localtime( &nowtime );week=timeinfo->tm_wday;p->time[4*week+m-5].hour=(timeinfo->tm_hour);p->time[4*week+m-5].minute=(timeinfo->tm_min);break;}}system("cls");printf("\n\n\n\n\n\n\t\t\t 考勤成功 ! 请按回车键返回主菜单 \n");getchar();getchar();writeinfo_flag=1;system("cls");return;}void listRec()/* 浏览当天的考勤信息*/{worker *p=head;int m,week;week=timeinfo->tm_wday;if(head==NULL){printf("\n\n\n\n\t\t\t 数据库中没有职工信息 \n\n\t\t\t 无法使用该功能 \n\n\t\t\t 请按回车键返回主菜单新建职工信息 !");getchar();getchar();system("cls");return;}if(timeinfo->tm_wday==6||timeinfo->tm_wday==0){printf("\n\n\n\n\t\t\t今天不是工作日,无考勤记录\n\n\t\t\t无法浏览当天的考勤信息\n\n\t\t\t请按回车键返回主菜单!");getchar();getchar();system("cls");return;}printf("\n 职工今天整体出勤情况如下printf(" 职工号姓名上午上班while(p!=NULL){:\n\n");上午下班下午上班下午下班\n");m=0;printf("\n%s%s",p->id,p->name);if((p->time[(week-1)*4].hour>8&&p->time[(week-1)*4].hour<25)||(p->time[(week-1)*4].hour==8&&p->time[(week-1)*4].minute>0))printf("迟到 ");/* 上班时间之后来的都算迟到 */elseif(p->time[(week-1)*4].hour==88&&(timeinfo->tm_hour>11||(timeinfo->tm_hour==11&&timeinfo->tm_min>30)))printf("旷工 ");/* 过了下班时间就是旷工 */elseif(p->time[(week-1)*4].hour==88&&(timeinfo->tm_hour<11||(timeinfo->tm_hour==8&&timeinf o->tm_min==30)))printf("无记录 ");/* 下班之前还没有来显示无记录 */else if(p->time[(week-1)*4].hour!=88){printf("");m++;}if((p->time[(week-1)*4+1].hour<11&&p->time[(week-1)*4].hour!=0)||(p->time[(week-1)*4 +1].hour==11&&p->time[(week-1)*4+1].minute<30))printf(" else {printf("早退 ");");m++;}if((p->time[(week-1)*4+2].hour>14&&p->time[(week-1)*4+2].hour<25)||(p->time[(week-1) *4+2].hour==14&&p->time[(week-1)*4+2].minute>0))printf("迟到 ");elseif(p->time[(week-1)*4+2].hour==88&&(timeinfo->tm_hour>17||(timeinfo->tm_hour==17&&tim einfo->tm_min>30)))printf("旷工 ");elseif(p->time[(week-1)*4+2].hour==88&&(timeinfo->tm_hour<17||(timeinfo->tm_hour==17&&tim einfo->tm_min==30)))printf("无记录 ");else if(p->time[(week-1)*4+2].hour!=88){printf("");m++;}if((p->time[(week-1)*4+3].hour<17&&p->time[(week-1)*4+2].hour!=0)||(p->time[(week-1) *4+3].hour==17&&p->time[(week-1)*4+3].minute<30))printf(" else {printf("早退 ");");m++;}if(m==4&&(timeinfo->tm_hour>17||(timeinfo->tm_hour==17&&timeinfo->tm_min>30))) printf("全勤 !");p=p->next;}printf("\n\n 显示完毕 ,按回车键返回主菜单!");getchar();getchar();system("cls");return;}void searchRec()/* 根据工号或姓名查找考勤信息 */{worker *p=head;int c,i;char s[10],k[10];if(head==NULL){printf("\n\n\n\n\t\t\t 数据库中没有职工信息 \n\n\t\t\t 无法使用该功能 \n\n\t\t\t 请按回车键返回主菜单新建职工信息 !");getchar();getchar();system("cls");return;}printf("\n\n\n\t\t\t 请选择输入工号还是姓名: \n\n\t\t\t1. 选择输入工号 \n\n\t\t\t2. 选择输入姓名\n\n");printf("\n\t\t您的选择(以回车键结束):");scanf("%s",k);if(fun(k)==0)return;elsec=atoi(k);if(c<1||c>2){printf("\n\n\t\t输入错误!\n\n\t\t请按回车键返回主菜单重新开始!\n");getchar();getchar();system("cls");return ;}system("cls");switch(c){case 1:{printf("\n\n\n\n\n\n\t\t\t 请输入工号 (以回车键结束): ");scanf("%s",s);for(p=head;strcmp(p->id,s)!=0&&p->next!=NULL;p=p->next);if(strcmp(p->id,s)!=0&&p->next==NULL){printf("\n\n\n\n\t\t\t 不存在该工号\n");printf("\n\n\n\n\t\t\t 请按回车键返回主菜单重新开始!\n");getchar();getchar();system("cls");return;}break;}case 2:{printf("\n\n\n\n\n\n\t\t\t 请输入姓名 (以回车键结束): ");scanf("%s",s);for(p=head;strcmp(p->name,s)!=0&&p->next!=NULL;p=p->next);if(strcmp(p->name,s)!=0&&p->next==NULL){printf("\n\n\n\n\t\t\t 不存在该姓名\n");printf("\n\n\n\n\t\t\t 请按回车键返回主菜单重新开始!\n");getchar();getchar();system("cls");return;}break;}}system("cls");printf("职工号姓名上午上班上午下班下午上班下午下班\n\n");printf(" %s%s",p->id,p->name);printf("周一 ");for(i=0;i<4;i++){if(p->time[i].hour==88)printf("--:--");if(p->time[i].hour!=88)printf("%2d:%2d",p->time[i].hour,p->time[i].minute);if(i==4)printf("\n\n");}printf("\n周二 ");for(i=4;i<8;i++){if(p->time[i].hour==88)printf("--:--");if(p->time[i].hour!=88)printf("%2d:%2d",p->time[i].hour,p->time[i].minute);if(i==8)printf("\n\n");}printf("\n周三 ");for(i=8;i<12;i++){if(p->time[i].hour==88)printf("--:--");if(p->time[i].hour!=88)printf("%2d:%2d",p->time[i].hour,p->time[i].minute);if(i==12)printf("\n\n");}printf("\n周四 ");for(i=12;i<16;i++){if(p->time[i].hour==88)printf("--:--");if(p->time[i].hour!=88)printf("%2d:%2d",p->time[i].hour,p->time[i].minute);if(i==16)printf("\n\n");}printf("\n周五 ");for(i=16;i<20;i++){if(p->time[i].hour==88)printf("--:--");if(p->time[i].hour!=88)printf("%2d:%2d",p->time[i].hour,p->time[i].minute);if(i==20)printf("\n\n");}printf("\n\n\n\n\n\n\t\t\t 显示完毕 ,按回车键返回主菜单!");getchar();getchar();system("cls");return;}void saveRec()/* 储存所有信息*/{worker *p=head;FILE *fp,*key;int i;if(writeinfo_flag==0){printf("\n\n\n\n\t\t\t信息无改动,无需保存!\n\n\t\t\t请按回车键返回主菜单\n");getchar();getchar();system("cls");return;}if(writeinfo_flag==1){if((fp=fopen("workerRec.txt","w"))==NULL||(key=fopen("key.txt","w"))==NULL){printf("\n\t\t\t提示:\n\n\t\t\t存储信息失败!\n");printf("\n\t\t\t请按回车键进入主菜单重新开始\n");getchar();getchar();system("cls");return;}while(p!=NULL){fprintf(fp,"%s\n%s\n",p->id,p->name);for(i=0;i<20;i++)fprintf(fp,"%d\n%d\n",p->time[i].hour,p->time[i].minute);p=p->next;}fprintf(key,"%s",password);fclose(fp),fclose(key);writeinfo_flag=0; printf("\n\n\n\n\n\t\t\t/* 消除改动标志*/保存完毕 ,按回车键继续!");getchar();getchar();system("cls");return;}}void deleteRec()//删除考勤信息*/{worker *p,*pre=head;char s[16],k[10];int c;if(head==NULL){printf("\n\n\n\n\t\t\t数据库中没有职工信息\n\n\t\t\t无法使用该功能\n\n\t\t\t请按回车键返回主菜单新建职工信息!");getchar();getchar();system("cls");return;}printf("\n\n\n\t\t\t提示:\n\n\t\t\t初始密码为:888888\n");printf("\n\n\n\t\t\t请输入密码(密码不超过15 个字符 ):");scanf("%s",s);while(strcmp(password,s)!=0){printf("\n\n\t\t\t密码错误!\n\n");printf("\t\t\t按回车键返回主菜单!");getchar();getchar();system("cls");return;}printf("\n\n\n\t\t\t密码输入成功!\n\n\t\t\t 请按回车键继续getchar();getchar();system("cls");printf("\n\n\n\t\t\t 请选择输入工号还是姓名:\n\n\t\t\t1.");选择输入工号\n\n\t\t\t2. 选择输入姓名 \n\n");printf("\n\t\t您的选择(以回车键结束):");scanf("%s",k);if(fun(k)==0)return;elsec=atoi(k);if(c<1||c>2){printf("\n\n\t\t输入错误!\n\n\t\t请按回车键返回主菜单重新开始!\n");getchar();getchar();system("cls");return ;}system("cls");switch(c){case 1:{printf("\n\n\n\n\n\n\t\t\t 请输入工号:");scanf("%s",s);for(p=head;strcmp(p->id,s)!=0&&p->next!=NULL;p=p->next);if(strcmp(p->id,s)!=0&&p->next==NULL){printf("\n\n\n\n\t\t\t 不存在该工号\n");printf("\n\n\n\n\t\t\t 请按回车键返回主菜单重新开始!\n");getchar();getchar();system("cls");return;}break;}case 2:{printf("\n\n\n\n\n\n\t\t\t 请输入姓名:");scanf("%s",s);for(p=head;strcmp(p->name,s)!=0&&p->next!=NULL;p=p->next);if(strcmp(p->name,s)!=0&&p->next==NULL){printf("\n\n\n\n\t\t\t 不存在该姓名\n");printf("\n\n\n\n\t\t\t 请按回车键返回主菜单重新开始!\n");getchar();getchar();system("cls");return;}break;}}system("cls");if(p==head)head=p->next;else{for(;pre->next!=p;pre=pre->next);pre->next=p->next;}free(p);printf("\n\n\n\n\n\n\t\t\t 删除成功,请按回车键返回主菜单 !");getchar();getchar();system("cls");writeinfo_flag=1;return;}void modifyRec()/* 修改考勤信息*/{worker *p,*pre=head;char s[16],k[10];int c;if(head==NULL){printf("\n\n\n\n\t\t\t 数据库中没有职工信息 \n\n\t\t\t 无法使用该功能 \n\n\t\t\t 请按回车键返回主菜单新建职工信息 !");getchar();getchar();system("cls");return;}printf("\n\n\n\t\t\t提示:\n\n\t\t\t初始密码为:888888\n");printf("\n\n\n\t\t\t请输入密码(密码不超过15 个字符 ):");scanf("%s",s);if(strcmp(password,s)!=0){printf("n\n\n\t\t\t密码错误!\n\n");printf("\t\t\t按回车键返回主菜单!");getchar();getchar();system("cls");return;}printf("\n\n\n\t\t\t密码输入成功!\n\n\t\t\t 请按回车键继续");getchar();getchar();system("cls");printf("\n\n\n\t\t\t 请选择通过工号修改还是姓名修改: \n\n\t\t\t1. 选择输入工号 \n\n\t\t\t2. 选择输入姓名 \n\n");printf("\n\n\n\t\t您的选择(以回车键结束):");scanf("%s",k);if(fun(k)==0)return;elsec=atoi(k);if(c<1||c>2){printf("\n\n\t\t输入错误!\n\n\t\t请按回车键返回主菜单重新开始!\n");getchar();getchar();system("cls");return ;}system("cls");switch(c){case 1:{printf("\n\n\n\n\n\n\t\t\t 请输入工号:");scanf("%s",s);for(p=head;strcmp(p->id,s)!=0&&p->next!=NULL;p=p->next);if(strcmp(p->id,s)!=0&&p->next==NULL){printf("\n\n\n\n\t\t\t 不存在该工号\n");printf("\n\n\n\n\t\t\t 请按回车键返回主菜单重新开始!\n");getchar();getchar();system("cls");return;}break;}case 2:{printf("\n\n\n\n\n\n\t\t\t 请输入姓名:");scanf("%s",s);for(p=head;strcmp(p->name,s)!=0&&p->next!=NULL;p=p->next);if(strcmp(p->name,s)!=0&&p->next==NULL){printf("\n\n\n\n\t\t\t 不存在该姓名\n");printf("\n\n\n\n\t\t\t 请按回车键返回主菜单重新开始!\n");getchar();getchar();system("cls");return;}break;}}system("cls");printf("\n\n\n\t\t\t 请选择要修改的内容:\n\n\t\t\t1. 工号 \n\n\t\t\t2. 姓名 \n\n\t\t\t3. 上午上班时间\n\n\t\t\t4. 上午下班时间 \n\n\t\t\t5. 下午上班时间 \n\n\t\t\t6. 下午下班时间 ");printf("\n\n\n\t\t您的选择(以回车键结束):");scanf("%s",&k);if(fun(k)==0)return;elsec=atoi(k);if(c<1||c>6){printf("\n\n\t\t输入错误!\n\n\t\t请按回车键返回主菜单重新开始!\n");getchar();getchar();system("cls");return ;}system("cls");switch(c){case 1:printf("\n\n\n\t\t请输入要修改的工号(至多 10 个字符 ):");scanf("%s",p->id);break;case 2:printf("\n\n\n\t\t请输入要修改的姓名(至多 10 个字符 ):");scanf("%s",p->name);break;case 3:printf("\n\n\n\t\t请输入要修改星期几的考勤(请输入 1~5):");scanf("%d",&c);printf("\n\n\n\t请输入要修改的时间和分钟(如 :10 点 5 分就输入10:05):");scanf("%d:%d",&p->time[(c-1)*4].hour,&p->time[(c-1)*4].minute);break;case 4:printf("\n\n\n\t\t 请输入要修改星期几的考勤 (请输入 1~5):");scanf("%d",&c);printf("\n\n\n\t请输入要修改的时间和分钟(如 :10 点 5 分就输入10:05):");scanf("%d:%d",&p->time[(c-1)*4+1].hour,&p->time[(c-1)*4+1].minute);break;case 5:printf("\n\n\n\t\t请输入要修改星期几的考勤(请输入1~5):");scanf("%d",&c);printf("\n\n\n\t请输入要修改的时间和分钟(如 :10 点 5 分就输入10:05):");scanf("%d:%d",&p->time[(c-1)*4+2].hour,&p->time[(c-1)*4+2].minute);break;case 6:printf("\n\n\n\t\t 请输入要修改星期几的考勤 (请输入 1~5):");scanf("%d",&c);printf("\n\n\n\t 请输入要修改的时间和分钟 (如 :10 点 5 分就输入 10:05):");scanf("%d:%d",&p->time[(c-1)*4+3].hour,&p->time[(c-1)*4+3].minute);break;}printf("\n\n\n\t\t\t修改成功,请按回车键返回主菜单!");getchar();getchar();system("cls");writeinfo_flag=1;return;}void resetPassword()/* 重设密码*/{char s[16];printf("\n\n\n\t\t提示:\n\n\t\t初始密码为:888888\n");printf("\n\t\t请输入密码(密码不超过15 个字符 ):");scanf("%s",s);if(strcmp(password,s)!=0){printf("\n\n\n\t\t密码错误!\n\n");printf("\n\n\n\t\t按回车键返回主菜单!");getchar();getchar();system("cls");return;}printf("\n\n\t\t密码输入成功!\n\n\t\t请按回车键继续");getchar();getchar();system("cls");printf("\n\n\n\t请输入要修改的密码(密码不超过15 个字符 ):");scanf("%s",s);strcpy(password,s);printf("\n\n\t修改成功,请按回车键返回主菜单!");getchar();getchar();system("cls");writeinfo_flag=1;return;}void welcome()//欢迎界面{printf("\n\n\n\n\n\n\n\t\t\t欢迎使用职工考勤管理系统");printf("\n\n\n\t\t\t 请按任意键进入系统,开始您的操作 ");printf("\n\n\n\n\n\n\n\n\n\t\t\t\t\t\t 作者 :XXX");getch();system("cls");return;}int fun(char *g){do{if(*g<'0'||*g>'9'){printf("\n\n\t\t输入错误!\n\n\t\t请按回车键返回主菜单重新开始!\n");getchar();getchar();system("cls");return 0 ;}g++;}while(*g!=0);return 1;}。
python请假代码

Python请假代码在日常工作中,我们有时会遇到需要请假的情况。
为了方便管理和记录,请假信息,我们可以使用Python来编写一个请假代码。
这个代码将帮助我们实现请假信息的录入、查询和审批功能,提高请假流程的效率和可追溯性。
1. 请假信息的录入我们需要设计一个数据结构来存储请假信息。
在这个例子中,我们选择使用字典来表示每一条请假记录。
字典中包含以下字段:•姓名:请假人员的姓名•开始日期:请假开始日期•结束日期:请假结束日期•请假事由:请假原因•审批状态:请假审批状态,初始状态为待审批leaves = []这里我们定义了一个空列表leaves来存储所有的请假记录。
接下来,我们可以编写一个函数来录入新的请假信息。
def add_leave():name = input("请输入您的姓名:")start_date = input("请输入开始日期(格式:YYYY-MM-DD):")end_date = input("请输入结束日期(格式:YYYY-MM-DD):")reason = input("请输入请假事由:")leave = {"姓名": name,"开始日期": start_date,"结束日期": end_date,"请假事由": reason,"审批状态": "待审批"}leaves.append(leave)print("请假信息录入成功!")在这个函数中,我们通过input函数获取用户输入的请假信息,并将其存储在一个字典中。
然后将该字典添加到leaves列表中,完成请假信息的录入。
2. 请假信息的查询为了方便查询已经录入的请假信息,我们可以编写一个函数来实现查询功能。
def query_leave():name = input("请输入您的姓名:")for leave in leaves:if leave["姓名"] == name:print(f"开始日期:{leave['开始日期']}")print(f"结束日期:{leave['结束日期']}")print(f"请假事由:{leave['请假事由']}")print(f"审批状态:{leave['审批状态']}")print("---------------------")print("查询完成!")这个函数会根据用户输入的姓名,在leaves列表中查找匹配的请假记录,并打印出相关信息。
请假管理系统源代码

#include <stdio.h>#include <stdlib.h>#include <string.h>#include <windows.h>#define select inttypedef struct //账户信息{char name[20]; //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,)==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,)==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;}elsereturn 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("请输入密码:");//直接输入密码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;}elsereturn 0;}}if(login(nlog,plog)==1){success3: system("color F0");printf("\n\n");printf(" \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\登陆成功///////////////////////\n");Sleep(1000);}//Approvalsystem: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);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("\n\n\n");printf(" \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\操作成功///////////////////////\n");system("pause");printf("\n\n\n\n\n");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);strcpy(b.Num,a.Num);fwrite(&b,sizeof(TEACHER),1,F);fclose(F);fflush(F);Sleep(1000);printf("\n\n\n");printf(" \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\操作成功///////////////////////\n");system("pause");printf("\n\n\n\n\n");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; 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 success1;}elsereturn 0;}}if(login(nlog,plog)==1){success1: system("color F0");printf("\n\n");printf(" \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\登陆成功///////////////////////\n");Sleep(1000);system("cls");}system("cls");printf("\n\n");printf("========================================================================\ n");printf("||\n");printf("|---------------------------学生请假系统(老师端)-----------------------|\n");printf("||\n");printf("========================================================================\ n");Sleep(1000);printf("\n\n");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("|班级:%s\n",b.Class);printf("|姓名:%s\n",b.n1);printf("|请假时间:%s\n",b.time);printf("|请假原因:%s\n",b.reason);printf("|申请状态:%s\n",b.instructor);printf("---------------------------------------------------------------\n");printf("\n\n");}system("pause");}}if(c==-1)//账户不存在{system("color F0");system("cls");char n[20];char p[20];strcpy(n,nlog);//复制帐号if(strlen(n)==9)//完成注册,存入data.dat文档{User u;printf("************************************************************************\ n");printf("* 同学!第一次登录请完成注册*\n");printf("************************************************************************\ n");printf("\n\n");printf(" ----------------------------------------------------------------------\n");printf(" 请输入新密码\n");printf(" ----------------------------------------------------------------------\n");scanf("%s",p);strcpy(,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(" \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\注册成功///////////////////////\n\n\n");system("pause");system("cls");}if(strlen(n)==5){User u;printf("************************************************************************\ n");printf("* 老师!第一次登录请完成注册*\n");printf("************************************************************************\ n");printf("\n\n");printf(" ----------------------------------------------------------------------\n");printf(" 请输入新密码\n");printf(" ----------------------------------------------------------------------\n");scanf("%s",p);strcpy(,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(" \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\注册成功///////////////////////\n\n\n");system("pause");system("cls");}if(strlen(n)==4){User u;printf("************************************************************************\ n");printf("* 辅导员!第一次登录请完成注册*\n");printf("************************************************************************\ n");printf("\n\n");printf(" ----------------------------------------------------------------------\n");printf(" 请输入新密码\n");printf(" ----------------------------------------------------------------------\n");scanf("%s",p);strcpy(,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(" \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\注册成功///////////////////////\n\n\n");system("pause");system("cls");}goto Login;}return 0;}。
学生请假管理系统需求分析设计文档(附待部分核心代码ssh框架实现)

2014 - 2015学年第 2 学期1.总体目标41.1背景41.1.1引言41.2要求41.3目标42.需求分析52.1功能需求描述52.1.1基本功能:52.1.2业务功能:52.2用户需求描述52.2.1学生用户需求描述52.2.2任课教师用户需求描述53.数据库设计54. 功能模块设计74.1系统流程85. 主要功能的具体实现115.1请假功能的实现115.2审核功能的实现145.3权限修改功能185.4导入功能206.系统的运行环境需求216.1硬件环境:216.2.软件环境:217.测试结果与分析217.1主要测试内容217.2软件测试的目的227.3软件测试的任务227.4.1功能测试227.4.2负载测试227.4.3文档测试227.5 测试环境237.6 系统具体测试238.课程设计总结241.总体目标1.1背景1.1.1引言目前高校大部分都还是采用学生写好请假条,然后到辅导员那里申请请假的方式进行请假,这种方式不仅麻烦而且比较费时。
在信息化的今天,能有效地借助网络才能提高办事效率。
因此,请假管理系统能够解决这种请假方式所带来的很多麻烦。
1.2要求请假管理系统要达到以下功能:增删查改:学生信息管理(导入/查/改/删)、老师(含辅导员和系领导)信息管理业务功能:学生填写请假事由、提交给辅导员审批、按请假制度超过3天的提交给系领导审批、打印请假条、学生查看历史请假记录、辅导员可按不同筛选条件查看请假记录。
1.3目标请假管理系统的基本目标是方便学生请假和校方的批假工作,系统实现后,应做该到:方便学生:学生可以通过登录本系统填写请假原因向校方申请请假,不用通过手写请假条后找到导员请假。
方便校方:学生在系统中申请请假后可以进入本系统进行审核,方便了校方很多请假方面的工作。
2.需求分析2.1功能需求描述2.1.1基本功能:学生信息管理(导入/查/改/删)、老师(含辅导员和系领导)信息管理2.1.2业务功能:学生填写请假事由、提交给辅导员审批、按请假制度超过3天的提交给系领导审批、打印请假条、学生查看历史请假记录、辅导员可按不同筛选条件查看请假记录。
【优质文档】用qt做员工请假系统-word范文 (12页)

本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!== 本文为word格式,下载后可方便编辑和修改! ==用qt做员工请假系统篇一:企业请假系统课程设计报告书(201X届)企业请假系统学生姓名陈亮亮杨骆一尹渖杰学号0403130103/28/31系别信息与电子系专业班级计算机科学与技术1301班指导教师许志英完成日期201X年6月17日目录(201X届) ................................................................ . (1)第一章设计内容与要求 .................................................................. .. (1)第二章数据库运行开发环境 .................................................................. (2)2.1背景 .................................................................. .. (2)件 .................................................................. (2)第三章需求分析 .................................................................. .. (3)3.1 系统目标与要求 .................................................................. .. (3)3.2系统功能模块 .................................................................. . (3)3.21员工档案管理建立 .................................................................. .. (3)3.22员工职务调动管理 .................................................................. .. (3)3.23请销假管理查询 .................................................................. (3)3.24部门管理功能 .................................................................. . (3)3.25考勤管理的实现 .................................................................. (3)3.26假期管理设置 .................................................................. . (4)3.3数据字典 .................................................................. (4)图 .................................................................. (7)第四章概念设计 .................................................................. .. (8)4.1局部E-R图 .................................................................. . (8)4.11员工信息 .................................................................. (8)4.12部门信息 .................................................................. (9)4.13考勤信息 .................................................................. (9)4.14请假信息 .................................................................. (8)4.15假期信息 .................................................................. (8)4.2全局E-R图 .................................................................. . (9)第五章:逻辑分析 .................................................................. . (10)5.1 把E-R图转换成关系模式 .................................................................. .. (10)构 .................................................................. .. (10)第六章详细设计与实现 .................................................................. (12)6.1登录: ................................................................ . (12)6.2 数据的载入 .................................................................. .. (16)6.3 查询数据 .................................................................. (18)6.4 更改数据 .................................................................. (19)6.5 删除数据 .................................................................. (19)6.6 创建必要的视图 .................................................................. (20)第七章总结 .................................................................. .. (29)参考文献(资料) ................................................................ (30)分工情况 .................................................................. ....................................................................30第一章设计内容与要求当今社会正处于信息时代,信息技术已渗透到社会生活的各个领域,特别是企业的管理领域,用计算机来进行员工请假管理也已成为现代化企业运作必不可少的一部分。
学生请假管理系统需求分析设计文档(附待部分核心代码-ssh框架实现)精编版

2014 - 2015学年第 2 学期1.总体目标 (1)1.1背景 (1)1.1.1引言 (1)1.2要求 (1)1.3目标 (1)2.需求分析 (2)2.1功能需求描述 (2)2.1.1基本功能: (2)2.1.2业务功能: (2)2.2用户需求描述 (2)2.2.1学生用户需求描述 (2)2.2.2任课教师用户需求描述 (2)3.数据库设计 (2)4. 功能模块设计 (4)4.1系统流程 (5)5. 主要功能的具体实现 (8)5.1请假功能的实现 (8)5.2审核功能的实现 (11)5.3权限修改功能 (15)5.4导入功能 (17)6.系统的运行环境需求 (18)6.1硬件环境: (18)6.2.软件环境: (18)7.测试结果与分析 (18)7.1主要测试内容 (18)7.2软件测试的目的 (19)7.3软件测试的任务 (19)7.4.1功能测试 (19)7.4.2负载测试 (19)7.4.3文档测试 (19)7.5 测试环境 (20)7.6 系统具体测试 (20)8.课程设计总结 (21)1.总体目标1.1背景1.1.1引言目前高校大部分都还是采用学生写好请假条,然后到辅导员那里申请请假的方式进行请假,这种方式不仅麻烦而且比较费时。
在信息化的今天,能有效地借助网络才能提高办事效率。
因此,请假管理系统能够解决这种请假方式所带来的很多麻烦。
1.2要求请假管理系统要达到以下功能:增删查改:学生信息管理(导入/查/改/删)、老师(含辅导员和系领导)信息管理业务功能:学生填写请假事由、提交给辅导员审批、按请假制度超过3天的提交给系领导审批、打印请假条、学生查看历史请假记录、辅导员可按不同筛选条件查看请假记录。
1.3目标请假管理系统的基本目标是方便学生请假和校方的批假工作,系统实现后,应做该到:方便学生:学生可以通过登录本系统填写请假原因向校方申请请假,不用通过手写请假条后找到导员请假。
方便校方:学生在系统中申请请假后可以进入本系统进行审核,方便了校方很多请假方面的工作。
学生请假系统

学生请假系统一、开发环境a)MyEclipse tomcat6.0以上版本oracle二、数据字典a)b)c)d)e)三、功能说明a)前台:表单居中,样式统一,美观1.登录(区分管理员登录/学生登录)a)登录页面(login.jsp)要规整b)用户提交表单时要有非空校验2.数据操作界面(manage.jsp(管理员管理界面、stuRequest.jsp学生请求请假))a)根据不同的登录,显示不同的界面b)如果管理员登录成功,显示manage.jspc)如果学生登录,显示stuRequest.jsp3.数据显示界面(针对学生)stuReqeustInfo.jspb)功能说明:i.管理员登录1.当管理员登录成功后,进入manage.jsp并同时显示未审批的数据列表(分页)2.在manage.jsp中有多种查询方式:a)查询未审批通过的表单b)查询以往审批通过的单据(查询条件:按年级,按学号查询)c)当查询出已审批结束的数据列表,最后一列为删除,修改超链接d)当点击删除时,提示用户”您确定要删除吗?”当用户确定后,删除该条信息并及时刷新删除后列表信息e)修改:当用户点击修改超链接,提示:”您确定要修改吗?”当用户确定后,进入修改页面(leavUpdate.jsp)同时在表单中显示将要修改的数据信息ii.学生登录1.当登录后,进入学生系统页面(studentEdit.jsp)2.当学生点击填单超链接进入(请假单填单页面(addLeav.jsp)3.当学生提交单据时状态为未审批状态4.学生在studentEdit.jsp页面可以操作查询单据审批结果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <windows.h>#define select inttypedef struct //账户信息{char name[20]; //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,)==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,)==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;}elsereturn 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("请输入密码:");//直接输入密码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;}elsereturn 0;}}if(login(nlog,plog)==1){success3: system("color F0");printf("\n\n");printf(" \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\登陆成功///////////////////////\n");Sleep(1000);}//Approvalsystem: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);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("\n\n\n");printf(" \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\操作成功///////////////////////\n");system("pause");printf("\n\n\n\n\n");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);strcpy(b.Num,a.Num);fwrite(&b,sizeof(TEACHER),1,F);fclose(F);fflush(F);Sleep(1000);printf("\n\n\n");printf(" \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\操作成功///////////////////////\n");system("pause");printf("\n\n\n\n\n");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; 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 success1;}elsereturn 0;}}if(login(nlog,plog)==1){success1: system("color F0");printf("\n\n");printf(" \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\登陆成功///////////////////////\n");Sleep(1000);system("cls");}system("cls");printf("\n\n");printf("========================================================================\ n");printf("||\n");printf("|---------------------------学生请假系统(老师端)-----------------------|\n");printf("||\n");printf("========================================================================\ n");Sleep(1000);printf("\n\n");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("|班级:%s\n",b.Class);printf("|姓名:%s\n",b.n1);printf("|请假时间:%s\n",b.time);printf("|请假原因:%s\n",b.reason);printf("|申请状态:%s\n",b.instructor);printf("---------------------------------------------------------------\n");printf("\n\n");}system("pause");}}if(c==-1)//账户不存在{system("color F0");system("cls");char n[20];char p[20];strcpy(n,nlog);//复制帐号if(strlen(n)==9)//完成注册,存入data.dat文档{User u;printf("************************************************************************\ n");printf("* 同学!第一次登录请完成注册*\n");printf("************************************************************************\ n");printf("\n\n");printf(" ----------------------------------------------------------------------\n");printf(" 请输入新密码\n");printf(" ----------------------------------------------------------------------\n");scanf("%s",p);strcpy(,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(" \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\注册成功///////////////////////\n\n\n");system("pause");system("cls");}if(strlen(n)==5){User u;printf("************************************************************************\ n");printf("* 老师!第一次登录请完成注册*\n");printf("************************************************************************\ n");printf("\n\n");printf(" ----------------------------------------------------------------------\n");printf(" 请输入新密码\n");printf(" ----------------------------------------------------------------------\n");scanf("%s",p);strcpy(,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(" \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\注册成功///////////////////////\n\n\n");system("pause");system("cls");}if(strlen(n)==4){User u;printf("************************************************************************\ n");printf("* 辅导员!第一次登录请完成注册*\n");printf("************************************************************************\ n");printf("\n\n");printf(" ----------------------------------------------------------------------\n");printf(" 请输入新密码\n");printf(" ----------------------------------------------------------------------\n");scanf("%s",p);strcpy(,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(" \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\注册成功///////////////////////\n\n\n");system("pause");system("cls");}goto Login;}return 0;}。