员工打卡课后小项目

  public class Fm
    {
       //员工类
        public string Id { get; set; }
        public string Name { get; set; }
        public int Age { get; set; }
        public string Gender { get; set; }
    }
 public class SI
    {
        //打卡类
        public string Name { get; set; }
        public DateTime Begin { get; set; }
        public DateTime End { get; set; }
    }

 
public partial class Yg : Form
    {
        public Yg()
        {
            InitializeComponent();
        }
        public static Qd qd;
        //初始化员工信息
        public static List<Fm> fm = new List<Fm>
        {
            new Fm{Id="20090101", Name="王小毛",Age=19,Gender="男"},
            new Fm{Id="20090102", Name="周新宇",Age=19,Gender="男"}
        };
        //保存打卡记录的集合
        public static List<SI> si = new List<SI>();
        private void Form1_Load(object sender, EventArgs e)
        {
            //绑定dgvlist
            dgv1.DataSource = fm;
        }

        public void info()
        {
            //更新dgvlist的数据源
            dgv1.DataSource = new BindingList<Fm>(fm);
        }

        private void toolStripButton1_Click(object sender, EventArgs e)
        {
            //打开新增员工的窗体)
            Wh frm = new Wh();
            frm.ygxx = this;
            frm.Show();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            //模糊查询的方法
            List<Fm> fm=new List<Fm>();
            foreach (Fm item in Yg.fm)
            {
                if (item.Id.IndexOf(txt1.Text.Trim()) >= 0)
                {
                    fm.Add(item);

                }

            }
            dgv1.DataSource = new BindingList<Fm>(fm);
        }

        private void toolStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
        {

        }

        private void toolStripButton3_Click(object sender, EventArgs e)
        {
            //删除的方法
            if (dgv1.SelectedRows.Count > 0)
            {
                DialogResult dr = MessageBox.Show("确认要删除" + dgv1.SelectedRows[0].Cells[1].Value + "吗", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Asterisk);
                if (dr == DialogResult.Yes)
                {
                    for (int i = 0; i < fm.Count; i++)
                    {
                        if (dgv1.SelectedRows[0].Cells[0].Value.ToString() == fm[i].Id)
                        {
                            fm.RemoveAt(i);
                            dgv1.DataSource = new BindingList<Fm>(fm);
                        }

                    }
                }
            }
        }

        private void 签到ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //签到
            if (dgv1.SelectedRows.Count > 0)
            {
                int s = 0;
                foreach (SI item in si)
                {
                    if (item.Name == dgv1.SelectedRows[0].Cells[1].Value.ToString())
                    {
                        s++;
                    }
                }
                if (s == 0)
                {
                    SI sione = new SI();
                    sione.Name = dgv1.SelectedRows[0].Cells[1].Value.ToString();
                    sione.Begin = DateTime.Now;
                    si.Add(sione);
                    if (qd != null)
                    {
                        Qd.cishu = si.Count;
                        qd.info();
                    }
                }
                else
                {
                    MessageBox.Show("您已经签到过了", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                }

            }

        }

        private void 签退ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //签退
            if (dgv1.SelectedRows.Count > 0)
            {
                SI s = null;
                int count = 0;
                foreach (SI item in si)
                {
                    if (item.Name == dgv1.SelectedRows[0].Cells[1].Value.ToString() && item.End == Convert.ToDateTime("0001-1-1"))
                    {
                        s = item;
                    }
                    if (item.Name == dgv1.SelectedRows[0].Cells[1].Value.ToString())
                    {
                        count++;
                    }
                }
                if (s !=null)
                {
                    for (int i = 0; i < si.Count; i++)
                    {
                        if (si[i] == s)
                        {
                            si[i].End = DateTime.Now;
                            if (qd != null)
                            {
                                Qd.cishu = si.Count;
                                qd.info();
                            }
                        }
                    }
                }
                else if (count <= 0&&s==null)
                {
                    MessageBox.Show("您还未签到", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                }
                else
                {
                    MessageBox.Show("您已经签退过了", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                }

            }
        }

        private void toolStripButton4_Click(object sender, EventArgs e)
        {
            //打开打卡记录
            Qd from = new Qd();
            Qd.cishu = si.Count;
            from.Show();

        }

        private void toolStripButton2_Click(object sender, EventArgs e)
        {
            //打开修改员工记录的窗体
            Wh from = new Wh();
            from.Text = "修改员工信息";
            from.ygxx = this;
            from.sid = dgv1.SelectedRows[0].Cells[0].Value.ToString();
            from.Show();
        }
    }

 private void button1_Click(object sender, EventArgs e)
        {
            //进入新增员工的方法
            if (this.Text == "员工信息维护")
            {
                int error = 0;
                //查看有没有该员工id
                foreach (Fm item in Yg.fm)
                {
                    if (txt1.Text == item.Id)
                    {
                        error++;
                    }
                }
                if (txt1.Text != null && txt2.Text != null && txt3.Text != null && cnb1.Text != null && error == 0)
                {

                    Fm fm = new Fm();
                    fm.Id = txt1.Text;
                    fm.Name = txt2.Text;
                    fm.Age = Convert.ToInt32(txt3.Text);
                    fm.Gender = cnb1.Text;
                    Yg.fm.Add(fm);
                    ygxx.info();
                    MessageBox.Show("添加成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                }
                else if (error != 0)
                {
                    MessageBox.Show("员工号已存在", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                }
                else
                {
                    MessageBox.Show("请完善员工信息", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                }
            }
                //进入修改方法
            else
            {

                for (int i = 0; i < Yg.fm.Count; i++)
                {
                    if (Yg.fm[i].Id == sid)
                    {
                        Yg.fm[i].Id = txt1.Text;
                        Yg.fm[i].Name = txt2.Text;
                        Yg.fm[i].Age = Convert.ToInt32(txt3.Text);
                        Yg.fm[i].Gender = cnb1.Text;
                        ygxx.info();
                        MessageBox.Show("修改成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                    }
                }
            }
        }

        private void groupBox1_Enter(object sender, EventArgs e)
        {

        }
        //进入修改方法时传入要修改的员工信息
        private void Wh_Load(object sender, EventArgs e)
        {
            foreach (Fm item in Yg.fm)
            {
                if (item.Id == sid)
                {
                    txt1.Text = item.Id;
                    txt2.Text = item.Name;
                    txt3.Text = item.Age.ToString();
                    cnb1.Text = item.Gender;
                }

            }
        }
    }

    public partial class Qd : Form
    {
        public Qd()
        {
            InitializeComponent();
        }
        public static int cishu;
        private void qd_Load(object sender, EventArgs e)
        {
            Yg.qd = this;

            info();

        }
        //显示共有多少条记录
        public void info()
        {
            BindingSource bs = new BindingSource();
            bs.DataSource = Yg.si;
            dataGridView1.DataSource = bs;
            this.label1.Text = "共有" + cishu + "条记录";
        }

        private void label1_Click(object sender, EventArgs e)
        {

        }
    }
时间: 2024-10-02 15:10:08

员工打卡课后小项目的相关文章

&lt;JAVA图像学习笔记&gt;十字路口交通模拟--操作系统模拟课后小项目

项目的要求很简单: 模拟出十字路口的交通控制情况: 考虑东.西.南.北四个方向,每条路分为两个车道,每个路口设置一盏显示灯.为简单起见, 每种灯显示时间为8秒. 当东西(或南北)方向红灯时,所有车辆(除了消防车.救护车.警车)均排队等待,当东西(或南北)方向绿灯时,所有车辆按序行驶(不准超车). 制作这个小框体程序我选择的平台是JAVA,实现结果效果图如下所示: 首先分析整个项目题目上的要求,在十字路口上通过的车辆可以抽象为两类:普通车辆和特殊车辆(包括警车,消防车,救护车等),所谓普通的车辆和

经理评分课后小项目

class PM { //定义一个经理类 public static SE[] se=new SE[50]; //评分的方法 public void pf(SE se, string pingjia, int pingfen) { se.Count = pingfen; se.PingJia = pingjia; } } class SE { //员工类 public int Sid { get; set; } public string Name { get; set; } public in

泛型集合小项目员工打卡

项目样式 需求说明:1.实现新增员工 2.使用DataGrideView空间展示员工信息 3.实现删除员工信息 4.给主窗体添加右键菜单,实现上班签到和下班签退 5.选择签到,必须检索员工打卡记录,如果已签到,提示不能再签到 6.选择签退,必须检索员工打卡记录,如果已签退,提示不能再签退 7.使用DataGrideView控件显示员工考勤记录 项目开始: 首先搭好窗体,创建员工类 SE 打卡时间类 public class SE { public int id{ get; set; } //存储

我的第一个开源小项目终于诞生了!

这个小项目(卡片秀)是一个卡片抽奖特效,用开源项目这样的词语让我多少有些羞愧,毕竟作为一个涉世未深的小伙子,用项目的标准衡量还有很大差距.不过该案例采用 jQuery 插件方式编写,提供配置参数并且做了浏览器兼容优化,整体而言作为一个小项目也不为过.目前正在持续更新. 话不多少,先上地址:https://github.com/nzbin/CardShow/tree/master 当然,博主写这篇文章不是为了炫耀这个 Demo,而是交流 jQuery 插件的编写以及这一项目中遇到的各种问题.现在的

仿微信聊天界面小项目总结

从开始学习ios时,做这个小项目就卡了很久,到现在这个小项目算是我做的比较熟练的一个了.oc和swift两个版本都顺利完成了.因此总结一下曾经在这个小项目中遇到的种种问题! 微信聊天界面主要内容有三部分构成: 1.TableView部分,设置好各种必须的代理: 2.TableViewCell部分,在自定义cell中要设置好三个控件的位置,这也是整个过程中最麻烦的部分: 3.设置TextField部分发送消息时,界面消息的刷新和TextField代理的设置. 第一部分: 主要设置TableView

Android开发不得不看的11个实战小项目

是不是想学Android开发(http://www.maiziedu.com/course/android-px/)却不知道如何下手?懂得一点点入门基础知识却无法应用到实际开发中?看相关资料觉得都懂了实际动手却发现什么都不懂?本地搭建Android开发环境太麻烦? 如果你有以上的各种问题,那么今天小编推荐的Android开发的这11个小项目,你一定要看!! 因为,这些实战项目都是基于google 官方的API Demos制作而成,而且全部配有Android在线开发环境,你可以随时动手跟着课程操作

小学生四则运算小项目

我写这个小项目,是在一个小程序上改的,这个小项目的网址为http://www.cnblogs.com/ys1101/p/4368103.htm,在上面的代码上实现的功能不完整,并没有完成课本上的要求.在他的代码上我增加了语言选择,这里只是有英文和中文的选择.还有原来的代码并没有实现真分数的四则运算,在此基础上我在菜单栏上新添加了真分数的四则运算,还有对其菜单栏进行了优化,使得界面更好看.写好后我将此项目放入了我的Github上网址为:https://github.com/HAIWWH/WWH,希

IOS-小项目(饿了么 网络部分 简单实现)

在介绍小项目之前,在此说明一下此代码并非本人所写,我只是随笔的整理者. 在介绍之前先展现一下效果图. 看过效果图大家应该很熟悉了,就是饿了么的一个界面而已,值得注意的是,实现时并没有采用本地连接,而是实打实的网络连接.看一下文件架构. 这一采用的是MVC设计模式,虽然文件很少,但是也可以看. 下面开始正式介绍小项目的实现. 首先介绍Model的实现,很简单,实现模型即可, Shop.h // // Shop.h // CX-小项目(饿了么 网络部分 简单实现) // // Created by

盘点三个网络赚零花钱的小项目,傻瓜式操作

今天,写一篇比较特别的日志,咱们来盘点三个赚零花钱的小项目,都是“傻瓜式”操作. 这几个小项目,虽说赚不了太多的钱,但是却是一个可以锻炼执行力的好方法. 每一个项目操作都非常的简单,边锻炼执行力,边收钱,也是一种不错的体验. 废话不多说,咱们直接进入主题啊! 一,支付宝借条,可赚零花钱,也可赚大钱 支付宝有打借条的功能,本来他们开发这个,只是针对于熟人之前借钱的. 不过,无心插柳柳成荫,没成想,这个功能火的一塌糊涂,完全带火了陌生人之间的借贷业务. 如何利用支付宝借条赚钱? 其实就跟放贷是一样的