C# 抽签小程序
设计背景
设置一个Excel名单表,对名单进行随机抽取。
设计思路
使用Timer定时器,运行定时器进行名单随机滚动,停止定时器获得抽签结果
相关技术
- 随机数
- Excel读取/导出
- XML文档读写
相关类库
C1.C1Excel Excel操作相关
功能
- 读取Excel名单
- 名单随机抽签
- 评分功能
- Excel导出功能
代码示例
- 导入名单
using (System.Windows.Forms.OpenFileDialog dialog = new OpenFileDialog())
{
dialog.InitialDirectory = Application.StartupPath;
dialog.Filter = "Excel文件(*.xls)|*.xls";
dialog.CheckFileExists = true;
if (dialog.ShowDialog(this) == System.Windows.Forms.DialogResult.OK)
{
this.txtList.Text = dialog.FileName;
this.dt = ImportExcel(dialog.FileName, false, false);
}
}
- 随机抽签
Random rd = new Random();
this.lbShow.Text = this.dt.Rows[rd.Next(1, this.dt.Rows.Count)][0].ToString();
- 评分导出
string apppath = Application.ExecutablePath;
apppath = apppath.Substring(0, apppath.LastIndexOf("\\"));
if (File.Exists(apppath + "\\Evaluation.xml"))
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(apppath + "\\Evaluation.xml");
XmlNodeList nodeList = xmlDoc.SelectNodes("//Evaluation//Evaluation");
DataTable dt = new DataTable();
dt.Columns.Add("姓名");
dt.Columns.Add("评分");
dt.Columns.Add("时间");
for (int i = 0; i < nodeList.Count; i++)
{
DataRow dr = dt.NewRow();
XmlElement xe = (XmlElement)nodeList[i];
dr[0] = ((XmlElement)xe.SelectNodes("//Evaluation//Name")[i]).InnerText;
dr[1] = ((XmlElement)xe.SelectNodes("//Evaluation//Points")[i]).InnerText;
dr[2] = ((XmlElement)xe.SelectNodes("//Evaluation//Time")[i]).InnerText;
dt.Rows.Add(dr);
}
ExportTo("Evaluation", "Evaluation", dt);
MessageBox.Show("导出评分表将删除评分记录,请自行保存!");
File.Delete(apppath + "\\Evaluation.xml");
}
else
{
MessageBox.Show("无评分记录!");
}
GitHub
C# 抽签小程序的更多相关文章
- 抽签小程序,妈妈再也不用担心谁洗碗(分配任务)了,so easy
背景 今天谁炒菜,谁洗碗,谁买菜...啊,Boss说用抽签吧,于是有了下图 这样存在作弊的问题(记住棍子特征,谁先,谁后抽等等)于是有了这个抽签小程序(当然小程序我一个人控制,我想不想作弊看心情了) ...
- 抽签小程序(C语言随机数)
最近班级里需要人员抽签参加活动,闲来无事用java的(Math.random()方法||java.util.Random())写了一个随机抽签的,所以我又了解了一下C语言的随机数获取. C语言的随机数 ...
- 公测后,微信小程序应用可能被拒原因.
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 34.0px "PingFang SC Semibold"; color: #23232 ...
- 【小程序分享篇 一 】开发了个JAVA小程序, 用于清除内存卡或者U盘里的垃圾文件非常有用
有一种场景, 手机内存卡空间被用光了,但又不知道哪个文件占用了太大,一个个文件夹去找又太麻烦,所以我开发了个小程序把手机所有文件(包括路径下所有层次子文件夹下的文件)进行一个排序,这样你就可以找出哪个 ...
- 微信小程序开发心得
微信小程序也已出来有一段时间了,最近写了几款微信小程序项目,今天来说说感受. 首先开发一款微信小程序,最主要的就是针对于公司来运营的,因为,在申请appid(微信小程序ID号)时候,需要填写相关的公司 ...
- 微信应用号(小程序)开发IDE配置(第一篇)
2016年9月22日凌晨,微信宣布“小程序”问世,当然只是开始内测了,微信公众平台对200个服务号发送了小程序内测邀请.那么什么是“小程序”呢,来看微信之父怎么说 看完之后,相信大家大概都有些明白了吧 ...
- TODO:小程序开发过程之体验者
TODO:小程序开发过程之体验者 1. 小程序开发过程,先下载开发者并安装开发者工具,现在腾讯开放测试了,普通用户也可以登录开发者工具,如图普通用户登录为调试类型,但是只能建立无AppID的项目 如果 ...
- TODO:即将开发的第一个小程序
TODO:即将开发的第一个小程序 微信小程序是一种全新的连接用户与服务的方式,它可以在微信内被便捷地获取和传播,同时具有出色的使用体验.个人理解小程序是寄宿在微信平台上的一个前端框架,具有跨平台功能, ...
- 微信小程序体验(2):驴妈妈景区门票即买即游
驴妈妈因为出色的运营能力,被腾讯选为首批小程序内测单位.驴妈妈的技术开发团队在很短的时间内完成了开发任务,并积极参与到张小龙团队的内测问题反馈.驴妈妈认为,移动互联网时代,微信是巨大的流量入口,也是旅 ...
随机推荐
- Java中getConstructors()、getDeclaredConstructors()、getConstructor(Class<?>... parameterType)、getDeclaredConstructor(Class<?>... parameterType)的区别
区别一 在方法名末尾有s的是返回一个数组,没有s的是返回单个构造器. 区别二 在方法名中加Declared的是返回所有的构造方法,不加Declared的只返回public访问权限的构造器 区别三 有参 ...
- Spring学习----- Spring配置文件xml文档的schema约束
1.配置文件示例. <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="htt ...
- 常见面试算法题JS实现-仅用递归函数和栈操作逆序一个栈
前言: 因为JAVA和JS语言特性的不同,有些东西在JAVA中可能需要一些技巧和手段才能实现的复杂程序,但是在JS中可能就是天然存在的,所以这套书里面的题目不会全部用JS去实现一遍,因为可能JS的实现 ...
- SpringBoot日记——SpringMvc自动配置与扩展篇
为了让SpringBoot保持对SpringMVC的全面支持和扩展,而且还要维持SpringBoot不写xml配置的优势,我们需要添加一些简单的配置类即可实现: 通常我们使用的最多的注解是: @Bea ...
- 体验搜狐PaaS平台搜狐云景-自动调度(Autoscale)
今天,收到一封「搜狐云景」送邀请码的邮件,价值 200 rmb,立马前往官网简单了解一下,这个玩意儿是搜狐公司云战略的一个产品,一个 PaaS 平台,简单了解了一下特性: 1.自由定制运行环境,这表示 ...
- 阿里云rds 磁盘空间满导致实例锁定
1.RDS 数据日志已经快满了, 导致数据库不能写入,只读. 2. Binlog日志的保存及清理规则 MySQL实例的空间内默认清理binlog日志的规则如下: 实例空间内默认会保存最近18个小时内的 ...
- APP性能测试中的几个重要概念
转载一篇文章,关于app性能测试的几个概念,对于想要接触app测试的朋友或许有些帮助. 我们在使用各种 App 的时候基本会关注到:这款软件挺耗流量的?运行起来设备掉电有点快嘛?切换页面的时候还会有卡 ...
- SICP读书笔记 3.4
SICP CONCLUSION 让我们举起杯,祝福那些将他们的思想镶嵌在重重括号之间的Lisp程序员 ! 祝我能够突破层层代码,找到住在里计算机的神灵! 目录 1. 构造过程抽象 2. 构造数据抽象 ...
- Netty源码分析第3章(客户端接入流程)---->第4节: NioSocketChannel注册到selector
Netty源码分析第三章: 客户端接入流程 第四节: NioSocketChannel注册到selector 我们回到最初的NioMessageUnsafe的read()方法: public void ...
- python os.walk详解
os模块大全详情 os.walkos.walk方法,主要用来遍历一个目录内各个子目录和子文件. os.walk(top, topdown=True, onerror=None, followlinks ...