my计算器程序设计报告

合集下载

实验报告 计算器程序

实验报告 计算器程序

实验报告学生姓名:学号:专业班级:网络工程实验类型:□验证□综合■设计□创新实验日期:10.4.5 实验成绩:实验2:栈和队列一、实验目的深入了解栈和队列的特性,学会在实际问题下灵活运用它们。

二、问题描述表达式求值运算是实现程序设计语言的基本问题之一,也是栈应用的一个典型例子。

设计并演示用算符优先级对算术表达式的求解过程。

三、实验要求1、算法优先级别如下:'+', '-', '*', '/', '(', ')', '#''+' '>', '>', '<', '<', '<', '>', '>','-' '>', '>', '<', '<', '<', '>', '>','*' '>', '>', '>', '>', '<', '>', '>','/' '>', '>', '>', '>', '<', '>', '>','(' '<', '<', '<', '<', '<', '=', ' ',')' '>', '>', '>', '>', ' ', '>', '>','#' '<', '<', '<', '<', '<', ' ', '='2、以字符序列的形式从终端输入语法正确、不含变量的算术表达式,利用给出的算符优先级关系,实现对算术四则混合运算的求解过程。

计算器程序设计报告

计算器程序设计报告

计算器程序设计报告计算器程序设计报告1. 引言2. 设计目标本计算器程序的设计目标如下:提供简单的四则运算功能,包括加法、减法、乘法和除法;提供括号功能,可以进行复杂的运算操作;提供求幂功能,支持指数运算;接受用户输入,并返回计算结果。

3. 系统设计3.1 输入与输出本计算器程序采用命令行界面。

用户可以通过键盘输入数学表达式,程序将对表达式进行解析计算,并将结果输出到屏幕上。

3.2 表达式解析与计算本计算器程序的关键功能是解析并计算用户输入的数学表达式。

为了实现这一功能,我们需要进行以下步骤:1. 从用户输入中提取出数字、运算符和括号,并将它们按照正确的顺序组合成一个合法的数学表达式。

2. 对表达式中的括号进行处理,按照括号的优先级逐步计算子表达式的值,最终得到整个表达式的结果。

3. 对表达式中的运算符进行处理,按照运算符的优先级进行相应的运算。

3.3 错误处理为了提高用户体验和程序的健壮性,我们需要对用户输入进行合法性检查,并及时给出错误提示。

例如,输入的表达式中如果缺少括号或运算符,或者存在不支持的字符,程序应该能够及时发现并提示用户进行修正。

4. 系统实现本计算器程序的实现可以采用编程语言。

提供了丰富的字符串处理和数值计算的库,十分适合用来实现一个简单的计算器程序。

具体的实现过程如下:1. ,我们需要定义一个函数,用于接受用户输入的数学表达式,并返回计算结果。

这个函数可以使用的input函数实现。

2. 接下来,我们需要编写一个函数,用于对用户输入的表达式进行解析,并把它们按正确的顺序组合成一个合法的数学表达式。

这个函数可以使用的字符串处理函数实现。

3. 对于带有括号的表达式,我们可以使用递归的方式进行解析和计算。

递归函数可以反复调用自身,处理子表达式,并将最终的计算结果返回。

4. ,我们需要编写一个函数,用于对表达式中的运算符进行处理,并按照优先级进行相应的运算。

5. 测试与验证为了验证计算器程序的正确性和可靠性,我们需要进行一系列的测试。

程序设计综合实践课C简单计算器

程序设计综合实践课C简单计算器
简单计算器
1、项目概述
该项目目标是设计开发一个支持连 续计算的四则运算计算器 myCalculator,通过单击按钮,输 入并完成如4+5+6或5*8+16类似的 连续计算,并将运算结果显示在输 出文本框中,同时也具备清空、后 退等功能。
2、设计步骤
项目分析与算法流程设计。
计算器myCalculator的主要功能是完 成加、减、乘、除四则运算,而且支 持连续计算,如4+5+7-8或4*5-6等运 算。连续计算的实现借助于开发工具 中 预 定 义 的 数 据 结 构 Stack ( 栈 ) 实 现,如流程图所示
4、项目扩展2
扩展计算器的使用领域,开发贷 款计算器(或其他,如利息计算 器等)
5、成绩评定说明
ቤተ መጻሕፍቲ ባይዱ程序设计开发语言不限。 成绩评定(要求提交设计报告和程序): ✓其中设计报告占40%(格式可参照本ppt的前四部分) ✓程序(源代码)占60%(程序能够正常运行) 完成项目扩展的酌情加分
2、设计步骤
界面设计。
2、设计步骤
代码编写(略)
2、设计步骤
运行调试
计算“5*9+5+50”,依次单击按 钮“5”、“*”、“9”、“+”、 “5”、“+”、“50”,然后单 击按钮“=”,显示框的数值为 100
3、项目扩展1
增加计算器的功能,添加求平方 根、求余、倒数的功能(读者也 可自行扩展。

计算器程序设计报告

计算器程序设计报告

题目一计算器1.1 题目简介用Java语言、MyEclipse工具、设计一个GUI简易计算器,编写计算器的基本运算的程序,用户可以通过鼠标一次输入参加计算的数值,进行加减乘除等混合运算,基本实现计算器的四则运算和三角函数运算功能以及开方和求对数的基本运算。

本计算器只适用十进制的运算,不限制十进制的大小。

编写本计算器运用java的类得调用和直接在程序中定义类,实现计算器的基本功能,在这个计算器中对于执行的操作可以进行复制和保存以便以后能直接查看运行结果本计算器保存没不得运行结果,只有点清除键是才可以清除每步的结果。

1.2 设计的内容、要求和目标设计内容:设计一个GUI简易计算器,用户可以通过鼠标一次输入参加计算的数值,进行加减乘除等混合运算。

设计要求:由于现代用户更倾向于由鼠标方便操作的图形用户界面,所以我们采用GUI来实现计算器,并采用Swing组件,AWT事件来处理等实现具体功能。

(1)、应具有相应的界面,可参考下图进行设计:(2)、操作符号定为:“+”“-”,“*”,“/”等。

(3)、用户通过点击面板中的各种组件输入的表达式,应在上方文本框。

(4)、党用户点击“=”时,文本框中之前的内容应清空,直接显示表达式运算结果。

例如:输入表达式“7*8”之后按“=”,显示结果“56”。

(5)、具有菜单栏,内有相应的编辑“复制”、“粘贴”等菜单,提供相应的功能。

设计目标:利用Java语言设计一个简单的计算器,以实现基本的加减乘除功能,还有sin、|cos、tan、log等算术运算;同时实现退格、清零等运算。

1.3总体设计1)、对计算器面板的整体布局首先是对计算器的整体面板进行一个简单的设计,整体布局是采用layout (边框布局)布局,对计算器中的一些数字按钮和运算符按钮采用gridlayout 布局(网格布局)。

2)、创建实现程序所需的类整理思路,确定一个主类CalculatorWindow,然后对Dialog、HandleBack、HandleClear、HandleCos、HandleCot、HandleSin、HandleTan、HandleDigit、HandleDot、HandleDownNumber、HandleEquality、HandleLog、HandleOperation、HandlePOrN、HandlePositiveOrNegative、NumberButton、OperationButton、SelectJTree等类的创建。

计算器实验报告

计算器实验报告

题目:界面计算器学生姓名:专业:学号:指导老师:1.实验目的:设计一个简单的计算器程序,实现简单的计算功能。

2.实验内容:(1)体系设计:程序是一个简单的计算器,能正确输入数据,能实现加、减、乘、除等算术运算,运算结果能正确显示。

