当前位置:文档之家› C语言程序设计--交互式函数计算器设计报告

C语言程序设计--交互式函数计算器设计报告

C语言程序设计--交互式函数计算器设计报告
C语言程序设计--交互式函数计算器设计报告

程序设计小学期实验报告

题目三

交互式函数计算器

课题名称:交互式函数计算器

一.课程需求及现实意义

1.课程现实意义

在学习生活中,常常会遇到一些复杂的数值运算,这时候,为了保证计算的准确,我们就必须使用计算器。所以,开发计算器程序,可以用于自己的学习和工作,更重要的是增强自己独立编程能力和工作能力。

2.课程需求

1)程序可以将运算式以完整的字符串形式输入:如:1+5×6-7/8

2)程序能对输入的运算表达式做有效分析,转换成便于计算的二叉树或堆栈的存储形式;

如1+5×6-7/8的二叉树存储形式:也可以使用逆波兰式完成。

3)程序完成运算式计算后,将计算结果输出;

4)通过键盘或鼠标输入数字;

5)可以进行+、-、*、/、开方、清零、backspace的功能,可以对小数进行运算,还可以

添加扩弧运算功能。

6)界面编程:Turbo C或VC任选

3.设计目标:除了以上的基本目标,还包括:

1)友好的操作界面

2)正弦、余弦、正切、阶乘、倒数、平方等常用函数计算功能

3)简单方便易懂的操作和输出

4)强大的报错功能

二. 设计思路和总体设计框架

1.设计思路

本程序通过MFC对话框实现交互功能,由两个EDIT编辑框以及29个BUTTON按键组成基本界面,通过用鼠标单击按钮调用函数来完成计算。

为实现算符优先算法,采用中缀表达式。可以使用两个工作栈。一个称作OPTR,用以寄存运算符;另一个称作OPND,用以寄存操作数或运算结果。算法的基本思想是:

1)首先置操作符栈为空栈,表达式起始符“#”为运算符栈的栈底元素;

2)依次读入表达式中的每个字符,若是操作数则进OPND栈,若是操作数则进OPND

栈,若是运算符则和OPTR栈的栈顶运算符比较优先权后作相应操作,直至整个表达式求值完毕(即OPTR栈的栈顶元素和当前读入的字符均为“#”)。

2.总体设计框架

1)外部框架

计算结束后可以选择清零,退出或者继续其他计算。

2)内部计算函数结构

●头文件#include“stack”包括了堆栈所需的包括压入,弹出等函数,可以直接应

用,故没有进行堆栈函数的编写。

●首先在OPTR符号栈内存入’#’

●两个编辑框分别有两个CString变量m_str1,m_str2。

●从按钮输入的表达式即改变m_str1和m_str2,运用UpdateData(FALSE);函数即

时输出显示在两个编辑框内。

●在头文件计算器Dlg.h中声明了了private:double calString(CString strtmp);

计算内部流程:

文字说明:

a)从左到右扫描表达式,即CString变量m_str1,首先处理括号中的负号,之后调用主要的计算函数

b)计算函数中,继续扫描经过处理的表达式,遇到数字进行判断处理,将字符串形式的数字(包括小数点)运用format函数转化为数字,存储在OPND栈内。

c)若遇到符号,则调用优先级函数int priority(char x,char y)将该符号与符号栈栈顶元素进行比较,得出优先级。

d)由于我设计的代码,在鼠标点击输入时自动屏蔽了一些非法输入,所以优先级函数二维优先级数组中,并不是所有的优先级都会被调用。

e)判断了优先级,则进入swich函数,进行分类计算过程。

●case 1:则取出符号栈OPTR栈顶元素和数字栈OPND两个数字,调用计算函数进行计

算,并将结果压入数字栈OPND。

但如果两个符号都为括号或都为#,则将符号栈OPTR栈顶元素弹出,然后将该符号压入符号栈OPTR。

●case -1:则将该符号压入符号栈OPTR。

●case 3:则计算根号和平方(只能单独计算,不能加入表达式)

●case 0:则将符号栈OPTR栈顶元素弹出

f)最后,扫描完毕,若没有错误,则返回计算结果,即数字栈OPND栈顶元素。将该数字进行处理。由于该数字时double型,结尾带有6个多余的0,为了不影响美观,将多余的0去掉之后,运用format函数将结果转化成字符串并赋给m_str2,即结果显示框变量,再次调用UpdateData(FALSE);函数,输出到编辑框,得到结果。

3)MFC界面设计

a)界面包括显示区和输入区。

b)显示区包括表达式和当前输入/结果。

c)键盘区包括29个按键和日历显示。

d)布局比较合理,符合平时输入计算习惯,并且每个按键功能标识的也很清楚。

e)另外,添加了图片背景,使界面更加友好美观。

3.功能介绍

1)包括加减乘除开方平方和括号在内的四则运算,如(5+3)*4-6/2.5,可以识别小

数和括号内的负数

2)单独计算阶乘,倒数和包括正弦、余弦、正切在内的三角函数(输入的为角度

数)

3)退格,清零,正负号转换(相反数)

三. 代码介绍

1. 设计MFC对话框

设定对话框上的控件属性,并添加初始化条件,如下所示

IDC_0~9:数字键IDC_Point:小数点IDC_Pi:π

IDC_Zf:正负号IDC_Square:平方IDC_Sqrt:平方根IDC_Clear:清零IDC_Backspace:退格

IDC_Left/Right:左/右括号

IDC_Plus/Minus/Multiply/Divide:加减乘除号IDC_Dao:倒数

IDC_ Factorial:阶乘

IDC_Equal:等于(计算)

IDC_Sin/Cos/Tan:正弦/余弦/正切

1)数字输入

void CMyDlg::On0() //数字输入,以下同

{

if (')'==m_str1.Right(1))

MessageBox("错误输入!!");//右括号后不可以直接输入数字,报错!

else

{

m_str1+="0";

m_str2+="0";

UpdateData(FALSE);//输出显示到编辑框

}

}

2)退格和清零

void CMyDlg::OnClear() //清除

{

m_str1="";

m_str2="";

UpdateData(FALSE);

}

void CMyDlg::OnBackspace() //退格

