点名器

1.搭建窗体

点名器实现页面效果图

需要实现功能块

统计添加后的姓名

添加页面

删除页面

修改页面

首先创建一个Person类    用到了List<T> 集合初始化

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.Serialization.Formatters.Binary;
using System.Text;
using System.Threading.Tasks;

namespace 点名器
{
    [Serializable]
    public class Person
    {
        public List<Person> list = new List<Person>();
        public string name { get; set; }
        public string imageindex { get; set; }
        public void Save()
        {
            FileStream fs = new FileStream("save.bin",FileMode .OpenOrCreate);//导命名空间using System.IO;
            BinaryFormatter bf = new BinaryFormatter();           //导命名空间using System.Runtime.Serialization.Formatters.Binary;
            bf.Serialize(fs, list);
            fs.Close();
        }
        public void Return()
        {
            //首先定义一个数组
            FileStream fs = new FileStream("save.bin",FileMode.Open);
            BinaryFormatter bf = new BinaryFormatter();
            list = (List< Person>) bf.Deserialize(fs);
        }

    }
}

在主窗体中调用各页面,和Timer事件   在退出的时候保存用到了序列化和反序列化

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace 点名器
{
    public partial class FrmMain : Form
    {
        public FrmMain()
        {
            InitializeComponent();
        }
        List<Person> List = new List<Person>();
        Person Main = new Person();
        private void FrmMain_Load(object sender, EventArgs e)
        {
            //主窗体页面
            Main.Return();
            List = Main.list;
        }
        private void btnEntry_Click(object sender, EventArgs e)
        {
            //登录按钮
            this.timer.Enabled = true;
        }

        private void btnCease_Click(object sender, EventArgs e)
        {
            //停止按钮
            this.timer.Enabled = false;
        }
        int i = 0;
        private void timer_Tick(object sender, EventArgs e)
        {
            //时间控件
            if (i < List.Count)
            {
                txtFortunate.Text = List[i].name;
                //把图片放在bin目录下  新建文件夹下中
                this.pictureBox1.Image = Image.FromFile("新建文件夹\\"+i+".jpg");//图片
                i++;
            }
            else
            {
                i = 0;
            }
        }
        private void 查询ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //查询
            FrmInquiry frm = new FrmInquiry();
            frm.Inquiry.list = List;
            frm.Show();
        }

        private void 增加ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //增加
            FrmAdd frm = new FrmAdd();
            frm.adds.list = List;
            frm.Show();

        }
        private void 删除ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //删除
            FrmAdd frm = new FrmAdd();
            frm.adds.list = List;
            frm.num = 1;
            frm.btnAdd.Text = "删除";
            frm.Text = "删除";
            frm.lblName.Text = "请输入要删除的人";
            frm.Show();

        }

        private void 修改ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //修改
            FrmRevise frm = new FrmRevise();
            frm.Revise.list = List;
            frm.Show();

        }

        private void FrmMain_FormClosing(object sender, FormClosingEventArgs e)
        {
            DialogResult result = MessageBox.Show("是否保存?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning);
            if (result == DialogResult.OK)
            {
                Main.Save();
                MessageBox.Show("保存成功!");
            }
        }
    }
}

统计人数   用到了forearm遍历输出

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace 点名器
{
    public partial class FrmInquiry : Form
    {
        public FrmInquiry()
        {
            InitializeComponent();
        }
        public Person Inquiry = new Person();
        private void FrmInquiry_Load(object sender, EventArgs e)
        {
            foreach (Person item in Inquiry.list)
            {
                listBox.Items.Add(item.name);
            }
        }
    }
}

1添加和删除用到了同一个页面(窗体的复用),实现了各自的功能块

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace 点名器
{
    public partial class FrmAdd : Form
    {
        public FrmAdd()
        {
            InitializeComponent();
        }
        public Person adds = new Person();
        public int num = 0;
        Person ps = new Person();
        private void btnAdd_Click(object sender, EventArgs e)
        {
            if(string.IsNullOrEmpty(txtName.Text))
            {
                MessageBox.Show("不能为空!");
                return;

            }
            if (num == 0)
            {
               ps.name = this.txtName.Text;
                foreach (Person item in adds.list)
                {
                    if (item.name == ps.name)
                    {
                        MessageBox.Show("已经存在!");
                        return;
                    }
                }
                adds.list.Add(ps);
                MessageBox.Show("增加成功!");
                txtName.Text = "";
            }
            else
            {
                ps.name = this.txtName.Text;
                foreach (Person  item in adds.list )
                {
                    if (item.name == ps.name)
                    {
                        adds.list.Remove(item);
                        MessageBox.Show("删除成功!");

                        return;
                    }

                }
                MessageBox.Show("删除失败!");
            }
            txtName.Text = "";
            txtName.Focus();

        }
    }

}

