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):驴妈妈景区门票即买即游
驴妈妈因为出色的运营能力,被腾讯选为首批小程序内测单位.驴妈妈的技术开发团队在很短的时间内完成了开发任务,并积极参与到张小龙团队的内测问题反馈.驴妈妈认为,移动互联网时代,微信是巨大的流量入口,也是旅 ...
随机推荐
- dubbo 接口初入门
最近公司开发新的一套系统,开发出来的方案会基于dubbo分布式服务框架开发的,那么什么是dubbo,身为测试的我,第一眼看到这个,我得去了解了解dubbo是啥玩意,为开展的测试工作做准备,提前先学 d ...
- 如何打war包和jar包
1.jar包的导出 答:右键项目,export—jarfile 生成. 2.war包的导入 答:方法一:右键项目,export—WAR file 生成. 方法二:[ant文件]—[deploy-be ...
- Field 'email' doesn't have a default value
MySQL在出现这个Field xxx doesn't have a default value错误的原因是:我们设置了该字段为非空,但是我们没有设置默认值造成的. 或着 缺少字段.
- 《javascript语言精粹》mindmap
最近刚刚读完<javascript语言精粹>,感觉其中的内容确实给用js作开发语言的童鞋们提了个醒——js里面坑很多啊 不过,我也并不完全认同书中所讲的所有内容,有些书中认为是糟粕的特性, ...
- css学习杂记
1.css中的&语法 &是sass的语法,代表上一级选择器. 例如: .el-row { margin-bottom: 20px; &:last-child { margin- ...
- c语言数字图像处理(五):空间滤波
空间滤波原理 使用大小为m*n的滤波器对大小为M*N的图像进行线性空间滤波,将滤波器模板乘以图像中对应灰度值,相加得模板中心灰度值 a = (m-1)/2, b = (n-1)/2 若f(x+s, y ...
- mac zsh不自动加载~/.bashrc
修改了bashrc, 新开一个终端都要source一下才起作用. 网上有说需要在 . bash_profile加载一次.bashrc. 但是这个和我的问题不一样. 我用的是zsh,需要修改~/.zsh ...
- docker私服搭建nexus3
docker私服搭建有官方的registry镜像,也有改版后的NexusOss3.x,因为maven的原因搭建了nexus,所以一并将docker私服也搭建到nexus上. nexus的安装过程就单独 ...
- AS的使用技巧
title: AS的使用技巧 date: 2016-04-01 23:34:11 tags: [AndroidStudio] categories: [Tool,IDE] --- 概述 本文记录如何使 ...
- Tomcat java zabbix 监控
排除汤姆猫错误的步骤 ps-ef | grep java或jps –lvm 查看java pid进程 netstat –lntup | grep java 查看java 端口有没有启动 查看 tomc ...