{

if(m_str1.GetLength()>0)

m_str1.Delete(m_str1.GetLength()-1);

if(m_str2.GetLength()>0)

m_str2.Delete(m_str2.GetLength()-1);

UpdateData(FALSE);

}

3)符号/括号输入(只以右括号号为例)

void CMyDlg::OnRight() //右括号

{ Array if ('('==m_str1.Right(1))

MessageBox("错误输入!!");

else

{

int m=0;

int n=0;

for(int i=0;i

{

if('('==m_str1.GetAt(i))

m++;

if (')'==m_str1.GetAt(i))

n++;

}

if (m<=n)

{

MessageBeep(MB_OK);

}//右括号不可以比左括号数目多

else//如果输入合理

{

m_str1+=')';

m_str2=')';

UpdateData(FALSE);

m_str2="";

}

}

}

5)等于(计算)

void CMyDlg::OnEqual() //等于

{

CString counttemp,count;

counttemp=m_str1;//将编辑框中的文本赋给s

if(counttemp=="")

{

MessageBox("错误输入!!");

}//如果s为空,即没有输入时,报错

else//转入函数计算过程

{

count="";

int i=0;

int Len=counttemp.GetLength();//取得式子的长度

if('-'==counttemp.GetAt(0))//若没有输第一个数,直接输减号,定义为0-

{

count+="0-";

i++;

}

for(;i

{

if('-'==counttemp.GetAt(i))

{

if('('==counttemp.GetAt(i-1))

{

count+="0-";

}

else count+=counttemp.GetAt(i);

}

else count=count+counttemp.GetAt(i);

} //将式子处理特殊情况后赋给n

count=count+'#';//在式子左右都加上'#',作为整个表达式的一对括号

double result=calString(count);//调用函数计算波兰式

if(-858993460==result)

AfxMessageBox("非法输入!");//报错

else

{

counttemp.Format("%f",result);//将数字转化成字符串

Len=counttemp.GetLength();

while('0'==counttemp.GetAt(Len-1))

{

Len--;

}

counttemp=counttemp.Left(Len);//以上几行将小数点后多余的零去掉

m_str2=counttemp;

UpdateData(FALSE);//输出到编辑框

}

}

m_str1="";

m_str2="";//编辑框清零

}

6)定义符号优先级

int priority(char x,char y)//定义符号优先级,整型返回

{

char sign[]={'+','-','*','/','(',')','#',’^’,’s’};

int compare[7][7]={//根据括号和加减乘除的优先级,2表示错误,1表示优先,-1表示落后,0表示相等,3表示计算根号和平方

{1,1,-1,-1,-1,1,1,3,3},

{1,1,-1,-1,-1,1,1,3,3},

{1,1,1,1,-1,1,1,3,3},

{1,1,1,1,-1,1,1,3,3},

{-1,-1,-1,-1,-1,0,2,3,3},

{2,2,1,1,1,1,2,3,3},

{-1,-1,-1,-1,-1,1,0,3,3},

{3,3,3,3,3,3,3,2,2},

{3,3,3,3,3,3,3,2,2} };

int i=0;

int j=0;

while(sign[i]!=x) i++;

while(sign[j]!=y) j++;

return compare[i][j];

}

7)两个数字计算函数

double calculate(double x,double y,char z)//计算部分--------两位的加减乘除

{

if('+'==z) return x+y;

if('-'==z) return x-y;

if('*'==z) return x*y;

if('/'==z) return x/y;

return 0;

}

8)计算函数(栈)

double CMyDlg::calString(CString strtmp)//定义类的成员函数,主要的栈的过程

{

CString str=strtmp;//定义式子

int Len=str.GetLength();//式子长度

CString strr="";//返回数字数字时用(多位数字及小数)

stack OPND;//数字栈

stack OPTR;//符号栈

int i=0;//循环依据

int begin=0;//设定数字的开头和结尾位置,以便返回

int end=0;

double num1;

double num2;//定义两个数字,作为弹出计算的变量

cha r c;//单个运算符号,做两位运算时用

OPTR.push('#');//将一个'#'作为标识符入栈

for(;i

{

if (isdigit(str.GetAt(i))||'.'==str.GetAt(i)) //返回第i+1个字符(从0开始),如果是数字或小数点

{

begin=i;

end=i;

while (isdigit(str.GetAt(end+1))||'.'==str.GetAt(end+1))

{

end++;

i++;

}

strr=str.Mid(begin,end-begin+1);//返回固定长度的数字(以字符串的形式)

num1=atof(strr);//转化成数字

OPND.push(num1);//将数字入栈,直到将所有的数字入栈为止

}

else//如果是字符

{

if ('/'==OPTR.top()) //报错,如果除数是0,

if (0==OPND.top())

return -858993460;

switch(priority(OPTR.top(),str.GetAt(i)))//将栈顶元素与符号比较

{

case 1://如果优先级高

while (1==priority(OPTR.top(),str.GetAt(i)))

{

if (OPND.empty()) //如果数字栈顶元素为空,则报错

return -858993460;

num1=OPND.top();//若不为空,则取栈顶元素并弹出

OPND.pop();

if (OPND.empty()) //取出一个元素后,再次,如果数字栈顶元素为空,则报错

return -858993460;

num2=OPND.top();//若不为空,则取栈顶元素并弹出

OPND.pop();

c=OPTR.top();//取出一个栈顶符号

OPTR.pop();

OPND.push(calculate(num2,num1,c));//计算,并将结果入栈

}

if (OPTR.top()=='('&&str.GetAt(i)==')') //如果都是括号,弹出

{

OPTR.pop();

break;

}

if (OPTR.top()=='#'&&str.GetAt(i)=='#') //如果都是#,弹出

{

OPTR.pop();

break;

}

OPTR.push(str.GetAt(i));

break;

case -1://如果栈顶元素比待比较元素优先级低,则将该符号入栈

OPTR.push(str.GetAt(i));

break;

case 0://若相等,则将栈顶元素弹出

OPTR.pop();

break;

case 3://计算根号或平方

double result;

if(str.GetAt(i)=='^')

{

result=(OPND.top()*OPND.top());

OPND.pop();

OPND.push(result);

break;

}

else

{

result=(sqrt(OPND.top()));

OPND.pop();

OPND.push(result);

break;

}

default://其余情况,报错

return -858993460;

}

}

}

if (!OPTR.empty()) //不能清空栈,报错

return -858993460;

return OPND.top();//返回计算结果

}

9)头文件

