计算器设计报告.docx
- 文档编号:9887082
- 上传时间:2023-02-07
- 格式:DOCX
- 页数:14
- 大小:25.20KB
计算器设计报告.docx
《计算器设计报告.docx》由会员分享,可在线阅读,更多相关《计算器设计报告.docx(14页珍藏版)》请在冰豆网上搜索。
计算器设计报告
X X 大学
本科生课程设计(实践)任务书、设计报告
(C++语言程序设计)
题目计算器的设计
学生姓名
指导教师
学院
专业班级
学生学号
计算机基础教学实验中心
2015 年7月日
1
计算器的设计
1、 计算器系统开发设计思想
根据课程设计的要求,我们的目的是用 MicrosoftVisual
Studio2010 完成 CLR 窗体应用程序,设计出一个计算或绘图类窗
口应用程序,要求:
功能:
1)用窗体及控件进行数据的输入和输出
2)输入方便和可靠。
3)结果正确。
界面设计
1)使用方便
2)操作简单
3)美观
通过本课程设计,提高我们所学 C++语言程序设计基础综合运
用、设计、编程及动手能力,能够在已学的基础上自学地提高扩展
自我知识的技能,掌握自我表达、书写组织和总结。
初步培养通过
面向对象的思想解决问题的能力,熟悉软件开发过程,增强对相关
专业知识的感性认识,掌握基本软件开发技能,提高应用所学知识
在实践中发现问题、分析问题和解决问题的能力。
2
2、 计算器系统功能及系统设计介绍
我选择的题目是设计一个科学计算器(包括三角函数、指数函数
等等基本函数计算)的窗体应用程序。
●系统功能模块:
计算器的基本功能
科学计算器
三角函数等基本初等函数
● 系统设计过程:
a) 创建项目:
在 Microsoft Visual Studio 2010 C#中,建立
一个新工程,创建一个新的对话框。
b) 计算机界面设计:
1. 向 Form1 中添加一个 textbox 和 21 个 button 按钮;
2. 修改 button 按钮的 text 属性,如图所示:
3
c)数字键及小数点代码设计:
private void button1_Click(object sender, EventArgs e)
{
textBox1.Text = textBox1.Text + "1";
}
private void button2_Click(object sender, EventArgs e)
{
textBox1.Text = textBox1.Text + "2";
}
private void button3_Click(object sender, EventArgs e)
{
textBox1.Text = textBox1.Text + "3";
}
private void button4_Click(object sender, EventArgs e)
{
textBox1.Text = textBox1.Text + "4";
}
private void button5_Click(object sender, EventArgs e)
{
textBox1.Text = textBox1.Text + "5";
}
private void button6_Click(object sender, EventArgs e)
4
{
textBox1.Text = textBox1.Text + "6";
}
private void button7_Click(object sender, EventArgs e)
{
textBox1.Text = textBox1.Text + "7";
}
private void button8_Click(object sender, EventArgs e)
{
textBox1.Text = textBox1.Text + "8";
}
private void button9_Click(object sender, EventArgs e)
{
textBox1.Text = textBox1.Text + "9";
}
private void button10_Click(object sender, EventArgs e)
{
textBox1.Text = textBox1.Text + "0";
}
private void button11_Click(object sender, EventArgs e)
{
textBox1.Text = textBox1.Text + ".";
5
}
d)加减乘除算法的实现:
“+” 将控件名为 button12 更名为“+”,并输入以下程序:
private void button12_Click(object sender, EventArgs e)
{
Button btn = (Button)sender;
textBox1.Text = textBox1.Text+ btn.Text ;
}
“-” 将控件名为button13更名为“-”,并输入以下程序:
private void button13_Click(object sender, EventArgs e)
{
Button btn = (Button)sender;
textBox1.Text = textBox1.Text+ btn.Text ;
}
“*” 将控件名为button14更名为“x”,并输入以下程序:
private void button14_Click(object sender, EventArgs e)
{
Button btn = (Button)sender;
textBox1.Text = textBox1.Text+ btn.Text ;
}
6
“/” 将控件名为button15更名为“/”,并输入以下程序:
private void button15_Click(object sender, EventArgs e)
{
Button btn = (Button)sender;
textBox1.Text = textBox1.Text + btn.Text ;
}
e)三角函数等基本初等函数算法的实现:
“sinx” 将控件名为 button16 更名为“sin”,并输入以下程序:
private void button16_Click(object sender, EventArgs e)
{
Button btn = (Button)sender;
textBox1.Text = textBox1.Text+ btn.Text ;
}
“cosx” 将控件名为 button17 更名为“cos”,并输入以下程序:
private void button17_Click(object sender, EventArgs e)
{
Button btn = (Button)sender;
textBox1.Text = textBox1.Text+ btn.Text ;
}
7
“tanx” 将控件名为 button18 更名为“tan”,并输入以下程序:
private void button18_Click(object sender, EventArgs e)
{
Button btn = (Button)sender;
textBox1.Text = textBox1.Text+ btn.Text ;
}
“lgx” 将控件名为 button19 更名为“lg”,并输入以下程序:
private void button19_Click(object sender, EventArgs e)
{
Button btn = (Button)sender;
textBox1.Text = textBox1.Text + btn.Text ;
}
f)显示结果的算法实现
将控件名为 button20 更名为“=”,并输入以下程序:
private void button20_Click(object sender, EventArgs e)
{
try
{
double d_result;
string s_txt = textBox1.Text;
int space= s_txt.IndexOf(' ');
8
string s1 = s_txt.Substring(0, space);
charoperation=
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 = arg1 + arg2;
break;
case '-':
d_result = arg1 - arg2;
break;
case 'x':
d_result = arg1 * arg2;
break;
case '/':
if (arg2 == 0)
{
//MessageBox.Show("错误");
throw new ApplicationException();
9
}
else
{
d_result = arg1 / arg2;
}
break;
default:
throw new ApplicationException();
}
textBox1.Text = d_result.ToString();
}
catch
{
double d;
double pi =Math .PI;
string s_txt = textBox1.Text;
int space = s_txt.IndexOf(' ',1);
charoperation=
Convert.ToChar(s_txt.Substring((0), 1));
string s2 = s_txt.Substring(space+1);
double arg2 = Convert.ToDouble(s2);
double a = arg2 * pi / 180;
10
switch (operation)
{
case 's':
d = System.Math.Sin(a);
textBox1.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;
case 'l':
d = System.Math.Log10(arg2); ;
textBox1.Text = d.ToString();
break;
}
}
g)清除的算法实现
将控件名为 button21 更名为“del”,并输入以下程序:
11
private void button21_Click(object sender, EventArgs e)
{
textBox1.Text = "";
}
h)调试与运行:
3、 计算器系统开发的体会
在刚开始做的时候,对于窗体应用程序这方面的操作是丝毫
不懂,后来听老师讲课,以及自己在实践书上找到相关的知识,
才渐渐的知道做简易计算器的大概步骤,当时比较急于求成,所
以一连做了两个工程文件都失败了,后来才渐渐放下浮躁的心,
去查资料,问老师,咨询朋友,找代码,创新思路。
所以,在经
历几次失败后,在朋友的提醒下,渐渐地,我知道了用 C#编写
科学计算器的程序更加简单明白,然后我开始寻找 C#的代码,
12
研究各个代码的含义,try…catch、indexof、substring 等的
用法,基本初等函数的用法(d=Math.Cos(f)),编写自己的计算
器程序代码。
我的计算器并没有什么特别的特点,但是在基础功
能实现了的情况下,我尽可能的实现一些我会做的科学运算,来
提高这个计算器的价值。
在初期的时候,会因为按钮问题而出现无法写入的错误,因
为数字类型不统一而无法实现计算功能,但是根据所给的错误一
个一个的查找,并删除多余的按钮,强制转换数字类型,才得到
了解决,在这个过程中我也明白了程序设计的严谨性。
在整个计
算器程序设计中,我掌握了 Microsoft Visual Studio 2010 的
用法,学会了 CLR 窗体应用程序代码及窗体的设计,对于之前学
习的 C++程序设计理解更加深入,再加上搜索,我得到了很多的
关于 C#的用法,深入学习了 C#的字符串、数组的使用,总之的
确是获益匪浅。
虽然我设计的计算器功能上并不全,还存在着一些问题,但
是在这个实践过程中,我的思考,动手能力得到了充分的利用,
更加明白了要创新思路,这也是实践的目的。
通过实践加强对程
序设计语言课程知识点的理解和掌握,培养对课程知识综合运用
能力、实际分析问题能力及编程能力,养成良好的习惯。
通过实
践能进一步领会程序设计的特点和应用,提高运用 C++语言以
及面向对象知识解决实际问题的能力。
通过实践掌握用 C++语
言编写面向对象的实用程序的设计方法,对面向对象方法和思想
13
增加感性的认识;学会利用 C++程序设计语言编写出一些简单的
Windows 实用程序,切实提高面向对象的程序设计能力;通过实
践学习了一些简单 C#语言,为后续的相关课程的学习打下基础。
在整个实践的过程中,我也领悟到了以下几点:
◆ 基本功要过硬。
要认真严谨,一丝不苟,千万不能马虎,
导致经常犯小错误。
◆ 要学会转换思维。
一条路走不通就挖掘其他方法,力求找
到最简单方便的途径,避免一条路走到黑。
◆ 提高自己找错纠错能力,通常错误总是那几种,多练习就
熟练了。
◆ 要善于查找资料提高自己的资料查询能力,要善于利用网
络来获得知识,获得帮助。
以后,我要提高自己对新知识的吸收能力,查阅资料,收集
资料的能力,在学完 C++基础后遇到 CLR 这种新的功能,我深深
的体会到了学海无涯这四个字的含义,所以勤奋学习,学会学习
才是我们实践要达到的最终目的。
14
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算器 设计 报告