(2)设计思路:1)先在Visual C++ 6.0中建立一个MFC工程文件,名为calculator;2)在对话框中添加适当的编辑框、按钮、静态文件、复选框和单选框;3)设计按钮,并修改其相应的ID与Caption;4)选择和设置各控件的单击鼠标事件;5)为编辑框添加double类型的关联变量m_edit1;6)在calculatorDlg.h中添加math.h头文件,然后添加public成员;7)打开calculatorDlg.cpp文件,在构造函数中,进行成员初始化和完善各控件的响应函数代码.3.程序调试4.附录添加的public成员:double tempvalue; //存储中间变量double result; //存储显示结果的值int sort; //判断后面是何种运算:1.加法2.减法 3.乘法 4.除法int append; //判断后面是否添加数字成员初始化:CCalculatorDlg::CCalculatorDlg(CWnd* pParent/*=NULL*/): CDialog(CCalculatorDlg::IDD, pParent){//{{AFX_DATA_INIT(CCalculatorDlg)m_edit1 = 0.0;//}}AFX_DATA_INIT// Note that LoadIcon does not require a subsequent DestroyIcon in Win32m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);tempvalue=0;result=0;sort=0;append=0;}各控件响应函数代码:void CCalculatorDlg::OnButton1() //按钮“1”{// TODO: Add your control notification handler code hereif(append==1)result=0;result=result*10+1;m_edit1=result;append=0;UpdateData(FALSE);void CCalculatorDlg::OnButton2() //按钮“2”{// TODO: Add your control notification handler code hereif(append==1)result=0;result=result*10+2;m_edit1=result;append=0;UpdateData(FALSE);}void CCalculatorDlg::OnButton3() //按钮“3”{// TODO: Add your control notification handler code hereif(append==1)result=0;result=result*10+3;m_edit1=result;append=0;UpdateData(FALSE);}void CCalculatorDlg::OnButton4() //按钮“4”// TODO: Add your control notification handler code hereif(append==1)result=0;result=result*10+4;m_edit1=result;append=0;UpdateData(FALSE);}void CCalculatorDlg::OnButton5() //按钮“5”{// TODO: Add your control notification handler code hereif(append==1)result=0;result=result*10+5;m_edit1=result;append=0;UpdateData(FALSE);}void CCalculatorDlg::OnButton6() //按钮“6”{// TODO: Add your control notification handler codehereif(append==1)result=0;result=result*10+6;m_edit1=result;append=0;UpdateData(FALSE);}void CCalculatorDlg::OnButton7() //按钮“7”{// TODO: Add your control notification handler code hereif(append==1)result=0;result=result*10+7;m_edit1=result;append=0;UpdateData(FALSE);}void CCalculatorDlg::OnButton8() //按钮“8”{// TODO: Add your control notification handler code hereif(append==1)result=0;result=result*10+8;m_edit1=result;append=0;UpdateData(FALSE);}void CCalculatorDlg::OnButton9() //按钮“9”{// TODO: Add your control notification handler code hereif(append==1)result=0;result=result*10+9;m_edit1=result;append=0;UpdateData(FALSE);}void CCalculatorDlg::OnBUTTONzero() //按钮“0”{// TODO: Add your control notification handler code hereif(append==1)result=0;result=result*10+0;m_edit1=result;append=0;UpdateData(FALSE);}void CCalculatorDlg::OnBUTTONequal() //按钮“=”{// TODO: Add your control notification handler code hereswitch(sort){case 1:result=result+tempvalue;break;case 2:result=tempvalue-result;break;case 3:result=result*tempvalue;break;case 4:result=tempvalue/result;break;}m_edit1=result;sort=0;append=1;UpdateData(FALSE);}void CCalculatorDlg::OnBUTTONclean() //按钮“C”{// TODO: Add your control notification handler code heretempvalue=0;result=0;m_edit1=0.0;UpdateData(FALSE);}void CCalculatorDlg::OnBUTTONplus() //按钮“+”{// TODO: Add your control notification handler code heresort=1;tempvalue=result;m_edit1=0;append=1;}void CCalculatorDlg::OnBUTTONminus() //按钮“-”{// TODO: Add your control notification handler code heresort=2;tempvalue=result;m_edit1=0;append=1;}void CCalculatorDlg::OnBUTTONmulti() //按钮“*”{// TODO: Add your control notification handler code heresort=3;tempvalue=result;m_edit1=0;append=1;}void CCalculatorDlg::OnBUTTONdiv() //按钮“/”{// TODO: Add your control notification handler code heresort=4;tempvalue=result;m_edit1=0;append=1;}10。

计算器设计报告.doc

计算器设计报告.doc

课程设计报告——计算器编程计算器系统编程设计一、设计背景:课堂所学与实际需求相结合,计算器的使用频率高 二、主要功能:能进行基本运算和稍复杂的操作 二、系统结构:三、设计说明 (一)控件的应用1、菜单编辑器的应用创建三个主菜单 ,分别命名为“编辑”、“查看”、“帮助” A 、“编辑”包含两个子菜单:复制、粘贴可 显示数字的 文本框 可操作的控件 可 显示数字的 文本框 可供选择的单选按钮 可操作的控件计算器主界面编辑 查看 帮助复制 粘贴标准型 科学型 辅导老师关于计算器B、“查看”标准型里包含三个子菜单:标准型、科学型、数字分组,科学型里还包括进制转换及角度转换的子菜单C、“帮助”包含两个子菜单:辅导老师、关于计算器2、文本框的应用普通型和科学型中各有一个,显示单击命令按钮的内容及运算结果3、命令按钮的应用通过创建数字按钮、算术运算按钮、函数运算等按钮,实现计算器的运算操作及窗体的转换4、单选按钮的应用在科学计算器中设置不同进制的转换、角度的转换5、标签的应用通过是否显示字母M表达数据是否被暂存(二)系统设计及实现1、主界面设计显示标准型的界面,通过菜单“查看”中的子菜单“科学型”及菜单“帮助”中的两个子菜单及期中的“返回”按钮实现窗体的转换2、工程的创建步骤如下:(1)新建一个“标准EXE”工程。

(2)添加4个子窗体(3)对所有的窗体进行简单的属性设置,如下表默认名称(Name)标题(Caption)Form1 计算器(1)Form1 计算器(2)Form1 辅导老师Form1 关于计算器3、菜单的创建(1) 标准型通过“菜单编辑器”创建,如下表标题(Caption)名称(Name)快捷键(ShortCut)编辑Edit……复制Copy Ctrl+C……粘贴Paste Ctrl+V查看View……标准型Biao……科学型Ke……数字分组Identify帮助Help……辅导老师Teacher……关于计算器About(2)科学型在查看菜单中增添了部分子菜单,如下表标题(Caption)名称(Name)快捷键(ShortCut)十六进制Liu F5十进制Shi F6八进制Ba F7二进制Er F8角度Jiao F2弧度Hu F3梯度Ti F44、窗体的设计(1)标准型标准型计算器的功能由“计算器(1)”窗体完成,用到的控件主要有:菜单、命令按钮、标签、文本框。

计算器程序设计实验报告

计算器程序设计实验报告

课程设计报告Windows程序设计基础计算器程序设计实验报告院(系):计算机与信息工程学院专业:计算机科学与技术班级:13计科班学号:20131104765姓名:娄心玲指导教师:朝力萌完成日期:2014/12/20目录第1章概要设计 (2)1.1题目的容与要求 (2)1.2总体结构 (2)第2章详细设计 (3)2.1主模块 (3)第3章调试分析 (5)第4章使用说明与执行结果 (6)第1章概要设计1.1题目的容与要求容:本试验是基于microsoft visual c++ 2010的MFC平台设计并制作简易计算器。

本设计涉及绘制简易简易计算器图形,设置按钮单机事件,相应鼠标单击响应事件。

要求:了解visual 2010 C++的应用程序,系统的学习面向对象程序思想,了解MFC结构,逐步的了解逐步熟悉可视化编程环境Visual C++。

1.2总体结构第2章详细设计2.1主模块等于号的函数类的编写://"="UpdateData(true);if(i==1){temp=_ttof(m_str)+temp;m_str.Format(L"%lf",temp);}if(i==2){temp=temp-_ttof(m_str);m_str.Format(L"%lf",temp);}if(i==3){temp=_ttof(m_str)*temp;m_str.Format(L"%lf",temp);}if(i==4){if(_ttof(m_str)==0){m_str=L"除数不能为零";UpdateData(false);}else{temp=temp/_ttof(m_str);m_str.Format(L"%lf",temp);}}UpdateData(false);z=0;}第3章调试分析测试12/0得到的结果测试:第4章使用说明与执行结果运行操作及结果:二.课程设计小结在实验中发现——分析——总结的问题有:在整个计算器的设计过程中,由于不能熟练的运用函数,导致程序过分复杂,不够简洁。

计算器设计实验报告

计算器设计实验报告