#include "cmath"//数学公式头文件

#include "stack"//栈操作头文件

using namespace std;//所谓namespace,是指标识符的各种可见范围。

//C++标准程序库中的所有标识符都被定义于一个名为std的namespace中。

//所谓命名空间,是一种将程序库名称封装起来的方法,它就像在各个程序库中立起一道道围墙。

//该定义,避免空间冲突

10)背景图片函数

void CMyDlg::OnPaint()

{

if (IsIconic())

{

CPaintDC dc(this); // device context for painting

SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);

// Center icon in client rectangle

int cxIcon = GetSystemMetrics(SM_CXICON);

int cyIcon = GetSystemMetrics(SM_CYICON);

CRect rect;

GetClientRect(&rect);

int x = (rect.Width() - cxIcon + 1) / 2;

int y = (rect.Height() - cyIcon + 1) / 2;

// Draw the icon

dc.DrawIcon(x, y, m_hIcon);

}

else//背景图片函数

{

CPaintDC dc(this);

CRect rect;

GetClientRect(&rect);

CDC dcMem;

dcMem.CreateCompatibleDC(&dc);

CBitmap bmpBackground;

bmpBackground.LoadBitmap(IDB_BITMAP1);

BITMAP bitmap;

bmpBackground.GetBitmap(&bitmap);

CBitmap *pbmpOld=dcMem.SelectObject(&bmpBackground);

dc.StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,

bitmap.bmWidth,bitmap.bmHeight,SRCCOPY);

}

}

四.系统使用说明1.打开“计算器.exe”

2.输入表达式计算

得到结果:

3.除数是0报错

4.括号内识别负号

5.开根号,输入数字,按下√X,再按等于

6.阶乘,输入数字,直接按下X!键,即可得到结果,当数字是负数可以报错

7.计算正弦等函数,输入数字(角度数),按下sin、cos、tan直接得到结果

8.另外,本计算器可以自动识别表达式的正误,如,自动识别右括号与左括号的数目,右括号不能比左括号多,计算角度常用三角函数,计算平方,还有去掉double类型造成的小数点后多余的0的功能。

五.总结

1.功能完成:

本程序的功能完成了需求分析中的所有要求,且考虑了极端的情况,拥有简洁友善的界面和方便的调试环境。

2.还需改进:

本程序已经达到了一个普通计算器的基本功能,还需改进的包括阶乘功能对于小数的报错,根号和平方功能里面加上括号(即对一个表达式计算平方和平方根)。

另外,编程的过程中没有自己定义类,而使使用了现成的一些结构头文件和函数,在调试时老师也指出了这一问题。

3.遇到的困难:

在算法方面,由于把整个算法切割得很合理,所以在算法部分没有碰到很大的困难。

而且,数据结构教材对于四则运算有明确的算法指示(P.52),所以,构思方面也很容易,只需要仔细写代码和将所有情况考虑到即可。

在调试方面,犯了许多错误,应该用==却写成了=,加减乘除等符号忘记加””或’’,由于程序后台不是很复杂,应用断点和单步运行进行调试,所以调试的问题也不是很大。

有些功能,如根号,括号方面的问题比较多,主要是由于优先级设置不合理,通过些合理的改动和变化,优先级没有完全符合书上的优先级设置。主要是由于,在输入时自动去掉了一些错误输入的情况。经过对优先级一遍一遍的调整,最后得以成功运行程序计算四则运算。

在MFC界面设计上,遇到比较大的困难。由于之前没有接触过c++和MFC界面设计,有些无从下手。好在本人有很强的自学能力,从网上找了MFC的入门教程以及一些视频教程,得以顺利地设计出计算器的界面,并且现在可以熟练地设置简单对话框的参数,了解了MFC中类的定义和使用方法。同时,也对c++语言面向对象的设计方法有了初步了解,初步认识了c++中的一些函数。

4.学习心得

本次小学期是在巩固C语言设计的基础上,学习c++中的MFC图形界面设计。通过电子教程以及视频教程的自学,对MFC有了一定得了解,能够初步掌握对话框程序的编写。这次计算器程序的编写,对下个学期学习c++语言有很大的帮助。

尤其是了解了许多c++的功能函数,包括CString的一些函数,感觉很有收获。如stack 容器头文件,就省下了定义栈的函数语句,还有str.GetAt(),str.Right(i),str.Mid(a,a+b)等很有用

的函数。

与上个小学期做的账本程序是锻炼团队合作精神不同的是,这次小学期锻炼的是我们独立完成任务和克服困难能力。通过十几天的学习、编写与调试程序,我的收获很大,不仅提高了自学能力,更提高了独立解决问题的能力,真正体会到了大学学习的方法和策略,对以后的学习有很大的帮助。

计算器课程设计报告

课设报告 福建工程学院软件学院 题目:汇编计算器 班级: 1301 姓名 学号: 指导老师: 日期:

目录 1、设计目的 (3) 2、概要设计 (3) 2.1 系统总体分析 (3) 2.2 主模块框图及说明 (3) 3、详细设计 (4) 3.1 主模块及子模块概述 (4) 3.2各模块详运算 (4) 4、程序调试 (7) 4.1 运行界面分析 (7) 算法分析 (7) 4.2 调试过程与分析 (9) 5、心得体会 (11) 5.1 设计体会 (11) 5.2 系统改进 (11) 附录: (11)

1、设计目的 本课程设计是一次程序设计方法及技能的基本训练,通过实际程序的开发及调试,巩固课堂上学到的关于程序设计的基本知识和基本方法,进一步熟悉汇编语言的结构特点和使用,达到能独立阅读、设计编写和调试具有一定规模的汇编程序的水平。 2、概要设计 用8086汇编语言编写一个能实现四则混合运算、带括号功能的整数计算器程序。程序能实现键盘十进制运算表达式的输入和显示(例如输入:“1+2*(3-4)”),按“=”后输出十进制表示的运算结果。 2.1 系统总体分析 在8086的操作环境下,该计算器分成输入,数据存储,运算功能,输出几个大模块,实现了使用者使用该计算器时输入一个算式,能让系统进行计算。此计算器的实现功能是基本的数学的四则运算,结果范围在0~65535。 2.2 主模块框图及说明 此流程图简要的表现出了所要实现的功能以及一些功能的大概算法,同时也是我编写的一个总体的框架。 程序流程图说明:通过流程图,可以看出程序运行时,首先输出提示语气,当用户输入后,程序根据所输入内容进行判断,通过判断的结果来决定调用哪个功能模块,首要先要要判断的是否为0-9,“+”“-”“*”“/”这些字符,若不是就会报错,实则根据运算符号调用其功能模块完成运算。最后将运算的结果显示在主频幕上,返回主程序,使用户可以重新输入。

