问题描述

国庆节快要到了,实验室要求设计一个抽奖程序。先将所有实验室成员的姓名输入到一个excel文件中,然后运行程序,读取excel文件中的数据,从中随机抽取一个人作为中奖者。用matlab就可以解决这个问题。

程序设计步骤

1.在命令行窗口输入:
guide
2.选择“Blank GUI(DEfault)”,点击“确定。
3.如图所示,创建一个面板,一个静态文本(在这里要跟之前看我文章的朋友们道个歉,我忘记写要加一个静态文本,导致大家运行后出错),与三个按钮。


4.分别右击各个控件,选择“属性检查器”,将其名称分别改为:名单、载入名单、中奖者、退出。静态文本的名称改为空白。并把“中奖者”按钮的“Enable”属性改成"off"。

控件的其他属性,比如文字大小、文字颜色、文字字体、控件位置等等,大家可以根据自己的喜好修改。

最后保存文件名为:choujiang.fig。改完后的界面如图所示:

这里要注意一点,一定要保证“名单”控件的标签是"uipanel1",“静态文本”控件的标签是"text1",“载入名单”控件的标签是"“pushbuttom1”,“中奖者”控件的标签是"pushbuttom2",“退出”控件的标签是"pushbuttom3",否则后面的代码会与这些控件不对应,导致运行出错。

5.编写代码,打开choujiang.m文件,修改其中三个按钮所对应的代码,具体代码与注释如下:

function pushbutton1_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
%---载入名单---
global num txt
[num, txt]= xlsread('1111.xlsx');%读取ecxl文件,把返回的数据与文本分开保存。
n=size(txt,1);%n为excel中的总数据数,也就是总人数。
set(handles.pushbutton2,'enable','on');%将按钮2“中奖者”设为开启状态。
i=1;
while i<n+1for i=1:nset(handles.text1,'string',txt(i));pause(0.1);%每隔0.1秒更新一个姓名并在面板上显示。endif i==ni=1;end
end% --- Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton2 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
%----中奖者----
global num txtn=size(txt,1);
i=randi([1,n],1);%从1-n中随机取一个数。
msgbox(['中奖者是:';txt(i)]);%中奖者为第i个人。% --- Executes on button press in pushbutton3.
function pushbutton3_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton3 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
clear;close;%关闭程序。

6.点击“运行”,运行程序。点击“载入名单”,结果如图所示:

点击“中奖者”,结果如图所示:

参考文献

.
[1]:https://www.zhihu.com/question/27780598/answer/434740042
[2]:https://download.csdn.net/download/sujuan1219/2446731

后记

最近有好几个朋友私信或者QQ问我,为什么他们做出来的程序各种报错。说实话这些报错我也不太清楚为什么,只能说肯定是流程中的某一步做错了。在此我附上了我自己写的程序,解压到matlab对应的目录下就可以运行了。报错的朋友们可以把自己写的程序和我写的进行对比,看看错误的地方到底在哪里。
下载链接:https://download.csdn.net/download/a453712990/13740036