计算器设计实验报告《计算器设计实验报告》摘要:本实验旨在设计一个简单的计算器,并测试其功能和准确性。

实验过程中,我们使用了基本的电子元件和逻辑门电路来实现计算器的各种功能。

经过测试,我们发现设计的计算器能够准确地进行加减乘除等运算,并且在使用过程中表现稳定可靠。

通过本实验,我们对计算器的设计和原理有了更深入的了解,并且掌握了一定的电子电路设计和测试技能。

引言:计算器是现代生活中不可或缺的工具,它能够帮助人们进行各种数学运算,提高工作和学习效率。

在本实验中,我们将设计一个简单的计算器,并测试其功能和准确性。

通过这个实验,我们可以更深入地了解计算器的原理和设计,为今后的电子电路设计和实验打下基础。

材料和方法:1. 电子元件:逻辑门、电阻、电容、LED等2. 电路板和连接线3. 电源和示波器4. 计算器设计图纸和电路原理图实验步骤:1. 根据设计图纸和电路原理图,连接各种电子元件,组装成一个计算器电路。

2. 使用电源给电路供电,并使用示波器测试电路的输出波形和稳定性。

3. 进行加减乘除等运算测试,记录计算器的准确性和稳定性。

4. 对计算器进行长时间稳定性测试,观察其在长时间使用中的表现。

实验结果:经过测试,我们发现设计的计算器能够准确地进行加减乘除等运算,并且在使用过程中表现稳定可靠。

电路的输出波形清晰,没有明显的波动和噪声。

在长时间稳定性测试中,计算器表现良好,没有出现明显的故障和失效现象。

讨论:通过本实验,我们对计算器的设计和原理有了更深入的了解,并且掌握了一定的电子电路设计和测试技能。

在今后的学习和工作中,我们可以根据这些知识和技能,设计和制作更复杂和功能更强大的计算器和其他电子设备。

结论:本实验设计了一个简单的计算器,并测试了其功能和准确性。

经过测试,我们发现设计的计算器能够准确地进行加减乘除等运算,并且在使用过程中表现稳定可靠。

通过这个实验,我们对计算器的设计和原理有了更深入的了解,并且掌握了一定的电子电路设计和测试技能。

编写一个计算器程序课程设计报告范例定稿版

编写一个计算器程序课程设计报告范例定稿版

编写一个计算器程序课程设计报告范例HUA system office room 【HUA16H-TTMS2A-HUAS8Q8-HUAH1688】《金融IT 入门-程序设计》课程设计报告中国地质大学长城学院XX 系2017年月 3 日 目录 一.总体概述: 二.设计目标: 三.程序流程图: 四.程序代码:五.设计体会:细则题目: 用Python 编写简易计算器程序 学号:专业:班级:姓名: 指导教师:2016-2017学年 第二学期一、设计内容--------------------------------------------------- - 2 -1. 课程设计目的:------------------------------------------- - 2 -2.课程设计任务:??------------------------------------------ - 2 -3.创新要求:------------------------------------------------ - 2 -4.设计要求:------------------------------------------------- - 2 -二、原理与分析------------------------------------------------- - 2 -1.开发的技术及功能------------------------------------------ - 3 -2.设计思路-------------------------------------------------- - 3 -3.设计效果图------------------------------------------------ - 3 -三、设计过程--------------------------------------------------- - 3 -1. 程序思路:----------------------------------------------- - 3 -2.功能实现:------------------------------------------------ - 4 -1)加减乘除求余以及指数运算------------------------------ - 4 -2)其他运算---------------------------------------------- - 4 -3)主要方法说明------------------------------------------ - 6 -4)程序流程图-------------------------------------------- - 6 -3.算法思路:------------------------------------------------ - 7 -4.数据分析:------------------------------------------------ - 8 -四、设计结果与分析---------------------------------------------- - 8 -⒈运行调试-------------------------------------------------- - 8 -1)进行加减乘除求余以及指数运算-------------------------- - 8 -2)求倒-------------------------------------------------- - 9 -3)退格------------------------------------------------- - 10 -4)清零------------------------------------------------- - 10 -5)求余弦、求正切、对e求幂、求平方根、求自然对数、求倒运算- 11 -6)连续运算(例:2*3*4=24.0)--------------------------- - 11 -7)异常处理(例:求倒时输入数为0)--------------------- - 12 -五、设计体会与小结-------------------------------------------- - 13 -六、参考文献-------------------------------------------------- - 13 -七、源程序---------------------------------------------------- - 14 -一、设计内容1.课程设计目的:1)掌握Java语言的程序设计方法;2)理论联系实际,进一步提高学生的软件开发技术;3)培养学生分析、解决问题的能力;4)提高学生实践论文撰写能力。

计算器设计实验报告

计算器设计实验报告

计算器设计实验报告计算器设计实验报告第一部分:引言计算器是一种广泛应用于日常生活和工作中的电子设备。

它能够进行基本的数学运算,如加减乘除,以及更复杂的科学计算,如对数、三角函数等。

本实验旨在设计一个简单的计算器,以了解计算器的工作原理,并通过实践来提高我们的电子设计和编程能力。

第二部分:设计思路在设计计算器之前,我们首先需要确定所需的功能和要使用的技术。

基于我们的目标是设计一个简单的计算器,我们决定使用数字显示屏、按键和微控制器来实现。

数字显示屏是用于显示计算结果和用户输入的设备,我们选择了七段数码管作为显示器。

按键则用于接收用户输入的数字和操作符。

微控制器是计算器的核心部件,它负责接收按键输入,进行计算,并将结果显示在数码管上。

第三部分:实验步骤1. 硬件设计我们首先设计了数字显示屏的电路。

通过连接七段数码管和相应的电阻,我们能够控制数码管的亮灭,从而显示不同的数字和符号。

接下来,我们设计了按键的电路。

每个按键都与微控制器的引脚相连,当按键被按下时,引脚会接收到一个电平信号,微控制器通过检测引脚状态来确定用户的输入。

2. 软件编程在硬件设计完成后,我们开始编写微控制器的程序。

程序的主要任务是接收按键输入,并根据用户的操作进行相应的计算。

首先,我们设置了一个变量来存储用户的输入,然后通过检测按键状态来更新这个变量。

当用户按下数字键时,程序将数字添加到变量中;当用户按下操作符键时,程序将根据当前的操作符和变量进行相应的计算。

最后,程序将计算结果显示在数码管上。

我们使用了一个函数来将计算结果转换为七段数码管的控制信号,并通过相应的引脚将信号发送到数码管。

第四部分:实验结果经过一段时间的设计和调试,我们成功地完成了计算器的制作。

它能够准确地接收用户的输入,并进行相应的计算。

计算结果也能够正确地显示在数码管上。

我们进行了一系列测试来验证计算器的功能和性能。

测试包括基本的加减乘除运算,以及一些复杂的科学计算,如对数和三角函数。

计算器程序设计报告

计算器程序设计报告

计算器程序设计报告计算器程序设计报告1-引言1-1 背景计算器是一种常见的工具,可以进行基本的数学运算,如加减乘除等。

为了满足用户的需求,我们决定设计一个计算器程序,使用户能够方便地进行各种数学运算。

1-2 目的本报告旨在描述我们设计的计算器程序的详细功能和实现过程。

通过本文档,读者将了解到如何使用计算器程序进行各种数学运算,并且可以根据需要进行扩展。

2-需求分析2-1 用户需求用户希望使用一个具有简单操作界面、支持各种基本数学运算,并具备一些额外功能的计算器程序。

2-2 功能需求●支持基本的四则运算:加法、减法、乘法、除法。

●支持括号的运算优先级。

●支持取余和取模运算。

●支持科学计数法。

●支持计算平方根、立方根等常用数学函数。

●支持存储和读取计算结果。

●支持清除当前输入和计算结果。

●支持多种界面主题选择。

●支持历史记录功能,记录之前的计算操作。

3-设计方案3-1 总体架构计算器程序将采用分层架构,包括界面层、业务逻辑层和数据存储层。

界面层负责用户交互,业务逻辑层负责处理用户的输入和计算逻辑,数据存储层负责存储用户的计算结果和历史记录。

3-2 界面设计界面将采用简洁直观的设计,包括数字按钮、运算符按钮和其他功能按钮。

用户可以通过按钮进行数学运算和额外功能的操作。

