- 1、本文档共25页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PINGDINGSHAN UNIVERSITY
实训论文(设计)
题 目: 计算器
院(系): 软件学院
专业年级: 软件工程 2012级
姓 名: 陈存新
学 号: 121530216
指导教师: 吕 帅 琼
2013年10月21日
目 录 TOC \o 1-5 \h \z \u
目 录 2
1 概 述 3
1.1 课程设计目的 3
1.2 课程设计内容 3
2 系统需求分析 3
2.1 系统目标 3
2.2 主体功能 3
2.3 开发环境 3
3 系统概要设计 4
3.1 系统流程图 4
3.2 系统功能划分 4
4系统详细设计 7
4.1 设计步骤 7
4.2 界面设计 9
5 测试 12
5.1 测试方案 12
5.2 测试结果 12
6 小结 14
参考文献 15
附 录 16
附录1 源程序清单 16
计算器的设计
1 概 述
1.1 课程设计目的
1、巩固并加深学生对C++语言程序设计知识的理解;
2、培养学生面向对象的程序设计思想,使学生认识面向过程和面向对象两种设计方法的区别;
3、进一步掌握和应用VC++ 6.0集成开发环境;
4、提高运用C++语言解决实际问题的能力;
5、初步掌握开发小型实用软件的基本方法,能独立设计、实现基本的MIS系统;
6、掌握书写程序设计开发文档的能力(书写课程设计实验报告)。
1.2 课程设计内容
课题名称:计算器的实现
说明:实现一个计算器。
要求:
1)用“计算器”的标准视图执行简单的计算。
2)用其科学型视图执行高级的科学计算。
2 系统需求分析
2.1 系统目标
我们在学习生活中,常会遇到一些繁杂的数值运算,这时候我们就必须用到科学计算器,所以便着手开发了这个计算器程序,以便用于自己的学习工作。要计算功能有以下几个方面:加法,减法,乘法,除法,求幂,求模,求平方根,求Sin,求Cos。
2.2 主体功能
1、十进制数的加、减、乘、除、乘方、取模等简单计算。
2、科学计算函数,包括(反)正弦、(反)余弦、(反)正切、(反)余切、开方、指数等函数运算。
2.3 开发环境
Windows操作系统,VC++ 6.0, OFFICE WORD
3 系统概要设计
3.1 系统流程图
开始
开始
输入第一个操作数
加法
减法
乘法
除法
求幂
求模
开平方
求正弦
求余弦
求对数
输入第二个操作数
显示结果
寄存器清零
结束
图3-1 系统流程图
3.2 系统功能划分
表3-1 系统功能表
序号
文件名
主要功能
备注
1
+
加法求和
两个操作数
2
-
减法求差
两个操作数
3
*
乘法求积
两个操作数
4
/
除法求商
两个操作数
5
%
求模
两个操作数
6
^
求x的y次幂
两个操作数
7
S
求平方根
一个操作数
8
Sin
求正弦
一个操作数
9
Cos
求余弦
一个操作数
10
ln
求对数
一个操作数
11
n!
求阶乘
一个操作数
12
=
等于
13
C
寄存器清零
假设执行操作“+”,先输入一个数,再输入“+”,再输入另一个数,最后输入“+”。整个功能“+”就执行完毕。
四则代码如下
void CMyDlg::RunOperation(eum_signl en_signl)
{ double sum;
double nAdd1;
double nAdd2;
nAdd1=atof(cs_Num[0]);
nAdd2=atof(cs_Num[1]);
//sum=nAdd1+nAdd2;
switch(en_signl)
{
case en_add:
sum=nAdd1+nAdd2;
break;
case en_sub:
sum=nAdd1-nAdd2;
break;
case en_mul:
sum=nAdd1*nAdd2;
break;
case en_div:
sum=nAdd1/nAdd2;
break;
}
cs_Num[0].Format(%g,sum);
SetDlgI
文档评论(0)