计算器报告书VB.docx

上传人:b****6 文档编号:7763144 上传时间:2023-01-26 格式:DOCX 页数:45 大小:466.37KB
下载 相关 举报
计算器报告书VB.docx_第1页
第1页 / 共45页
计算器报告书VB.docx_第2页
第2页 / 共45页
计算器报告书VB.docx_第3页
第3页 / 共45页
计算器报告书VB.docx_第4页
第4页 / 共45页
计算器报告书VB.docx_第5页
第5页 / 共45页
点击查看更多>>
下载资源
资源描述

计算器报告书VB.docx

《计算器报告书VB.docx》由会员分享,可在线阅读,更多相关《计算器报告书VB.docx(45页珍藏版)》请在冰豆网上搜索。

计算器报告书VB.docx

计算器报告书VB

河北联合大学

《软件设计基础(VB)》

课程设计报告

设计名称:

简易科学计算器

姓名:

学号:

----

专业班级:

-----

学院:

-----

设计时间=======

设计地点:

学校机房

成绩:

指导教师评语:

 

指导教师签字:

年月日

目录

1.课程设计目的

2.课程设计任务与要求

3.课程设计说明书

4.课程设计成果

5.程序调试过程

6.设计问题的不足和改进方案

7.课程设计心得

8.附录

9.参考文献

1.课程设计目的

 

《软件设计基础(VB)》课程设计是这门课程的实践性教学环节之一,本次设计结合实际应用的要求,使课程设计既覆盖VB的知识点,又接近工程实际需要。

目的是通过课程设计的综合训练,培养学生实际分析问题、解决问题的能力,以及编程和动手能力,最终目标是通过课程设计这种形式,帮助学生系统掌握VB这门课程的主要内容,养成良好的编程习惯,更好的完成教学任务。

 

2.课程设计任务与要求:

要求:

本次课程设计利用《软件设计基础(VB)》课程中所学到的编程知识和编程技巧,完成具有一定难度和工作量的程序设计题目,帮助学生掌握编程、调试的基本技能,独立完成所布置的任务。

要求:

1、对系统进行功能需求分析

2、设计合理的数据结构和系统框架

3、界面设计美观、清楚、合理

4、编程简练,程序功能齐全,能正确运行

5、具有一定的创新性

6、说明书、流程图要清楚

7、课题完成后必须按要求提交课程设计报告

任务:

1能够完成数值常数的四则运算及其他函数的求值运算包括sin,cos,tan,exp,log,ln,sqr,1/x,以及常数e和园周率π。

2支持键盘快捷运算(仅要求数字及运算符)。

3因为控件数目较多,要求采用控件数组,以减少事件处理的复杂程度,使程序简洁高效。

4出错处理:

操作数如果不符合数学上的定义,应该给出错误信息。

例:

0做除数,负数或0做真数等情况。

 

3.课程设计说明书

功能描述

1此程序增加了一个Form2窗体。

当在Form1上点击“优先级”按钮时弹出Form2窗体,以实现优先级运算,当在Form2上点击“简易科学”按钮时弹出Form1窗体,以实现简易科学计算

2可以按照题目要求进行数值的四则运算及其他特殊函数的运算。

3五个存储键可以实现数值的存取。

4在Form1窗体中支持键盘快捷运算。

5ON按钮可以进行初始化,清除内存中的数,OFF退出,CE清除显示。

6出错时有提示信息

⑵概要设计

主要写模块说明,模块结构图,系统流程图(例N-S流程图)(五号,宋体)

模块结构图:

根据功能分析,建立系统的体系结构,即将整个系统分解成若干子模块,用框图表示各功能模块之间的接口关系(如下图)。

 

简易文件系统功能框图

⑶详细设计

总体流程图:

 

各功能模块流程图:

1Selectcase流程图

 

 

2

控件数组的流程图

 

⑷代码实现

详细说明各功能模块的实现过程,所用到的算法、技巧等(附上代码)。

如:

本系统总共10个窗体:

form1~form10详细如下:

form1、首页

作用:

“进入应用程序”。

所用控件:

5个标签,4个时钟。

设计思路:

用时钟控制label1、2,3,4的运动。

单击label1,2,5和命令选择器可进入后面窗体,label3.无链接窗体,无label4。

详细内容:

属性较特殊的需要说明。