3-3 数据结构设计程序将使用栈来处理运算符的优先级和括号的匹配。

同时,还需设计适当的数据结构来存储计算结果和历史记录。

4-功能实现4-1 基本四则运算程序将设计相应的函数来实现加法、减法、乘法和除法运算,并考虑数值溢出和除数为零的异常情况。

4-2 括号的运算优先级程序将使用栈来处理具有括号的运算,保证括号内的运算先于外层运算。

4-3 科学计数法程序将设计函数来处理科学计数法表示的数值,并进行相应的运算。

4-4 常用数学函数程序将设计函数来计算平方根、立方根等常用数学函数,并进行相应的运算。

4-5 计算结果的存储和读取程序将提供存储计算结果和读取之前结果的功能,方便用户进行连续计算和结果的查看。

程序设计_实验报告

程序设计_实验报告

一、实验目的1. 熟悉程序设计的基本概念和流程。

2. 掌握基本的编程语言语法和编程技巧。

3. 培养逻辑思维能力和问题解决能力。

4. 提高编程实践能力,为以后的学习和工作打下基础。

二、实验环境1. 操作系统:Windows 102. 编程语言:Python3.83. 开发工具:PyCharm三、实验内容1. 编写一个简单的计算器程序,实现加、减、乘、除四种基本运算。

2. 编写一个学生信息管理系统,实现学生信息的增删改查功能。

3. 编写一个简单的图书管理系统,实现图书信息的增删改查功能。

四、实验步骤1. 计算器程序(1)设计计算器界面,使用文本输入和输出。

(2)编写加、减、乘、除四种运算的函数。

(3)编写主函数,根据用户输入选择运算类型,调用相应的运算函数,并输出结果。

2. 学生信息管理系统(1)定义学生信息类,包含姓名、年龄、性别、成绩等属性。

(2)设计学生信息管理系统界面,使用文本输入和输出。

(3)编写增删改查功能的函数,实现对学生信息的操作。

(4)编写主函数,根据用户输入选择操作类型,调用相应的函数。

3. 图书管理系统(1)定义图书信息类,包含书名、作者、出版社、出版日期等属性。

(2)设计图书管理系统界面,使用文本输入和输出。

(3)编写增删改查功能的函数,实现对图书信息的操作。

(4)编写主函数,根据用户输入选择操作类型,调用相应的函数。

五、实验结果与分析1. 计算器程序(1)界面设计:使用文本输入和输出,实现简单的交互。

(2)功能实现:成功实现加、减、乘、除四种基本运算。

(3)测试结果:对多个测试用例进行测试,程序运行正常,输出结果正确。

2. 学生信息管理系统(1)界面设计:使用文本输入和输出,实现简单的交互。

(2)功能实现:成功实现学生信息的增删改查功能。

(3)测试结果:对多个测试用例进行测试,程序运行正常,功能完整。

3. 图书管理系统(1)界面设计:使用文本输入和输出,实现简单的交互。

(2)功能实现:成功实现图书信息的增删改查功能。

计算器程序设计报告

计算器程序设计报告

计算器程序设计报告一、设计分析编写一个计算器程序,要求:1、界面类似于windows系统中提供的计算器界面;2、能实现加、减、乘、除、乘方、开方等功能。

界面类似于windows系统中提供的计算器界面,则数字的输入和功能的执行都通过按键来实现,并且能够在显示区域里及时的显示出数据,所用本程序使用VC++提供的高度可视化的应用程序开发工具MFC来实现。

要实现加、减、乘、除、乘方、开方等功能,则在程序中包含"math.h"库函数文件,通过引用相应的函数来实现乘方、开方等功能。

在输入第一个计算参数以后,点击需要执行的计算方式,然后输入第二个计算参数,点击“=”按钮,则会在显示区显示出正确的结果。

本程序从设计上来讲,主要分为两个重点部分,一个是数字的输入,即逐个点击单个数字(包括小数点)之后,这些数据能够在显示区正确的显示。

第二个是数据的计算,先输入第一个计算参数,然后选择计算方式,再输入第二个计算参数,最后点击“=”按钮,计算结果。

二、程序结构按照程序的设计,可以分为数据显示模块、数据输入模块、计算方式选择模块、结果计算模块、菜单模块等五个主要模块,其中,数字输入模块和计算模块是重点和难度,这两个模块的流程图如下所示:1、数字输入的流程图:点击一个数字键以后,流程开始:2、数据计算的流程:三、各模块的功能及程序说明按照程序的设计,可以分为数据显示模块、数据输入模块、计算方式选择模块、结果计算模块、菜单模块等五个主要模块,以下逐个说明各模块的功能及程序说明。

1、数据显示模块。

数据显示模块显示用户输入的数字和计算器计算的结果,主要由一个数字显示框组成。

数字显示框是一个编辑框控件,属性设置为只读模式,不能由用户编辑。

在MFC的类向导中,给数字显示框添加一个变量m_num,用来记录数字的变化,当每次操作以后,都会把数字更新到界面上,显示给用户。

2、数据输入模块。

数据输入模块用来输入1、2、3、4、5、6、7、8、9、0等十个数字和一个“.”小数点,并且可以进行数据正负的转换。

计算器程序设计报告

计算器程序设计报告

运城学院单片机课程设计报告课题名称计算器设计单位运城学院所在院(系)计算机科学与技术系班级 0902 班指导教师赵润林学生姓名裴立军贺琛王宇寒2012年 12 月 14 日目录1.课程设计的目的 (3)2.课程设计题目描述和要求 (3)8.硬件设计 (10)9.软件设计 (11)10.程序代码 (12)11.设计总结 (18)12.参考文献 (20)人员分工:序号姓名主要工作1 裴立军总体设计2 贺琛硬件设计3 王宇寒软件设计1.课程设计目的(1) 进一步熟悉和掌握单片机的结构及工作原理。

(2) 掌握单片机的接口技术及相关外围芯片的外特性,控制方法。

(3) 通过课程设计,掌握以单片机核心的电路设计的基本方法和技术,了解相关电路参数的计算方法。

(4) 通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。

(5) 通过完成一个包括电路设计和程序开发的完整过程,使学生了解单片机应用系统开发及的全过程,为今后从事相应的工作打下良好的基础。

2.课程设计题目描述和要求2.1设计题目要求用单片机完成四位正整数的加减乘除运算,通过键盘输入使数值与结果在七段共阴极数码管上显示,并设有清零键可随时完成计算与显示的清零。

2.2 原理图设计要求(1) 原理图设计要严格符合作图规范(布局、连线要正确,连线端子要有标号等)。

(2) 图中所使用的各元器件要按标准正确标明序号及数值(如,电阻:R1,100k;电容C1,30PF)。

(3) 原理图要完整(电源,单片机,外围器件,扩器接口,输入/输出装置等要一应俱全)。

2.3程序设计要求(1) 根据设计要求,将总体功能分解成若干个子功能模块,每个功能模块完成一个特定的功能。

(2) 根据总体要求详细分解各功能模块,并确定各功能模块之间的关系,设计出完整的程序流程图(按流程图设计标准完成设计)。

2.4程序调试要求(1) 利用C语言编写程序(按C语言书写标准完成程序设计)。

(2) 通过keil调试(按步骤一步一步完成程序调试、包括断点设置、内存及代码分析等)。

my计算器程序设计报告

my计算器程序设计报告

计算器程序设计报告计算器是一种在日常生活中很常用的计算工具,它在计算方面给了我们提供很大的方便。

本程序的功能包括:(1)加,减,乘,除运算,正弦,余弦,正切,余切,反正切,反余切,反正弦,反余弦,自然对数,以10为底的对数还有阶乘等函数功能。

(2)还包括存储清,存储显示,存储相加。

“计算器”是一个关于多种控件,以及控件数组应用的程序,它包含许对字符串的处理,多模块程序设计,数学函数的使用。