c语言程序设计课程计算器设计报告

课程设计说明书 题目计算器程序设计 起讫日期2006 年7月3日至2006 年8月6日 所在院系软件学院 专业机械+软件班级04-2 学生姓名偶偶哦学号 指导教师 2006年8 月日

摘要 当今社会是信息社会,科技经济高速发展的社会!为了更方便人们的工作生活和加速人们处理信息的速度,计算器应运而生。由于它体积小巧,携带方便,价格便宜,构造简单等诸多的优点成为人们生活中的必备品! 随着科技的发展计算器的种类变得更多,功能变得更强大,体积变得更小!电脑的出现改变人们的生活习惯,很多事情都可以电脑来完成!电脑的更大一个优点就是可以通过软件的应用无限的延伸电脑功能的外延!下面我们将用我们学习的c语言编写一个简易的计算器程序!实现简单的初步的计算功能! 本程序的编写基础是Tubro C2.0汉化版,它在tubro c的原有基础上实现了多汉字的支持方便了我们的使用。生成的程序可移植性强兼容性好稳定!现在只实现了加、减、乘、除、求幂、求模,求平方根,求Sin,求Cos,求Log10,以及一个时钟原代码。这个系统是基于软件发展的生命周期来研制的,它可以直接输入数学表达式,不需要任何转换,就可以直接输出数学四则运算的结果。但是,每次只能运算一个表达式。不能运算多个表达式。在程序里面在添加一组选择函数即可。本论文主要介绍了本课题的开发背景,开发的过程和所要完成的功能。重点的说明了系统设计思想,设计的步骤、难点技术和解决方案。 关键词:C语言T ubro c 2.0汉化版计算器时钟

目录 第一章综述 (1) 1.1 课题的现实意义 (1) 1.2 软件环境 (1) 1.3 硬件环境 (1) 第二章系统设计流程图 (2) 2.1 系统流程图 (2) 2.2 主要功能表 (2) 第三章系统分析和设计 (3) 3.1 图形的绘制和输出 (3) 3.2 文本的输出显示 (3) 3.3 计算函数的调用 (4) 3.4 程序的运行和退出 (5) 第四章系统测试 (6) 4.1 系统测试 (6) 4.2 调试 (6) 4.3 错误原因分析一 (6) 4.4 错误原因分析二 (6) 第五章用户使用说明书 (8) 5.1 运行Turbo C程序进入计算器界面 (8) 5.2 计算器的使用 (9) 5.3 退出程序 (9) 第六章工作总结 (10) 参考文献 (11) 附录: 源代码

Java带计算过程的计算器课程设计报告

保存计算过程的计算器 Java程序设计课程设计报告保存计算过程的计算器 目录 1 概述.............................................. 错误!未定义书签。 1.1 课程设计目的............................... 错误!未定义书签。 1.2 课程设计内容............................... 错误!未定义书签。 2 系统需求分析.......................................... 错误!未定义书签。 2.1 系统目标................................... 错误!未定义书签。 2.2 主体功能................................... 错误!未定义书签。 2.3 开发环境................................... 错误!未定义书签。 3 系统概要设计.......................................... 错误!未定义书签。 3.1 系统的功能模块划分......................... 错误!未定义书签。 3.2 系统流程图................................. 错误!未定义书签。4系统详细设计........................................... 错误!未定义书签。 5 测试.................................................. 错误!未定义书签。 5.1 测试方案................................... 错误!未定义书签。 5.2 测试结果................................... 错误!未定义书签。 6 小结.................................................. 错误!未定义书签。参考文献................................................ 错误!未定义书签。附录................................................ 错误!未定义书签。 附录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等类的创建。 3)、对所创建类算法的分析和实现 确定了主类CalculatorWindow,其他类为其所调用。编写各类的实现算法,增加面板所需的按钮,并对程序进行调试运行及分析。

单片机计算器的课程设计报告

目录 一、设计任务和性能指标 (1) 1.1设计任务 (2) 1.2性能指标 (2) 二、设计方案 (2) 3 3 4 5 5 6 6 7 7 20 20 20 20 21 参考文献 (21) 附录1、系统硬件电路图 (22) 附录2、硬件实物图 (23) 附录3、器件清单 (24)

