VC++课程设计参考.docx

上传人:b****3 文档编号:6600209 上传时间:2023-05-10 格式:DOCX 页数:8 大小:125.05KB
下载 相关 举报
VC++课程设计参考.docx_第1页
第1页 / 共8页
VC++课程设计参考.docx_第2页
第2页 / 共8页
VC++课程设计参考.docx_第3页
第3页 / 共8页
VC++课程设计参考.docx_第4页
第4页 / 共8页
VC++课程设计参考.docx_第5页
第5页 / 共8页
VC++课程设计参考.docx_第6页
第6页 / 共8页
VC++课程设计参考.docx_第7页
第7页 / 共8页
VC++课程设计参考.docx_第8页
第8页 / 共8页
亲,该文档总共8页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

VC++课程设计参考.docx

《VC++课程设计参考.docx》由会员分享,可在线阅读,更多相关《VC++课程设计参考.docx(8页珍藏版)》请在冰点文库上搜索。

VC++课程设计参考.docx

VC++课程设计参考

课程设计

课程名称VisualC++可视化编程

题目名称一个简单计算器的设计

学生学院计算机学院

专业班级2007级计算机科学与技术三班

学号

学生姓名

指导教师谭台哲

 

2009年12月25日

 

VisualC++可视化编程

——简单计算器的设计

一.实验目的与要求:

目标是使学生了解可视化程序设计语言的基础知识,掌握面向对象编程的分析设计方法,以及与面向对象技术相关的一些软件开发技术,掌握在VisualC++6环境下进行可视化程序设计技术。

通过实践具体的项目,为他们进一步开展相关领域的学习和科研打下良好的基础。

要求设计的计算器应当具有以下功能:

1、二进制、八进制、十进制及十六进制数的加、减、乘、除、乘方、取模等简单计算

2、科学计算函数,包括(反)正弦、(反)余弦、(反)正切、(反)余切、开方、指数等函数运行

3、以角度、弧度两种方式实现上述部分函数

4、具备历史计算的记忆功能

5、对不正确的表达式能指出其错误原因

二.设计方案:

实验要求在WindowsXP操作系统的基础上借助于VisualC++6编程工具,设计并实现一个简单计算器的程序设计工作!

根据实验的要求,本次实验把计算器分为几个模块,模块之间是相互独立但有相互联系的!

他们为实现计算器的功能体现着自己的价值:

1.计算器外观的设计

用MFCAppWizard创建一个DialogBased的对话框。

在Dialog上添加和布局控件。

2.基本按键的控制及关联

实现基本按纽与字符及字符串的关联和实现与控件的数据交换

3.运用对话框窗口实现各种数制的简单计算

分别实现计算器二进制、八进制、十进制、十六进制的简单计算,并能进行数学表达式的计算。

4.实现科学计算功能

调用科学计算函数,为计算器添加科学计算函数,包括(反)正弦、(反)余弦、(反)正切、(反)余切、开方、指数等

5.为部分科学计算函数添加角度与弧度两种数值表示形式

6.实现历史计算功能

7.程序容错处理

8.添加其它小功能,优化交互性功能并调整界面。

以下是计算类中的一个主过程函数:

CStringCCalculation:

:

MainPro(CStringstrExp)

