软件课程设计实验报告(可视化)1
更新时间:2023-05-23 07:28:01 阅读量: 实用文档 文档下载
软件课程设计实验报告(可视化)
《软件课程设计》报告
班 级: 信安10-1 姓 名: 学 号: 指导老师:
中国矿业大学计算机科学与技术学院
软件课程设计实验报告(可视化)
第三阶段 可视化编程
1.题目 :
用你熟悉的一种可视化编程语言实现如下图所示的计算器。该计算器需要实现基础的数学运算,如加,减,乘,除。
2.需求分析:
设计一个MFC程序,能够实现基础的数学运算,例如:加、减、乘、除。 根据题目要求,规定如下: 测试数据: 进行操作:“1”、“+”、“10”、“=” 结果输出:“11” 进行操作:“20”、“-”、“12”、“=” 结果输出:“8” 进行操作:“5”、“*”、“12”、“=” 结果输出:“60” 进行操作:“12”、“/”、“2”、“=” 结果输出:“6” 进行操作:“9”、“sqrt” 结果输出:“3” 进行操作:“5”、“1/X” 结果输出:“0.2”
3.概要设计
(1)
设计对话框如下:
(2)编辑框用来输入和输出结果;
(3)给相应的数字和运算符按钮添加相关的函数和变量;
软件课程设计实验报告(可视化)
4.详细设计与编码:
(1)启动Visual C++,新建一个Visual C++项目,选用MFC应用程序模板,工程名称为“简单计算器”;
(2)在应用程序向导的“程序类型”选项中选择“基本对话”,然后按照步骤完成项目的建立;
软件课程设计实验报告(可视化)
软件课程设计实验报告(可视化)
软件课程设计实验报告(可视化)
软件课程设计实验报告(可视化)
(3)在Resource View窗口中打开主对话框资源IDD_MY_DIALOG,利用资源编辑器创建所需要的对话框模板;
(4)右击个控件,打开Properties窗口,从中设置个控件的属性; 编辑框:IDC_EDIT_PUTOUT 默认设置; 按钮: IDC_NUMBER1 Caption:“1” 按钮: IDC_NUMBER2 Caption:“2”
软件课程设计实验报告(可视化)
按钮: IDC_NUMBER3 Caption:“3” 按钮: IDC_NUMBER4 Caption:“4” 按钮: IDC_NUMBER5 Caption:“5” 按钮: IDC_NUMBER6 Caption:“6” 按钮: IDC_NUMBER7 Caption:“7” 按钮: IDC_NUMBER8 Caption:“8” 按钮: IDC_NUMBER9 Caption:“9” 按钮: IDC_NUMBER10 Caption:“0” 按钮: IDC_NUMBER11 Caption:“+/-” 按钮: IDC_NUMBER12 Caption:“退格” 按钮: IDC_NUMBER13 Caption:“/” 按钮: IDC_NUMBER14 Caption:“*” 按钮: IDC_NUMBER15 Caption:“+” 按钮: IDC_NUMBER16 Caption:“—” 按钮: IDC_NUMBER17 Caption:“C” 按钮: IDC_NUMBER18 Caption:“Sqrt” 按钮: IDC_NUMBER19 Caption:“1/X” 按钮: IDC_NUMBER20 Caption:“=”
(5)为CMyDlg类中对应的控件添加消息映射函数:
在“简单计算器Dlg.h”文件中添加下述代码: afx_msg void OnNumberKey(UINT nID); afx_msg void OnOperationKey(UINT nID); 如下图:
在“简单计算器Dlg.cpp”文件中添加下述代码:
ON_COMMAND_RANGE(IDC_NUMBER1,IDC_NUMBER10,OnNumberKey) ON_COMMAND_RANGE(IDC_NUMBER11,IDC_NUMBER20,OnOperationKey)
如下图:
(6)从Class Wizard为CMyDlg 类中的IDC_EDIT_PUTOUT控件添加变量类型为double,变量名称为m_number的变量;
如下图:
软件课程设计实验报告(可视化)
(7)为CMyDlg
类添加以下变量和函数;
(8)为OnNumberKey()函数添加如下代码,完成数字按钮被单击时记录运算数的功能;
//数字按钮被单击,完成记录运算数的功能 void CMyDlg::OnNumberKey(UINT nID) {
int n=0; //获取数字 switch(nID) {
case IDC_NUMBER1:n=1;break; case IDC_NUMBER2:n=2;break; case IDC_NUMBER3:n=3;break; case IDC_NUMBER4:n=4;break; case IDC_NUMBER5:n=5;break; case IDC_NUMBER6:n=6;break; case IDC_NUMBER7:n=7;break; case IDC_NUMBER8:n=8;break; case IDC_NUMBER9:n=9;break; case IDC_NUMBER10:n=0;break; }
//变更运算符
if(NumberState==1) { m_number=m_number*10+n; number1=m_number; UpdateData(FALSE); }
//第二运算符
软件课程设计实验报告(可视化)
else { m_number=m_number*10+n; number2=m_number; UpdateData(FALSE); } }
(9)为OnOperationKey()函数添加如下代码,完成操作符按钮被单击时完成运算的功能;
//操作符按钮被单击,完成运算功能
void CMyDlg::OnOperationKey(UINT nID) {
//操作符号 switch(nID) {
case IDC_NUMBER11: //负号 m_number=-m_number; if(NumberState==1) number1=m_number; else number2=m_number; UpdateData(FALSE); break;
case IDC_NUMBER12: //退格 m_number=(int)m_number/10; if(NumberState==1) number1=m_number; else number2=m_number; UpdateData(FALSE); break;
case IDC_NUMBER13: // / OperationState=1; m_number=0; UpdateData(FALSE); NumberState=2; break;
case IDC_NUMBER14: // OperationState=2; m_number=0;
软件课程设计实验报告(可视化)
UpdateData(FALSE); NumberState=2; break;
case IDC_NUMBER15: // OperationState=3; m_number=0; UpdateData(FALSE); NumberState=2; break;
case IDC_NUMBER16: //~ OperationState=4; m_number=0; UpdateData(FALSE); NumberState=2; break;
case IDC_NUMBER17: // C number1=number2=m_number=0; UpdateData(FALSE); NumberState=1; break;
case IDC_NUMBER18: //sqrt number1=m_number=sqrt(number1); UpdateData(FALSE); break;
case IDC_NUMBER19: // 1/X number1=m_number=(double)1/number1; UpdateData(FALSE); break;
case IDC_NUMBER20: //等号 cal(); NumberState=1; break; } }
(10)为cal()函数添加如下代码,完成运算的功能; void CMyDlg::cal() {
switch(OperationState)
软件课程设计实验报告(可视化)
//运算符 { //除 case 1: m_number=(double)number1/number2; NumberState=1; UpdateData(FALSE); break; //乘 case 2: m_number=number1*number2; NumberState=1; UpdateData(FALSE); break; //加 case 3: m_number=number1+number2; NumberState=1; UpdateData(FALSE); break; //减 case 4: m_number=number1-number2; NumberState=1; UpdateData(FALSE); break; }
number1=m_number; OperationState=0; }
至此,程序编写完成,编译运行即可。
5,用户使用说明:
(1)打开程序;
(2)按照需要执行操作; (3)单击“=”得出结果;
(4)如果要继续运算,需要单击“C”来清零,或者点击“退格”来清零。
6.测试分析:
(1)
进行操作:“1”、“+”、“10”、“=” 结果输出:“11”
软件课程设计实验报告(可视化)
(2)
进行操作:“20”、“-”、“12”、“=” 结果输出:“8”
(3)
进行操作:“5”、“*”、“12”、“=” 结果输出:“60”
软件课程设计实验报告(可视化)
(4)
进行操作:“12”、“/”、“2”、“=” 结果输出:“6”
(5)
进行操作:“9”、“sqrt” 结果输出:“3”
软件课程设计实验报告(可视化)
(6)
进行操作:“5”、“1/X” 结果输出:“0.2”
7.设计体会:
(1)此次实验设计步骤较多,设计过程中出想的问题也较多,实验中通过了多次的修改与调试后才得到了最终的预期结果。通过这次实验,收获很多,积累了经验;初步了解并学会了MFC的基础编程。 (2)注:在本次实验中,添加按钮时的顺序要符合按钮对应的“IDC_NUMBER”,一旦存在不符合的现象,就会出现使按钮功能失效的情况。
软件课程设计实验报告(可视化)
正在阅读:
软件课程设计实验报告(可视化)105-23
宾川县代理发表职称论文发表-胰岛素泵糖尿病胰岛素皮下注射论文04-20
2015-2020年中国投影管投资前景预测报告 - 图文05-11
计本 iPhone手机应用开发设计(爱炒股) - 图文02-28
电场的性质练习二有答案07-05
与贸易有关的知识产权(WTO组织规则与运行-四川师范大学,潘路佳)07-28
DALI总线技术调光系统的应用优势09-03
西政物权法名师讲义序言06-05
房地产个人自我介绍范文(通用3篇)04-18
Ruby基础知识整理05-17
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 可视化
- 课程
- 实验
- 报告
- 设计
- 软件
- 小精灵(三)上涨空间分析秘籍
- 个人所得税纳税申报表(适用于年所得12万元以上的纳税人申报)
- 2013年南京市机关事业单位干部专题能力测试(含答案)
- 四年级上册综合实践计划及教案
- 高考考纲词汇词形联系复习15套(含答案)
- 在实际教学过程中如何利用技术支持工具开展合作学习教学活动心得
- 同心2016年事业编招聘考试真题及答案解析【完整版】 - 事业单位真题
- 某楼盘2010世界杯足球之夜啤酒狂欢活动方案
- 银行储蓄管理系统软件需求说明书
- 基于linux集群的并行计算
- 数字超短波系统在森林防火中的应用
- 黄冈市2016年九年级4月份调研考试理科综合试题(含答案)
- 不同颜色的碧玺作用不同
- 七年级暑假作业答案南方出版社
- 中海重工 2017中期报告
- 2013年高考文科数学试卷分析1253
- 开创教师学生学校和谐发展的新局面
- 轮胎翻新工艺流程
- 中职经济政治与社会 第13课教案
- 271导学案.第1辑.八年级数学.配BS版