用matlab设计一个简单的抽奖程序相关推荐

  1. JAVA同时输入用户名和密码_用java模拟设计一个简单的“用户注册”程序。当用户输入用户名和密码时,单击“注...

    用java模拟设计一个简单的"用户注册"程序.当用户输入用户名和密码时,单击"注 2020 - 9 - 26 TAG : 所有功能均已实现,如有不满意的地方我再修改imp ...

  2. 用VB制作简单加法计算机,用VB设计一个简单的加法程序

    计算机的多媒体技术已经广泛普及, 对于一般的用户来说, 采用可视化编程工具是的选择, VB程序设计语言就是其中一个典型的代表.Visual Basic是Microsoft Windows的编程语言.V ...

  3. 用switch语句编程设计一个简单的计算器程序

    用switch语句编程设计一个简单的计算器程序. 要求根据用户从键盘输入的表达式(注意操作数与运算符之间没有空格): 操作数1 运算符op 操作数2 计算表达式的值,指定的算术运算符为加(+).减(- ...

  4. 编程设计一个简单的计算器程序,要求根据用户从键盘输入的表达式,操作数

    编程设计一个简单的计算器程序,要求根据用户从键盘输入的表达式,操作数 首先,先写出各类计算的函数,参数从主函数中提取,返回计算后所得的值 因计算器不只要求能计算加减乘除,所以所有函数类型都为doubl ...

  5. 编程设计一个简单的计算器程序

    要求 用switch语句编程设计一个简单的计算器程序.要求根据用户从键盘输入的表达式. 操作数1 运算符op 操作数2 计算表达式的值.指定的算术运算符为加(+).减(-).乘(*).除(/). 当除 ...

  6. 编写用switch语句编程设计一个简单的计算器程序

    编程要求 根据提示,在右侧编辑器补充代码.要求用switch语句编程设计一个简单的计算器程序.要求根据用户从键盘输入的表达式. 操作数1 运算符op 操作数2 计算表达式的值.指定的算术运算符为加(+ ...

  7. c语言12之编程设计一个简单的计算器程序,要求根据用户从键盘输入的表达式:操作数1 运算符op 操作数2 计算表达式的值,指定的运算符为加减乘除。

    题目: 设计一个简单的计算器程序,要求根据用户从键盘输入的表达式: 操作数1 运算符op 操作数2 计算表达式的值,指定的运算符为加减乘除. 源代码: #include<stdio.h> ...

  8. Python做一个简单的抽奖程序

    今天刚上班,女朋友给我来了个需求,她需要一个抽奖程序,需求如下: 1.要一个抽奖程序,输入为很多图片,输出为随机选出几张符合要求的图片 2.简单快速,不用界面也行,她早上就要 我只是一个小小的码农,怎 ...

  9. matlab设计一个简单图像直方图均衡的GUI程序

    效果,感觉画丑了我女神 命令行输入 guide 创建空白 GUI 程序, 拖动控件,修改按钮 String 按钮1用来选择图片,回调函数下粘贴程序 function pushbutton1_Callb ...

最新文章

  1. Atitit.js跨域解决方案attilax大总结 后台java php c#.net的CORS支持
  2. Metail Design各个控件(二)
  3. Android GIS开发系列-- 入门季(11) Callout气泡的显示
  4. 蓝桥杯基础模块06_1:定时器计数器
  5. 1-1 顺序表操作集 (20 分)
  6. python创建数组的方法_numpy创建array的方法汇总
  7. mysql 定时统计_PHP+MySQL定时数据统计优化
  8. 很多朋友问做自媒体的意义是什么?
  9. eda多功能时钟设计_Altera FPGACPLD设计 基础篇+高级篇(附随书光盘)
  10. 星环inceptor建表公式以及各个表的区别联系
  11. 公司用的非标普通自动化用单片机还是plc_高级电气自动化工程师必备十大技能...
  12. Numpy 笔记(二): 多维数组的切片(slicing)和索引(indexing)
  13. PowerApps教程10-图表的设计与嵌入
  14. 人工智能能否在翻译中胜过人类?
  15. 微信公众号网页OAuth2.0授权自动登录(Java版)
  16. 计算机毕业设计php的毕业设计选题管理系统
  17. 时间戳转时间精确到毫秒
  18. 1334177-81-9,S-acetyl-PEG8-alcohol乙酰硫基可以脱保护生成巯基
  19. 设置WINRE的硬盘启动
  20. 【tensorflow】conv2d/conv3d/maxpool2d/maxpool3d

热门文章

  1. Blocks Programming
  2. 为数不多的会唱歌的男人——郝歌
  3. 有趣的汉语:同音文(三):《饥鸡集矶记》
  4. QT怎么设置字体轮廓、字体位置、字体样式、字体间距、窗口背景色大小、隐藏鼠标图标
  5. 国内外高质量的电机控制类期刊
  6. 数字中国建设整体布局规划解读
  7. Android QQ空间浏览图片动画特效的实现(※)
  8. 电脑清理——C盘深度清理腾出10G空间 NVIDIA更新驱动删除
  9. 仿饿了么加入购物车旋转控件
  10. 计算机系统与维护的专业知识,计算机系统与维护专业