一、设计任务和性能指标 1.1设计任务 自制一个单片机最小系统,包括复位电路,采用外部小键盘输入数据,能够实现加法、乘法及一个科学计算,计算结果显示在四位一体的数码管上。 要求用Protel 画出系统的电路原理图(要求以最少组件,实现系统设计所要 显 位 监测模块采用二极管和扬声器(实验室用二极管代替)组成电路。 键盘电路采用4*4矩阵键盘电路。 显示模块采用4枚共阳极数码管和74ls273锁存芯片构成等器件构成。 整个单片机的接口电路: P0用于显示输出; P1用于键扫描输入; P2用于数码管位选控制; P3用于键盘扩展(部分运算符输入);

三.系统硬件设计 3.1单片机最小系统 单片机最小系统就是支持主芯片正常工作的最小电路部分,包括主控芯片、复位电路和晶振电路。 主控芯片选取STC89C52RC芯片,因其具有良好的性能及稳定性,价格便宜应用方便。 扩展键:“log”,“ln”,“x^2”“小数点”,“开方” 共计25个按键,采用4*4矩阵键盘,键盘的行和列之间都有公共端相连,四行和四列的8个公共端分别接P1.0~P1.7,这样扫描P1口就可以完成对矩阵键盘的扫描,通过对16个按键进行编码,从而得到键盘的口地址,对比P1口德扫描结果和各按键的地址,我们就可以得到是哪个键按下,从而完成键盘的功能。 以下为键盘接口电路的硬件电路图

《计算器程序设计》课程设计

成都理工大学 C#计算器 课程设计报告(计算机科学与技术学院) 题目:计算器 班级:XX 姓名:XXX 指导教师:XXX 2013-2014学年度第二学期

目录 1.需求分析 (1) 1.1计算器应用软件的功能分析(二级标题,四号黑体) (1) 1.2计算器软件的功能图 (1) 2.界面设计 (1) 3.功能实现 (2) 3.1计算数字现实的功能代码 (2) 3.2小数点设置的功能代码 (3) 3.3连续运算的功能代码 (3) 3.4实现键盘控制的功能代码 (4) 3.5删除的功能代码 (5) 4.设计总结 (5) 参考文献 (6)

计算器的开发与应用 摘要:计算器的产生和发展是建立在电子计算机基础之上的,现代社会很需要一个健全、高效率的计算器。为了提高自己的实践能力和将来开发一个更实用更全能更智能的计算器,以设计与实现计算器为课题。此次设计的计算器应用软件从visual studio 2012编程环境中开发,是一个简单的窗体应用程序,实现简单的计算器功能。以微软自带的计算器为模板,设计了简单易懂的计算器。这款计算器不仅实现了简单的四则运算的功能,还能连续运算,实现小键盘的操作,光标的转移。虽然这个简单的计算器只能实现这些功能,但是具有简洁的图文外观,即时准确的获得所需要要计算的结果,充分降低了数字计算器的难度和所需要的时间,对人们生活和学习具有有很大的帮助。 关键词:计算器;功能;界面;窗口;事件。 1.需求分析 通过对微软附件计算器软件进行调研、分析,研究,使用。我们了解到了作为一个计算器所应该有的一些简单功能和界面的排版,我们知道了怎样使编写的计算器程序向微软附件计算器靠拢。 1.1计算器应用软件的功能分析 计算器软件的主要功能是: 1)可以显示计算数字 2)可以进行加减乘除四则运算 3)可以实现键盘操控的功能 4)可以进行清零运算 5)可以进行退格键运算 6)可以进行连续计算 1.2计算器软件的功能图 根据以上需求分析,计算器软件功能如图1-1所示。 2.界面设计计算器主界面 显示 计算 数字 连 续 计 算 功 能图1-1计算器功能图 进 行 四 则 运 算 键 盘 操 控 清 零 运 算 退 格 键 功 能

科学计算器课程设计报告C课程设计修订稿

科学计算器课程设计报告C课程设计 集团标准化工作小组 [Q8QX9QT-X8QQB8Q8-NQ8QJ8-M8QMN]

计算机科学与技术学部 C++课程设计 题目科学计算器 学部计算机科学与技术 班级计科1103 指导教师李军 姓名刘明 学号 2012年6月27日

摘要 计算器的产生和发展是建立在电子计算机基础之上的。硬件方面,自1946年第一台电子计算机诞生以来,计算机技术的发展可谓日新月异,从庞大的只能在实验室里供研究使用的计算机到如今能适应不同环境满足不同需求的各种各样的计算机;运算速度从每秒几千次到每秒几百亿次;处理器从焊有上百万个电子管的大的惊人的电子板到只有指甲大小的集成电路;现在计算机在硬件方面的发展已达到了每三个月更新换代一次的惊人速度。软件方面,也已从机器语言、汇编语言、高级语言发展到现如今的第四代语言——非结构化、面向对象、可视化的语言。 在这个计算器里面,我们实现了简单的四则运算以及更高功能的科学计算,它的外观简洁美观,使人们能快捷简单的操作。能准确的得到计算结果,大大减少了数字计算所需要的时间,为人们的生活带来便利。此系统在Windows 7环境下,使用VC++ 进行编写。 简单计算器包括双目运算和单目运算功能,双目运算符包含基本的四则运算及乘幂功能,单目运算符包含正余弦,对数,开方,阶乘,倒数,进制转换等运算。可对其输入任意操作数,包括小数和整数及正数和负数进行以上的所有运算并能连续运算。并且包含清除,退格功能等。我们所做的计算器其功能较Windows 7下的计算器还是很不够多,没有其菜单的实现功能项,没有其小巧的标准计算器。 关键词:计算器;运算;VC++等

java课程设计报告_简单图形界面计算器的设计

Java 课程设计 简单图形界面计算器的设计 课程名称 Java程序设计 选题名称简单图形界面计算器的设计 专业 班级 姓名 学号 指导教师 简单图形界面计算器的设计

一、设计任务与目标 本次java程序设计我的设计任务是设计一个图形界面(GUI)的计算器应用程序并且能够完成简单的算术运算。本次任务的基本要求是这个计算器应用程序可以完成十进制的加、减、乘、除、求倒、取余、开方运算,且有小数点、正负号、退格和清零功能。而我要在此基础上添加一项千位符分隔符的功能,即以三位为一级,在输入的一串数字中每三位加入一个逗号,这项功能国际通用,并已经成为惯例,会计记账都用这种方法便于账目核算与管理。 GUI计算器设计的具体目标: 1.完成十进制的加、减、乘、除、求倒、取余和开方运算; 2.有小数点和正负号加入运算; 3.有退格、复位和清零的功能; 4.有千位符分隔符的功能,即在输入的一串数字中每三位加入一个逗号。 二、方案设计与论证 1.设计目标的总体分析 (1)设计目标的需求分析:计算器是现在一个普遍应用的工具,能够解决许多人工所无法计算的数据,节省大量宝贵的时间。 (2)设计目标的功能分析:实现计算器系统的功能,主要有两个功能模块:输入和输出。 (3)设计原则:基于计算器系统要具有适用性广、操作简便等特点,本系统预计要达到以下几个目标:①满足以上的基本功能要求;②能够在常见的计算机及其操作系统上运行。 2.设计的基本思路 利用GUI的界面设计,将整个大设计分为三块,分别是数据的输入,运算符

