计算器课程设计---计算器仿真程序设计.doc_第1页
计算器课程设计---计算器仿真程序设计.doc_第2页
计算器课程设计---计算器仿真程序设计.doc_第3页
计算器课程设计---计算器仿真程序设计.doc_第4页
计算器课程设计---计算器仿真程序设计.doc_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

c#课程设计说明书课 程 设 计 说 明 书设计题目: 计算器仿真程序设计指导教师: 魏明军 院 系: 信息工程学院 学生姓名: 黄勇 学 号: 201114600120 专业班级: 11计算机一班 2012年06月25日22目 录一、系统概述及设计思想11 系统概述12 系统开发基本目标13 系统开发设计思想1二、关键技术11 #region12 异常处理13 if-else24 messagebox.show2三、系统功能设计21 计算器操作界面32 查看菜单界面53 编辑菜单界面64帮助菜单界面7四、各功能代码设计81 计算器操作界面窗体8五、使用说明23六、设计体会23七、参考文献23一、系统概述及设计思想1 系统概述利用该仿真计算器能够进行一些简单的计算,只利用windows窗体创建一个窗体可能与设计窗体的美观性相冲突,所以计算器的许多科学功能无法实现。但是,这些缺点可以通过建立一个次窗体实现这些功能按键,通过添加一些按钮,再调用一些系统提供的数学函数,就可以完善该计算器了,基于这是本报告人的第一个设计程序,就没有实现这些功能按键了。希望大家见谅!2 系统开发基本目标该系统包括以下功能:(1)查看:标准、退出。(2)编辑操作:复制、剪切、粘贴、撤销、全选。(3)软件的开发信息。3 系统开发设计思想(1)采用学校现有的软件和硬件环境以及设计要求开发系统。(2)系统采用模块化程序设计方法,既便于系统功能的各种组合和修改,又便于未参与开发的技术维护人员补充,维护。(3)程序设计符合面向对象的思想和原则。(4)要有良好的程序风格(类、方法及变量等的命名要符合规范;类、方法及字段要有注释;程序有适当缩进)(5)采用文件对数据进行存储。(6)人机界面美观,操作方便、实用。二、关键技术1.#region通过在目标代码的前加上#region,在目标代码之后加上#endregion,可以很好地分类各代码使各功能代码清楚易懂,使程序设计更具有层次。2.异常处理利用try-catch结构捕获异常,及时的修改程序,完善程序,减少异常的出现,保证程序正常运行。3. if-else 结构语句利用if-else 结构语句,让程序正确执行各代码,从而达到实现各功能的目的,使程序更具条理性。 4. messagebox.showmessagebox.show 让程序更好地实现人机交互,醒目,可以减轻人的视觉疲劳,让程序更具趣味性。三、系统功能设计1.计算器操作界面该窗体完成大部分的系统功能,包括复制、剪切、粘贴、全选、撤消和退出等功能。设计如下:向主窗体中添加一个mainmenu控件、一个timer控件、,添加mainmenu的子菜单(“查看”菜单包括“标准”和“退出”子菜单,“编辑”菜单包括“复制”、“粘贴”、“剪切”、“撤消”和“全选”子菜单,“帮助”菜单包括“关于计算器”子菜单),设置各个控件的属性如表1所示,设置完毕后的主程序界面如图1所示。图1计算器系统主界面表1 控件对象属性列表对象属性设置值控件功能calculatortext黄勇专用计算器窗口标题栏的显式内容calculatorstartpositioncenterscreen运行程序时,使窗体在屏幕中间生成resulttextboxtext0初始化后,该框内显示的值为0resulttextboxmultilinetrue可以窗体下拉至适宜位置calculatoricon为计算器添加图标calculatorforecolor可以根据个人喜好,选择字体颜色calculatorfont可以根据个人喜好,设置字体颜色calculatorbackcolor可以根据个人喜好,设置窗体背景颜色labletext在特定的位置显示想要显示的内容buttontext在button上显示按键的功能图2计算器系统的“查看”菜单图3计算器系统的“编辑”菜单图4计算器系统“帮助”菜单四、各功能代码设计1 主窗体代码实现using system;using system.collections.generic;using system.componentmodel;using system.data;using system.drawing;using system.linq;using system.text;using system.windows.forms;using system.io;namespace calculator public partial class calculator : form public string number; public double number1, number2; public double a; public calculator() initializecomponent(); /初始化 private void calculator_load(object sender, eventargs e) this.resulttextbox.text = 0; /退出 private void exitxtoolstripmenuitem_click(object sender, eventargs e) application.exit(); #region 数字键 0 - 9 private void button25_click(object sender, eventargs e) if (this.resulttextbox.text.indexof(.) != -1) this.resulttextbox.text = this.resulttextbox.text + this.button25.text; else this.resulttextbox.text = convert.tostring(convert.todouble(this.resulttextbox.text) * 10 + 0); private void button21_click(object sender, eventargs e) if (this.resulttextbox.text.indexof(.) != -1) this.resulttextbox.text = this.resulttextbox.text + this.button21.text; else this.resulttextbox.text = convert.tostring(convert.todouble(this.resulttextbox.text) * 10 + 1); private void button22_click(object sender, eventargs e) if (this.resulttextbox.text.indexof(.) != -1) this.resulttextbox.text = this.resulttextbox.text + this.button22.text; else this.resulttextbox.text = convert.tostring(convert.todouble(this.resulttextbox.text) * 10 + 2); private void button23_click(object sender, eventargs e) if (this.resulttextbox.text.indexof(.) != -1) this.resulttextbox.text = this.resulttextbox.text + this.button23.text; else this.resulttextbox.text = convert.tostring(convert.todouble(this.resulttextbox.text) * 10 + 3); private void button16_click(object sender, eventargs e) if (this.resulttextbox.text.indexof(.) != -1) this.resulttextbox.text = this.resulttextbox.text + this.button16.text; else this.resulttextbox.text = convert.tostring(convert.todouble(this.resulttextbox.text) * 10 + 4); private void button17_click(object sender, eventargs e) if (this.resulttextbox.text.indexof(.) != -1) this.resulttextbox.text = this.resulttextbox.text + this.button17.text; else this.resulttextbox.text = convert.tostring(convert.todouble(this.resulttextbox.text) * 10 + 5); private void button18_click(object sender, eventargs e) if (this.resulttextbox.text.indexof(.) != -1) this.resulttextbox.text = this.resulttextbox.text + this.button18.text; else this.resulttextbox.text = convert.tostring(convert.todouble(this.resulttextbox.text) * 10 + 6); private void button11_click(object sender, eventargs e) if (this.resulttextbox.text.indexof(.) != -1) this.resulttextbox.text = this.resulttextbox.text + this.button11.text; else this.resulttextbox.text = convert.tostring(convert.todouble(this.resulttextbox.text) * 10 + 7); private void button12_click(object sender, eventargs e) if (this.resulttextbox.text.indexof(.) != -1) this.resulttextbox.text = this.resulttextbox.text + this.button12.text; else this.resulttextbox.text = convert.tostring(convert.todouble(this.resulttextbox.text) * 10 + 8); private void button13_click(object sender, eventargs e) if (this.resulttextbox.text.indexof(.) != -1) this.resulttextbox.text = this.resulttextbox.text + this.button13.text; else this.resulttextbox.text = convert.tostring(convert.todouble(this.resulttextbox.text) * 10 + 9); #endregion /小数点 private void button26_click(object sender, eventargs e) /小数点情况处理,只能有一个小数点 if (this.resulttextbox.text.indexof(.) != -1) system.windows.forms.messagebox.show(this, 操作错误,请正确输入!); else this.resulttextbox.text = this.resulttextbox.text + .; /加法运算 private void button27_click(object sender, eventargs e) a = convert.todouble(this.resulttextbox.text); this.resulttextbox.text = 0; this.textbox2.clear(); this.textbox2.text = this.button27.text; /减法运算 private void button24_click(object sender, eventargs e) a = convert.todouble(this.resulttextbox.text); this.resulttextbox.text = 0; this.textbox2.clear(); this.textbox2.text = this.button24.text; /乘法运算 private void button19_click(object sender, eventargs e) a = convert.todouble(this.resulttextbox.text); this.resulttextbox.text = 0; this.textbox2.clear(); this.textbox2.text = this.button19.text; /除法运算 private void button14_click(object sender, eventargs e) a = convert.todouble(this.resulttextbox.text); this.resulttextbox.text = 0; this.textbox2.clear(); this.textbox2.text = this.button14.text; /等号 private void button28_click(object sender, eventargs e) try double b, c; if (this.textbox2.text.equals(+) b = convert.todouble(this.resulttextbox.text); c = a + b; this.resulttextbox.text = convert.tostring(c); if (this.textbox2.text.equals(-) b = convert.todouble(this.resulttextbox.text); c = a - b; this.resulttextbox.text = convert.tostring(c); if (this.textbox2.text.equals(*) b = convert.todouble(this.resulttextbox.text); c = a * b; this.resulttextbox.text = convert.tostring(c); if (this.textbox2.text.equals(/) b = convert.todouble(this.resulttextbox.text); c = a / b; this.resulttextbox.text = convert.tostring(c); catch (exception ex) console.writeline(输入错误: + ex.message); private void timer1_tick(object sender, eventargs e) label5.text = datetime.now.tostring(); /复制 private void copytoolstripmenuitem_click(object sender, eventargs e) resulttextbox.copy(); /粘贴 private void pastetoolstripmenuitem_click(object sender, eventargs e) resulttextbox.paste(); private void button6_click(object sender, eventargs e) if (resulttextbox.text.length 1) resulttextbox.text = resulttextbox.text.substring(0, resulttextbox.text.length - 1); else if (resulttextbox.text.length = 1) resulttextbox.text = 0; /清空 private void button8_click(object sender, eventargs e) resulttextbox.text = ; this.resulttextbox.text = 0; /根式运算 private void button10_click(object sender, eventargs e) try number1 = double.parse(resulttextbox.text); resulttextbox.text = math.sqrt(number1).tostring(); catch (exception ex) console.writeline(输入错误: + ex.message); /百分号 private void button15_click(object sender, eventargs e) try number = convert.tostring(convert.todouble(resulttextbox.text)*100); resulttextbox.text = number+%; number = ; catch (exception ex) console.writeline(输入错误: + ex.message); /倒数 private void button20_click(object sender, eventargs e) try number = convert.tostring(1 / convert.todouble(resulttextbox.text); resulttextbox.text = number; number = ; catch (exception ex) console.writeline(输入错误: + ex.message); /撤消 private void cancelctoolstripmenuitem_click(object sender, eventargs e) resulttextbox.undo(); /全选 private void checkalltoolstripmenuitem_click(object sender, eventargs e) resulttextbox.selectall(); /复位 private void button7_click(object sender, eventargs e) this.resulttextbox.clear(); this.textbox2.clear(); this.resulttextbox.text = 0; private void button3_click(object sender, eventargs e) convert.todouble(this.resulttextbox.text); this.resulttextbox.text =convert.tostring( -convert.todouble(this.resulttextbox.text); private void cuttoolstripmenuitem_click(object sender, eventargs e) resulttextbox.cut(); private void aboutcalculatetoolstripmenuitem_click(object sender, eventargs e) messagebox.show(this, 黄勇专用计算器 + environment.newline + environment.newline + 河北联合大学信息工程学院 + environment.newline + environment.newline + 11计算机(1)班 + environment.newline + environment.newline + 黄勇+ environment.newline + environment.newline + 学号:201114600120 + environment.newline + environm

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论