1.修改中,判断了listBox控件中是否存在该人,存在就修改,否则输出没有该人,请确定后重新修改

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace 点名器
{
    public partial class FrmRevise : Form
    {
        public FrmRevise()
        {
            InitializeComponent();
        }
        public Person Revise = new Person();
        private void btnRevise_Click(object sender, EventArgs e)
        {
            Person ps = new Person();
            ps.name = this.txtFront.Text;
            foreach (Person  item in Revise.list)
            {
                if (item.name == this.txtFront.Text)
                {
                    DialogResult result = MessageBox.Show("是否修改?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning);
                    if (result == DialogResult.OK)
                    {
                        item.name = txtBehind.Text;
                        MessageBox.Show("修改成功!");
                        return;
                    }
                    else
                    {
                        MessageBox.Show("修改失败!");
                        txtFront.Focus();
                        return;
                    }
                }

            }
            MessageBox.Show("没有此人!");
        }
    }
}
时间: 2024-10-13 08:21:29

点名器的相关文章

Python学习之三大名器-装饰器、迭代器、生成器

Python学习之三大名器-装饰器.迭代器.生成器 一.装饰器     装饰,顾名思义就是在原来的基础上进行美化及完善,器这里指函数,所以说装饰器就是装饰函数,也就是在不改变原来函数的代码及调用方式的前提下对原函数进行功能上的完善.其核心原理其实是利用闭包.     格式 @关键字+装饰函数          被装饰函数()      注意:@行必须顶头写而且是在被装饰函数的正上方     按照形式可以分为:无参装饰器和有参装饰器,有参装饰器即给装饰器加上参数     以下示例是一个无参装饰器,

自己点自己专用点名器

package className; import java.util.Random; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.BorderLayout; import java.awt.Container; import java.awt.Color; import javax.swing.SwingConstants; import javax.swing

随机点名器

该吃中饭了,那么吃完中饭谁洗碗呢,这个幸运的小伙伴就交给我们的责任重大的随机点名器决定吧.你们也可以试试哟!你洗你洗你洗...... <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>随机洗碗点名器</title> <style> .box{ width: 350px; height: 130p

Java实现一个简单的随机点名器

废话不多说,大家可以看看代码 import java.awt.BorderLayout; import java.awt.Color; import java.awt.Container; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Random; import javax.swing.JButton; import javax.swing.JFrame; im

js编写点名器

1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>点名器</title> 6 <style type="text/css"> 7 *{ 8 margin: 0; 9 padding: 0; 10 } 11 #outer{ 12 margin: 50px;

封装随机点名器

import java.util.Scanner; import java.util.Random; class work { //题目: /* 随机点名器,即在全班同学中随机的打印出一名同学名字. 要做的随机点名器,它具备以下3个内容: 1.存储所有同学姓名 2.总览全班同学姓名 3.随机点名其中一人,打印到控制台 */ //执行代码 public static void main(String[] args) { System.out.println("--------随机点名器------

JavaScript的数组知识案例之随机点名器

本次分享JavaScript主要知识点涉及到for循环.if选择结构判断语句.数组的定义.定时器.清除定时器.日期对象的使用. 执行后效果图: 思路: 1.网页结构搭建: HTML 2.网页布局美化: CSS 3.随机功能实现: JavaScript 分析后案例思路图: 编码工作: Html代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>基于Jav

python爬虫练习 -- 签名器+GUI界面(Tkinter)

效果图: 实现步骤如下: 实现原理:其实就是套了一层GUI的壳,主要还是爬虫抓取某个网站返回的数据,然后利用python自带的GUI工具包Tkinter来实现gui界面: 1.爬虫分析: 目标站点:http://www.uustv.com 1.可以看到是通过提交表单传递数据的 参数有: word: 风道 sizes: 60 fonts: jfcs.ttf fontcolor: #000000 2.找到返回的图片数据在返回的响应中, 3.主要实现逻辑 response = requests.pos

day06_03

随机点名器案例 自定义类 package com.tedu.Demo; /* * 描述学生的类 * 属性:姓名.年龄 * * */ public class StudentName { String name; int age; } 在main中使用,定义StudentName类 1 package com.tedu.Demo; 2 3 /* 4 * 随机点名器 5 * 现实中有学生这个事物,使用定义类的形式,描述学生事物 6 * 属性:姓名.年龄 7 * 8 * 姓名存储看数组,将容器换成了集