{

if(strExp.IsEmpty())return"表达式不能为空";

Macro(&strExp);

strExp.MakeLower();//表达式全部小写

/**********给表达式加上保护括号************/

strExp.Insert(0,"(");

strExp+=")";

/******************************************/

intpos=strExp.Find("");

intn=BraCheck(strExp);

CStringstr;

str.Format("%d",abs(n));

if(n==1)strExp+=")";

elseif(n==-1)strExp.Insert(0,"(");

elseif(n>0)return"缺少"+str+"个右括号";

elseif(n<0)return"缺少"+str+"个左括号";

while(pos!

=-1)//去掉表达式中的空格符

{

strExp.Delete(pos);

pos=strExp.Find("");

}

Oct2Dec(&strExp);//将表达式中的八进制数转换成十进制

Hex2Dec(&strExp);//将表达式中的十六进制数转换成十进制

Bin2Dec(&strExp);//将表达式中的二进制数转换成十进制

while(!

IsDigital(strExp))

{

DelBracket(&strExp);

if(!

SynRes(&strExp))returnstrExp;

}

if(!

SynRes(&strExp))returnstrExp;

elsereturnModiResult(strExp);

三.实验结果与数据处理:

1.计算器的的界面

2.数据处理

1.计算:

10+5*(10-2)/2=30

2.科学计算:

sin(45)

3.容错功能:

a.数据溢出时的报错

b.运算符错误时的报错

c.函数错误时的报错

四.结论与体会

结论:

基本实现了试验的要求,但是还有不足:

如没有处理好连加连减或加减号混合出现的情况(如:

1++++1,1----1,--+-+-+1-+-++++---1)。

体会:

通过本次实验,让我逐渐的了解了VC++的强大功能。

刚刚开始实验时自己去网上下载了VC++的软件,安装后当我新建工程时老是出现一个说与原来的版本相冲突的错误。

直到后来重新安装系统才得以解决。

这次实验我懂得了如何去使用VC++这个新的软件,学会了VC++的基本功能,初步了解了MFC,了解了什么是面向对象编程。

五、问题与讨论

1.怎么样利用VC++集成开发环境进行C++程序的书写?

答:

VC++集成环境是一个多功能的开发环境,不公可以用它来进行运用程序有编写,而且还可以用它来编写单文档形式的C++源程序。

只要新建的时候选择文件类型C++SourceFile就可以了。

2.C++程序对C程序进行了哪些扩充与修改?

答:

C++用标准的输入输出的头文件iostream.h替代了C中的stido.h,用cin、count和操作运算符>>、<<等实现并扩展了C语言的scanf和printf函数功能。

C++还增加了以下标准关键字:

Asm、bool、catch、class、delete、frient、inline、mutable、namespace、New、operator、private、protected、public、this、template、throw、try、Virtual、using

C++的类型还可以死是布尔型的,即值为TURE或FALSE

C++中没有字符串变量类型,字符串是由字符类型的数组或者是指针来定义的。

C++变量的定义比较自由,其变量的初始化还有另外一种形式。

例如:

Intnx

(1),ny(3);表示nx和ny是整型变量,它们的初值分别是1和3。

在C++中初始化数组的值也不能通过跳过逗号的方式来省略。

3.如何根据软件开发需要创建类?

这些类的层次具有什么关系?

答:

可以利用MFC进行软件开发,MFC封装了大量的类供用户使用,缩短了软件的开发时间和周期。

这些类出现了大量的派生关系和继承关系。

4.如何建立类的属性成员、方法成员?

如何确定成员的私有、公有或继续关系?

答:

在VC++编程环境中,在左侧的类视图里右键相应的类名,从右键菜单中就可以完成添加属性成员和方法成员的操作,在添加对话框可以选技类型为私有、公有或者保护等。

不同的类型的成员会以不同的图标显示,可以根据图标的不同而确定成员的私有、会有或者继承属性;同时也可以在头文件中查看源代码确定。

5.对比实验2与实验3,控制台程序与MFC在编程上有何区别?

答:

6.在MFC程序中如何根据软件需要定制类?

答:

MFC提供了三种软件开发类,基于单文档,多文档和对话框应用程序,用户可以根据需要进行适当的选择。

7.模态对话框窗口与非模态对话框窗口有何不同?

答:

模态对话框以一种排它的方式工作,当模态对话框出现时,虽然用户可以看到应用程序的其他界面对象,但必须关闭模态对话框后才能对他们进行操作。

而非模态对话框则以非排它的方式工作,非模态对话框则可以与其他的界面操作并行。

8.试举例说明模态对话框窗口与非模态对话框窗口的应用?

答:

模态对话框主要在需要独占焦点且在操作期间不能被中断时使用,如打开、保存对话框,关于对话框等。

非模态对话框则相反,如查找、替换对话框等

9.非十进制数如何进行上述计算?

答:

在我的计算器中,是将非十进制数转换为十进制数之后计算出结果之后再转换为原来的进制,如十六进制->十进制->十六进制(结果)。

10.输出非十进制数计算结果时注意什么?

答:

注意结果的所要求进制数的格式表示。

11.在进行科学计算时如何满足精度的要求?

答:

C++中的double型的有效数字为16位,基本满足了精度的要求,因此所进行的数据都为double型数据的计算。

12.角度与弧度数是如何转换的?

答:

弧度=角度*PI/180。

13.内存的动态分配与静态分配适用于哪些情况?

答:

动态程序;静态系统

14.如果本实验部分不显式分配内存,如何实现?

答:

15.软件容错处理应用于哪些情况?

答:

1.该软件开发时考虑的不足

2.用户用计算器时不规范操作

 

一、题目:

数字交叉游戏

二、目的与要求

1.  目的:

(1)并使学生更加系统地理解和掌握C++语言的函数间参数传递方法、数组和指针的应用等编程技巧。

培养学生综合利用C++语言进行科学计算,使学生将所学知识转化为分析和设计简单实际问题的能力,学会查资料和工具书。

(2)提高学生建立程序文档、归纳总结的能力。

(3)进一步巩固和灵活运用先修课程《计算机文化基础》有关文字处理、图表分析、数据归整、应用软件之间图表、数据共享等信息技术处理的综合能力。

2.  基本要求:

要求用C++语言编程,在Visual C++环境下调试完成;

三、设计方法和基本原理

1.  课题功能描述

若某两个数字分别为:

1357.8902和53.639742,则在交叉因子0110.110011的控制下,两个新的数字分别为1057.630242和353.8997,即交叉因子为“1”的那位进行交换,而为“0”的那位两个数字不进行交换。

现在要求做一个整数最多为4位,小数位最多为6位情况下,要求显示输入随机生成的两个数字以及一个交叉因子,在随机生成的交叉因子控制下实现两个数字的交叉,并将交叉结果输出。

2.  问题的解决方案:

将读入的两个小于10000的实型数据分别存储到两个整型数组中,数组中每个元素都是0~9的整数,对于上面给出的例子存储结果如下:

1 3 5 7 8 9 0 2 0 0

 

0 0 5 3 6 3 9 7 4 2

 

使用随机函数生成交叉因子,即如下形式

0 1 1 0 1 1 0 0 1 1

 

然后在交叉因子控制下完成数据交换。

最后将交换后的数组重新整和成为两个实数。

四、创新要求

在基本要求达到后,进行创新设计,对随机生成的20个数据,随机选择m对数据进行数据交叉。

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

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2