当前位置:文档之家› 《C++语言程序设计》设计报告

《C++语言程序设计》设计报告

《C++语言程序设计》设计报告
《C++语言程序设计》设计报告

中南大学

本科生课程设计(实践)任务书、设计报告

(C++语言程序设计)

题目计算器的设计

学生姓名文杨滔

指导教师刘雄鹰

学院机电工程学院

专业班级车辆一班

学生学号

计算机基础教学实验中心

2016年 6 月 30 日

计算器的设计

摘要:为提高学生所学C++语言程序设计基础综合运用、设计、编程及动手能力,使学生能够在已学的基础上自学地提高扩展自我知识的技能,掌握自我表达、书写组织和总结。特要求用Microsoft Visual Studio 2010完成CLR窗体应用程序。自己选择一个计算窗口应用程序。完成系统需求分析,即功能和数据需求,并进行系统设计即功能模块设计、界面设计以及编程。系统调试完后编写设计报告。

关键词:Microsoft Visual Studio 2010 CLR窗体应用程序计算窗口

1计算器系统开发设计思想

根据课程设计的要求,我们的目的是用Microsoft Visual Studio 2010完成CLR窗体应用程序,设计出一个计算或绘图类窗口应用程序,要求:

功能:

1)用窗体及控件进行数据的输入和输出

2)输入方便和可靠。

3)结果正确。

界面设计

1) 使用方便

2) 操作简单

3) 美观

通过本课程设计,提高我们所学C++语言程序设计基础综合运用、设计、编程及动手能力,能够在已学的基础上自学地提高扩展自我知识的技能,掌握自我表达、书写组织和总结。初步培养通过面向对象的思想解决问题的能力,熟悉软件开发过程,增强对相关专业知识的感性认识,掌握基本软件开发技能,提高应用所学知识在实践中发现问题、分析问题和解决问题的能力。

2计算器系统功能及系统设计介绍

使用Visual Studio可以制作出很多软件,今天我使用Visual Studio制止小型计算器,制作成功后可以把自己制作计算器放在桌面上供自己使用;更可以根据自己的需求制作各种各样的计算器。我今天制作的是简单的计算器,复杂的可以在简单的基础上开发。

我选择的题目是设计一个科学计算器(包括三角函数、指数函数等等基本函数计算)的窗体应用程序。

a)创建项目:在Microsoft Visual Studio 2010 C#中,建立

一个新工程,创建一个新的对话框。

b)计算机界面设计:

1.向Form1中添加一个textbox和21个button按钮;

2.修改button按钮的text属性,如图所示:

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) {

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 + ".";

}

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 ;

}

“/”将控件名为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 ;

}

“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(' ');

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 = 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();

}

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);

char operation =

Convert.ToChar(s_txt.Substring((0), 1));

string s2 = s_txt.Substring(space+1);

double arg2 = Convert.ToDouble(s2);

double a = arg2 * pi / 180;

switch (operation)

{

case 's':

textBox1.Text = d.ToString();

break;

case 'c':

textBox1.Text = d.ToString();

break;

case 't':

textBox1.Text = d.ToString();

break;

case 'l':

textBox1.Text = d.ToString();

break;

}

}

g)清除的算法实现?

将控件名为button21更名为“del”,并输入以下程序:

private void button21_Click(object sender, EventArgs e) {

textBox1.Text = "";

}

h)调试与运行:

3.计算器系统开发的体会

我是一个平时不怎么玩电脑的人,对编程一窍不知,在刚开始做的时候,对于窗体应用程序这方面的操作是丝毫不懂,后来听老师讲课,以及自己在实践书上找到相关的知识,才渐渐的知道做简易计算器的大概步骤,首先打开Microsoft?Visual Studio?2010,把语言