代码如下:

本系统总共两个窗体Form1和Form2

Form1

作用:

实现简易科学计算及一些特殊函数的计算。

所用控件:

40个按钮,1个文本框

设计思路:

①定义e时调用Function函数;

②计算三角函数时用n*3.14/180(n表示数字)进行弧度和角度的转换;

③计算对数时用公式b=Log(a)/Log(10);

④四则运算调用calc(op1,op,op2)进行计算;

⑤符号和存储键利用控件数组实现

过程代码:

Form1的代码:

Click事件的代码:

Dimn1AsInteger,n2AsInteger,n3AsInteger,n4AsInteger,n5AsInteger

Dimm1AsDouble,m2AsDouble,m3AsDouble,m4AsDouble,m5AsDouble'五个存储键对应的存储数

DimiAsInteger,pAsInteger,op(100)AsDouble,jAsInteger,kAsInteger

DimmAsInteger,nAsInteger,uAsInteger,vAsInteger,wAsInteger

Functione(ByValoAsInteger,tAsDouble)AsDouble'定义e函数

e=1:

t=1

Foro=1To100

t=t/o:

e=e+t

Ift<1E-24Then

ExitFor

EndIf

Nexto

EndFunction

PrivateSubCommand1_Click(IndexAsInteger)'设定各个按纽的功能

DimpiAsDouble,tempAsDouble,niAsDouble,kiAsDouble

DimaAsDouble,bAsDouble,cAsDouble

IfIndex=18Then'索引初始化按钮ON

n1=0:

n2=0:

n3=0:

n4=0:

n5=0'五个存储区都归零

Text1.Text=0'显示区归零

i=0:

j=0:

k=1:

m=1:

n=1:

v=0:

u=0:

w=0

op(u)=Text1.Text

EndIf

IfIndex=17Then'索引结束按钮OFF

End

EndIf

IfIndex=16Then'索引清除按钮CE

Text1.Text=0

i=0:

j=0:

k=1:

m=1:

n=1:

v=0:

u=0:

w=0

op(u)=Text1.Text

EndIf

IfIndex=15Then'索引等号

Ifw=1Then

Text1.Text=Text1.Text'x显示符号

Else

Ifj=1Then'j=1代表加

Text1.Text=op(u-1)+op(u)

ElseIfj=2Then

Text1.Text=op(u-1)-op(u)'j=2代表减

ElseIfj=3Then

Text1.Text=op(u-1)*op(u)'j=3代表乘

ElseIfj=4Then

Text1.Text=op(u-1)/op(u)'j=4代表除

EndIf

u=u+1'运算数下标的累加

v=0'防止连续连续运算时出现错误

EndIf

EndIf

IfIndex=1Then'索引数字1

Ifk=0Then

Text1.Text=1

Else

Ifm=1Then'小数点前有一位数

Text1.Text=Text1.Text*10+1

Else

Text1.Text=Text1.Text+1*10^(-n)

n=n+1'小数点位数的累加

EndIf

EndIf

k=k+1

op(u)=Text1.Text'初值赋给op(u)

w=0:

v=1

EndIf

IfIndex=2Then'同索引数字1

Ifk=0Then

Text1.Text=2

Else

Ifm=1Then

Text1.Text=Text1.Text*10+2

Else

Text1.Text=Text1.Text+2*10^(-n)

n=n+1

EndIf

EndIf

k=k+1

op(u)=Text1.Text

w=0:

v=1

EndIf

IfIndex=3Then'同索引数字1

Ifk=0Then

Text1.Text=3

Else

Ifm=1Then

Text1.Text=Text1.Text*10+3

Else

Text1.Text=Text1.Text+3*10^(-n)

n=n+1

EndIf

EndIf

k=k+1

op(u)=Text1.Text

w=0:

v=1

EndIf

IfIndex=4Then'同索引数字1

Ifk=0Then

Text1.Text=4

Else

Ifm=1Then

Text1.Text=Text1.Text*10+4

Else

Text1.Text=Text1.Text+4*10^(-n)

n=n+1

EndIf

EndIf

k=k+1

op(u)=Text1.Text

w=0:

v=1

EndIf

IfIndex=5Then'同索引数字1

Ifk=0Then

Text1.Text=5

Else

Ifm=1Then

Text1.Text=Text1.Text*10+5

