d1 = a * a * a;d2 = System.Convert.ToString(d1, 8); txt_Result.Text = d2.ToString();} else if (this.rBtn16.Checked)
{int a = System.Convert.ToInt32(s1, 16); d1 = a * a *a;d2 = System.Convert.ToString(d1, 16); txt_Result.Text = d2.ToString();} else{double a = Convert.ToDouble(s1); d1 = (int)a * (int)a * (int)a; txt_Result.Text = d1.ToString();}}
private void btn_Clear_Click(object sender, EventArgs e) {txt_Result.Text = \; }
private void btn_sin_Click(object sender, EventArgs e)
{string s_txt = txt_Result.Text;double a = Convert.ToDouble(s_txt); double b = System.Math.Sin(a);txt_Result.Text = b.ToString();} private void btn_cos_Click(object sender, EventArgs e) {string s_txt = txt_Result.Text; double a = Convert.ToDouble(s_txt);
double b = System.Math.Cos(a);txt_Result.Text = b.ToString(); } private void btn_tan_Click(object sender, EventArgs e)
{string s_txt = txt_Result.Text;double a = Convert.ToDouble(s_txt); double b = System.Math.Tan(a);txt_Result.Text = b.ToString();} private void btn_Back_Click(object sender, EventArgs e) {this.txt_Result.Text =
this.txt_Result.Text.Substring(0, this.txt_Result.Text.Length - 1); if (this.txt_Result.Text == \)
{this.txt_Result.Text = “} }
private void btn_Result_Click(object sender, EventArgs e) {int d1;string d2; string s_txt = txt_Result.Text; int space = s_txt.IndexOf(' ');
string s1 = s_txt.Substring(0, space).Trim();
char opration = Convert.ToChar(s_txt.Substring((space + 1), 1)); string s2 = s_txt.Substring(space + 3); { int i = Convert.ToInt32(s1); int j = Convert.ToInt32(s2); switch (opration)
{case '+':d1 = i + j;break; case '-':d1 = i - j;break; case '*':d1 = i * j;break; case '/':if (j == 0)
{ throw new ApplicationException();} else{d1 = i/ j;}break;
default:throw new ApplicationException();} txt_Result.Text = d1.ToString();}
if (this.rBtn8.Checked)
{int i = System.Convert.ToInt32(s1, 8); int j = System.Convert.ToInt32(s2, 8); switch (opration){case '+':
d1 = i + j;d2 = System.Convert.ToString(d1, 8);break; case '-':
d1 = i - j;d2 = System.Convert.ToString(d1, 8);break; case '*':
d1 = i * j;d2 = System.Convert.ToString(d1, 8);break; case '/':if (j == 0){throw new ApplicationException(); } else{d1 = i / j;d2 = System.Convert.ToString(d1, 8);}break; default:throw new ApplicationException();} txt_Result.Text = d2;} if (this.rBtn16.Checked)
{int i = System.Convert.ToInt32(s1, 16);int j = System.Convert.ToInt32(s2, 16); switch (opration)
{case '+':d1 = i + j;d2 = System.Convert.ToString(d1, 16);break; case '-':d1 = i – j;d2 = System.Convert.ToString(d1, 16); break; case '*':d1 = i * j;d2 = System.Convert.ToString(d1, 16);break; case '/':if (j == 0){throw new ApplicationException();} else{d1 = i / j;d2 = System.Convert.ToString(d1, 16);}break; default:throw new ApplicationException();} txt_Result.Text = d2;}
if (this.rBtn2.Checked) {int i = System.Convert.ToInt32(s1, 2); int j = System.Convert.ToInt32(s2, 2); switch (opration)
{case '+':d1 = i + j;d2 = System.Convert.ToString(d1, 2);break; case '-':d1 = i - j;d2 = System.Convert.ToString(d1, 2);break; case '*':d1 = i * j;d2 = System.Convert.ToString(d1, 2);break; case '/':if (j == 0){throw new ApplicationException();} else{d1 = i / j;d2 = System.Convert.ToString(d1, 2);} break;default;throw new ApplicationException(); } txt_Result.Text = d2;} if (this.rBtn10.Checked) {double d;
double a1 = Convert.ToDouble(s1); double a2 = Convert.ToDouble(s2); switch (opration)
{case '+':d = a1 + a2;break; case '-':d = a1 - a2;break; case '*':d = a1 * a2;break; case '/':if (a2 == 0)
{throw new ApplicationException();} else{d = a1 / a2;}break;
default:throw new ApplicationException();} txt_Result.Text = d.ToString();}}
private void 标准型ToolStripMenuItem_Click(object sender, EventArgs e) {Form fm1 = new Form1();fm1.Show(); this.Hide();}
private void 帮??助¨2ToolStripMenuItem_Click(object sender, EventArgs e) {
MessageBox.Show(\这是一个仿照windows的计算器应用程序,功能虽然不齐但基本能运行”); }}}
六 实验总结
通过简易计算器这一程序的开发。我更进一步的了解了面向对象程序开发的过程也亲身体验了开发一个简单系统的细节点滴。通过这个例子,我对类的使用和认识有了更深入的体会。首先这是一个计算器程序,主要的是对十进制数据的简单的四则运算操作。包含了最基本的对一些按钮和文本框的操作。了解到了这类程序的开发过程和基本入手点。可以说这是我第一次用完全的面向对象语言开发一个简单的小程序。这也让我深刻体会到了类在面向对象开发过程中的重要性和便捷之处。只有亲身体验才有真正的收获。对于这个项目我有一些满意的地方也有感到不足的地方。其中满意的地方是这个程序实现了预计的功能即对数据的四则运算操作、一些三角函数阶乘N次方进制转化角弧度转换且计算结果无误。而且我也在这个项目中用到了以前学到的C语言程序时的一些思想。从这点我体会到了不同程序的共通性和不同语言间的共通性。通过这个程序我解决了窗体的应用问题。把原来只能在DOS提示符下运行的程序是现在了WINDOWS窗体中。 当然这个项目中还是存在很多不足之处的比如这个计算器程序的计算中没有能够实现把二、八、十六进制转换为十进制。有些地方写的代码效率不高。而且由于对程序设计不是很精通我觉得这个项目中代码的编写也不足够规范文档说明也不足有些东西知道用什么思想但就是用不来。培养一个良好的编程风格是十分重要的。整齐的代码格式会大大提高程序可读性。完整的技术文档对日后维护和升级十分重要。所以在编程的细节方面我还应该多加注意。 一个月的实习让我对计算机理论知识有了一定的了解但实践出真知唯有把理论与实践相结合才能更好地为社会服务。我上网查阅了一些计算应用知识并对毕业论文所需的资料进行了粗浅的了解提高了我的动手能力同时也让我了解到了自己的不足也很好的了解了团队合作的重要性。也学会了怎么样去处理事情。只有自己动手做过的东西才会铭记在心。也只有自己真正去努力过的事情才会记得很牢。只有自己真正面对过的困难下一次才不会犯同样的错误。这个程序仅仅是一个开始一个简单的例子。如果日后要继续开发我觉得应该在这个程序的高效性易用性功能的多样性这几个方面下功夫。也就是说把程序向着更加面向用户的方向进行发展。比如我们可以对用户输入进来的数据进行高级的函数运算并且能够在运算不可行的时候出现提示等等。也就是说要努力将其变成一个实际工作中可以使用的程序而不仅仅是一个示例。当然我会继续努力完善自我为社会主义现代化建设做贡献。总的来说:我学会了掌握时间。把不可控制的东西变成可控制的。做的东西要做成可扩充的。做东西一定要活从这些话再加上自己的工作慢慢体会到这正是我所不足的地方啊。在以后的对计算机科学与技术专业的学习中我会通过对C#这项技术的不断应用来更深入的学习它的精髓。