收藏 分享(赏)

MATLAB科学计算器设计.pdf

上传人:weiwoduzun 文档编号:5652891 上传时间:2019-03-11 格式:PDF 页数:18 大小:841.35KB
下载 相关 举报
MATLAB科学计算器设计.pdf_第1页
第1页 / 共18页
MATLAB科学计算器设计.pdf_第2页
第2页 / 共18页
MATLAB科学计算器设计.pdf_第3页
第3页 / 共18页
MATLAB科学计算器设计.pdf_第4页
第4页 / 共18页
MATLAB科学计算器设计.pdf_第5页
第5页 / 共18页
点击查看更多>>
资源描述

1、1/18目 录计 算 器 的 效 果 图 错 误 ! 未 定 义 书 签 。第 一 章 GUI设 计 界 面 31.1打 开 GUI31.2.添 加 按 钮 41.3.根 据 按 钮 的 作 用 及 视 觉 效 果 做 一 定 的 修 改 41.4.保 存 、 添 加 功 能 函 数 51.4.1 数 字 键 编 写 .51.4.2 符 号 键 的 编 写 .51.4.3 运 算 符 “ =” 的 编 写 .51.4.4 按 键 “ back” 的 编 写 .61.4.5 按 键 “ 清 空 ” 的 编 写 .61.4.6 按 键 “ 退 出 ” 的 编 写 .61.4.7 按 键 “ 二 进

2、 制 数 转 十 进 制 数 ” 的 编 写 .61.4.8 按 键 “ 十 进 制 数 转 二 进 制 数 ” 的 编 写 .6第 二 章 计 算 器 的 使 用 62.1 除 法 运 算 ( ) 62.2 平 方 运 算 ( 2) 72.3 函 数 cos ( /3) 的 计 算 72.4 函 数 arctan ( /3) 的 计 算 82.5 以 2为 底 的 对 数 ( log2) 的 计 算 82.6 十 进 制 数 转 二 进 制 数 的 计 算 92.7 二 进 制 数 转 十 进 制 数 的 计 算 10第 三 章 各 按 键 的 程 序 源 代 码 11第 四 章 问 题 和

3、 解 决 方 法 16第 五 章 心 得 体 会 16参 考 文 献 172/18计 算 器 的 效 果 图 :3/18第 一 章 GUI 设 计 界 面 :1.1 打 开 G UI输 入 Guide 回 车 或 者 在 工 具 栏 上 点 击 图 标 打 开 Guide 窗 口 :4/18图 11.2.添 加 按 钮图 21.3.根 据 按 钮 的 作 用 及 视 觉 效 果 做 一 定 的 修 改双 击 按 钮 ( PuchButton) 进 入 按 键 属 性 修 改 显 示 字 符 串 大 小 、 字 体 和 颜 色 ,然 后 对 按 钮 的 位 置 进 行 排 布 , 尽 量 使 按

4、 钮 集 中 在 静 态 文 本 框 下 面 。5/181.4.保 存 、 添 加 功 能 函 数把 做 好 的 按 钮 及 静 态 文 本 框 保 存 后 自 动 弹 出 Editor的 M文 本 , 对 然 后 对 相应 的 pushbutton添 加 功 能 函 数 。 以 下 是 相 应 按 钮 的 功 能 函 数 。1.4.1 数 字 键 编 写在 function pushbutton1_Callback(hObject, eventdata, handles) 下 输 入 :textString = get(handles.text1,String);textString =st

