员工考勤信息管理小程序,考勤信息管理小程序

虽然这是个小程序,但是呢还是用到了许多的知识点的.主要是""使用集合组织相关数据."",这个知识点非常重要.

在以后搞大型的项目,绝对离不开"集合组织数据".例如:ArrayList动态存储数据,HashTable的数据结构(哈希表).

泛型集合:List和Dictionary

泛型类.

下面呢就是一个"员工信息管理"小程序.用来强化知识点.

首先,创几个类:

SE类

public classSE

{public string ID { get; set; }public int Age { get; set; }public Sex Gender { get; set; }public string Name { get; set; }

}

Gen类(枚举)

public classGen

{//public static 实现考勤信息管理.Gender 男 { get; set; }

}public enumSex

{

男, 女

}

Record类

{public classRecord

{//签到时间

public DateTime SingInTime { get; set; }//签退时间

public DateTime SingOutTime { get; set; }//工号

public string ID { get; set; }//员工姓名

public string Name { get; set; }

管理信息:

添加信息:

代码段:

public int MaintanceType { get; set; }//保存父窗体的引用

public FrmMain FrmParent { get; set; }//初始化//保存按钮的响应

private void btnOk_Click(objectsender, EventArgs e)

{try{

SE pr= newSE();

pr.ID= this.txtID1.Text.Trim();//工号

pr.Age = Int32.Parse(this.txtAge1.Text.Trim());//年龄

if (this.cmbgender1.SelectedIndex.ToString() == "男")//性别

{

pr.Gender=Sex.男;//这个也可以:pr.Gender=(Sex)(Enum.Parse(typeof(Sex),"男"));

}else{

pr.Gender=Sex.女;

}

pr.Name= this.txtName1.Text.Trim();//名字//添加操作//工号唯一性验证

if (this.MaintanceType == 1)

{foreach (SE item inFrmParent.programmerList)

{if (item.ID ==pr.ID)

{

MessageBox.Show("此工号已存在");return;

}

}

FrmParent.programmerList.Add(pr);

}this.Close();

}catch(Exception)

{

MessageBox.Show("出错啦");

}finally{this.FrmParent.BindGrid(FrmParent.programmerList);

}

看看主界面:

主界面的主要代码

查询信息:

//查询信息

private void btnLook_Click(objectsender, EventArgs e)

{//根据员工号进行模糊查询

List teapList = new List();//用临时列表保存查询到的信息

foreach (SE item in this.programmerList)

{if (item.ID.IndexOf(this.txtID.Text.Trim()) != -1)//indexof()实现模糊查询

{

teapList.Add(item);

}

}this.dgvlist.DataSource = new BindingList(teapList);

}

删除信息:

private void toolStripButton3_Click(objectsender, EventArgs e)

{if (this.dgvlist.SelectedRows.Count == 0)

{

MessageBox.Show("你还未选中要删除的信息,请选择!");return;

}

DialogResult result= MessageBox.Show("确认要删除吗?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Information);if (DialogResult.OK !=result)

{return;

}string sid = dgvlist.CurrentRow.Cells["ID"].Value.ToString();foreach (SE item inprogrammerList)

{if (item.ID ==sid)

{

programmerList.Remove(item);break;

}

}//刷新

BindGrid(programmerList);

MessageBox.Show("删除成功!");

}

签到:

代码段:

//签到菜单项,

private void 签到ToolStripMenuItem_Click(objectsender, EventArgs e)

{//验证//确保有选中的行

if (this.dgvlist.SelectedRows.Count != 1)

{

MessageBox.Show("请选择要签到的人");return;

}//确保没有签到过

string id = dgvlist.CurrentRow.Cells["ID"].Value.ToString();foreach (string item inrecordList.Keys)

{if (id ==item)

{

MessageBox.Show("您以前到过");return;

}

}//执行签到

Record record = newRecord();

record.ID=id;

record.Name= dgvlist.CurrentRow.Cells["Name"].Value.ToString();

record.SingInTime= DateTime.Now;//获取当前系统时间

this.recordList.Add(record.ID, record);//添加到记录中

MessageBox.Show("签到成功!!");

}

签退:

//签退操作

private void 签退ToolStripMenuItem_Click(objectsender, EventArgs e)

{//确保有选中行

if (this.dgvlist.SelectedRows.Count != 1)

{

MessageBox.Show("请选择!");return;

}string id = dgvlist.CurrentRow.Cells["ID"].Value.ToString();bool isOut = false;//标识是否已签过到

foreach (string item inrecordList.Keys)

{if (item ==id)

{//执行签到,设置签退时间

this.recordList[item].SingOutTime =DateTime.Now;

MessageBox.Show("签退成功!");

isOut= true;break;

}

}if (!isOut)

{

MessageBox.Show("很抱歉,尚未签到!");

}

}

打卡记录:

//打卡记录

public Dictionary recordList { get; set; }//数据绑定

private voidBindRecords()

{

lblcount.Text= "共有"+recordList.Count+"条打卡记录";//将Dictionary绑定到DataGridView控件

BindingSource bs= newBindingSource();#region 绑定数据源 BindingSource

/** 封装窗体的数据源。

public BindingSource();

//

// 摘要:

// 初始化 System.Windows.Forms.BindingSource 类的新实例,并将 System.Windows.Forms.BindingSource

// 添加到指定的容器。

//

// 参数:

// container:

// 要将当前 System.Windows.Forms.BindingSource 添加到的 System.ComponentModel.IContainer。

*

public BindingSource(IContainer container);

//

// 摘要:

// 用指定的数据源和数据成员初始化 System.Windows.Forms.BindingSource 类的新实例。

//

// 参数:

// dataSource:

// System.Windows.Forms.BindingSource 的数据源。

//

// dataMember:

// 要绑定到的数据源中的特定列或列表名称。

public BindingSource(object dataSource, string dataMember);

// 摘要:

// 获取一个值,该值指示是否可以编辑基础列表中的项。

//

// 返回结果:

// true 指示列表项可以编辑;否则为 false。*/

#endregionbs.DataSource=recordList.Values;

dgvlist.DataSource=bs;

}private void FrmRecord_Load(objectsender, EventArgs e)

{

BindRecords();

}

这样最后呢,就可以完完整整的掌握了这些知识点------------------------------------

http://www.dengb.com/C_jc/1101897.htmlwww.dengb.comtruehttp://www.dengb.com/C_jc/1101897.htmlTechArticle员工考勤信息管理小程序,考勤信息管理小程序 虽然这是个小程序,但是呢还是用到了许多的知识点的.主要是""使用集合组织相关数据."",这...

员工考勤管理系统c语言,员工考勤信息管理小程序,考勤信息管理小程序相关推荐

  1. c语言编程员工信息排序,员工工资管理系统(c语言编程)

    <员工工资管理系统(c语言编程)>由会员分享,可在线阅读,更多相关<员工工资管理系统(c语言编程)(6页珍藏版)>请在人人文库网上搜索. 1.include #include# ...

  2. 公司员工考勤管理系统C语言课程设计

    公司员工考勤管理系统 1.问题描述 某公司需要存储雇员的编号.姓名.性别.所在部门,级别,并进行工资的计算.其中,雇员分为经理.技术人员.销售人员和销售经理.转换规则:8小时转换为一天,12小时转换为 ...

  3. 数据结构员工通讯录管理系统 C语言,数据结构课程设计报告单位员工通讯录管理系统.doc...

    班级:计科112 学号: 201100814203 姓名:冯贵阳 PAGE PAGE 42 数 据 结 构 课 程 设 计 实 验 报 告 目录 1.单位员工通讯录管理系统(线性表的应用)---- - ...

  4. java员工请假系统_基于jsp的员工请假管理系统-JavaEE实现员工请假管理系统 - java项目源码...

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的员工请假管理系统, 该项目可用各类java课程设计大作业中, 员工请假管理系统的系统架构分为前后台两部分, 最终实 ...

  5. 计算机员工工资管理系统源代码,C++员工工资管理系统源代码

    <C++员工工资管理系统源代码>由会员分享,可在线阅读,更多相关<C++员工工资管理系统源代码(17页珍藏版)>请在人人文库网上搜索. 1.include #include # ...

  6. 考勤管理系统c语言,C语言课程设计学生考勤系统最终版(范文1)

    <C语言课程设计学生考勤系统.doc>由会员分享,可免费在线阅读全文,更多与<C语言课程设计学生考勤系统(最终版)>相关文档资源请在帮帮文库(www.woc88.com)数亿文 ...

  7. 员工任务管理系统c语言,C语言职工信息管理系统课程设计任务书.docx

    C语言课程设计任务书 一.题目:职工信息管理系统 二.目的和要求 目的:要求熟练掌握C语言的基本知识和编辑技能: 基本掌握结构化程序设计的基本思路和方法. 要求:设计一个职工信息管理系统,使之能提供以 ...

  8. 【附源码】Python计算机毕业设计企业员工考勤管理系统

    项目运行 环境配置: Pychram社区版+ python3.7.7 + Mysql5.7 + HBuilderX+list pip+Navicat11+Django+nodejs. 项目技术: dj ...

  9. 【附源码】计算机毕业设计SSM企业员工考勤管理系统

    项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...

  10. 基于SSM的员工考勤管理系统

    项目描述 这个项目是一个基于SSM的员工考勤管理系统. 系统功能包括: 人事管理 排版管理 考勤管理 考勤处理 考勤统计 项目技术栈 SpringMVC.Spring.MyBatis.MySQL5.7 ...

最新文章

  1. ES5-Array-push(),pop(),shift(),unshift()
  2. 89. a^b【快速幂模板】
  3. hdfs 数据迁移_基于JindoFS+OSS构建高效数据湖
  4. Qt小传——从诞生到发展、繁荣
  5. ubuntu常见指令
  6. Linux Shell常用技巧(五)
  7. 大剑无锋之Hbase的优化【面试推荐】
  8. 【存储过程】MySQL存储过程/存储过程与自定义函数的区别
  9. php mysql缓存技术_系统的讲解 - PHP 缓存技术
  10. 请确保此代码文件中定义的类与“inherits”属性匹配.并且该类扩展的基类(例如 Page 或 UserControl)是正确...
  11. 【JOURNAL】《题虾壶》
  12. gitlab 如何调出工程的setting
  13. java去除网页中的广告和导航等信息_**css+html纯css怎样去除导航子菜单中的默认背景?**...
  14. 94-99.字符串函数使用和实现详解
  15. JavaWeb新闻发布系统案例1
  16. oeasy教您玩转vim - 90 - # 语法定义syntax
  17. 图片试卷怎么打印出来?
  18. 显示器接口针脚定义(D-sub15)
  19. CV(1) : 光 颜色 颜色空间
  20. 虚拟机3-11-14:53,工作记录

热门文章

  1. 二级c语言 办公软件高级应用,高级应用题库_计算机国二office高级应用考试的题目是从题库20套里抽其中一套还是别的题目_淘题吧...
  2. sqluldr2导出过blob字段_sqluldr2导出数据没有文件也没有报错
  3. 联想服务器安装2019系统,联想支持的Win10 2019年10月更新(1909版本)的机型
  4. commvault xtrabackup全实例备份失败 处于未决状态(下)
  5. python爬虫: 爬一个英语学习网站
  6. VS2005精简版(二)
  7. python计算器_python_计算器
  8. matlab2010b显示激活界面_【转】Matlab2010b许可证过期问题,反复提示激活
  9. Mac网易云音乐ncm格式转mp3
  10. 学校计算机维护投标书,信息化系统硬件及应用系统安全运维服务投标书范本