1 打开matlab,打开test1.m
点击运行,若出现选择 更改文件夹
2 引导界面
(在这个界面,只许用户鼠标点击开始,其余的别乱按按键。 记得将打字法关掉,切换到小写)
3 做题界面
根据颜色选择按键,直到做完题。80到题
界面出现,鼠标一定要点击下界面,不然键盘按键无效不起作用。
4结果
这里只统计正确的次数以及对应累加的时间。
2文件


function varargout = test1varargin)
% TEST1 MATLAB code for test1.fig
% TEST1, by itself, creates a new TEST1 or raises the existing
% singleton*.
%
% H = TEST1 returns the handle to a new TEST1 or the handle to
% the existing singleton*.
%
% TEST1'CALLBACK',hObject,eventData,handles,...) calls the local
% function named CALLBACK in TEST1.M with the given input arguments.
%
% TEST1'Property','Value',...) creates a new TEST1 or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before test1_OpeningFcn gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to test1_OpeningFcn via varargin.
%
% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one
% instance to run singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES
% Edit the above text to modify the response to help test1
% Last Modified by GUIDE v2.5 13-Jan-2019 00:41:34
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct'gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @test1_OpeningFcn, ...
'gui_OutputFcn', @test1_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischarvarargin{1})
gui_State.gui_Callback = str2funcvarargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcngui_State, varargin{:});
else
gui_mainfcngui_State, varargin{:});
end
global t0;
t0=clock;
% --- Executes just before test1 is made visible.
function test1_OpeningFcnhObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data see GUIDATA)
% varargin command line arguments to test1 see VARARGIN)
% Choose default command line output for test1
handles.output = hObject;
% Update handles structure
guidatahObject, handles);
% UIWAIT makes test1 wait for user response see UIRESUME)
% uiwaithandles.figure1);
% --- Outputs from this function are returned to the command line.
function varargout = test1_OutputFcnhObject, eventdata, handles)
% varargout cell array for returning output args see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data see GUIDATA)
% Get default command line output from handles structure
varargout{1} = handles.output;
function [color_c] = tran_keytocolorKey)
%判断是否正确
color_c='';
switch Key
case 'a'
color_c='r';%红色
case 's'
color_c='g'; %绿色
case 'd'
color_c='b';%蓝色
case 'f'
color_c='y';%黄色
otherwise
warning'按键无效! 请选择 a s d f 按键!');
end
function [num_r] = tran_leibieidv,handles)
%判断是否正确
num_r='';
switch idv % 判断随机图的题型类
case '1'
num_r= handles.r1;
case '2'
num_r= handles.r2;
case '3'
num_r= handles.r3;
case '4'
num_r= handles.r4;
otherwise
warning'题目类型找不到!');
end
% --- Executes on key press with focus on figure1 and none of its controls.
function figure1_KeyPressFcnhObject, eventdata, handles)
% hObject handle to figure1 see GCBO)
% eventdata structure with the following fields see MATLAB.UI.FIGURE)
% Key: name of the key that was pressed, in lower case
% Character: character interpretation of the keys) that was pressed
% Modifier: names) of the modifier keys) i.e., control, shift) pressed
% handles structure with handles and user data see GUIDATA)
% 定义 a s d f g h j 按键对应颜色
% 获取题号
all_number=80;
num=gethandles.text_num,'Value');
global word;
global color;
global randi5_16;
word={
'1', '1', '1', '1', '2', '2', '2', '2', '3', '3', '3', '3', '4', '4', '4' , '4';
'红', '绿', '蓝', '黄' ,'红', '绿', '蓝', '黄' , '我', '爱', '中', '国','洪', '皇', '拦', '滤';
};
color={'r', 'g', 'b', 'y' ,'g', 'b', 'y' , 'r' , 'r', 'y', 'b', 'g', 'g', 'b', 'y ', 'r';};
randi5_16=[1 5 9 13 2 6 10 14 3 7 11 15 4 8 12 16 2 6 10 14 4 8 12 16 1 5 9 13 3 7 11 15 10 14 4 8 9 13 3 7 11 15 1 5 12 16 2 6 4 8 9 13 12 16 2 6 10 14 3 7 11 15 1 5 9 13 12 16 3 7 11 15 2 6 10 14 1 5 4 8;];
%1获取按键
Key= getgcf,'CurrentCharacter');
%按键转换成颜色
color_c = tran_keytocolorKey);
% warningcolor_c);
%2 判断是哪个随机图
ID=handles.randid;
if Key =='a'|| Key =='s' || Key =='d'|| Key =='f' & num<=all_number %判断按下的是否是回车键
global t1;
t1=clock;
global t0;
handles.time.Value=etimet1, t0);
handles.time.String=handles.time.Value;
t0=clock;
%2获取当前显示字体控件
text_show1=handles.text_show;
%3 获取题目类别
leibie_num=word{1,ID.Value};
if leibie_num=='1'
if handles.color_temp.String==color_c & num<=all_number
num_r= handles.r1;
setnum_r, 'Value',num_r.Value+1);
setnum_r, 'String',num_r.Value);
handles.t1.Value= handles.t1.Value+ handles.time.Value;
handles.t1.String= handles.t1.Value;
end
elseif leibie_num=='2'
if handles.color_temp.String==color_c & num<=all_number
num_r= handles.r2;
setnum_r, 'Value',num_r.Value+1);
setnum_r, 'String',num_r.Value);
handles.t2.Value= handles.t2.Value+ handles.time.Value;
handles.t2.String= handles.t2.Value;
end
elseif leibie_num=='3'
if handles.color_temp.String==color_c & num<=all_number
num_r= handles.r3;
setnum_r, 'Value',num_r.Value+1);
setnum_r, 'String',num_r.Value);
handles.t3.Value= handles.t3.Value+ handles.time.Value;
handles.t3.String= handles.t3.Value;
end
elseif leibie_num=='4'
if handles.color_temp.String==color_c & num<=all_number
num_r= handles.r4;
setnum_r, 'Value',num_r.Value+1);
setnum_r, 'String',num_r.Value);
handles.t4.Value= handles.t4.Value+ handles.time.Value;
handles.t4.String= handles.t4.Value;
end
end
% 修改题号+1
if num<=all_number-1
temp1=handles.text_num;
settemp1, 'Value',num+1);
settemp1, 'String',num+1);
%ID1=randi16,1);
ID1=randi5_16temp1.Value);
setID, 'Value',randi5_16temp1.Value));
setID, 'String',randi5_16temp1.Value));
settext_show1, 'String',word2,randi5_16temp1.Value)));
settext_show1, 'ForegroundColor',color{randi5_16temp1.Value)});
sethandles.color_temp, 'String',color{randi5_16temp1.Value)});
else
temp1=handles.text_num;
settemp1, 'Value',all_number+1);
open'result.fig')
handles.text10.Visible='on';
handles.text11.Visible='on';
handles.text14.Visible='on';
handles.text15.Visible='on';
handles.text16.Visible='on';
handles.text12.Visible='on';
handles.r1.Visible='on';
handles.r2.Visible='on';
handles.r3.Visible='on';
handles.r4.Visible='on';
handles.text8.Visible='on';
handles.t1.Visible='on';
handles.t2.Visible='on';
handles.t3.Visible='on';
handles.t4.Visible='on';
end
end
% --- Executes on button press in pushbutton1.
function pushbutton1_CallbackhObject, 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)
% --- Executes on button press in pushbutton2.
function pushbutton2_CallbackhObject, 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)
handles.text32.Visible='off';
handles.text36.Visible='off';
handles.text38.Visible='off';
handles.pushbutton2.Visible='off';
handles.text_show.Visible='on';
global t0;
t0=clock;
% --- Executes on key press with focus on pushbutton2 and none of its controls.
function pushbutton2_KeyPressFcnhObject, eventdata, handles)
% hObject handle to pushbutton2 see GCBO)
% eventdata structure with the following fields see MATLAB.UI.CONTROL.UICONTROL)
% Key: name of the key that was pressed, in lower case
% Character: character interpretation of the keys) that was pressed
% Modifier: names) of the modifier keys) i.e., control, shift) pressed
% handles structure with handles and user data see GUIDATA)
handles.text32.Visible='off';
handles.text36.Visible='off';
handles.text38.Visible='off';
handles.pushbutton2.Visible='off';
handles.text_show.Visible='on';
global t0;
t0=clock;