5、rcat(textString,0);set(handles.text1,String,textString)这 是 使 用 句 柄 handles指 向 对 象 text1, 并 以 字 符 串 形 式 来 存 储 数 据 文 本 框 text1的 内 容 , 并 存 储 数 个 “ 0” ,然 后 由 set(handles.text1,String,textString在 text1中 输 出 。同 理 , 分 别 在 function pushbutton210_Callback(hObject, eventdata,handles) 下 给 19数 字 按 键 下 编 写 此 类 程

6、 序 。1.4.2 符 号 键 的 编 写function pushbutton12_Callback(hObject, eventdata, handles)textString = get(handles.text1,String);textString =strcat(textString, );set(handles.text1,String,textString)strcat的 作 用 是 将 两 个 字 符 串 连 接 起 来 , 就 是 在 已 输 入 的 存 储 数 据 textString后 添 加 “ ” 进 行 运 算 。然 后 执 行 set(handles.text1

7、,String,textString)。 符 号 键 - 、 * 、 / 与 的 运 算 函 数 类 似 。 “ 平 方 运 算 ” ,主 要 是 由 “ 2” 功 能 实 现 。1.4.3 运 算 符 “ =” 的 编 写textString = get(handles.text1,String);ans =eval(textString);“ eval” 的 作 用 是 将 符 号 表 达 式 转 换 成 数 值 表 达 式 。再 由 set(handles.text1,String,ans)输 出 。6/181.4.4 按 键 “ back” 的 编 写textString=get(ha

8、ndles.text1,String)w=length(textString)t=char(textString)textString=t(1:w-1) %将 w个 字 符 串 转 成 w-1个 , 即 删 除 了 末 位 字 符set(handles.text1,String,textString)1.4.5 按 键 “ 清 空 ” 的 编 写set(handles.text1,String,)1.4.6 按 键 “ 退 出 ” 的 编 写close(gcf);1.4.7 按 键 “ 二 进 制 数 转 十 进 制 数 ” 的 编 写textString=get(handles.text1,

9、String)e = bin2dec(textString);set(handles.text1,String,e);1.4.8 按 键 “ 十 进 制 数 转 二 进 制 数 ” 的 编 写textString = get(handles.text1,String);textString = strcat(textString,dec2bin();set(handles.text1,String,textString)第 二 章 计 算 器 的 使 用2.1 除 法 运 算 ( )7/18图 3 图 42.2 平 方 运 算 ( 2)图 5 图 62.3 函 数 cos ( /3) 的 计

10、算8/18图 7 图 82.4 函 数 arctan ( /3) 的 计 算图 9 图 102.5 以 2 为 底 的 对 数 ( log 2) 的 计 算9/18图 11 图 122.6 十 进 制 数 转 二 进 制 数 的 计 算 ( 调 用 dec2bin 函 数 )图 13 图 1410/182.7 二 进 制 数 转 十 进 制 数 的 计 算 ( 调 用 bin2dec 函 数 )图 15 图 16经 过 计 算 , 这 些 结 果 均 与 实 际 结 果 相 吻 合 , 计 算 器 的 功 能 实 现 的 完 好 且 能 实现 较 大 数 值 的 运 算 , 计 算 结 果 用

11、 科 学 技 术 法 表 示 。11/18第 三 章 各 按 键 的 程 序 源 代 码按 键 “ 0-9、 +、 -、 、 、 .、 = 、 x2 ” ( 通 过 get 函 数 获 得 输 入 的 字 符 ,函 数 strcat 获 得 相 应 字 符 ,并 用 set函 数 进 行 显 示 输 出 ) :function pushbutton1_Callback(hObject, eventdata, handles)textString=get(handles.text1,String)textString=strcat(textString,0)set(handles.text1,S

12、tring,textString)function pushbutton2_Callback(hObject, eventdata, handles)textString=get(handles.text1,String)textString=strcat(textString,1)set(handles.text1,String,textString)function pushbutton3_Callback(hObject, eventdata, handles)textString=get(handles.text1,String)textString=strcat(textString

13、,2)set(handles.text1,String,textString)function pushbutton4_Callback(hObject, eventdata, handles)textString=get(handles.text1,String)textString=strcat(textString,3)set(handles.text1,String,textString)function pushbutton5_Callback(hObject, eventdata, handles)textString=get(handles.text1,String)textSt

14、ring=strcat(textString,4)set(handles.text1,String,textString)function pushbutton6_Callback(hObject, eventdata, handles)textString=get(handles.text1,String)textString=strcat(textString,5)set(handles.text1,String,textString)function pushbutton7_Callback(hObject, eventdata, handles)textString=get(handl

15、es.text1,String)12/18textString=strcat(textString,6)set(handles.text1,String,textString)function pushbutton8_Callback(hObject, eventdata, handles)textString=get(handles.text1,String)textString=strcat(textString,7)set(handles.text1,String,textString)function pushbutton9_Callback(hObject, eventdata, h

16、andles)textString=get(handles.text1,String)textString=strcat(textString,8)set(handles.text1,String,textString)function pushbutton10_Callback(hObject, eventdata, handles)textString=get(handles.text1,String)textString=strcat(textString,9)set(handles.text1,String,textString)function pushbutton11_Callba

17、ck(hObject, eventdata, handles)textString=get(handles.text1,String)textString=strcat(textString,+)set(handles.text1,String,textString)function pushbutton12_Callback(hObject, eventdata, handles)textString=get(handles.text1,String)textString=strcat(textString,-)set(handles.text1,String,textString)func

18、tion pushbutton13_Callback(hObject, eventdata, handles)textString=get(handles.text1,String)textString=strcat(textString,*)set(handles.text1,String,textString)function pushbutton14_Callback(hObject, eventdata, handles)textString=get(handles.text1,String)textString=strcat(textString,/)13/18set(handles

19、.text1,String,textString)function pushbutton15_Callback(hObject, eventdata, handles)textString=get(handles.text1,String)textString=strcat(textString,.)set(handles.text1,String,textString)按 键 “ =” :function pushbutton16_Callback(hObject, eventdata, handles)textString=get(handles.text1,String)s=eval(t

20、extString)set(handles.text1,String,s)按 键 “ x2” :function pushbutton17_Callback(hObject, eventdata, handles)textString=get(handles.text1,String)textString=strcat(textString,2)set(handles.text1,String,textString)退 位 键 “ back” :function pushbutton18_Callback(hObject, eventdata, handles)textString=get(h

21、andles.text1,String)w=length(textString)t=char(textString)textString=t(1:w-1)set(handles.text1,String,textString)清 空 键 :function pushbutton19_Callback(hObject, eventdata, handles)set(handles.text1,String,)退 出 键 :function pushbutton20_Callback(hObject, eventdata, handles)close(gcf);% hObject handle t

22、o pushbutton20 (see GCBO)% handles structure with handles and user data (see GUIDATA)14/18科 学 计 算 函 数 :按 键 “ ” : 通 过 get函 数 获 得 输 入 的 字 符 , 函 数 strread获 得 输 入 字 符 ,并 用sqrt函 数 计 算 结 果 , set函 数 进 行 显 示 输 出textString = get(handles.text1,String);if(strcmp(textString,0)=1)set(handles.text1,String,0) ;els

23、ea = strread(textString, %f);a=sqrt(a);set(handles.text1,String,a)end按 键 “ sin” ( 通 过 get函 数 获 得 输 入 的 字 符 , 函 数 strread获 得 输 入 字 符 ,并用 sin函 数 计 算 结 果 , set函 数 进 行 显 示 输 出 ) :textString = get(handles.text1,String);textString = strcat(textString,sin();set(handles.text1,String,textString)按 键 “ cos” :t

24、extString = get(handles.text1,String);textString = strcat(textString,();set(handles.text1,String,textString)按 键 “ tan” :textString = get(handles.text1,String);if(strcmp(textString,1.57)=1)|(strcmp(textString,-1.57)=1)set(handles.edit1,String,inf);elsetextString = strcat(textString,tan();set(handles.

25、text1,String,textString)end按 键 “ arcsin” :textString = get(handles.text1,String);textString = strcat(textString,asin();set(handles.text1,String,textString)按 键 “ arccos” :textString = get(handles.text1,String);textString = strcat(textString,acos();set(handles.text1,String,textString)15/18按 键 “ arctan

26、” :textString = get(handles.text1,String);textString = strcat(textString,atan();set(handles.text1,String,textString)按 键 “ log2” :textString = get(handles.text1,String);if(strcmp(textString,0)=1)set(handles.text1,String,error) ;elsea = strread(textString, %f);a=log2(a);set(handles.text1,String,a)end按

27、 键 “ (” :textString = get(handles.text1,String);textString = strcat(textString, ();set(handles.text1,String,textString)按 键 “ )” :textString = get(handles.text1,String);textString = strcat(textString,);set(handles.text1,String,textString)按 键 “ 二 进 制 数 转 十 进 制 数 ” :textString=get(handles.text1,String)

28、e = bin2dec(textString);set(handles.text1,String,e);按 键 “ 十 进 制 数 转 二 进 制 数 ” :textString = get(handles.text1,String);textString = strcat(textString,dec2bin();set(handles.text1,String,textString)16/18第 四 章 问 题 和 解 决 方 法4 1.本 次 课 程 设 计 中 开 始 时 遇 到 的 问 题 是 数 据 进 行 清 零 后 , 再 输 入 其 他 的数 据 , 清 零 后 的 字 符

29、0 仍 会 保 留 , 会 影 响 其 他 数 据 , 解 决 办 法 是 将 数 据 用 空格 替 换 掉 就 实 现 了 清 空 : set(handles.text1,String,)4 2.在 定 义 正 弦 余 弦 等 函 数 的 时 候 , 需 要 注 意 其 定 义 域 , 值 域 的 问 题 。4 3 开 始 时 我 的 “ sin” 函 数 编 程 如 下 :textString = get(handles.text1,String);a = strread(textString, %f); a=sin(a);set(handles.text1,String,a)%这 样 只

30、 能 在 输 入 完 数 据 后 按 “ sin” 键 实 现 运 算 , 很 不 直 观 。修 改 后 可 以 实 现 按 下 sin键 后 显 示 “ sin(” 再 输 入 要 运 算 的 数 据 之 后 加 上 “ )”按 下 “ =” 键 后 就 可 以 运 算 出 结 果 了 , 这 样 相 对 更 直 观 明 了 。textString = get(handles.text1,String);textString = strcat(textString,sin();set(handles.text1,String,textString)4 4.在 编 写 十 进 制 数 转 二

31、进 制 数 时 , 计 算 的 结 果 总 是 会 在 前 面 多 出 “ 110” ,使 得 转 换 结 果 错 误 , 后 来 通 过 精 简 改 进 程 序 , 直 接 调 用 des2bin函 数 计 算 , 所 得的 测 试 结 果 都 是 正 确 的 。17/18第 五 章 心 得 体 会本 次 课 程 设 计 用 MATLAB的 GUI接 口 设 计 一 个 简 单 的 计 算 器 , 主 要 对 数 字及 运 算 “ 0-9、 +、 -、 、 、 .、 = 、 x2 、 、 sin、 arcsin、 log2” 等 的 代码 程 序 的 了 解 , 在 设 计 的 过 程 中

32、也 遇 到 不 少 的 问 题 , 通 过 和 同 学 的 讨 论 , 和 老 师的 交 流 , 让 我 知 道 了 自 己 的 错 误 和 不 足 , 最 终 顺 利 地 解 决 了 这 些 问 题 。 这 次 课 程设 计 , 使 我 进 一 步 加 深 了 对 课 本 知 识 的 了 解 和 掌 握 , 巩 固 了 所 学 的 基 本 知 识 , 更加 体 会 到 了 MATLAB功 能 的 丰 富 , 更 加 深 刻 的 认 识 了 MATLAB, 熟 练 了 编 程 设 计 。其 中 对 计 算 器 按 键 的 颜 色 、 大 小 和 排 版 , 使 我 的 思 维 更 加 的 缜

33、密 , 让 我 在 以后 的 工 作 生 活 中 , 得 到 了 思 维 的 锻 炼 。 在 以 后 学 习 中 , 我 会 更 加 刻 苦 , 以 锻 炼 自己 的 能 力 。18/18参 考 文 献( 1) 刘 卫 国 .MATLAB程 序 设 计 与 应 用 M.北 京 : 高 等 教 育 出 版( 2) 郑 阿 奇 .MATLAB实 用 教 程 M.北 京 : 电 子 工 业 出 版 社( 3) 罗 华 飞 .MATLABGUI设 计 学 习 手 记 M.北 京 : 北 京 航 空 航 天 大 学 出 版 社(4) 张 威 .MATLAB基 础 与 编 程 入 门 M.西 安 : 西 安 电 子 科 技 大 学 出 版 社( 5) 孙 屹 .MATLAB通 信 仿 真 开 发 手 册 M.北 京 : 国 防 工 业 出 版 社

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报