Else

Text1.Text=Text1.Text+5*10^(-n)

n=n+1

EndIf

EndIf

k=k+1

op(u)=Text1.Text

w=0:

v=1

EndIf

IfIndex=6Then'同索引数字1

Ifk=0Then

Text1.Text=6

Else

Ifm=1Then

Text1.Text=Text1.Text*10+6

Else

Text1.Text=Text1.Text+6*10^(-n)

n=n+1

EndIf

EndIf

k=k+1

op(u)=Text1.Text

w=0:

v=1

EndIf

IfIndex=7Then

Ifk=0Then

Text1.Text=7

Else

Ifm=1Then

Text1.Text=Text1.Text*10+7

Else

Text1.Text=Text1.Text+7*10^(-n)

n=n+1

EndIf

EndIf

k=k+1

op(u)=Text1.Text

w=0:

v=1

EndIf

IfIndex=8Then'同索引数字1

Ifk=0Then

Text1.Text=8

Else

Ifm=1Then

Text1.Text=Text1.Text*10+8

Else

Text1.Text=Text1.Text+8*10^(-n)

n=n+1

EndIf

EndIf

k=k+1

op(u)=Text1.Text

w=0:

v=1

EndIf

IfIndex=9Then'同索引数字1

Ifk=0Then

Text1.Text=9

Else

Ifm=1Then

Text1.Text=Text1.Text*10+9

Else

Text1.Text=Text1.Text+9*10^(-n)

n=n+1

EndIf

EndIf

k=k+1

op(u)=Text1.Text

w=0:

v=1

EndIf

IfIndex=0Then'同索引数字1

Ifk=0Then

Text1.Text=0

Else

Ifm=1Then

Text1.Text=Text1.Text*10+0

Else

Text1.Text=Text1.Text+0*10^(-n)

n=n+1

EndIf

EndIf

k=k+1

op(u)=Text1.Text

w=0:

v=1

EndIf

IfIndex=10Then'索引小数点

m=-1

EndIf

IfIndex=11Then'索引加号

Ifv=0Then

u=u-1

EndIf

Ifj=1Then

Text1.Text=op(u-1)+op(u)

ElseIfj=2Then

Text1.Text=op(u-1)-op(u)

ElseIfj=3Then

Text1.Text=op(u-1)*op(u)

ElseIfj=4Then

Text1.Text=op(u-1)/op(u)

EndIf

Ifu=-1Then

u=0

EndIf

k=0

op(u)=Text1.Text

i=i+1:

j=1:

m=1:

n=1:

u=u+1:

v=0

EndIf

IfIndex=12Then'索引减号

Ifv=0Then

u=u-1

EndIf

Ifj=1Then

Text1.Text=op(u-1)+op(u)

ElseIfj=2Then

Text1.Text=op(u-1)-op(u)

ElseIfj=3Then

Text1.Text=op(u-1)*op(u)

ElseIfj=4Then

Text1.Text=op(u-1)/op(u)

EndIf

Ifu=-1Then

u=0

EndIf

k=0

op(u)=Text1.Text

j=2:

i=1+i:

m=1:

n=1:

u=u+1:

v=0

EndIf

IfIndex=13Then'索引乘号

Ifv=0Then

u=u-1

EndIf

Ifj=1Then

Text1.Text=op(u-1)+op(u)

ElseIfj=2Then

Text1.Text=op(u-1)-op(u)

ElseIfj=3Then

Text1.Text=op(u-1)*op(u)

ElseIfj=4Then

Text1.Text=op(u-1)/op(u)

EndIf

Ifu=-1Then

u=0

EndIf

k=0

op(u)=Text1.Text

j=3:

i=i+1:

m=1:

n=1:

u=u+1:

v=0

EndIf

IfIndex=14Then'索引除号

Ifv=0Then

u=u-1

EndIf

Ifj=1Then

Text1.Text=op(u-1)+op(u)

ElseIfj=2Then

Text1.Text=op(u-1)-op(u)

ElseIfj=3Then

Text1.Text=op(u-1)*op(u)

ElseIfj=4Then

Text1.Text=op(u-1)/op(u)

EndIf

Ifu=-1Then

u=0

EndIf

k=0

op(u)=Text1.Text

j=4:

i=i+1:

m=1:

n=1:

u=u+1:

v=0

EndIf

IfIndex=19Then'索引sin

a=Text1.Text

b=Sin(a*3.14/180)

Text1.Text=b

u=u+1:

v=0:

w=1

EndIf

IfIndex=20Then'索引cos

a=Text1.Text

b=Cos(a*3.14/180)

Text1.Text=b

u=u+1:

v=0:

w=1

EndIf

IfIndex=21Then'索引tan

a=Text1.Text

b=Tan(a*3.14/180)

Text1.Text=b

u=u+1:

v=0:

w=1

EndIf

IfIndex=22Then'索引exp

a=Text1.Text

b=Exp(a)

Text1.Text=b

u=u+1:

v=0:

w=1

EndIf

IfIndex=24Then'索引ln

IfText1.Text=0Then

MsgBox"0不能为真数"

ElseIfText1.Text<0Then

MsgBox"负数不能为真数"

Else

a=Text1.Text

b=Log(a)

Text1.Text=b

EndIf

u=u+1:

v=0:

w=1

EndIf

IfIndex=23Then'索引log

a=Text1.Text

IfText1.Text=0Then

MsgBox"0不能坐真数"

ElseIfText1.Text<0Then

MsgBox"负数不能坐真数"

Else

b=Log(a)/Log(10)

Text1.Text=b

EndIf

u=u+1:

v=0:

w=1

EndIf

IfIndex=25Then'索引sqr

a=Text1.Text

Ifa<0Then

MsgBox"负数不能开平方"

Else

b=Sqr(a)

Text1.Text=b

u=u+1:

v=0:

w=1

EndIf

EndIf

IfIndex=26Then'索引1/x

IfText1.Text=0Then

MsgBox"分母不能为0"

Else

a=Text1.Text

b=1/a

Text1.Text=b

EndIf

u=u+1:

v=0:

w=1

EndIf

IfIndex=28Then

'pi=2'求圆周率的函数

'temp=2

'ni=1

'Do

'pi=temp

'ki=2*ni

'temp=temp*(ki/(ki-1))*(ki/(ki+1))

'ni=ni+1

'LoopUntilAbs(pi-temp)<0.000000000000001

'text1.text=pi

Ifk=0Then

Text1.Text=3.1415926

Else

Ifm=1Then

Text1.Text=Text1.Text*10+3.1415926

Else

Text1.Text=Text1.Text+3.1415926*10^(-n)

n=n+1

EndIf

EndIf

k=k+1

op(u)=Text1.Text

w=0:

v=1

EndIf

IfIndex=29Then'索引e

Ifk=0Then

Text1.Text=2.732

Else

Ifm=1Then

Text1.Text=Text1.Text*10+2.732

Else

Text1.Text=Text1.Text+2.732*10^(-n)

n=n+1

EndIf

EndIf

k=k+1

op(u)=Text1.Text

w=0:

v=1

EndIf

IfIndex=31Then'索引m1

Ifn1=0Then

m1=Text1.Text

Else

Text1.Text=m1

op(u)=Text1.Text

EndIf

n1=n1+1

EndIf

IfIndex=32Then'索引m2

Ifn2=0Then

m2=Text1.Text

Else

Text1.Text=m2

op(u)=Text1.Text

EndIf

n2=n2+1

EndIf

IfIndex=33Then'索引m3

Ifn3=0Then

m3=Text1.Text

Else

Text1.Text=m3

op(u)=Text1.Text

EndIf

n3=n3+1

EndIf

IfIndex=30Then'索引m4

Ifn4=0Then

m4=Text1.Text

Else

Text1.Text=m4

op(u)=Text1.Text

EndIf

n4=n4+1

EndIf

IfIndex=27Then'索引m5

Ifn5=0Then

m5=Text1.Text

Else

Text1.Text=m5

op(u)=Text1.Text

EndIf

n5=n5+1

EndIf

EndSub

PrivateSubCommand2_Click()

Form1.Hide

Form2.Show

EndSub

PrivateSubForm_Load()

n1=0:

n2=0:

n3=0:

n4=0:

n5=0'五个存储数存储或输出的条件

Text1.Text=0'对各个值和循环条件进行初始化

i=0:

j=0:

k=1:

m=1:

n=1:

v=0:

u=0:

w=0'j的值对应相应的运算符,'m是判断

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1