功能符的控制和数据的输入输出显示。利用Swing控件,数据的输入由0~9这10个按钮来表示,用“+”、“-”、“*”、“/”、“1/x”、“%”、“sqrt”这7个按钮来表示加、减、乘、除、求倒、取余、开方运算,用“.”和“±”这2个按钮来表示小数点和正负号,用“Back”、“CE”和“C”这3个按钮来表示退格、复位和清零的功能,数据的输入输出显示由文本字段来表示。将计算器的总体界面设计好后,再将代码分别写入不同的按钮的源程序中。 我要完成的一项改进,即添加一个拥有千位符分隔符功能的按钮,按下这个按钮能够在输入的一串数字中每三位加入一个逗号并且显示出来。我要在之前的界面设计的基础上多添加一个按钮“$”来表示千位符分隔符,并且将功能代码写入这个按钮的源程序中。 三、程序流程图,程序清单与调用关系 1. 程序流程图:

my计算器程序设计报告

计算器程序设计报告 计算器是一种在日常生活中很常用的计算工具,它在计算方面给了我们提供很大的方便。本程序的功能包括:(1)加,减,乘,除运算,正弦,余弦,正切,余切,反正切,反余切,反正弦,反余弦,自然对数,以10为底的对数还有阶乘等函数功能。(2)还包括存储清,存储显示,存储相加。 “计算器”是一个关于多种控件,以及控件数组应用的程序,它包含许对字符串的处理,多模块程序设计,数学函数的使用。它所需知识点较多,必须对各个方面都有所了解. 数学模型:主界面 界面:进制转化界面 数学函数代码 代码:存储清代码 进制转化代码 第一步,要编辑计算器界面,如右图, 对于界面上的按钮较多,我们可以分成四组,这就是控件数组的使用,而且每个按钮的属性都一一设置,而且要调入图片.第二个界面如右图 比较简单,只是一些普通的控件. 计算器是一个输入原始数据,运算中间数据和结果数据都显示在窗口顶部的同一个文本框的工具,这就要求我们可以把文本框的内容付给两个不同的变量,对于这一点我们就可以用一个逻辑变量来实现.比如, If not boolean str1=str Else str2=str 计算器的主要功能就是运算,但是任何一个数值的输入都是以字符串的形式进行的,而字符串是无法参与运算的,所以必须用CInt()转换成整形变量,而输出时必须用CStr()转化成字符串的形式输出,更为麻烦的是,在进行进制转换时,两种变量之间的转换更为频繁。在编程过程中要时刻注意!就拿一个简单的程序中的一部分来说吧:

If not boolean then str=str1 Else str=str2 Str=text1.text n=CInt(str) ‘“将其转换成整形变量" ……. t4 =str( ) ‘“ 将返回值转换成字符串" 计算器的功能程序简单易懂,但编制过程极为烦琐,我在编程的过程中,体会最深的就是其过程有重复,但又不得再编,在这里尤其要注意,有些过程虽然相似,但它们却存在着质的区别,就拿删除按扭来说吧, "C","0->M","CE","->"按扭都有删除的功能,在这里我就它们的区别作一下详细介绍: 将"C","CE","->"作为一个控件数组,其程序如下: If not boolean str1=str else str2=str Select Case Index Case 0 str1=" ",str2=" ", Text1.text=" " "C"键 Case1 str=" " "CE"键 Case2 str=Left(str,len(str)-1) "->"键 而"0->M"在另一个数组控件中,其程序的一部分如下: Case0 n4=0: Text1.text="0" 可见它们的代码是存在区别的,这就要求在编程时弄清楚它们的区别,不可想当然把同一种代码复制过来. 这里我再介绍一下小数点的使用 Private Sub Command2_Click(Index As Integer) If Index<10 Then str=str+CStr(Index) "输入数字" Else If InStr(str,".")=0 Then str=str+"." "输入小数点" End If If Len(str)>1 And Left(str,1)="0" And Mid(str,2,1)<>"."Then str=Right(str,Len(str)-1) "删除前面多余的0" End If Text1.text=str "显示输入的数据 " If not boolean Then str1=str Else str2=str "用两个字符串变量存放" End Sub 计算器虽复杂,但大部分还是比较简单的,最难的地方就是进制转换器的编码了,要编好这一部分必须对各进制之间的转换关系了如指掌.其中各个进制都和二进制有着直接的转换关系.而其他三个之间都不可直接进行转换.对于不能直接转化的,可以间接转化,例如,可以将十六进制先转化成十进制然后再转化成八进制. ElseIf Option4 = True Then t4 = "" str = Text1.Text

计算器课程设计报告

高级语言程序(JAVA)课程设计报告 系部名称:商学系专业班级:营销*** 学生姓名:墨璇 墨兰学号: ********** ********** 指导教师:王芬教师职称:讲师 2014年06月26日

目录 一、课程设计目的及意义 .................................... 错误!未定义书签。 二、课程设计任务 .......................................... 错误!未定义书签。 2.1程序设计要求....................................... 错误!未定义书签。 三、课程设计时间 .......................................... 错误!未定义书签。 四、课程设计地点 .......................................... 错误!未定义书签。 五、课程设计内容 .......................................... 错误!未定义书签。 5.1开发工具与平台..................................... 错误!未定义书签。 (1).开发工具 ...................................... 错误!未定义书签。 (2).开发平台 ...................................... 错误!未定义书签。 5.2设计思路........................................... 错误!未定义书签。 5.3 程序测试 .......................................... 错误!未定义书签。 5.4实验总结........................................... 错误!未定义书签。 六、课程设计感想 .......................................... 错误!未定义书签。 七、附录(程序代码) ...................................... 错误!未定义书签。

计算器设计的java课程设计报告