它所需知识点较多,必须对各个方面都有所了解.数学模型:主界面界面:进制转化界面数学函数代码代码:存储清代码进制转化代码第一步,要编辑计算器界面,如右图,对于界面上的按钮较多,我们可以分成四组,这就是控件数组的使用,而且每个按钮的属性都一一设置,而且要调入图片.第二个界面如右图比较简单,只是一些普通的控件.计算器是一个输入原始数据,运算中间数据和结果数据都显示在窗口顶部的同一个文本框的工具,这就要求我们可以把文本框的内容付给两个不同的变量,对于这一点我们就可以用一个逻辑变量来实现.比如, If not boolean str1=strElse str2=str计算器的主要功能就是运算,但是任何一个数值的输入都是以字符串的形式进行的,而字符串是无法参与运算的,所以必须用CInt()转换成整形变量,而输出时必须用CStr()转化成字符串的形式输出,更为麻烦的是,在进行进制转换时,两种变量之间的转换更为频繁。

在编程过程中要时刻注意!就拿一个简单的程序中的一部分来说吧:If not boolean then str=str1Else str=str2Str=text1.textn=CInt(str) ‘“将其转换成整形变量"…….t4 =str( ) ‘“ 将返回值转换成字符串"计算器的功能程序简单易懂,但编制过程极为烦琐,我在编程的过程中,体会最深的就是其过程有重复,但又不得再编,在这里尤其要注意,有些过程虽然相似,但它们却存在着质的区别,就拿删除按扭来说吧,"C","0->M","CE","->"按扭都有删除的功能,在这里我就它们的区别作一下详细介绍:将"C","CE","->"作为一个控件数组,其程序如下:If not boolean str1=str else str2=strSelect Case IndexCase 0str1=" ",str2=" ", Text1.text=" " "C"键Case1str=" " "CE"键Case2str=Left(str,len(str)-1) "->"键而"0->M"在另一个数组控件中,其程序的一部分如下:Case0n4=0: Text1.text="0"可见它们的代码是存在区别的,这就要求在编程时弄清楚它们的区别,不可想当然把同一种代码复制过来.这里我再介绍一下小数点的使用Private Sub Command2_Click(Index As Integer)If Index<10 Thenstr=str+CStr(Index) "输入数字"ElseIf InStr(str,".")=0 Then str=str+"." "输入小数点"End IfIf Len(str)>1 And Left(str,1)="0" And Mid(str,2,1)<>"."Thenstr=Right(str,Len(str)-1) "删除前面多余的0"End IfText1.text=str "显示输入的数据 "If not boolean Then str1=str Else str2=str "用两个字符串变量存放"End Sub计算器虽复杂,但大部分还是比较简单的,最难的地方就是进制转换器的编码了,要编好这一部分必须对各进制之间的转换关系了如指掌.其中各个进制都和二进制有着直接的转换关系.而其他三个之间都不可直接进行转换.对于不能直接转化的,可以间接转化,例如,可以将十六进制先转化成十进制然后再转化成八进制.ElseIf Option4 = True Thent4 = ""str = Text1.TextDim p As Integer, q As Longq = 0Do While str <> "" ‘把输入的字母先转化为对应的数t = Right(str, 1)If t = "a" Thenn = 10ElseIf t = "b" Thenn = 11ElseIf t = "c" Thenn = 12ElseIf t = "d" Thenn = 13ElseIf t = "e" Thenn = 14ElseIf t = "f" Thenn = 15Else: n = CInt(t)End Ifq = q + n * 16 ^ (p)str = Left(str, Len(str) - 1)’从后逐步取出每个字符p = p + 1’指数从后依次加一Loopm = q ’十六进制转成了十进制Do While m <> 0For m1 = 1 To 3n = m Mod 2m = m \ 2int1 = n * 2 ^ (m1 - 1)十进制再转化为八进制int2 = int2 + int1Nextt3 = CStr(int2)t4 = t3 + t4t3 = ""int1 = 0int2 = 0LoopText2.Text = t4以下是用来判断输入的字符是否符合所选择进制的要求的,如果不符和就会出现一个对话框同时删除所输入的字符。

计算器程序报告报告

计算器程序报告报告

计算器程序1. 基本功能描述这是一个能够实现简单计算的MFC计算器,外观和我们日常生活中常见的计算器相仿,因此可以很好的适应用户的操作习惯。

它支持单目运算和双目运算,例如最基本的加减乘除,以及开方、对数、正余弦、阶乘等功能。

内部的代码决定了它能实现连续运算、判断优先级、弧度和度数的相互转化、对输入的任何数字可以撤销(即退格功能)、清除以及退出功能。

另外为了拥有一个具有简洁大方的图文外观,决定在计算器界面上新增一组单选按钮科学型与标准型,使之能切换到用户想要的风格。

而且可以操作与运算按钮相对应的菜单项。

2. 设计思路说明: 初始化各变量的具体内容包括编辑框关联变量m_mun清零、记录小数点的标志位ele赋为FALSE、记录当前操作数正负的标志位ele2置为TRUE、记录小数位数的整形变量dint清零、运算符标志位addt清零。

但不包括对num2的任何操作,因为num2中应该保存上一次操作的结果,以实现连续运算的功能。

详见3.2和3.3中的内容。

图1 数据输入及显示流程图图2 计算器运算流程图图3 单目运算符OnSin()子函数备注:①流程图的图1给出了数字按钮被按下时后台数据的存贮以及送入编辑框并实时显示的原理。

②考虑到优先级和度数弧度转化的问题,因此程序的流程图主要以双目运算符”/”(对应流程图的图2)和单目运算符正弦函数sin进行说明(对应流程图的图3),其他运算按钮的对应的消息响应函数类似。

3. 软件设计3.1. 设计步骤3.1.1. 使用AppWizard建立应用程序框架(1)在进入VC++的第一个界面下,选择MFC AppWizard[exe],并设置工程名为LIUTING.并设置在指定的的位置,如图4所示。

单击确定。

图4 新建MFC AppWizard[exe]工程(2)弹出MFC应用程序向导-步骤1对话框。

选中Dialog based选项,其余的都采用默认选项。

单击完成, MFC AppWizard建立了一个基于对话窗口的程序框架,详见图5。

计算器设计实验报告

计算器设计实验报告

一、实验目的1. 熟悉数字电路的基本原理和设计方法。

2. 培养学生的动手能力和创新意识。

3. 设计并实现一个功能齐全的计算器。

二、实验原理计算器是一种常见的电子设备,其核心部件为运算单元。

本实验通过设计并实现一个计算器,使学生掌握以下原理:1. 按键扫描电路:用于读取按键信息。

2. 数据存储电路:用于存储输入的数值和运算符。

3. 运算电路:根据输入的运算符进行相应的运算。

4. 显示电路:用于显示运算结果。

三、实验仪器与材料1. 数字电路实验箱2. 计算器原理图3. 连接导线4. 按键5. LED显示器6. 电阻、电容等元件四、实验步骤1. 按键扫描电路设计(1)设计按键扫描电路原理图,包括按键、电阻、二极管等元件。

(2)根据原理图,搭建实验电路,并进行调试。

2. 数据存储电路设计(1)设计数据存储电路原理图,包括寄存器、计数器等元件。

(2)根据原理图,搭建实验电路,并进行调试。

3. 运算电路设计(1)设计运算电路原理图,包括加法器、减法器、乘法器、除法器等元件。

(2)根据原理图,搭建实验电路,并进行调试。

4. 显示电路设计(1)设计显示电路原理图,包括LED显示器、译码器等元件。

(2)根据原理图,搭建实验电路,并进行调试。

5. 整体电路设计(1)根据以上四个部分的设计,设计整体电路原理图。

(2)根据原理图,搭建实验电路,并进行调试。

五、实验结果与分析1. 按键扫描电路按键扫描电路能够正确读取按键信息,实现按键功能。

2. 数据存储电路数据存储电路能够存储输入的数值和运算符,为后续运算提供数据支持。

3. 运算电路运算电路能够根据输入的运算符进行相应的运算,实现加、减、乘、除等基本运算。

4. 显示电路显示电路能够将运算结果正确显示在LED显示器上。

5. 整体电路整体电路能够实现计算器的功能,满足实验要求。

六、实验总结1. 通过本次实验,掌握了数字电路的基本原理和设计方法。

2. 提高了动手能力和创新意识,培养了团队协作精神。

编写一个计算器程序课程设计报告范例

编写一个计算器程序课程设计报告范例

