课程设计任务书

课程设计任务书
计算器的设计与制作

任务描述:
用VB设计制作简单的计算器,完成加、减、乘、除及常用函数计算功能;

具体要完成的任务是:
A. 课题组完成整个程序的联调及测试,得出正确结果,并经教师检查及答辩;
B 用户界面美观、实用;
C. 写出规范的课程设计说明书;
D. 个人完成 模块设计 ;
我是一名学生,这个是要交给我们老师验收的`希望用Visual basic做出来!下面的朋友写的我看不懂啊!最好是能详细教教我怎么做啊!
E-mail地址 liauau@163.com

'窗体不用添加任何控件的计算机,只需复制代码即可。
Option Explicit

Dim 按钮(3, 3) As String
Dim 数 As String, 数1 As String, 显示 As String, 计算 As String
Dim 开始 As Boolean, mXs As Boolean, 复位 As Boolean
Dim pX As Integer, pY As Integer, mW As Long, mH As Long, bW As Long, bH As Long
Const Pi As Double = 3.1415926

'过程和函数
Private Sub ItemSkin(ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, _
ByVal Caption As String, Optional ByVal State As Integer = 0)
Dim i As Long
Select Case State
Case 0
For i = Y1 To Y2 Step 15
Line (X1, i)-(X2, i), RGB(160 + 95 * (Y2 - i) / (Y2 - Y1), 160 + 95 * (Y2 - i) / (Y2 - Y1), 160 + 95 * (Y2 - i) / (Y2 - Y1)), B
Next
PSet (X1 + 2 * pX, Y1 + 2 * pY), &H80000010
PSet (X2 - 2 * pX, Y1 + 2 * pY), &H80000010
PSet (X1 + 2 * pX, Y2 - 2 * pY), &H80000010
PSet (X2 - 2 * pX, Y2 - 2 * pY), &H80000010
Line (X1 + pX, Y1 + pX)-(X2 - pX, Y2 - pY), &H80000010, B
Case 1
For i = Y1 To Y2 Step 15
Line (X1, i)-(X2, i), RGB(160 + 95 * (Y2 - i) / (Y2 - Y1), 160 + 95 * (Y2 - i) / (Y2 - Y1), 160 + 95 * (Y2 - i) / (Y2 - Y1)), B
Next
Line (X1 + pX, Y1 + pX)-(X2 - pX, Y2 - pY), &H80C0FF, B
Line (X1 + 2 * pX, Y1 + 2 * pX)-(X2 - 2 * pX, Y2 - 2 * pY), &H80C0FF, B
Case 2
For i = Y1 To Y2 Step 15
Line (X1, i)-(X2, i), RGB(255 - 95 * (Y2 - i) / (Y2 - Y1), 255 - 95 * (Y2 - i) / (Y2 - Y1), 255 - 95 * (Y2 - i) / (Y2 - Y1)), B
Next
PSet (X1 + 2 * pX, Y1 + 2 * pY), &H80000015
PSet (X2 - 2 * pX, Y1 + 2 * pY), &H80000015
PSet (X1 + 2 * pX, Y2 - 2 * pY), &H80000015
PSet (X2 - 2 * pX, Y2 - 2 * pY), &H80000015
Line (X1 + pX, Y1 + pX)-(X2 - pX, Y2 - pY), &H80000015, B
End Select
PSet (X1 + pX, Y1 + pY), &HA06040
PSet (X2 - pX, Y1 + pY), &HA06040
PSet (X1 + pX, Y2 - pY), &HA06040
PSet (X2 - pX, Y2 - pY), &HA06040
Line (X1, Y1)-(X2, Y2), &HA06040, B
PSet (X1, Y1), Me.BackColor
PSet (X1, Y2), Me.BackColor
PSet (X2, Y1), Me.BackColor
PSet (X2, Y2), Me.BackColor

Me.CurrentX = (X2 - X1 - Me.TextWidth(Caption)) / 2 + X1
Me.CurrentY = (Y2 - Y1 - Me.TextHeight(Caption)) / 2 + Y1
Print Caption

End Sub

Private Sub FormRecord(ByVal i显示 As String, Optional ByVal i计算 As String = "")
Dim iX As Integer, iY As Integer
Cls
Line (1200, 240)-(mW - 240, 600), &H80000005, BF
Line (1200, 240)-(mW - 240, 600), &HC0A0A0, B

ItemSkin 240, 240, 1080, 600, "AC"

For iX = 0 To 3
For iY = 0 To 3
ItemSkin bW * iX + 240, bH * iY + 840, bW * (iX + 1) - 120, bH * (iY + 1) + 600, 按钮(iX, iY)
Next
Next
Me.CurrentX = mW - Me.TextWidth(i显示) - 360
Me.CurrentY = (360 - Me.TextHeight(i显示)) / 2 + 240
Print i显示
Me.CurrentX = 1320
Me.CurrentY = (360 - Me.TextHeight(i计算)) / 2 + 240
Print i计算
End Sub
Private Sub mMouseMove(Button As Integer, X As Single, Y As Single)
Dim iX As Integer, iY As Integer
If X > 240 And X < 1080 And Y > 240 And Y < 600 Then
ItemSkin 240, 240, 1080, 600, "AC", IIf(Button = 1, 2, 1)
ElseIf X < 240 Or X > mW - 240 Or Y < 840 Or Y > mH - 240 Then
FormRecord Format(显示, "0.#######"), 计算
Else
For iX = 0 To 3
For iY = 0 To 3
If X > bW * iX + 240 And Y > bH * iY + 840 And X < bW * (iX + 1) - 120 And Y < bH * (iY + 1) + 600 Then
ItemSkin bW * iX + 240, bH * iY + 840, bW * (iX + 1) - 120, bH * (iY + 1) + 600, 按钮(iX, iY), IIf(Button = 1, 2, 1)
Else
ItemSkin bW * iX + 240, bH * iY + 840, bW * (iX + 1) - 120, bH * (iY + 1) + 600, 按钮(iX, iY)
End If
Next
Next
End If
End Sub

Private Function mCount(ByVal i数 As String, ByVal i计算 As String, Optional ByVal i等 As Boolean = False) As String
On Error GoTo ErrStr
If 计算 <> i计算 Then
计算 = i计算
数1 = 数
mCount = 数
ElseIf (i等 Or 开始 = False) And 计算 <> "" Then
Select Case 计算
Case "+"
数1 = Val(数1) + Val(i数)
Case "-"
数1 = Val(数1) - Val(i数)
Case "*"
数1 = Val(数1) * Val(i数)
Case "/"
数1 = Val(数1) / Val(i数)
End Select
mCount = 数1
ElseIf i等 Then
mCount = 数
Else
mCount = 数1
End If
复位 = i等
开始 = True
Exit Function
ErrStr:
显示 = 0
数 = 0
数1 = 0
开始 = False
mXs = False
计算 = ""
mCount = "Error"
End Function

'事件
Private Sub Form_KeyPress(KeyAscii As Integer)
If KeyAscii = 8 Or KeyAscii = 27 Then
显示 = 0
数 = 0
数1 = 0
计算 = ""
mXs = False
ElseIf Chr(KeyAscii) >= 0 And Chr(KeyAscii) < 10 Then
If 开始 Then 数 = 0
If 复位 Then
数1 = 0
计算 = ""
End If
If Len(CStr(Val(显示))) < 8 Then 数 = 数 & IIf(mXs, ".", "") & Chr(KeyAscii)
显示 = 数
开始 = False
mXs = False
复位 = False
ElseIf Chr(KeyAscii) = "." Then
If Int(显示) = 显示 Then mXs = True
ElseIf Chr(KeyAscii) = "+" Or Chr(KeyAscii) = "-" Or Chr(KeyAscii) = "*" Or Chr(KeyAscii) = "/" Then
显示 = mCount(数, Chr(KeyAscii))
ElseIf Chr(KeyAscii) = "=" Then
显示 = mCount(数, 计算, True)
End If
FormRecord Format(显示, "0.#######"), 计算
End Sub

Private Sub Form_Load()
Dim iX As Integer, iY As Integer, n As Integer
pX = Screen.TwipsPerPixelX
pY = Screen.TwipsPerPixelY
Me.AutoRedraw = True
Me.KeyPreview = True
Me.FontSize = 12
Me.Caption = "计算器"
For iY = 0 To 2
For iX = 0 To 2
n = n + 1
按钮(iX, iY) = n
Next
Next
按钮(3, 0) = "*"
按钮(3, 1) = "/"
按钮(3, 2) = "-"
按钮(3, 3) = "+"
按钮(0, 3) = "0"
按钮(1, 3) = "."
按钮(2, 3) = "="
显示 = 0
数 = 0
数1 = 0
开始 = True
FormRecord Format(显示, "0.#######"), 计算
End Sub

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then mMouseMove Button, X, Y
End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
mMouseMove Button, X, Y
End Sub
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)

If X > 240 And X < 1080 And Y > 240 And Y < 600 Then
显示 = 0
数 = 0
数1 = 0
计算 = ""
mXs = False
ElseIf X < 240 Or X > mW - 240 Or Y < 840 Or Y > mH - 240 Then
ElseIf (X - 240) \ bW = 3 Then
显示 = mCount(数, 按钮((X - 240) \ bW, (Y - 840) \ bH))
ElseIf (X - 240) \ bW = 2 And (Y - 840) \ bH = 3 Then
显示 = mCount(数, 计算, True)
ElseIf (X - 240) \ bW = 1 And (Y - 840) \ bH = 3 Then
If Int(显示) = 显示 Then mXs = True
Else
If 开始 Then 数 = 0
If 复位 Then
数1 = 0
计算 = ""
End If
If Len(CStr(Val(显示))) < 8 Then 数 = 数 & IIf(mXs, ".", "") & (按钮((X - 240) \ bW, (Y - 840) \ bH))
显示 = 数
开始 = False
mXs = False
复位 = False
End If
FormRecord Format(显示, "0.#######"), 计算
End Sub

Private Sub Form_Resize()
mW = IIf(Me.ScaleWidth > 3000, Me.ScaleWidth, 3000)
mH = IIf(Me.ScaleHeight > 3000, Me.ScaleHeight, 3000)
bW = (mW - 120) / 4
bH = (mH - 840) / 4
FormRecord Format(显示, "0.#######"), 计算
End Sub
温馨提示:内容为网友见解,仅供参考
第1个回答  2007-09-15
我已经发到你的E-mail里去了!本回答被提问者采纳
第2个回答  2007-09-12
留下Email
第3个回答  2007-09-11
w mo zhi a

建筑课程设计指导任务书目录
设计题目一:博物馆建筑 设计指导任务书 设计题目二:商业街外部空间第六章:四年级下学期 设计题目:居住小区详细规划 设计指导任务书第七章:五年级上学期 设计一:高层综合性办公楼建筑方案 设计指导任务书 设计二:星级商业酒店建筑方案 设计指导任务书 选择:设计一或设计二以上是各阶段的...

课程设计任务书是干什么的
要做课程设计了。做什么,条件是什么,完成的成果要求是什么。这些写成一个文档,称“课程设计任务书”。它告诉接受任务的,要做什么,条件是什么,要完成的成果是什么等信息。

建筑课程设计指导任务书的介绍
本书为高等学校五年制建筑学专业建筑课程设计而编写,共有18个题目的设计任务书和指导书,主要题目内容有:茶室、咖啡屋、别墅、艺术工作者之家、幼儿园、中小学校、大学生活动中心、建筑师之家、长途汽车站、山地旅馆、图书馆、建筑系系馆、医院、博物馆、商业街外部空间、居住小区详细规划、高层综合性办...

本科生课程设计任务书,设计报告 怎么写
装订次序:1.课程设计说明书封面 2.任务书封面 3.任务书 4. 设计说明书正文

《发电厂电气设备》课程设计任务书 一、题目:2×15MW水力发电厂电气一次...
1、待设计发电厂类型: 水力发电厂 ;2、发电厂一次设计并建成,计划安装2×15 MW 的水力发电机组,利用小时数 4000 小时\/年。3、待设计发电厂接入系统电压等级为110kV, 距系统110kV发电厂45km;出线回路数为4回;4、电力系统的总装机容量为 600 MVA、归算后的电抗标幺值为 0.3,基准容量Sj=...

专科 结构设计原理课程设计任务书5?
土木工程专业毕业设计任务书 (指导老师:)一、项目名称:某多层综合楼 二、项目地点:市 三、项目性质:市某设计院,拟建综合办公楼一座,主要用于所属各单位的行政办公和接待其他合作单位的来访人员,同时也包括一定范围内的商业贸易活动。建筑面积约5600平方米左右。四、项目内容:1、 建筑规模 (1...

十字头课程设计任务书
机械制造工艺及机床夹具课程设计任务书 一、 设计题目:1、 机械零件加工工艺过程设计;2、 机床专用夹具设计。二、 设计原始资料:1、 零件图;2、 零件的生产类型。三、 基本要求:1、 理论联系实际,根据图纸的技术要求做相关的技术分析,提出设计的总体方案。2、 设计过程中要综合运用已学过的相关...

房屋建筑学》课程设计任务书设计 一、目的要求 通过理论教学、参观和设...
单体方案设计任务书 一、项目地块概况 (已提供)二、规划设计条件(已提供)三、建筑规模:接合以往会议纪要,保证A2地块总建筑面积的同时尽量加大建筑面积。四、项目定位 1、功能:二层至三层商业:中高档商业铺面、超市消费性商业等,考虑服务于上部SOHO式公寓的20人以下中小型会议室上部SOHO式公寓:保证...

课程设计任务书 屋顶排水和檐口构造设计 三、 设计内容及深度 本设计...
1.屋顶平面图 1:100 (1)进行屋顶平面环境布置(需要考虑屋面种植或蓄水)、标注上人屋面室内外标高、建筑层数等,标注三道尺寸(总尺寸、轴线尺寸、平面布置尺寸)。(2)设计屋面排水系统,标注各部位标高。(3)将局部屋面分层揭开,逐层表示构造层次,标注材料及做法。若采用刚性防水屋面,还需要画出...

建筑课程设计指导任务书内容提要
本书专为高等教育机构的五年制建筑学专业设计,旨在提供详实的建筑课程设计指导。共囊括18个精心编排的设计任务书与指导,内容丰富多样,包括:雅致的茶室舒适咖啡屋豪华别墅艺术家的工作居所温馨幼儿园中小学校与大学活动中心建筑师的专业天地繁忙的长途汽车站山地休憩的旅馆知识的海洋——图书馆建筑系的教学重...

相似回答