】 · ( 华东交通大学课程设计 课 程: Java 程序设计 题 目: 计算器设计 年 级: 2010级 专 业: 信息一班 * 学 号: 姓 名: 组 员: 指导教师: 课程设计题目:计算器设计

课程设计(论文)任务书 基础学院信息与计算科学专业2010—1 班 一、课程设计(论文)题目计算器的设计 二、课程设计(论文)工作自2013 年 6 月23日起至2013 年6月27日止。 三、课程设计(论文) 地点: 计算机中心 · 四、课程设计(论文)内容要求: 1.本课程设计的目的 (1)使学生掌握系统各功能模块的基本工作原理; (2)掌握Java的基本编程原理和基本的编程方法; (3)使学生学会系统调试; (4)培养学生分析、解决问题的能力; (5)提高学生的软件文档写作能力和团队合作精神。 2.课程设计的任务及要求 ' 1)基本要求: (1)分析系统各功能模块的工作原理; (2)提出系统的设计方案; (3)对所进行编程、调试、修改。 2)创新要求: 在基本要求达到后,可进行创新设计,如:用虚函数,文件流,重载流插入运算符等。3)课程设计论文编写要求 (1)要按照书稿的规格打印誊写设计论文; > (2)论文包括目录、摘要、正文、总结等; (3)毕业论文装订按学校的统一要求完成。 4)答辩与评分标准: (1)达到课程设计的目的与要求,程序的可读性较好,并调试正确,60分; (2)能正确回答老师所提问题,可增加10分; (3)课程设计报告书写规范整齐,可增加10分; (4)心得体会认真总结,可增加10分; (5)程序有创新性,可增加10分; [ 成绩评定实行优秀、良好、中等、及格和不及格五个等级。不及格者需重做。 5)参考文献:

C#计算器程序设计

C#计算器程序设计 1)创建项目 ①单击文件-》新建-》项目,弹出如下对话框 ②模板中选择“windows窗体应用程序”-》名称中输入“jsq”-》位置单击“留了”-》选择“J:\新建文件夹”-》单击确定按钮 2)计算器界面设计

①向Form1中添加1个TextBox控件,1个Label控件和27个Button控件,控件布局如图所示 ②修改27个Button控件的Text属性,结果如图 ③Label控件的BorderStyle属性选择“Fixed3D”-》Text属性设置为“”-》Form1的Text属性设置为“计算器”-》Backspace控件、CE控件等的ForeColor属性选择“Red”,结果如图:

3)显示窗口数据对齐方式设置 TextBox控件的TextAlign属性选择“Right”;4)数字键程序设计 ①双击”0”按钮控件-》编写代码如下: if (textBox1.Text != "0")//不能连续多个0出现 { textBox1.Text += "0";//添加“0”数字 } ②双击”1”按钮控件-》编写代码如下: if (textBox1.Text == "0")//数字前面不能出现多个0 { textBox1.Text = "1"; } else { textBox1.Text += "1";//添加“1”数字 } ③双击”2”按钮控件-》编写代码如下: if (textBox1.Text == "0")//数字前面不能出现多个0 { textBox1.Text = "2"; } else { textBox1.Text += "2";//添加“2”数字 } ④双击”3”按钮控件-》编写代码如下: if (textBox1.Text == "0")//数字前面不能出现多个0 { textBox1.Text = "3";

计算机技术综合课程设计报告

计算机技术综合课程设计 设计题目锅炉液位控制系统学生姓名史婷艳 专业班级自动化1302班学号20134460203 指导老师洪镇南 2017年1 月3日

目录 前言 (2) 1 锅炉汽包水位控制对象与控制指标 (4) 1.1锅炉汽包水位的特征 (4) 1.2汽包水位动态特性 (4) 1.2.1汽包水位在给水流量W作用下的动态特性 (4) 1.2.2汽包水位在蒸汽流量D扰动下的动态特性 (5) 1.2.3燃料量B扰动下汽包水位的动态特性 (6) 2. 汽包水位控制方案 (7) 2.1单冲量控制方式 (7) 2.2 双冲量控制方式 (8) 2.3 三冲量控制方式 (9) 3. 三冲量串级PID控制 (11) 3.1 串级PID控制 (11) 3.2 智能整定PID控制 (12) 4 汽包水位模糊控制器设计及仿真 (12) 4.1 输入输出变量 (12) 4.2 隶属度函数 (15) 4.3基于MATLAB/Simulink 环境建立的系统仿真分析 (16) 4.3.1 基于MATLAB/Simulink 的系统模型 (16)

4.3.2 仿真结果分析 (18) 总结与体会 (18) 参考文献 (20) 前言 锅炉是典型的复杂热工系统,目前,中国各种类型的锅炉有几十万台,由于设备分散、管理不善或技术原因,使大多数锅炉难以处于良好工况,增加了锅炉的燃料消耗,降低了效率。同时,锅炉工作过程中各项指标的调节难以建立数学模型,具有非线性、不稳定性、时滞等特点,所以如何改善对锅炉的控制,保证其正常工作,提高效率一直是人们关注的焦点。而汽包液位是锅炉安全、稳定运行的重要指标,保证液位在给定范围内,对于高蒸汽品质、减少设备损耗和运行损耗、确保整个网络安全运行具有要意义。 现代锅炉的特点之一就是蒸发量显著提高,汽包容积相对变小,水位变化速度很快,稍不注意就容易造成汽包满水或者烧成干锅,这都对汽包液位控制系统提出了更高的要求。汽包液位过高,会影响汽包内汽液分离效果,使汽包出口的饱和蒸汽带水增多,蒸汽带水会使汽轮机产生水冲击,引起轴封破损、叶片断裂等事故。同时会使饱和蒸汽中含盐量增高,降低过热蒸汽品质,增加在过热器管壁和汽轮机叶片上的结垢。水位过低,则可能破坏自然循环锅炉汽水循环系统中某些薄弱环节,以致局部水冷管壁被烧坏,严重时会造成爆炸事故。 目前,对汽包液位位控制大多采用常规PID控制方式,从控制方式来看,它们要么系统结构简单成本低,不能有效的控制锅炉汽包“虚假水位”现象,要么能够在一定程度上控制“虚假现象”,系统却过于复杂,成本投入过大。常用的蒸汽锅炉液位调节系统有三种基本结构:单冲量调节系统结构、双冲量调节系统结构、串级三冲量调节系统结

计算器java课程设计(完整版)

目录 一、课设任务及要求 (1) 二、需求分析 (2) 三、设计思路 (3) 四、详细设计 (4) 五、运行调试与分析讨论 (14) 六、设计体会与小结 (18) 七、参考文献 (19)

一、课设任务及要求 1)课设任务: ⑴、设计的计算器应用程序可以完成加法、减法、乘法、除法以及取余运算(可以进行浮点数和负数的运算); ⑵、有求倒数、退格和清零功能。 2)创新要求: 能进行正切、余弦,以及求平方根、指数(包括对e)、自然对数运算。 3)设计要求 ①设计的计算器应用程序可以完成加法、减法、乘法、除法和取余运算。且有小数点、正负号、求倒数、退格和清零功能。 ②课程设计可选用Eclipse、JBuilder、NetBeans等作为开发平台以提高开发效率,通过资料查阅和学习尽可能熟练掌握其中一种集成开发环境。 ③认真按时完成课程设计报告,课程设计报告内容包括:设计任务与要求、需求分析、设计思路、详细设计、运行调试与分析讨论和设计体会与小结六个部分。