《金融IT 入门-程序设计》课程设计报告中国地质大学长城学院XX系 2017年月3 日目录一.总体概述:二.设计目标:三.程序流程图: 四.程序代码: 五.设计体会:题目: 用Python 编写简易计算器程序 学号:专业: 班级:姓名:指导教师:2016-2017学年 第二学期一、设计内容1.课程设计目的:1)掌握Java语言的程序设计方法;2)理论联系实际,进一步提高学生的软件开发技术; 3)培养学生分析、解决问题的能力;4)提高学生实践论文撰写能力。

2.课程设计任务:1)设计的计算器应用程序可以完成加法、减法、乘法、除法以及取余运算(可以进行浮点数和负数的运算);2)有求倒数、退格和清零功能。

3.创新要求:能进行正切、余弦,以及求平方根、指数(包括对e)、自然对数运算。

图形界面采用继承windowadapter类,采取调用类方法来注册监听!4.设计要求:1)设计的计算器应用程序可以完成加法、减法、乘法、除法和取余运算。

且有小数点、正负号、求倒数、退格和清零功能。

2)课程设计可选用Eclipse、JBuilder、NetBeans等作为开发平台以提高开发效率,通过资料查阅和学习尽可能熟练掌握其中一种集成开发环境。

3)认真按时完成课程设计报告,课程设计报告内容包括:设计任务与要求、需求分析、设计思路、详细设计、运行调试与分析讨论和设计体会与小结六个部分。

二、原理与分析1.开发的技术及功能本课程设计是要做一个图形界面的计算器,其界面主要是由swing组件中的控件构成。

程序实现了计算器的基本功能有:加、减、乘、除基本算术运算(可以进行浮点和负数运算)和sin、cos、tan等三角函数求值运算,同时能进行指数运算和自然对数运算,还有求倒数、退格和清零功能。

2.设计思路设计这个计算器主要是参考Windows操作系统中自带的计算器,由于编者水平和时间的限制,不能将计算器设计到科学型及其他更复杂的类型,在设计过程中还参考了一些其他的优秀设计。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

计算器程序设计报告计算器是一种在日常生活中很常用的计算工具,它在计算方面给了我们提供很大的方便。

本程序的功能包括:(1)加,减,乘,除运算,正弦,余弦,正切,余切,反正切,反余切,反正弦,反余弦,自然对数,以10为底的对数还有阶乘等函数功能。

(2)还包括存储清,存储显示,存储相加。

“计算器”是一个关于多种控件,以及控件数组应用的程序,它包含许对字符串的处理,多模块程序设计,数学函数的使用。

它所需知识点较多,必须对各个方面都有所了解.数学模型:主界面界面:进制转化界面数学函数代码代码:存储清代码进制转化代码第一步,要编辑计算器界面,如右图,对于界面上的按钮较多,我们可以分成四组,这就是控件数组的使用,而且每个按钮的属性都一一设置,而且要调入图片.第二个界面如右图比较简单,只是一些普通的控件.计算器是一个输入原始数据,运算中间数据和结果数据都显示在窗口顶部的同一个文本框的工具,这就要求我们可以把文本框的内容付给两个不同的变量,对于这一点我们就可以用一个逻辑变量来实现.比如, If not boolean str1=strElse str2=str计算器的主要功能就是运算,但是任何一个数值的输入都是以字符串的形式进行的,而字符串是无法参与运算的,所以必须用CInt()转换成整形变量,而输出时必须用CStr()转化成字符串的形式输出,更为麻烦的是,在进行进制转换时,两种变量之间的转换更为频繁。

在编程过程中要时刻注意!就拿一个简单的程序中的一部分来说吧:If not boolean then str=str1Else str=str2Str=text1.textn=CInt(str) ‘“将其转换成整形变量"…….t4 =str( ) ‘“ 将返回值转换成字符串"计算器的功能程序简单易懂,但编制过程极为烦琐,我在编程的过程中,体会最深的就是其过程有重复,但又不得再编,在这里尤其要注意,有些过程虽然相似,但它们却存在着质的区别,就拿删除按扭来说吧,"C","0->M","CE","->"按扭都有删除的功能,在这里我就它们的区别作一下详细介绍: 将"C","CE","->"作为一个控件数组,其程序如下:If not boolean str1=str else str2=strSelect Case IndexCase 0str1=" ",str2=" ", Text1.text=" " "C"键Case1str=" " "CE"键Case2str=Left(str,len(str)-1) "->"键而"0->M"在另一个数组控件中,其程序的一部分如下:Case0n4=0: Text1.text="0"可见它们的代码是存在区别的,这就要求在编程时弄清楚它们的区别,不可想当然把同一种代码复制过来.这里我再介绍一下小数点的使用Private Sub Command2_Click(Index As Integer)If Index<10 Thenstr=str+CStr(Index) "输入数字"ElseIf InStr(str,".")=0 Then str=str+"." "输入小数点"End IfIf Len(str)>1 And Left(str,1)="0" And Mid(str,2,1)<>"."Thenstr=Right(str,Len(str)-1) "删除前面多余的0"End IfText1.text=str "显示输入的数据 "If not boolean Then str1=str Else str2=str "用两个字符串变量存放"End Sub计算器虽复杂,但大部分还是比较简单的,最难的地方就是进制转换器的编码了,要编好这一部分必须对各进制之间的转换关系了如指掌.其中各个进制都和二进制有着直接的转换关系.而其他三个之间都不可直接进行转换.对于不能直接转化的,可以间接转化,例如,可以将十六进制先转化成十进制然后再转化成八进制.ElseIf Option4 = True Thent4 = ""str = Text1.TextDim p As Integer, q As Longq = 0Do While str <> "" ‘把输入的字母先转化为对应的数t = Right(str, 1)If t = "a" Thenn = 10ElseIf t = "b" Thenn = 11ElseIf t = "c" Thenn = 12ElseIf t = "d" Thenn = 13ElseIf t = "e" Thenn = 14ElseIf t = "f" Thenn = 15Else: n = CInt(t)End Ifq = q + n * 16 ^ (p)str = Left(str, Len(str) - 1)’从后逐步取出每个字符p = p + 1’指数从后依次加一Loopm = q ’十六进制转成了十进制Do While m <> 0For m1 = 1 To 3n = m Mod 2m = m \ 2int1 = n * 2 ^ (m1 - 1)十进制再转化为八进制int2 = int2 + int1Nextt3 = CStr(int2)t4 = t3 + t4t3 = ""int1 = 0int2 = 0LoopText2.Text = t4以下是用来判断输入的字符是否符合所选择进制的要求的,如果不符和就会出现一个对话框同时删除所输入的字符。

Private Sub Text1_Change()str = Text1.Textt = Right(str, 1)If t <> "" Thenn = Asc(s) 找出所输入数字的ASCII码Else: Exit SubEnd IfIf Option1 = True ThenIf n < 48 Or n > 49 Then 与符合要求的比较,排除符合的MsgBox " 输入的数据不符和进制要求,请重新输入.", 16, "数据输入"Text1.Text = Left(str, Len(str) - 1) 删除最后一位End IfElseIf Option2 = True ThenIf n < 48 Or n > 55 ThenMsgBox" 输入的数据不符和进制要求,请重新输入.", 16, "数据输入"Text1.Text = Left(str, Len(str) - 1)End IfElseIf Option3 = True ThenIf n < 48 Or n > 57 ThenMsgBox " 输入的数据不符和进制要求,请重新输入.", 16, "数据输入"Text1.Text = Left(str, Len(str) - 1)End IfElseIf Option4 = True ThenIf n < 48 Or (n > 57 And n < 97) Or n > 102 ThenMsgBox" 输入的数据不符和进制要求,请重新输入.", 16, "数据输入"Text1.Text = Left(str, Len(str) - 1)End IfEnd IfEnd Sub通过此次编程,我知道了它的难处,我在参考了前人的基础上加以摸索,并对前人的不足加以改善,但是并没有做到十分完美,还是有一些不足之处,这也是将来要努力的地方。