配置成C#.net。创建出一个Windows 窗体应用程序。然后再自动生成的Form1面板上面拖拽出一个textbox空间,接着拖拽出相应的按钮控件。每一个控件都要添加事件。textbox控件的单击事件可以设置为? textBox1.Text = "";?即一旦点击输入框,输入框的文本就自动置为“”(没有任何内容),其中textbox1是?textbox控件的名字,可以在属性框里面设定。接下来对按钮1,2,3,4,5,6,7,8,9,0,.,*,+,-,/,等符号添加事件。每个按钮都要添加事件,但是可以是同一个事件。比如为button1添加?private void

button1_Click(object sender, EventArgs e)事件后,接着对其余

的控件添加事件,点开事件的下拉框,选择button1_Click事件,由于好多按钮的单击事件都相似,所以只在一个事件函数里面处理即可。

虽然百度来的资料看似简单,但当时比较急于求成,所以一连做了两个工程文件都失败了,后来才渐渐放下浮躁的心,去查资料,问老师,咨询朋友,找代码,创新思路。所以,在经历几次失败后,在朋友的提醒下,渐渐地,我知道了用C#编写科学计算器的程序更加简单明白,然后我开始寻找C#的代码,研究各个代码的含义,try…catch、indexof、substring等的用法,基本初等函数的用法(d=Math.Cos(f)),编写自己的计算器程序代码。

我的计算器并没有什么特别的特点,但是在基础功能实现了的情况下,我尽可能的实现一些我会做的科学运算,来提高这个计算器的价值。在初期的时候,会因为按钮问题而出现无法写入的错误,因为数字类型不统一而无法实现计算功能,但是根据所给的错误一个一个的查找,并删除多余的按钮,强制转换数字类型,才得到了解决,在这个过程中我也明白了程序设计的严谨性。在整个计算器程序设计中,我掌握了Microsoft Visual Studio 2010的用法,学会了CLR窗体应用程序代码及窗体的设计,对于之前学习的C++程序设计理解更加深入,再加上搜索,我得到了很多的关于C#的用法,深入学习了C#的字符串、数组的使用,总之的确是获益匪浅。虽然我设计的计算器功能上并不全,还存在着一些问题,但是在这个实践过程中,我的思考,动手能力得到了充分的利用,更加明白了要创新思路,这也是实践的目的。通过实践加强对程序设计语言课程知识点的理解和掌握,培养对课程知识综合运用能力、实际分析问题能力及编程能力,养成良好的习惯。通过实践能进一步领会程序

设计的特点和应用,提高运用C++ 语言以及面向对象知识解决实际问题的能力。通过实践掌握用C++ 语言编写面向对象的实用程序的设计方法,对面向对象方法和思想增加感性的认识;学会利用C++程序设计语言编写出一些简单的Windows实用程序,切实提高面向对象的程序设计能力;通过实践学习了一些简单C#语言,为后续的相关课程的学习打下基础。

在整个实践的过程中,我也领悟到了以下几点:

1)要善于查找资料提高自己的资料查询能力,要善于利用网络来获得知识,获得帮助。

2) 提高自己找错纠错能力,通常错误总是那几种,多练习就熟练了。

3)要学会转换思维。一条路走不通就挖掘其他方法,力求找到最简单方便的途径,避免一条路走到黑。

4) 基本功要过硬。要认真严谨,一丝不苟,千万不能马虎,导致经常犯小错误。

5)多向老师,向同学虚心请教,在有空的时候多和同学交流一下自己的学习心得。

6)做一件事一定要认真,迎难而上,坚持到底,无论困难多大,坚持下去,总会找到解决的方法。

7)提高了自己对新知识的吸收能力,查阅资料,收集资料的能力。

8)学完C++基础后遇到CLR这种新的功能,我深深的体会到了

学海无涯这四个字的含义,所以勤奋学习,学会学习才是我们实践要达到的最终目的。

通过这次C++实践,我学到的东西真的受益匪浅,在今后的学习我要更加努力,在计算机这方面花上一定时间和功夫进行深入研究,为以后的就业和人生打下好的基础。21世纪必将是科技高速发展的时代,计算机恰好是科技发展的基础,因此对计算机有进一步的深入了解非常有必要。

感谢刘雄鹰老师孜孜不倦的教导!

相关主题
文本预览
相关文档 最新文档