精华内容
下载资源
问答
  • 员工打卡系统

    2015-09-12 14:55:00
    员工打卡系统 语言:C# 1. 分析: 图1(主页面) 根据图1可得信息 1....

                                                                                                          员工打卡系统

       

        语言:C#  

     

    1. 分析: 

            图1(主页面)

             

          根据图1可得信息

                  1.Windows Forms 窗体 ,控件DataGrid View (显示控件) ,菜单控件 ,Label ,button,Textbox.

                  2.要实现菜单控件的新增,修改,删除及打卡记录; 窗体的查看功能

     

     

       图2(新增, 修改窗体)

          (1)新增时                                                                  (2)修改时 

                                 

             根据图2(1)可得信息新增时 需填写                                 根据图2(2)可知修改时显示原有数据且工号不可改

             工号 ,年龄,姓名,选择性别.

         图3(打卡记录窗体)

                    

        图3可得

        查询打卡记录时显示共有几条记录数,和显示员工打卡记录,如记录数为0显示0,如不为0显示数据(工号,姓名,签到时间,签退时间)

     

     

       2.搭建构架

        1.要显示员工数据   

           :添加员工类(Employee)

           :声明一个员工类为类型的List集合,初始化两条记录并  绑定在dgv(Data Grid View 简写)上

            

     

               绑定

                

            

             要新增,修改和删除时需刷新数据所以创建一个刷新方法

             例1:                                                                                        例2:

                      或     

              

        2.新增

        打开新增窗体图2(1),在新增窗体类,定义字段接收数据源 "l"并判断是新增或修改

       

            是新增时做各种判断:

                       1. 判断工号栏是否为空和工号是否重复

                       2. 判断姓名栏是否为空

                       3. 判断年龄栏是否为空  ,年龄是否合法(如大于18,和小于65)

                       4.选择男女并保存(添加到数据源 "l")

                       5.调用更新

     

        3.修改

           

        打开新增窗体图2(2),在新增窗体类,定义字段接收数据源 "l"并判断是新增或修改

            是修改时做各种判断:

                       2. 判断姓名栏是否为空

                       3. 判断年龄栏是否为空  ,年龄是否合法(如大于18,和小于65)

                       4.选择男女并保存(添加到数据源 "l")

     

     

        4.删除

         在主页面

             1.选中dgv控件的一行(选中的员工姓名(工号)所在行)

             2.向用户确认是否删除,如确认删除,移除在List集合中的该对象

             3.调用刷新

              

        5.查看

         在主页面

               1.出入工号查看 (模糊查询,如不输入,则显示全部)

     

     

        6.打卡记录

          要显示打卡记录 :需有一个新的数据源(这里选用字典)

       

     

          打开打卡记录窗体

             1. 在打卡记录窗体声明字段接收字典或主窗体

             2.显示共有几条记录,和详细打卡信息         

     

         6.(2)(签到,签退)

          因为要有签到记录(打卡记录)所以我们在主窗体添加快捷菜单控件绑定在dgv控件上并创建签到,签退方法 来完成打卡

          操作   .形成数据添加到字典中.            

     

     

             

     

    转载于:https://www.cnblogs.com/xiangtianxiayu/p/4803015.html

    展开全文
  • 打卡时,采用C#代码调用本机摄像头拍照,将照片同其他信息一并上传至数据库,模拟打卡过程,并且有管理员模块!
  • 打卡时,采用C#代码调用本机摄像头拍照,将照片同其他信息一并上传至数据库,模拟打卡过程,并且有管理员模块!
  • 员工打卡系统随便说说要求数据库设计分层接口jenkins 随便说说 分享一下最近在做的一个项目吧。。 这两天天天熬夜凌晨三点,早上七点又要爬起来上班,再肝个八个小时的代码 身体真的吃不消了。 之前在学校做点小东西...

    随便说说

    分享一下最近在做的一个项目吧。。
    这两天天天熬夜凌晨三点,早上七点又要爬起来上班,再肝个八个小时的代码
    身体真的吃不消了。
    之前在学校做点小东西,熬到两三点,四五点,早上八点依然可以起来,但是最近真的
    身体变得好差
    不说了,都是泪啊。。。
    在这里插入图片描述
    为什么你这么大???
    欸嘿,我故意的~~~~ 你好可爱
    为什么要养🐕🐕呢,因为它可以陪伴我呀
    写了两年技术文章了,这应该是第一次写日常文章~~
    哈哈哈,主要还是博主的语文功底太差啦~~~~
    为什么我一直要用~~ 都怪小朱同学(坐我旁边的台湾同事),把她的台湾腔传染给我,这里手动批评小朱
    这两天我都在吃梭子蟹,不知道你有没有吃呢?

    在这里插入图片描述

    要求

    言归正传了
    下面是经理给我的一些要求:
    一、用户管理
    1、用户列表
    列表字段:姓名、登录名、性别、手机号、薪资、岗位、角色
    列表按钮:编辑、启用、停用、重置密码
    搜索条件:用户名、状态(启用停用)
    顶部按钮:新增用户
    导入、导出
    二、考勤管理
    1、考勤打卡
    按钮:上班打卡(8点-8点半)、下班打卡(18点-18点30)
    迟到扣50,早退扣100,旷工200
    2、考勤列表
    列表字段:姓名、打卡时间、打卡状态(正常、迟到、早退)
    搜索条件:姓名、打卡状态
    三:流程管理
    1、流程管理
    列表字段:姓名、类型、意见、审核状态
    按钮:查看详情
    2、新建流程
    字段:类型(请假、辞职、报销)开始时候(请假)、结束时间(请假)、理由、天数(请假时显示)、金额(报销时显示)
    3、审核流程
    列表字段:姓名、类型、意见、审核状态
    按钮:审核(是否通过、意见)
    4、我的流程
    同流程列表
    四、薪资管理
    1、我的工资
    列表字段:姓名、迟到扣费、旷工扣费、早退扣费、奖金、基本工资、月份
    2、工资详细
    生成本月工资,字段同上,多一个审批按钮,可以输入奖金
    3、岗位薪资
    列表字段:岗位、薪资
    按钮:新增、编辑、删除
    五、个人信息管理
    姓名、地址、电话、密码可以修改

    权限相关
    2个角色,管理员和员工
    员工权限:考勤管理-考勤打卡、考勤列表
    流程管理-我的流程、新建流程
    薪资管理-我的工资
    个人信息管理

    数据库设计

    下面是我设计的数据库,当然是和前端小姐姐撕逼了好多次,该成的数据库
    随便看一下吧 10.10.65.174是我们公司的服务器地址
    在这里插入图片描述
    Staff表是员工信息表
    在这里插入图片描述
    salary表是员工的工资表
    包含一些早退迟到扣的钱啦还有奖金什么的
    在这里插入图片描述
    这个是离开事务表 有三种类型0请假,1离职,2报销
    在这里插入图片描述
    部门表
    在这里插入图片描述
    审核表
    在这里插入图片描述
    打卡表
    在这里插入图片描述

    分层

    在这里插入图片描述
    我一共分了这么多层
    当然都是springboot很基本的东西,相信能看到这的人也能看得懂
    在这里插入图片描述
    这是主要的方法类

    接口

    然后就开始写接口啦
    其中测试的艰辛只有我和我们的前端能理解了

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    jenkins

    在这里插入图片描述
    总共调试近60次。。
    如果有需要资料的,想学习的,不懂的,私信我就行。
    个人网站:
    https://zyy0822.github.io/
    csdn:
    https://blog.csdn.net/weixin_43923223
    邮箱:
    674198412@qq.com

    展开全文
  • 企业级应用一直是J2EE的强势领域,这个案例是李刚的轻量级JAVAEE的经典案列
  • 效果图 //主窗体代码 1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using System.Data; 5 using System.Drawing; 6 using System.Linq;... 7 usi...

    效果图

     

     //主窗体代码

      1 using System;
      2 using System.Collections.Generic;
      3 using System.ComponentModel;
      4 using System.Data;
      5 using System.Drawing;
      6 using System.Linq;
      7 using System.Text;
      8 using System.Threading.Tasks;
      9 using System.Windows.Forms;
     10 using System.Collections;
     11 
     12 namespace Qiandao
     13 {
     14     public partial class FrmMain : Form
     15     {
     16         public FrmMain()
     17         {
     18             InitializeComponent();
     19             this.dataGridView1.AutoGenerateColumns = false;
     20         }
     21 
     22 
     23         private Dictionary<string, Record> recordList = new Dictionary<string, Record>();
     24         public List<SE> abc = new List<SE>();
     25         public void Show()
     26         {
     27              SE aa = new SE();
     28             aa.id = "012";
     29             aa.name = "嘻嘻";
     30             aa.sex = "";
     31             aa.age = 20;
     32 
     33             SE bb = new SE();
     34             bb.id = "123";
     35             bb.name = "哈哈";
     36             bb.sex = "";
     37             bb.age = 20;
     38 
     39             SE cc = new SE();
     40             cc.id = "234";
     41             cc.name = "呵呵";
     42             cc.sex = "";
     43             cc.age = 20;
     44 
     45             abc.Add(aa);
     46             abc.Add(bb);
     47             abc.Add(cc);
     48 
     49             dataGridView1.DataSource = new BindingList<SE>(abc);
     50         }
     51 
     52         public void BindGrid(List<SE> List)
     53         {
     54             this.dataGridView1.DataSource = new BindingList<SE>(abc);
     55         }
     56         private void Form1_Load(object sender, EventArgs e)
     57         {
     58            Show();
     59         }
     60 
     61         private void button1_Click(object sender, EventArgs e)
     62         {
     63             List<SE> abcd = new List<SE>();
     64 
     65             foreach (SE item in this.abc)
     66             {
     67                 if (item.id.IndexOf(this.textBox1.Text.Trim()) != -1)
     68                 {
     69                     abcd.Add(item);
     70                 }
     71             }
     72             this.dataGridView1.DataSource = new BindingList<SE>(abcd);
     73         }
     74 
     75         private void 新增ToolStripMenuItem_Click(object sender, EventArgs e)
     76         {
     77             FrmInsert ins = new FrmInsert();
     78             ins.cnm = this;
     79            
     80             ins.Show();
     81         }
     82 
     83         private void 修改ToolStripMenuItem_Click(object sender, EventArgs e)
     84         {
     85           
     86         }
     87 
     88         private void 删除ToolStripMenuItem_Click(object sender, EventArgs e)
     89         {
     90             if (this.dataGridView1.SelectedRows.Count != 1)
     91             {
     92                 MessageBox.Show("请选中一行");
     93                 return;
     94             }
     95             DialogResult result = MessageBox.Show("确定吗", "信息");
     96             if (result != DialogResult.OK)
     97             {
     98                 return;
     99             }
    100             string No = dataGridView1.CurrentRow.Cells["工号"].Value.ToString();
    101             foreach (SE item in abc)
    102             {
    103                 if (item.id == No)
    104                 {
    105                     this.abc.Remove(item);
    106                     break;
    107                 }
    108             }
    109             this.BindGrid(this.abc);
    110             MessageBox.Show("删除成功", "执行信息");
    111         }
    112 
    113         private void 签到ToolStripMenuItem_Click(object sender, EventArgs e)
    114         {
    115             if (this.dataGridView1.SelectedRows.Count != 1)
    116             {
    117                 MessageBox.Show("请选中一行");
    118                 return;
    119             }
    120             string workNo = dataGridView1.CurrentRow.Cells["工号"].Value.ToString();
    121             foreach (string id in recordList.Keys)
    122             {
    123                 if (workNo == id)
    124                 {
    125                     MessageBox.Show("您已签到过");
    126                     return;
    127                 }
    128             }
    129 
    130             Record record = new Record();
    131             record.ID = workNo;
    132             record.Name = dataGridView1.CurrentRow.Cells["姓名"].Value.ToString();
    133             record.SignInTime = DateTime.Now;
    134             this.recordList.Add(record.ID, record);
    135             MessageBox.Show("签到成功");
    136         }
    137 
    138         private void 签退ToolStripMenuItem_Click(object sender, EventArgs e)
    139         {
    140             if (this.dataGridView1.SelectedRows.Count != 1)
    141             {
    142                 MessageBox.Show("请选中一行");
    143                 return;
    144             }
    145             string ID = dataGridView1.CurrentRow.Cells["工号"].Value.ToString();
    146             bool isOut = false;
    147             foreach (string key in recordList.Keys)
    148             {
    149                 if (key==ID)
    150                 {
    151                     this.recordList[key].SignOutTime = DateTime.Now;
    152                     MessageBox.Show("签退成功");
    153                     isOut = true;
    154                     break;
    155                 }
    156             }
    157             if (!isOut)
    158             {
    159                 MessageBox.Show("很抱歉请继续签退");
    160             }
    161         }
    162 
    163         private void 打卡记录ToolStripMenuItem_Click(object sender, EventArgs e)
    164         {
    165             FrmMaa frm = new FrmMaa();
    166             frm.recordList = this.recordList;
    167             frm.Show();
    168         }
    169     }
    170 }
    //显示签到时间窗体的代码
    1
    using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using System.Data; 5 using System.Drawing; 6 using System.Linq; 7 using System.Text; 8 using System.Threading.Tasks; 9 using System.Windows.Forms; 10 11 namespace Qiandao 12 { 13 public partial class FrmMaa : Form 14 { 15 public FrmMaa() 16 { 17 InitializeComponent(); 18 } 19 public Dictionary<string, Record> recordList { get; set; } 20 private void frmMaa_Load(object sender, EventArgs e) 21 { 22 BindingSource bs = new BindingSource(); 23 bs.DataSource = recordList.Values; 24 this.dataGridView.DataSource = bs; 25 } 26 27 28 } 29 }

     

     //新增员工窗体的代码

     1 using System;
     2 using System.Collections.Generic;
     3 using System.ComponentModel;
     4 using System.Data;
     5 using System.Drawing;
     6 using System.Linq;
     7 using System.Text;
     8 using System.Threading.Tasks;
     9 using System.Windows.Forms;
    10 
    11 namespace Qiandao
    12 {
    13   
    14     public partial class FrmInsert : Form
    15     {
    16         public FrmMain cnm;
    17 
    18         public FrmMain FrmMain {get; set;}
    19         public FrmInsert()
    20         {
    21             InitializeComponent();
    22             this.comboBox1.SelectedIndex = 0;
    23         }
    24 
    25        
    26        
    27         private void button1_Click(object sender, EventArgs e)
    28         {
    29 
    30             SE pr = new SE();
    31             pr.id = this.txtId.Text.Trim();
    32             pr.age = Int32.Parse(this.txtAge.Text.Trim());
    33             if (this.comboBox1.SelectedItem.ToString() == "")
    34             {
    35                 pr.sex = "";
    36             }
    37             else {
    38                 pr.sex = "";
    39             }
    40 
    41             pr.name = this.txtName.Text.Trim();
    42 
    43 
    44             foreach (SE item in cnm.abc)
    45             {
    46                 if (item.id == pr.id) {
    47                     MessageBox.Show("此工号已存在");
    48                     return;
    49                 }
    50             }
    51             cnm.abc.Add(pr);
    52 
    53             this.cnm.BindGrid(cnm.abc);
    54 
    55            
    56             FrmMain frm = new FrmMain();
    57             this.Hide();
    58             frm.Show();
    59 
    60           
    61         }
    62     }
    63 }

     

     

    //SE类

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 using System.Threading.Tasks;
     6 
     7 namespace Qiandao
     8 {
     9    public class SE
    10     {
    11         public string id { get; set; }
    12         public string name { get; set; }
    13         public string sex { get; set; }
    14         public int age { get; set; }
    15 
    16     }
    17 }

     

     

    //Record类

     1 using System;
     2 using System.Collections.Generic;
     3 using System.Linq;
     4 using System.Text;
     5 using System.Threading.Tasks;
     6 
     7 namespace Qiandao
     8 {
     9    public class Record
    10     {
    11         public DateTime SignInTime { get; set; }
    12         public DateTime  SignOutTime{ get; set; }
    13         public string ID { get; set; }
    14         public string Name { get; set; }
    15     }
    16 }

     

    转载于:https://www.cnblogs.com/hfddz/p/6552521.html

    展开全文
  • //员工人数 main() { char num; printf("\t\t-------------------欢迎来到登陆页面------------------\n"); printf("请输入你要操作的序号:\n"); printf("\t\t\t 1.记录员工信息\n"); printf("\t\t\t 2.显示员工信息...
    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    #include<conio.h>//头文件声明
    #define N 50
    void input();
    void display();
    void search();
    void del();
    //定义函数
    
    struct worker//结构体变量声明
    {
     char no[20];
     char name[20];
     char number[20];
     char go[20];
     char back[20];
     char vocation[20];
    };
    
    struct worker wk[N];//定义结构体数组
    int n;//员工人数
    main()
    { 
     char num;
     printf("\t\t-------------------欢迎来到登陆页面------------------\n");
     printf("请输入你要操作的序号:\n");
     printf("\t\t\t 1.记录员工信息\n");
     printf("\t\t\t 2.显示员工信息\n");
     printf("\t\t\t 3.查询员工信息\n");
     printf("\t\t\t 4.删除信息\n");
     printf("\t\t\t 5.退出\n");
     do{
      scanf("%c",&num);
      if(num<='5'&&num>='1')
      {
       switch(num)
       {
        case '1':input();break;
        case '2':display();break;
        case '3':search();break;
        case '4':del();break;
        case '5':exit(0);;break;
       }continue;
      }
      else printf("无此功能");
     }while(1);
    }
    void input()
    {
     int i=0;
     char ch;
     FILE *fp;
     if((fp=fopen("E:\实训内容\文件\职工考勤信息管理","ab+"))==NULL)//如果文件不存在,新建文件,写入数据 
      {
       printf("创建/打开文件失败!\n");
       exit(0);
      }//新建文件出问题
      printf("\n\t\t\t输入职工考勤信息\n\n");
     do
     {
      printf("输入格式:\t职工号\t姓名\t顺序数\t上班时间\t\t下班时间\t\t是否请假(No/Yes)\n");
      printf("考勤信息录入:");
      scanf("%s%s%s%s%s%s",wk[i].no,wk[i].name,&wk[i].number,wk[i].go,wk[i].back,wk[i].vocation);
      fwrite(&wk[i],sizeof(struct worker),1,fp);//将结构体数组内容内容写到文件中
      printf("按回车键继续输入,按N停止输入:\n");
      printf("\n");
      getchar();
      ch=getch();
      i++;
     }while(ch!='n'&&ch!='N');//结束循环
      fclose(fp);
      n=i;
      system("cls");
    }void display()
    {
     int i;
     char ch;
     FILE*fp;
     if((fp=fopen("E:\实训内容\文件\职工考勤信息管理","rb"))==NULL)
     {
      printf("不能打开文件!\n");
      exit(1);
     }
     fseek(fp,0,2);//将文件指针移到文件尾
     n=ftell(fp)/sizeof(struct worker);
     do
     {
      printf("\n");
      printf("\t\t\t考勤信息\n");
      printf("\t\t\t\n\n");
      printf("\t\t职工号\t\t姓名\t顺序数\t上班时间\t\t下班时间\t\t是否请假\n");
      rewind(fp);
      for(i=0;i<n;i++)
      {
       fread(&wk[i],sizeof(struct worker),1,fp);//从文件指针fp读取一个大小为sizeof(struct worker)的数据,存入wk[i]
       printf("\t\t%s\t%s\t%s\t%s\t\t%s\t\t%s\t\n",wk[i].no,wk[i].name,wk[i].number,wk[i].go,wk[i].back,wk[i].vocation);
      }
      printf("\n\t按任意键返回主菜单\n\t");
      ch=getch();
     }while(!ch);
     fclose(fp);
     system("cls");
    }
    oid del()
    {
     char st[20],m[20];
     int i,j,l;
     FILE*fp;
     if((fp=fopen("E:\实训内容\文件\职工考勤信息管理","ab+"))==NULL)//如果文件不存在,新建文件,写入数据 
      {
       printf("创建/打开文件失败!\n");
       exit(0);
      }//新建文件出问题
     fseek(fp,0,2);
     n=ftell(fp)/sizeof(struct worker);
     fclose(fp);
     fp=fopen("E:\实训内容\文件\职工考勤信息管理","wb+");
     printf("\n");
     printf("\t\t\t考勤信息删除\n");
     printf("\t\t\t\n\n");
     printf("\t\t\t1.按职工号删除\n");
     printf("\t\t\t2.按姓名删除\n");
     printf("\t\t\t3.按顺序数删除\n");
     printf("\t\t\t4.按上班时间删除\n");
     printf("\t\t\t5.按下班时间删除\n");
     printf("\t\t\t6.按是否请假删除\n");
     printf("\n\n");
     printf("\t\t\t选择功能选项(输入功能前的数字):");
     scanf("%d",&l);//给l值
     getchar();//存放回车
     printf("请输入删除职工的具体条件:");
     scanf("%s",m);//输入的具体条件存入m数组
     getchar();
     system("cls");
     printf("\t\t\t\n");
     printf("职工信息删除成功\n");
     printf("\t\t\t\n");
     printf("其他职工信息有:\n");
     printf("\t\t\t\n");
     printf("\t=======================================================================\n");
     printf("\t职工号\t姓名\t顺序数\t上班时间\t下班时间\t是否请假\n");
     for(i=0;i<n;i++)
     {
      switch(l)
      {
       case 1:strcpy(st,wk[i].no); break;
       case 2:strcpy(st,wk[i].name);break;
       case 3:strcpy(st,wk[i].number);break;
       case 4:strcpy(st,wk[i].go);break;
       case 5:strcpy(st,wk[i].back);break;
       case 6:strcpy(st,wk[i].vocation);break;
       default:printf("无此选择\n");break;
      }
      if(strcmp(m,st)!=0)//查找到要删除的信息
      {
       j=i;
       fwrite(&wk[j],sizeof(struct worker),1,fp);//不要删除的信息写回文件
       printf("\t\t%s\t%s\t%s\t%s\t%s\t%s\n",wk[j].no,wk[j].name,wk[j].number,wk[j].go,wk[j].back,wk[i].vocation);//观察选择信息是否已经被删除
      }
     }
       printf("\t=======================================================================\n");
       fclose(fp);
       getchar();//存放回车符
       system("cls");
    }
    void search()
    { char st[20],m[20];
     int i,j,l;
     FILE *fp;
     if((fp=fopen("E:\实训内容\文件\职工考勤信息管理","ab+"))==NULL)
      {
       printf("创建/打开文件失败!\n");
       exit(0);
      }//新建文件出问题
     fclose(fp);
     fp=fopen("E:\实训内容\文件\职工考勤信息管理","rb+");
     printf("\n");
     printf("\t\t\t考勤信息查找\n");
     printf("\t\t\t\n\n");
     printf("\t\t\t1.按职工号查找\n");
     printf("\t\t\t2.按姓名查找\n");
     printf("\t\t\t3.按顺序数查找\n");
     printf("\t\t\t4.按上班时间查找\n");
     printf("\t\t\t5.按下班时间查找\n");
     printf("\t\t\t6.按是否请假查找\n");
     printf("\n\n");
     printf("\t\t\t选择功能选项(输入功能前的数字):");
     scanf("%d",&l);//给l值
     getchar();//存放回车
     printf("请输入查询职工的具体条件:");
     scanf("%s",m);//输入的具体条件存入m数组
     printf("输入格式:\t职工号\t\t姓名\t顺序数\t上班时间\t下班时间\t是否请假(No/Yes)\n");
     for(i=0;i<n;i++)
     {
      switch(l)
      {
       case 1:strcpy(st,wk[i].no); break;
       case 2:strcpy(st,wk[i].name);break;
       case 3:strcpy(st,wk[i].number);break;
       case 4:strcpy(st,wk[i].go);break;
       case 5:strcpy(st,wk[i].back);break;
       case 6:strcpy(st,wk[i].vocation);break;
       default:printf("无此选择\n");break;
      }
      if(strcmp(m,st)==0)//查找到要寻找的信息
      {
       j=i;
       printf("\t\t%s\t%s\t%s\t%s\t%s\t%s\n",wk[j].no,wk[j].name,wk[j].number,wk[j].go,wk[j].back,wk[i].vocation);
      }
     }
     printf("\t=======================================================================\n");
     fclose(fp);
     getchar();//存放回车符
    } 
     
    

    主要学习到:

    1. 利用死循环让用户输入一个指定的数,否则一直让其选择
    2. 判断文件里的内容是否为你所输入的值,可先将文件内容复制strcpy给一个数组,然后用在给另一个数组输入你想要的内容,最后用strcmp判断是否一致
    3. 如何删除文件的部分内容

    注意:此代码因时间关系做的很粗糙,时间都是要手动输入,还不如手写,不实用.
    个人再课后稍微改进了一下,不久后会发上来

    展开全文
  • 加入了自动获取系统时间,且将上下班内容存放在两个不同的文件 #include <stdio.h> #include <string.h> #include <stdlib.h> #include <conio.h> #include <time.h>//头文件声明 #...
  • 这是一个基于Java开发的纯原创的、简单的员工打卡系统,里面涉及了文件的存取,所以提交了整个项目工程。 注释均为英文注释,是自己写的,如果有不足还望海涵。 第二次提交,原先的就不要了吧!求审核通过!
  • 用VBA实现员工打卡信息录入Excel模板程序
  • 用java编写的员工打卡系统,模拟一下,适合初学者
  • 行政管理系统-员工打卡管理规定拥有着完美的一致性、社会性、明确性和层次性的特性,喜欢行政管理系统-员...该文档为行政管理系统-员工打卡管理规定,是一份很不错的参考资料,具有较高参考价值,感兴趣的可以下载看...
  • 员工打卡记录

    2014-08-17 21:55:10
    用于记录员工上下班记录,改系统用于记录员工上班时间下班时间。便于企业管理
  • 员工打卡

    2017-03-11 16:39:00
    记录打卡记录的Dictionary public Dictionary< string , dakalei> recordList = new Dictionary< string , dakalei> (); // 用来存放临时表 List<SE> temp = new List (); public Form1() { ...
  • 考勤系统员工打卡

    千次阅读 2017-04-05 16:49:00
    实现员工的添加,查询和删除,并用dgvList显示出来 1.1///先声明一个单列集合 public List<SE> list = new List<SE>(); 1.2///初始化三个对象 private void FrmMain_Load(object sender...
  • 考勤打卡系统

    2014-09-02 15:10:11
    员工考勤管理系统模块主要包括考勤管理、基本信息和考勤统计3个功能模块。 (1)基本信息:用于完成对员工基本信息资料的 管理,包括对员工信息的 添加,修改,删除等基本操作。或者用于查看员工的 基本信息。还有...
  • 我本人的毕业设计,使用了云服务技术,内含源代码及毕业设计初稿,可随意下载参考。
  • C# 员工打卡

    千次阅读 2017-02-14 21:31:17
    实现考勤信息管理系统 泛型集合List的添加,查询和删除操作 使用泛型集合绑定DataGridView 用List绑定DataGridView控件的方法 DataGridView 对象.DataSource=List 对象; 当List 对象中的数据经过修改,添加或者...
  • c#员工打卡

    2017-02-13 16:28:17
    实现考勤信息管理系统 泛型集合List的添加,查询和删除操作 使用泛型集合绑定DataGridView 用List绑定DataGridView控件的方法 DataGridView 对象.DataSource=List 对象; 当List 对象中的数据经过...
  • Java 员工打卡

    千次阅读 2017-02-13 16:54:44
    this.label1.Text = "共有" + row + "条打卡记录"; } } }             //'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''...
  • C#员工打卡

    2017-02-18 12:19:33
    员工信息维护界面: public partial class FrmMain : Form { public FrmMain() { InitializeComponent(); } public List<SE> programmerList = new List(); public void BindGrid(List<SE>...
  • 打卡系统

    2017-03-11 16:11:00
    DialogResult rt = MessageBox.Show("确实要删除这个员工的信息吗?", "确认信息"); if (rt != DialogResult.OK) { return; } string workNo = dgvProgrammer.CurrentRow.Cells["workNo"].Value.ToString(); ...
  • 考勤 打卡系统
  • 打卡系统练习

    2020-09-12 18:29:31
    打卡系统 main.c #include "clock_in.h" int main() { clockin_machine_start(); return 0; } clock_in.h #ifndef __CLOCK_IN_H__ #define __CLOCK_IN_H__ #include <stdio.h> #include <time.h> ...
  • 上下班自动打卡系统

    千次阅读 2019-05-12 19:02:44
    某程序员上下班要在本人的IP地址在公司考勤系统上在线打卡各一次。假设公司的打卡流程为登录-提交表单-填写工时(下班),登录后考勤页面表单包含个人姓名,工号,IP地址,随机验证码等信息,提交表单后服务端首先...
  • 考勤信息(员工打卡

    千次阅读 2017-05-08 18:03:56
    实现员工的添加,查询和删除,并用dgvList显示出来 1.1///先声明一个单列集合 public List list = new List(); 1.2///初始化三个对象 private void FrmMain_Load(object sender, EventArgs e) { SE s1 ...
  • 第三章的员工打卡

    2017-02-13 16:25:50
    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms;...namespace myDgv
  • 新建一个员工类,存储员工的信息 新建一个List<>集合,并在load事件中实例化三个员工对象 DataGridView绑定数据源,可以显示出数据 ...双列泛型集合存储打卡记录 判断员工是否已经签到过,不...
  • 添加员工 按钮提交 跳转到添加页面 添加员工成功 返回首页 templates emp add.html:添加员工 <!DOCTYPE html> <!-- saved from url=(0052)http://getbootstrap.com/docs/4.0/examples/dashboard/ -->...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,019
精华内容 1,607
关键字:

员工打卡系统