二、需求分析 ⑴、开发的技术及功能 本课程设计是要做一个图形界面的计算器,其界面主要是由swing组件中的控件构成。程序实现了计算器的基本功能有:加、减、乘、除基本算术运算(可以进行浮点和负数运算)和sin、cos、tan等三角函数求值运算,同时能进行指数运算和自然对数运算,还有求倒数、退格和清零功能。 ⑵设计思路 设计这个计算器主要是参考Windows操作系统中自带的计算器,由于编者水平和时间的限制,不能将计算器设计到科学型及其他更复杂的类型,在设计过程中还参考了一些其他的优秀设计。但本计算器除了常用的加减乘除(可以进行浮点和负数运算)这些基本运算外,还有求余、求倒、退格、清零,甚至还能进行一些复杂科学的运算,比如余弦(cos)、正切(tan)、指数运算(pow)、自然对数运算(log)、求平方根(sqrt)以及对e的指数运算(exp),并且还能进行连续运算。总体上说来,本计算器设计简单,代码很少,程序很小,但功能却很强大,这是同类计算器所不具备的。 ⑶设计效果图 设计时先在设计界面中添加按钮等控件,后在按钮的actionPerformed 事件中添加代码完成其功能其中调用了Java类中的Math函数库以及各种字符串操作。设计的界面如下: 图1 计算器运行界面

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

《金融IT 入门-程序设计》 课程设计报告 中国地质大学长城学院XX 系 2017年 月 3 日 题目: 用Python 编写简易计算器程序 学号: 专业: 班级: 姓名: 指导教师: 2016-2017学年 第二学期

目录 一.总体概述:二.设计目标:三.程序流程图:四.程序代码:五.设计体会:

一、设计内容 ------------------------------------------------------------------------------------------------- - 2 - 1. 课程设计目的:-------------------------------------------------------------------------------------- - 2 - 2.课程设计任务: --------------------------------------------------------------------------------- - 2 - 3.创新要求:---------------------------------------------------------------------------------------------- - 2 - 4.设计要求: ------------------------------------------------------------------------------------------------ - 2 - 二、原理与分析 ---------------------------------------------------------------------------------------------- - 2 - 1.开发的技术及功能 ----------------------------------------------------------------------------------- - 2 - 2.设计思路------------------------------------------------------------------------------------------------ - 3 - 3.设计效果图--------------------------------------------------------------------------------------------- - 3 - 三、设计过程 ------------------------------------------------------------------------------------------------- - 3 - 1. 程序思路: -------------------------------------------------------------------------------------------- - 3 - 2.功能实现:---------------------------------------------------------------------------------------------- - 4 - 1)加减乘除求余以及指数运算----------------------------------------------------------------- - 4 - 2)其他运算 ------------------------------------------------------------------------------------------ - 5 - 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 -

java课程设计报告计算器

java课程设计报告 计算器 1 2020年4月19日

目录 一、课程设计目的 (5) 二、课程设计任务.................................................................................................... .. (2) 2.1、设计任务 (5) 2.2、课程设计要求: (6) 2.3、需求分析 (6) 三、开发工具与平台.................................................................................................... (3) 3.1、开发工具 (7) 3.2、开发平台 (7) 2 2020年4月19日

四、设计思路.................................................................................................... . (4) 4.1、界面设计.................................................................................................... . (4) 4.2.1、逻辑设计 (8) 4.2.2、程序流程图.................................................................................................... . (5) 4.2.3、主要代码展示及说明 (5) 4.3、程序测试 (18) 五、实验小结 (20) 3 2020年4月19日

C语言_程序设计_计算器

C语言_程序设计_计算器 课程设计说明书 题目多功能计算器起讫日期 2006 年 7月 3日至 2006 年 8月 6日 所在院系 专业班级 学生姓名学号 指导教师 2006年 8 月 1 日 摘要 当今社会,随着人们物质生活的不断提高,电子产品已经走进家家户户,无论是生活和学习还是娱乐和消遣几乎样样都离不开电子产品,计算器可谓是我们最亲密的电子伙伴之一。 随着科技的发展,人们对计算要求的精确度越来越高,各种不同功能的计算器已经悄悄走进我们的生活和学习中。对于学生来说一个功能齐全的计算器对我们的学习有着莫大的帮助。借着C语言程序设计的机会,我决定自己动手来研究一下计算器。在练习巩固C语言学习的同时又可以从中体会到计算器的强大功能,然而由于学习的内容和时间有限,至今为止我只能实现四则运算加、减、乘、除、平方、立方和开方的一些简单功能,并且在计算器的里面加了一个漂亮的时钟,用来方便我们的学习。在今后的学习中,我会继续研究,争取进一步来完善它的功能。 本系统采用Turbo C语言开发,生成可执行文件在任何系统下都可以执行,具有很好的数据处理能力和稳定性。本论文主要介绍了该课题的开发背景以及过程和

所要完成的功能。并且重点的说明了系统设计思想,设计的步骤、难点技术和解决方案。由于“初来乍到”,这个程序设计还有一些漏洞和缺陷,希望您多多提出~关键字:Turbo c c语言计算器程序四则数值运算 目录 第一章综述...........................................................................1 1(1 课题的现实意义...............................................................1 1(2 软件环境........................................................................1 1(3 硬件环境 (1) 第二章系统设计流程图............................................................2 2(1 系统流程图.....................................................................2 2(2 主要功能表.....................................................................2 第三章系统分析和设计............................................................3 3(1 图形的绘制和输出............................................................3 3(2 文本的输出显示...............................................................3 3(3 计算函数的调用...............................................................4 3(4 程序的运行和退出 (5) 第四章系统测试.....................................................................6 4(1 缺少变量定义,定义位置不正确..........................................6 4(2 语法错误........................................................................6 4(3 注释的位置.....................................................................6 4(4 逻辑错误 (6) 第五章用户使用说明书……………………………………………………8 5(1 运行Turbo C程序进入计算器界面…………………………………8 5(2 计算器的使

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