计算器设计报告.docx
《计算器设计报告.docx》由会员分享,可在线阅读,更多相关《计算器设计报告.docx(12页珍藏版)》请在冰点文库上搜索。
![计算器设计报告.docx](https://file1.bingdoc.com/fileroot1/2023-7/4/360e74da-25ce-4ee5-8af7-b05044685325/360e74da-25ce-4ee5-8af7-b050446853251.gif)
计算器设计报告
XX大学
本科生课程设计(实践)任务书、设计报告
(C++语言程序设计)
题目计算器的设计
学生姓名
指导教师
学院
专业班级
学生学号
计算机基础教学实验中心
2015年7月日
计算器的设计
1、计算器系统开发设计思想
根据课程设计的要求,我们的目的是用MicrosoftVisual
Studio2010完成CLR窗体应用程序,设计出一个计算或绘图类窗
口应用程序,要求:
功能:
1)用窗体及控件进行数据的输入和输出
2)输入方便和可靠。
3)结果正确。
界面设计
1)使用方便
2)操作简单
3)美观
通过本课程设计,提高我们所学C++语言程序设计基础综合运
用、设计、编程及动手能力,能够在已学的基础上自学地提高扩展自我知识的技能,掌握自我表达、书写组织和总结。
初步培养通过面向对象的思想解决问题的能力,熟悉软件开发过程,增强对相关专业知识的感性认识,掌握基本软件开发技能,提高应用所学知识在实践中发现问题、分析问题和解决问题的能力。
2、计算器系统功能及系统设计介绍
我选择的题目是设计一个科学计算器(包括三角函数、指数函数等等基本函数计算)的窗体应用程序。
系统设计过程:
a)创建项目:
在MicrosoftVisualStudio2010C#中,建立
一个新工程,创建一个新的对话框。
b)计算机界面设计:
1.向Forml中添加一个textbox和21个button按钮;
2.修改button按钮的text属性,如图所示:
private
void
button1_Click(
{
}
textBox1.Text
private
void
button2_Click(
{
textBox1.Text
}
private
void
button3_Click(
{
textBox1.Text
}
private
void
button4_Click(
{
textBox1.Text
}
private
void
button5_Click(
{
textBox1.Text
}
c)数字键及小数点代码设计:
objectsender,EventArgse)
=textBoxl.Text+"1"
objectsender,EventArgse)
=textBoxl.Text+"2";
objectsender,EventArgse)
=textBox1.Text+"3";
objectsender,EventArgse)
=textBox1.Text+"4";
objectsender,EventArgse)
=textBox1.Text+"5";
privatevoidbutton6_Click(objectsender,EventArgse)
textBoxl.Text=textBoxl.Text+"6";
}
privatevoidbutton7_Click(objectsender,EventArgse)
{
textBox1.Text=textBox1.Text+"7";
}
privatevoidbutton8_Click(objectsender,EventArgse)
{
textBox1.Text=textBox1.Text+"8";
}
privatevoidbutton9_Click(objectsender,EventArgse)
{
textBox1.Text=textBox1.Text+"9";
}
privatevoidbutton10_Click(objectsender,EventArgse)
{
textBox1.Text=textBox1.Text+"0";
}
privatevoidbutton11_Click(objectsender,EventArgse)
{
d)加减乘除算法的实现:
“+”将控件名为button12更名为“+”,并输入以下程序
privatevoidbutton12_Click(objectsender,EventArgse)
{
Buttonbtn=(Button)sender;
textBox1.Text=textBox1.Text+btn.Text
“-”将控件名为button13更名为“-”,并输入以下程序
privatevoidbutton13_Click(objectsender,EventArgse)
{
Buttonbtn=(Button)sender;
textBox1.Text=textBox1.Text+btn.Text
将控件名为button14更名为“x”,并输入以下程序:
privatevoidbutton14_Click(objectsender,EventArgse)
{
Buttonbtn=(Button)sender;
“/”将控件名为button15更名为“/”,并输入以下程序:
privatevoidbutton15_Click(objectsender,EventArgse)
Buttonbtn=(Button)sender;
textBox1.Text=textBox1.Text+btn.Text
}
e)三角函数等基本初等函数算法的实现:
“sinx”将控件名为button16更名为“sin”,并输入以下程序
privatevoidbutton16_Click(objectsender,EventArgse)
{
Buttonbtn=(Button)sender;
textBox1.Text=textBox1.Text+btn.Text
}
“cosx”将控件名为button17更名为“cos”,并输入以下程序
private
voidbutton17_Click(object
sender,EventArgse)
Buttonbtn=(Button)sender;
textBox1.Text=textBox1.Text+btn.Text
“tanx”将控件名为button18更名为“tan”,并输入以下程序
privatevoidbutton18_Click(objectsender,EventArgse)
{
Buttonbtn=(Button)sender;
textBox1.Text=textBox1.Text+btn.Text;
}
“lgx”将控件名为button19更名为“lg”,并输入以下程序:
privatevoidbutton19_Click(objectsender,EventArgse)
{
Buttonbtn=(Button)sender;
textBox1.Text=textBox1.Text+btn.Text
}
f)显示结果的算法实现
将控件名为button20更名为“二”,并输入以下程序:
privatevoidbutton20_Click(objectsender,EventArgse)
{
try
{
doubled_result;
intspace=s_txt」ndexOf('');
string
s1=
s_txt.Substring(0,space);
char
operation=
Convert.ToChar(s_txt.Substring((space+1),1));
string
s2=
=s_txt.Substring(space+3);
double
arg1
=Convert.ToDouble(s1);
double
arg2
=Convert.ToDouble(s2);
switch
(operation)
{
case'+':
d_result=argl+arg2;break;
case'-':
d_result=argl-arg2;break;
case'x':
d_result=argl*arg2;break;
case'/':
if(arg2==0)
{
//MessageBox.Show(”错误”);
thrownewApplicationException();
else
{
d_result=argl/arg2;
}
break;
default:
thrownewApplicationException();
}
textBox1.Text=d_result.ToString();
}
catch
{
doubled;
doublepi二Math.PI;
strings_txt=textBox1.Text;intspace=s_txt」ndexOf('',1);charoperation
Convert.ToChar(s_txt.Substring((0),strings2=s_txt.Substring(space+1);doublearg2=Convert.ToDouble(s2);
doublea=arg2*pi/180;switch(operation)
{
case's':
d=System.Math.Sin(a);
textBoxl.Text=d.ToString();break;
case'c':
d=System.Math.Cos(a);
textBox1.Text=d.ToString();break;
case't':
d=System.Math.Tan(a);
textBox1.Text=d.ToString();break;
caseT:
d=System.Math.Log10(arg2);textBox1.Text=d.ToString();break;
}
}
g)清除的算法实现
将控件名为button21更名为“del”,并输入以下程序
privatevoidbutton21_Click(objectsender,EventArgse)
textBox1.Text
h)调试与运行:
二—「站-°
3、计算器系统开发的体会
在刚开始做的时候,对于窗体应用程序这方面的操作是丝毫不懂后来听老师讲课,以及自己在实践书上找到相关的知识,才渐渐的知道做简易计算器的大概步骤,当时比较急于求成,所以一连做了两个工程文件都失败了,后来才渐渐放下浮躁的心,去查资料,问老师,咨询朋友,找代码,创新思路。
所以,在经历几次失败后,在朋友的提醒下,渐渐地,我知道了用C编写
科学计算器的程序更加简单明白,然后我开始寻找C#的代码,研究各个代码的含义,try…catch、indexof、substring等的用法,基本初等函数的用法(d=Math.Cos(f)),编写自己的计算器程序代码。
我的计算器并没有什么特别的特点,但是在基础功能实现了的情况下,我尽可能的实现一些我会做的科学运算,来提高这个计算器的价值。
在初期的时候,会因为按钮问题而出现无法写入的错误,因为数字类型不统一而无法实现计算功能,但是根据所给的错误一个一个的查找,并删除多余的按钮,强制转换数字类型,才得到了解决,在这个过程中我也明白了程序设计的严谨性。
在整个计算器程序设计中,我掌握了MicrosoftVisualStudio2010的用法,学会了CLR窗体应用程序代码及窗体的设计,对于之前学习的C++g序设计理解更加深入,再加上搜索,我得到了很多的关于C#的用法,深入学习了C#勺字符串、数组的使用,总之的确是获益匪浅。
虽然我设计的计算器功能上并不全,还存在着一些问题,但是在这个实践过程中,我的思考,动手能力得到了充分的利用,更加明白了要创新思路,这也是实践的目的。
通过实践加强对程序设计语言课程知识点的理解和掌握,培养对课程知识综合运用能力、实际分析问题能力及编程能力,养成良好的习惯。
通过实践能进一步领会程序设计的特点和应用,提高运用C++语言以
及面向对象知识解决实际问题的能力。
通过实践掌握用C++语
言编写面向对象的实用程序的设计方法,对面向对象方法和思想
增加感性的认识;学会利用C++程序设计语言编写出一些简单的Windows实用程序,切实提高面向对象的程序设计能力;通过实践学习了一些简单C#语言,为后续的相关课程的学习打下基础。
在整个实践的过程中,我也领悟到了以下几点:
基本功要过硬。
要认真严谨,一丝不苟,千万不能马虎,导致经常犯小错误。
要学会转换思维。
一条路走不通就挖掘其他方法,力求找到最简单方便的途径,避免一条路走到黑。
提咼自己找错纠错能力,通常错误总是那几种,多练习就熟练了。
要善于查找资料提高自己的资料查询能力,要善于利用网络来获得知识,获得帮助。
以后,我要提高自己对新知识的吸收能力,查阅资料,收集资料的能力,在学完C++S础后遇到CLR这种新的功能,我深深的体会到了学海无涯这四个字的含义,所以勤奋学习,学会学习才是我们实践要达到的最终目的。