以下是代码主窗体Option Explicit '强制申明变量Dim str, str1, str2, str3, str4 As StringDim x1, x2, x3, x4, p As DoubleDim j, k, x, int1 As LongDim w As BooleanPrivate Sub Text1_Change() '调节输入的内容和输出的结果End SubPrivate Sub Command2_Click(Index As Integer) '函数转换If Not w Then str = str1 Else str = str2str = Text1.Textx = strSelect Case IndexCase 0 ' sin函数str = CStr(Sin(x))Case 1str = CStr(Cos(x)) 'cos函数Case 2str = CStr(Tan(x)) 'tan函数Case 3str = CStr(1 / Tan(x)) 'ctg函数Case 4str = CStr(1 / Cos(x)) ' sec函数Case 5k = 1For j = 1 To x '阶乘运算k = j * kNextstr = CStr(k)Case 6p = 3.1415926535898 '边界限定If x > 1 Or x < -1 ThenMsgBox "数据超出反正弦的数值范围,请重新输入", 0, "出错提醒" ElseIf x = 1 Thenstr = CStr(p / 2)ElseIf x = -1 Then '限定反三角的范围str = CStr(-p / 2)Elsestr = CStr(Atn(x / Sqr(1 - x * x)))End IfCase 7p = 3.1415926535898 '边界限定If x > 1 Or x < -1 ThenMsgBox "数据超出反余弦的数值范围,请重新输入", 0, "出错提醒" ElseIf x = 1 Thenstr = CStr(0)ElseIf x = -1 Thenstr = CStr(p)Elsestr = CStr(Atn(-x / Sqr(1 - x * x))) + 2 * Atn(1)End IfCase 8str = CStr(Atn(x))Case 9str = (Atn(x) + 2 * Atn(1))Case 10If x <= 0 ThenMsgBox "请重新输入一个正数", 0, "出错提醒" 'Log函数Elsestr = CStr(Log(x) / Log(10))End IfCase 11If x <= 0 ThenMsgBox "请重新输入一个正数", 0, "出错提醒"Else 'Ln函数str = CStr(Log(x))End IfEnd SelectText1.Text = strstr1 = strstr = ""End SubPrivate Sub Command3_Click(Index As Integer) '关于小数点的使用Text1.Text = "" '"输入数字"If Index < 10 Thenstr = str + CStr(Index)ElseIf InStr(str, ".") = 0 Then str = str + "." '"输入小数点"End IfIf Len(str) > 1 And Left(str, 1) = "0" And Mid(str, 2, 1) <> "." Then str = Right(str, Len(str) - 1) '"删除前面多余的0"End IfText1.Text = strIf Not w Then str1 = str Else str2 = strEnd SubPrivate Sub Command4_Click(Index As Integer)If str2 <> "" Thenx1 = Val(str1): x2 = Val(str2)Select Case int1Case 0If x2 = 0 ThenMsgBox "除数不能为0!", 16, "计算器"Exit SubEnd Ifx3 = x1 / x2Case 1x3 = x1 * x2Case 2x3 = x1 + x2 '加减乘除运算Case 3x3 = x1 - x2End Selectstr1 = CStr(x3)str2 = "": Text1.Text = "": w = True: int1 = Indexstr = ""Elsestr2 = "": Text1.Text = "": w = True: int1 = Indexstr = ""End IfEnd SubPrivate Sub Command5_Click(Index As Integer)Select Case Index '“M+”按钮Case 0x4 = 0: Text1.Text = "0" '“0->M”按钮Case 1Text1.Text = CStr(x4) '“RM”按钮Case 2x4 = x4 + Val(Text1.Text)Text1.Text = "0"End Selectstr = ""End SubPrivate Sub Command6_Click()str = Text1.TextIf Len(str) > 0 And Left(str, 1) = "-" Then '负号的使用str = Right(str, Len(str) - 1)Elsestr = "-" & strEnd IfText1.Text = strIf Not w Then str = str1 Else str = str2str = ""End SubPrivate Sub Command8_Click() '“C”按钮Text1.Text = "0": str1 = "": w = Falsestr2 = ""End SubPrivate Sub Command9_Click() '“CE"按钮Text1.Text = str1: str2 = ""End SubPrivate Sub Command1_Click() 'OFF按钮Unload frmcalEnd SubPrivate Sub Command10_Click() '->按钮str3 = Text1.Textstr3 = Left(str3, Len(str3) - 1)If str3 = "" ThenText1.Text = "0"ElseText1.Text = str3End Ifstr = str3End SubPrivate Sub Command11_Click() '=按钮If Len(Trim(str1)) = 0 Or Len(Trim(str2)) = 0 Thenw = FalseExit SubEnd Ifx1 = Val(str1): x2 = Val(str2)Select Case int1Case 0If x2 = 0 ThenMsgBox "除数不能为0!", 16, "计算器"Exit Sub '防止除数为零End Ifx3 = x1 / x2Case 1x3 = x1 * x2Case 2x3 = x1 + x2Case 3x3 = x1 - x2End SelectText1.Text = CStr(x3)str1 = Text1.Textstr2 = ""str = ""w = FalseEnd SubPrivate Sub Command12_Click() '显示进制转换窗口formjdzh.ShowEnd Sub进制转化窗体Option ExplicitDim str, t, t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11 As String Dim n, n1, n2, n3, m, m1, m2, int1, int2, int3 As LongPrivate Sub Command1_Click() '转换成二进制str = Text1.TextIf Option1 = True Then '输入二进制数Text2.Text = Text1.Text '结果不变ElseIf Option2 = True Then '八进制转换成二进制t4 = ""Do While str <> ""t = Right(str, 1)n = CInt(t)For m = 1 To 3t2 = CStr(n Mod 2)n = n \ 2t3 = t2 + t3Nextt4 = t3 + t4str = Left(str, Len(str) - 1)t3 = ""LoopIf Left(t4, 1) = "0" And Left(t4, 2) <> "00" Thent4 = Right(t4, Len(t4) - 1)ElseIf Left(t4, 2) = "00" And Left(t4, 3) <> "000" Thent4 = Right(t4, Len(t4) - 2)End IfText2.Text = t4ElseIf Option3 = True Then '十进制转换成二进制 t2 = ""m = CInt(str)Do While m <> 0n = m Mod 2m = m \ 2t1 = CStr(n)t2 = t1 + t2LoopText2.Text = t2ElseIf Option4 = True Then '十六进制转换成二进制 t4 = ""str = Text1.TextDo While str <> ""t = Right(str, 1)If t = "a" Thenn = 10ElseIf t = "b" Thenn = 11ElseIf t = "c" Thenn = 12ElseIf t = "d" Thenn = 13ElseIf t = "e" Thenn = 14ElseIf t = "f" Thenn = 15Else: n = CInt(t)End IfFor m = 1 To 4t2 = CStr(n Mod 2)n = n \ 2t3 = t2 + t3Nextt4 = t3 + t4str = Left(str, Len(str) - 1)t3 = ""LoopIf Left(t4, 1) = "0" And Left(t4, 2) <> "00" Thent4 = Right(t4, Len(t4) - 1)ElseIf Left(t4, 2) = "00" And Left(t4, 3) <> "000" Thent4 = Right(t4, Len(t4) - 2)ElseIf Left(t4, 3) = "000" And Left(t4, 4) <> "0000" Thent4 = Right(t4, Len(t4) - 3)End IfText2.Text = t4End IfEnd SubPrivate Sub Command2_Click() '转换成八进制str = Text1.TextIf Option1 = True Then '二进制转换成八进制 t4 = ""Do While str <> ""If Len(str) = 1 Thenstr = "00" + strElseIf Len(str) = 2 Thenstr = "0" + strEnd Ift = Right(str, 3)For m = 1 To 3t2 = Right(t, 1)n = CInt(t2)int1 = n * 2 ^ (m - 1)int2 = int2 + int1t2 = ""t = Left(t, Len(t) - 1)Nextt3 = CStr(int2)t4 = t3 + t4str = Left(str, Len(str) - 3)t3 = ""int1 = 0int2 = 0LoopText2.Text = t4ElseIf Option2 = True Then '八进制转换成八进制,结果不变 Text2.Text = Text1.TextElseIf Option3 = True Then '十进制转换成八进制t4 = ""m = CInt(str)Do While m <> 0For m1 = 1 To 3n = m Mod 2m = m \ 2int1 = n * 2 ^ (m1 - 1)int2 = int2 + int1Nextt3 = CStr(int2)t4 = t3 + t4t3 = ""int1 = 0int2 = 0LoopText2.Text = t4ElseIf Option4 = True Then '十六进制转换成八进制t4 = ""str = Text1.TextDim p As Integer, q As Longq = 0Do While str <> ""t = Right(str, 1)If t = "a" Thenn = 10ElseIf t = "b" Thenn = 11ElseIf t = "c" Thenn = 12ElseIf t = "d" Thenn = 13ElseIf t = "e" Thenn = 14ElseIf t = "f" Thenn = 15Else: n = CInt(t)End Ifq = q + n * 16 ^ (p)str = Left(str, Len(str) - 1)p = p + 1Loopm = qDo While m <> 0For m1 = 1 To 3n = m Mod 2m = m \ 2int1 = n * 2 ^ (m1 - 1)int2 = int2 + int1Nextt3 = CStr(int2)t4 = t3 + t4t3 = ""int1 = 0int2 = 0LoopText2.Text = t4End IfEnd SubPrivate Sub Command3_Click() '转换成十进制str = Text1.TextText2.Text = ""If Option1 = True Then '二进制转换成十进制 t4 = ""Do While str <> ""t = Right(str, 1)m = CInt(t)n = m * 2 ^ (int1)int1 = int1 + 1int2 = int2 + nstr = Left(str, Len(str) - 1)Loopt4 = CStr(int2)Text2.Text = t4int2 = 0int1 = 0ElseIf Option2 = True Then '八进制转换成十进制t4 = ""Do While str <> ""t = Right(str, 1)n = CInt(t)For m = 1 To 3m1 = n Mod 2n = n \ 2int1 = m1 * 2 ^ n2int2 = int2 + int1n2 = n2 + 1Nextint3 = int2 + int3int2 = 0int1 = 0t4 = CStr(int3)str = Left(str, Len(str) - 1)LoopText2.Text = t4n2 = 0int3 = 0ElseIf Option3 = True Then '十进制转换成十进制,结果不变 Text2.Text = Text1.TextElseIf Option4 = True Then '十六进制转换成十进制int2 = 0Dim s As IntegerDo While str <> ""t = Right(str, 1)If t = "a" Thenn = 10ElseIf t = "b" Thenn = 11ElseIf t = "c" Thenn = 12ElseIf t = "d" Thenn = 13ElseIf t = "e" Thenn = 14ElseIf t = "f" Thenn = 15Else: n = CInt(t)End Ifint2 = int2 + n * 16 ^ (s)str = Left(str, Len(str) - 1)s = s + 1LoopText2.Text = int2n2 = 0int3 = 0End IfEnd SubPrivate Sub Command4_Click() '转换成十六进制str = Text1.TextText2.Text = ""If Option1 = True Then '二进制转换成十六进制 t4 = ""Do While str <> ""If Len(str) = 2 Thenstr = "00" + strElseIf Len(str) = 3 Thenstr = "0" + strElseIf Len(str) = 1 Thenstr = "000" + strEnd Ift = Right(str, 4)For m = 1 To 4t2 = Right(t, 1)n = CInt(t2)int1 = n * 2 ^ (m - 1)int2 = int2 + int1t2 = ""t = Left(t, Len(t) - 1)NextIf int2 = 10 Thent3 = "a"ElseIf int2 = 11 Thent3 = "b"ElseIf int2 = 12 Thent3 = "c"ElseIf int2 = 13 Thent3 = "d"ElseIf int2 = 14 Thent3 = "e"ElseIf int2 = 15 Thent3 = "f"Elset3 = CStr(int2)End Ift4 = t3 + t4int1 = 0int2 = 0t3 = ""str = Left(str, Len(str) - 4)t = ""LoopText2.Text = t4ElseIf Option3 = True Then '十进制转换成十六进制 n = CInt(str)t7 = ""Do While n <> 0For m = 1 To 4m1 = n Mod 2n = n \ 2int1 = m1 * 2 ^ (m - 1)int2 = int2 + int1NextIf int2 = 10 Thent6 = "a"ElseIf int2 = 11 Thent6 = "b"ElseIf int2 = 12 Thent6 = "c"ElseIf int2 = 13 Thent6 = "d"ElseIf int2 = 14 Thent6 = "e"ElseIf int2 = 15 Thent6 = "f"Else: t6 = CStr(int2)End Ift7 = t6 + t7t6 = ""int1 = 0int2 = 0str = Left(str, Len(str) - 1)LoopText2.Text = t7ElseIf Option2 = True Then '八进制转换成十六进制 t7 = ""t4 = ""Do While str <> ""t = Right(str, 1)n = CInt(t)t2 = CStr(n Mod 2)n = n \ 2t3 = t2 + t3Nextt4 = t3 + t4str = Left(str, Len(str) - 1)t3 = ""LoopIf Left(t4, 1) = "0" And Left(t4, 2) <> "00" Thent4 = Right(t4, Len(t4) - 1)ElseIf Left(t4, 2) = "00" And Left(t4, 3) <> "000" Then t4 = Right(t4, Len(t4) - 2)End IfDo While t4 <> ""If Len(t4) = 2 Thent4 = "00" + t4ElseIf Len(t4) = 3 Thent4 = "0" + t4ElseIf Len(t4) = 1 Thent4 = "000" + t4End Ift1 = Right(t4, 4)For m = 1 To 4t5 = Right(t1, 1)n1 = CInt(t5)int1 = n1 * 2 ^ (m - 1)int2 = int2 + int1t5 = ""t1 = Left(t1, Len(t1) - 1)NextIf int2 = 10 Thent6 = "a"ElseIf int2 = 11 Thent6 = "b"ElseIf int2 = 12 Thent6 = "c"ElseIf int2 = 13 Thent6 = "d"ElseIf int2 = 14 Thent6 = "e"ElseIf int2 = 15 Thent6 = "f"ElseEnd Ift7 = t6 + t7int1 = 0int2 = 0t4 = Left(t4, Len(t4) - 4)t1 = ""LoopText2.Text = t7ElseIf Option4 = True Then '十六进制转换成十六进制结果不变Text2.Text = Text1.TextEnd IfEnd SubPrivate Sub Text1_Change()str = Text1.Textt = Right(str, 1)If t <> "" Thenn = Asc(t)Else: Exit SubEnd IfIf Option1 = True Then '输入二进制数If n < 48 Or n > 49 Then '输入的数不是0或1时,报错MsgBox "输入的数据不符合所选择的进制要求,请重新输入", 16, "数据输入"Text1.Text = Left(str, Len(str) - 1)End IfElseIf Option2 = True Then '输入八进制数If n < 48 Or n > 55 Then '不在0-7之间时MsgBox "输入的数据不符合所选择的进制要求,请重新输入", 16, "数据输入" Text1.Text = Left(str, Len(str) - 1)End IfElseIf Option3 = True Then '输入十进制数If n < 48 Or n > 57 Then '不在0-9之间时MsgBox "输入的数据不符合所选择的进制要求,请重新输入", 16, "数据输入" Text1.Text = Left(str, Len(str) - 1)End IfElseIf Option4 = True Then '输入十六进制数If n < 48 Or (n > 57 And n < 97) Or n > 102 Then '不在0-9或不在a-f之间时MsgBox "输入的数据不符合所选择的进制要求,请重新输入", 16, "数据输入" Text1.Text = Left(str, Len(str) - 1)End IfEnd IfEnd SubPrivate Function se(a As String) As StringDim s As String, d As Double, f As String, q As Stringd = Val(a)Dof = f & d Mod 2d = d \ 2Loop Until d = 0For d = Len(f) To 1 Step -1q = Mid(f, d, 1)s = s & qNextse = sEnd FunctionPrivate Function be(str As String) As Stringt4 = ""Do While str <> ""t = Right(str, 1)n = CInt(s)For m = 1 To 3t2 = CStr(n Mod 2)n = n \ 2t3 = t2 + t3Nextt4 = t3 + t4str = Left(str, Len(str) - 1)t3 = ""LoopIf Left(t4, 1) = "0" And Left(t4, 2) <> "00" Thent4 = Right(t4, Len(t4) - 1)ElseIf Left(s4, 2) = "00" And Left(t4, 3) <> "000" Then t4 = Right(t4, Len(t4) - 2)End Ifbe = t4End FunctionPrivate Function i(a As String) As Stringt2 = ""m = CInt(str)Do While m <> 0n = m Mod 2m = m \ 2t1 = CStr(n)t2 = t1 + t2LoopText2.Text = t2End Function。

相关文档
最新文档