vb大作业
- 格式:doc
- 大小:1.05 MB
- 文档页数:29
《面向对象程序设计》大作业题目:记事本的设计及实现姓名:学号:专业:学院:指导教师:1 课程设计题目和要求 (3)2 功能分析 (3)3 系统设计 (3)3.1主流程图 (3)3.2 “文件”菜单操作流程图 (4)3.3 “编辑”菜单操作流程图 (5)3.4 “格式”菜单操作流程图 (6)3.5“帮助”菜单操作流程图 (7)4. 界面设计 (8)4.1 系统主界面设计 (8)4.2“文件”菜单的菜单项 (8)4.3 打开文件及另存文件时的界面 (9)4.4“编辑”菜单的菜单项 (9)4.5“格式”菜单的菜单项 (10)4.6“帮助”菜单的菜单项 (10)4.7 帮助界面设计 (11)4.8 “查找”功能界面设计 (12)5 总结 (12)6. 附录(源程序清单) (14)6.1全局变量 (14)6.2主程序加载 (14)6.3新建记事本文件 (14)6.4打开已有的记事本文件 (14)6.5 保存记事本文件 (15)6.6另存为所打开的记事本文件 (15)6.7打印所打开的记事本文件 (16)6.8退出主程序 (16)6.9 撤销命令 (16)6.10 剪切命令 (16)6.11 复制命令 (17)6.12 黏贴命令 (17)6.13 “删除”菜单源程序 (17)6.14“查找”菜单源程序 (17)6.15“查找下一个”菜单源程序 (17)6.16“全选”菜单源程序 (18)6.17插入时间/日期源程序 (18)6.18 统计字数源程序 (18)6.19 “自动换行”菜单源程序 (19)6.20 字体的选择 (19)6.21 “帮助”菜单栏源程序 (19)6.22 关于此记事本的信息 (19)1 课程设计题目和要求题目:记事本的设计及实现基本设计要求:(1)功能齐全;(2)保证文件安全,操作简便;(3)操作方便、简单,界面友好;(4)易于维护和补充;(5)对系统的运行效率要高,绝对不能出错,对系统响应速度的要求不高;2 功能分析本程序要构建的记事本程序参照了Windows操作系统的记事本工具,其功能有以下几个方面:(1) 菜单中有“文件”、“编辑”、“格式”、“帮助”四个主菜单;(2) “文件”有“新建”、“打开”、“保存”、“另存为”、“打印”及“退出”分别用于新建文件,打开文件,保存文件,另存文件,打印文件及退出记事本。
VB课程大作业要求1.题目安排:每个同学根据自己的学号后两位数字,做对应的题目。
题目在附件中,文件名为《VB大作业题库》。
例如:学号201120007,后两位数字为“07”,做第“7题”;学号201120017,后两位数字为“17”,做第“17题”;学号201120100,后两位数字为“00”,做第“100题”;2.答题要求:每个同学针对各自的题目,首先进行算法分析;然后设计直观、可操作性强的界面;上机编程和调试后,进行结果分析与总结。
3.提交形式:纸质报告+源程序(.vbp和.frm文件)(1)纸质报告分四部分,篇幅大小为2page,字号为“五号”;一张A4纸正反打印。
<1> 班级姓名学号题目;<2> 算法分析;<3> 界面与结果截图;<4> 结果分析与总结;(2)源程序包括工程和窗体文件等(.vbp和.frm),做成一个压缩文件,文件名统一为:班级+姓名+学号<注意:只提交.exe文件的没有成绩!>4.提交时间与方式:(1) 纸质报告交各班学委,由学委排序后,于5月17日17点之前,交到7教314。
(2) 源程序文件,由各位同学本人,于5月17日17点之前,发送到lining@纸质报告与源程序两者缺一不可。
打印所有不超过n(取n<256) 的其平方具有对称性质的数(也称回文数)。
*题目分析与算法设计对于要判断的数n,计算出其平方后(存于a),将a的每一位进行分解,再按a的从低到高的顺序将其恢复成一个数k(如n=13,则a=169且k=961),若a等于k则可判定n为回文数。
#include <stdio.h>int main(int argc, char *argv[]){int i, n, a, m[16], k, count=0, t;printf("no\tnumber\tvalue\n");for(n=1; n<256; n++){k = 0, t = 1, a = n * n;for(i=0; a!=0; i++){m[i] = a % 10;a /= 10;}int j = 0;for(i--; j<=i; j++, i--){if(m[j] != m[i])break;if(j >= i)printf("%d\t%d\t%d\t\n", ++count, n, n*n);}}return 0;}。
2010-2011学年第一学期课程大作业1.编写程序,建立并输出一个10x10的矩阵,该矩阵主对角线元素为1,其余元素为0编辑界面Private Sub Command1_Click()Dim a(1 To 10, 1 To 10) As Long, i As Long, j As LongMe.Cls: Me.AutoRedraw = TrueFor i = 1 To 10For j = 1 To 10If i <> j Then a(i, j) = 0 Else a(i, j) = 1Print " " & a(i, j);NextPrint vbCrLfNextEnd Sub2.对10名运动员的百米短跑比赛成绩进行排序,并按格式分行输出成绩排名表。
运行界面Private Type StuNo As String * 3Time As SingleEnd TypeSub Command1_Click()Dim s(1 To 10) As Stus(1).No = "207"s(2).No = "156"s(3).No = "453"s(4).No = "096"s(5).No = "339"s(6).No = "077"s(7).No = "231"s(8).No = "276"s(9).No = "122"s(10).No = "302"s(1).Time = 14.5s(2).Time = 14.2s(3).Time = 15.2s(4).Time = 15.7s(5).Time = 14.9s(6).Time = 15.1s(7).Time = 14.7s(8).Time = 13.9s(9).Time = 13.7s(10).Time = 14.5Dim i, j, n As IntegerDim si As StuFor i = 1 To 9For j = i + 1 To 10If s(i).Time > s(j).Time Thensi = s(i)s(i) = s(j)s(j) = siEnd IfNextNextPrint "名次"; Tab(10); "运动员号"; Tab(25); "成绩"PrintFor n = 1 To 10Print n; Tab(10); s(n).No; Tab(25); s(n).TimePrintNextEnd Sub3. 编写二进制整数转换十进制整数的函数,编写十进制实数(考虑整数部分和小数部分)转换二进制实数的函数。
vb考试大题及答案VB考试大题及答案一、编写一个VB程序,实现以下功能:1. 计算并显示一个整数的平方根。
2. 如果输入的不是整数,则弹出对话框提示错误。
答案:```vbOption ExplicitPrivate Sub Command1_Click()Dim num As DoubleDim result As DoubleDim strInput As StringstrInput = InputBox("请输入一个整数")If IsNumeric(strInput) Thennum = Val(strInput)If num < 0 ThenMsgBox "负数没有平方根"Elseresult = Sqr(num)MsgBox "平方根为: " & resultEnd IfElseMsgBox "输入错误,请输入一个整数"End IfEnd Sub```二、设计一个VB程序,实现以下功能:1. 通过文本框输入一个字符串。
2. 统计字符串中每个字符出现的次数,并在列表框中显示。
答案:```vbOption ExplicitPrivate Sub Command1_Click()Dim strInput As StringDim strChar As StringDim i As IntegerDim count As IntegerstrInput = Text1.TextFor i = 1 To Len(strInput)strChar = Mid(strInput, i, 1)count = 0For j = 1 To Len(strInput)If Mid(strInput, j, 1) = strChar Then count = count + 1End IfNext jIf count > 0 ThenList1.AddItem strChar & ": " & countEnd IfNext iEnd Sub```三、编写一个VB程序,实现以下功能:1. 通过单选按钮选择一个颜色(红、绿、蓝)。
作业1一、单项选择题1.Visual Basic是一种面向对象的可视化程序设计语言,采取了 A 的编程机制。
(A)事件驱动 (B)按过程顺序执行 (C)从主程序开始执行 (D)按模块顺序执行2.在Visual Basic中最基本的对象是 C ,它是应用程序的基石,是其他控件的容器。
(A)文本框 (B)命令按钮 (C)窗体 (D)标签3.多窗体程序是由多个窗体组成。
在缺省情况下,VB在应用程序执行时,总是把 B指定为启动窗体。
(A)不包含任何控件的窗体 (B)设计时的第一个窗体(C)包含控件最多的 (D)命名为Frm1的窗体4.有程序代码如下:Text1. Text= "Visual Basic"则:Text1,Text和"Visual Basic"分别代表 C 。
(A)对象,值,属性 (B)对象,方法,属性(C)对象,属性,值 (D)属性,对象,值5.Visual Basic是一种面向对象的程序设计语言, A 不是面向对象系统所包含的三要素。
(A)变量 (B)事件 (C)属性 (D)方法6.Visual Basic的一个应用程序至少包含一个 B 文件,该文件存储窗体上使用的所有控件对象和有关的、对象相应的过程和代码。
(A)模块、方法、事件、程序 (B)窗体、属性、事件、程序(C)窗体、程序、属性、事件 (D)窗体、属性、事件、模块7.以下不属于Visual Basic的工作模式是 A 模式。
(A)编译 (B)设计 (C)运行 (D)中断8.在VB集成环境创建VB应用程序时,除了工具箱窗口、窗体中的窗口、属性窗口外,必不可少的窗口是 C 。
(A)窗体布局窗口 (B)立即窗口 (C)代码窗口 (D)监视窗口9.保存新建的工程时,默认的路径是 B 。
(A)My Documents (B)VB98 C)\ (D)Windows10.将调试通过的工程经“文件”菜单的“生成 .exe文件”编译成 .exe后,将该可执行文件拿到其他机器上不能运行的主要原因是 A 。
学生信息管理系统组长(姓名、学号):组员(姓名、学号):专业班级:指导教师:结束时间(年、月、日):目录摘要 (1)第1章开发背景和系统概述 (2)1.1开发背景 (2)1.2系统概述 (2)1.3开发环境 (3)第2章需求分析与功能介绍 (5)2.1需求分析 (5)2.2系统软件结构 (7)2.3系统功能介绍 (8)第3章主要界面设计与关键模块设计 (10)3.1主要界面设计 (10)3.2关键模块设计 (15)第4章系统数据库设计 (17)4.1数据库系统 (17)4.2系统数据库与VB的连接 (17)4.3数据库逻辑结构设计 (17)第5章系统整体评价及展望 (21)5.1整体评价 (21)5.2展望 (21)总结 (23)参考文献 (24)附录 (25)摘要为了更好的存储和管理学生信息, 在Windows XP平台上,使用Visual Basic6.0+Access 设计实现了学生信息管理系统。
学生信息管理系统分为多个窗口:系统登陆窗口,系统主窗口,数据录入窗口,数据查询窗口,数据修改窗口等。
学生信息管理系统启动后,出现登陆界面,在登陆界面输入用户相关信息,系统验证后,登陆到系统主界面,在系统主界面上根据不同的用户权限进行系统操作。
通过对窗口菜单的选择进入相应的管理界面,在相应的管理界面对所需管理的数据进行修改、添加、清理等操作。
本系统实现的功能包括班级管理(班级查询、班级修改及浏览、班级添加、班级信息导出),档案管理(档案信息查询、档案信息修改及浏览、档案信息录入、档案信息导出),课程管理(基本课程设置、班级课程设置),成绩管理(成绩查询、成绩修改及浏览、成绩添加、成绩信息导出等),数据后援(数据备份、数据恢复)等。
本系统创建了一个数据库sjk.mdb,数据库中包括八个表:1.班级管理---学生基本的班级信息包括院系、专业、班级号、年级等。
2.课程管理---学生的课程包括年级、专业、学期、课程名等。
Sub createLineAndText()Dim p0(0 To 2) As DoubleDim p1(0 To 2) As DoubleFor i = 0 To 10p0(0) = 0: p0(1) = ip1(0) = 10: p1(1) = iSet ln0 = ThisDrawing.ModelSpace.AddLine(p0, p1)NextFor i = 0 To 10p0(0) = i: p0(1) = 0p1(0) = i: p1(1) = 10Set ln = ThisDrawing.ModelSpace.AddLine(p0, p1)NextFor i = 0 To 9For j = 0 To 9p0(0) = i + 0.4: p0(1) = j + 0.4Set tt = ThisDrawing.ModelSpace.AddText(i * 10 + j, p0, 0.2) Next jNext iEnd SubSub createFrameDim()Dim p0(0 To 2) As DoubleDim p1(0 To 2) As DoubleDim pt(0 To 2) As Doubles = 500: num = 70p1(0) = s * numSet ln0 = ThisDrawing.ModelSpace.AddLine(p0, p1)For i = 0 Tonump0(0) = i * sp1(0) = i * s: p1(1) = 50If i Mod 5 = 0 Thenp1(1) = 150pt(0) = i * s: pt(1) = -200Set tt = ThisDrawing.ModelSpace.AddText(i, pt, 180)End IfSet ln = ThisDrawing.ModelSpace.AddLine(p0, p1)NextEnd SubSub createRegion()Dim ea(0 To 2) As AcadEntityDim p0(0 To 2) As DoubleDim p1(0 To 2) As DoubleDim p2(0 To 2) As Doublep1(1) = 1000p2(0) = 1500: p2(1) = 1000Set ln0 = ThisDrawing.ModelSpace.AddLine(p0, p1)Set ln1 = ThisDrawing.ModelSpace.AddLine(p1, p2)Dim pta(0 To 3 * 3 - 1) As Doublepta(3) = 1000: pta(4) = 500: pta(6) = 1500: pta(7) = 1000Set sp = ThisDrawing.ModelSpace.AddSpline(pta, p0, p0)Set ea(0) = ln0Set ea(1) = ln1Set ea(2) = sprega = ThisDrawing.ModelSpace.AddRegion(ea)Dim tt As StringDim cen As Variantcen = rega(0).Centroidtxt = "A=" ®a(0).Area & " LCG=" &cen(0)MsgBox (txt)End SubSub InsertBlock()Dim blockObj As AcadBlockDim pos(0 To 2) As DoubleSet blockObj = ThisDrawing.Blocks.Add(pos, "txy")Dim cen(0 To 2) As DoubleSet a = blockObj.AddCircle(cen, 50)Set b = blockObj.AddCircle(cen, 100)Set c = blockObj.AddCircle(cen, 150)Dim ref As AcadBlockReferencepos(0) = 2: pos(1) = 2Set ref = ThisDrawing.ModelSpace.InsertBlock(pos, "txy", 1, 1, 1, 0) ZoomAllEnd SubPublic Sub selectEntity()Dim obj As AcadObjectOn Error GoToendofsubThisDrawing.Utility.GetEntityobj, p1, "select a object please" obj.color = 1End SubSub TexttoPos()Dim tt As AcadTextWhile 1ThisDrawing.Utility.GetEntitytt, p1, "选择文本"tt.TextString = Format(tt.InsertionPoint(0), 0) & "," & Format(tt.InsertionPoint(1), 0) WendEnd SubPublic Sub SetPoint() '可以画直线Dim p1(0 To 2) As DoubleDim rp As VariantOn Error GoTotoExitWhile 1rp = ThisDrawing.Utility.GetPoint(p1, "选择点")ThisDrawing.ModelSpace.AddPoint (rp)Set ln = ThisDrawing.ModelSpace.AddLine(p1, rp)p1(0) = rp(0): p1(1) = rp(1)WendtoExit:End SubPublic Sub SetPoint2() '可以画splineDim p1(0 To 2) As DoubleDim rp As VariantOn Error GoToendofsubReDimpta(0 To 1000) As DoubleCount = 0While 1rp = ThisDrawing.Utility.GetPoint(p1, "选择下一点")ThisDrawing.ModelSpace.AddPoint (rp)pta(Count * 3) = rp(0): pta(Count * 3 + 1) = rp(1)Count = Count + 1Wendendofsub:ReDim Preserve pta(0 To Count * 3 - 1) As DoubleThisDrawing.ModelSpace.AddSplinepta, p1, p1End SubSub drawcoodinate()Dim rp As Variantrp = ThisDrawing.Utility.GetPoint(p1, "选择位置点") 'rp=thisdrawing.utility.getEntity p1,"选择位置点"Set tt = ThisDrawing.ModelSpace.AddText(Format(rp(0), 0) & "," & Format(rp(1), 0), rp, 50)End SubSub changecolor()Dim ss1 As AcadSelectionSetSet ss1 = ThisDrawing.SelectionSets.Add("set")ss1.SelectOnScreenFor Each element In ss1element.color = 1Nextss1.DeleteEnd SubPublic Sub multSelect()On Error GoTotoExitDim ss1 As AcadSelectionSetSet ss1 = ThisDrawing.SelectionSets.Add("set2")ss1.SelectOnScreenDim tt As AcadTextFor Each element In ss1Set tt = elementtt.TextString = Format(tt.InsertionPoint(0), 0) & "," & Format(tt.InsertionPoint(1), 0)Nextss1.DeletetoExit:End SubPublic Sub createSinCurve()num = 50PI = 3.1415Dim st(0 To 2) As DoubleDim et(0 To 2) As DoubleReDimpta(0 To num * 3 - 1) As DoubleDim splineObj As AcadSplineFor i = 0 Tonum - 1pta(i * 3) = i * 2 * PI / num: pta(i * 3 + 1) = Sin(pta(i * 3))NextSet splineObj = ThisDrawing.ModelSpace.AddSpline(pta, st, et)Public Sub getFixPoint()Dim pt(0 To 2) As DoubleDim spAsAcadSplineThisDrawing.Utility.GetEntitysp, p1, "选择一条曲线"For i = 0 Tosp.NumberOfFitPoints - 1pt(0) = sp.FitPoints(i * 3)pt(1) = sp.FitPoints(i * 3 + 1)pt(2) = sp.FitPoints(i * 3 + 2)Set point = ThisDrawing.ModelSpace.AddPoint(pt)point.color = 1NextEnd SubPublic Sub curveIntersections() '插一条曲线与一组曲线的交点Dim ss1 As AcadSelectionSetDim Obj2 AsAcadObjectDim pt(0 To 2) As DoubleDim ptaAs VariantOn Error GoToendfunSet ss1 = ThisDrawing.SelectionSets.Add("set3")ss1.SelectOnScreenThisDrawing.Utility.GetEntity Obj2, pt, "选择第二个实体"For Each element In ss1pta = Obj2.IntersectWith(element, acExtendNone)Count = (UBound(pta) + 1) / 3For i = 0 To Count - 1pt(0) = pta(i * 3): pt(1) = pta(i * 3 + 1)ThisDrawing.ModelSpace.AddPoint (pt)Next iNextendfun:End SubPublic Sub createlineplan()Dim ssAsAcadSelectionSetOn Error GoToendfunSet ss = ThisDrawing.SelectionSets.Add("set4")ss.SelectOnScreenlpp = 189Dim pt0(0 To 2) As DoubleDim pt1(0 To 2) As DoubleReDimpta(0 To 1000) As DoubleDim t0(0 To 2) As DoubleDim t1(0 To 2) As Doublet0(2) = -1For i = 0 To 20pt0(0) = i * lpp / 20: pt1(0) = pt0(0)pt1(1) = b / 2Set X1 = ThisDrawing.ModelSpace.AddXline(pt0, pt1)ptCount = 0For Each element Inssptx = X1.IntersectWith(element, acExtendNone)If UBound(ptx) <> 0 Thenpta(i * 3) = ptx(0): pta(i * 3 + 1) = element.lintypescale: pta(i * 3 + 2) = ptx(1) End IfptCount = ptCount + 1NextReDim Preserve pta(0 To ptCount * 3 - 1) As DoubleFor i = 0 ToptCount - 1For j = i ToptCount - 1ThisDrawing.ModelSpace.AddSplinepta, t0, t1X1.DeleteNext iendfun:End SubPublic Sub SplineToPolyline()ptNum = 100Dim spAsAcadSplineDim p0(0 To 2) As DoubleDim p1(0 To 2) As DoubleReDimpta(0 To (ptNum + 1) * 2 - 1) As DoubleThisDrawing.Utility.GetEntitysp, pt, vbCr& "选择一条样条曲线"X0 = sp.ControlPoints(0)X1 = sp.ControlPoints(3 * sp.NumberOfControlPoints - 3)For i = 0 ToptNump0(0) = X0 + (X1 - X0) / ptNum * i: p1(0) = p0(0)p1(1) = 1000Set xx = ThisDrawing.ModelSpace.AddXline(p0, p1)If UBound(ptb) > 1 Thenpta(i * 2) = p0(0): pta(i * 2 + 1) = ptb(1)End Ifxx.DeleteNextSet pl = ThisDrawing.ModelSpace.AddLightWeightPolyline(pta) pl.color = 2: sp.Visible = 0End SubPublic Sub derivative() '求导数Dim spAsAcadEntityDim rp As VariantDim p0(0 To 2) As DoubleDim p1(0 To 2) As DoubleDim p2(0 To 2) As DoubleDim p3(0 To 2) As DoubleThisDrawing.Utility.GetEntitysp, pt, "选择一条曲线"rp = ThisDrawing.Utility.GetPoint(, "选择所求导数的位置点") p0(0) = rp(0): p0(1) = rp(1)p1(0) = p0(0): p1(1) = rp(1) + 1000Set X1 = ThisDrawing.ModelSpace.AddXline(p0, p1)pta = X1.IntersectWith(sp, acExtendNone)X1.DeleteIf UBound(pta) > 1 Thenfx = pta(1)End Ifp2(0) = p0(0) + 0.01: p2(1) = p0(1)p3(0) = p2(0): p3(1) = p2(1) + 1000Set X2 = ThisDrawing.ModelSpace.AddXline(p2, p3)ptb = X2.IntersectWith(sp, acExtendNone)X2.DeleteIf UBound(ptb) > 1 Thenfxx = ptb(1)End Iff = (fxx - fx) / 0.01MsgBox fEnd SubPublic Sub drawtangent()Dim pl As AcadLWPolylineDim lnAsAcadLineDim px(0 To 2) As Doublemin = 10000#On Error GoTotoExitThisDrawing.Utility.GetEntitypl, p1, "选择一条多义线"ThisDrawing.Utility.GetEntityln, p2, "选择一条直线"x0 = ln.StartPoint(0): y0 = ln.StartPoint(1)x1 = ln.EndPoint(0): y1 = ln.EndPoint(1)k = (y1 - y0) / (x1 - x0): A = k: B = -1: C = y0 - kx0num = (UBound(pl.Coordinates) + 1) / 2For i = 0 Tonum - 1dis = (A * pl.Coordinates(i * 2) + B * pl.Coordinates(i * 2 + 1) + C) / Sqr(A * A + B * B) If dis < min Thenmin = dispt(0) = pl.Coordinates(i * 2): pt(1) = pl.Coordinates(i * 2 + 1)End IfNext ipx(0) = pt(0) + 1: px(1) = pt(1) + kSet xl = ThisDrawing.ModelSpace.AddXline(pt, px)xl.color = 3Set p = ThisDrawing.ModelSpace.AddPoint(pt)p.color = 3toExit:If Err.Description<> "" ThenMsgBoxErr.DescriptionEnd IfEnd SubPublic Sub intergralCurve()Dim pl As AcadLWPolylineReDimpta(0 To 10000 * 3 - 1) As DoubleDim t(0 To 2) As DoubleThisDrawing.Utility.GetEntitypl, "选择一条多义线"ptnum = (UBound(pl.Coordinates) + 1) / 2pta(0) = pl.Coordinates(0)For i = 1 Toptnum - 1x0 = pl.Coordinates((i - 1) * 2): x1 = pl.Coordinates(i * 2)h0 = pl.Coordinates((i - 1) * 2 + 1): h1 = pl.Coordinates(i * 2 + 1)pta(3 * i) = x0: pta(3 * i + 1) = 1 / 2 * (h0 + h1) * (x1 - x0)NextReDim Preserve pta(0 To ptnum * 3 - 1)Set sp = ThisDrawing.ModelSpace.AddSpline(pta, t, t)Public Sub hide()Dim ssAsAcadSelectionSetSet ss = ThisDrawing.SelectionSets.Add("set") ss.SelectOnScreenFor Each element Insselement.Visible = 0Nextss.DeleteEnd SubPublic Sub show()Dim ent As AcadEntityFor Each ent In ThisDrawing.ModelSpace ent.Visible = 1NextEnd SubPublic Sub showBySelectionSet() '有点问题Set ss = ThisDrawing.SelectionSets.Item("set") For Each element Insselement.Visible = 1Nextss.DeleteEnd SubPublic Sub showBycolor()Dim ent As AcadEntityFor Each ent In ThisDrawing.ModelSpaceIf ent.color = 1 Thenent.Visible = 1End IfNextEnd SubPublic Sub showhide()Dim ent As AcadEntityFor Each ent In ThisDrawing.ModelSpaceIf ent.Visible = 0 Thenent.Visible = 1ElseEnd IfNextEnd SubSub secProp()Dim AsumAs DoubleDim MsumAs DoubleDim IsumAs DoubleDim lnAsAcadLineyd = 0For Each lnInThisDrawing.ModelSpacex0 = ln.StartPoint(0): x1 = ln.EndPoint(0)y0 = ln.StartPoint(1): y1 = ln.EndPoint(1)If y0 >yd Then yd = y0If y1 >yd Then yd = y1If y0 = y1 = 0 Thenym = t / 2Elseym = 1 / 2 * (y1 + y0)End Ifl = Sqr((y1 - y0) ^ 2 + (x1 - x0) ^ 2)t = ln.LinetypeScaleA = l * tM = A * ymIf Abs(x0 - x1) < 0.00001 ThenI = 1 / 3 * t * Abs(y1 ^ 3 - y0 ^ 3)Elsek = (y1 - y0) / (x1 - x0): b = y0 - k * x0I = t * Sqr(1 + k ^ 2) * Abs((1 / 3 * k ^ 2 * x1 ^ 3 + k * b * x1 ^ 2 + b ^ 2 * x1) - (1 / 3 * k ^ 2 * x0 ^ 3 + k * b * x0 ^ 2 + b ^ 2 * x0))End IfAsum = Asum + AMsum = Msum + MIsum = Isum + INextyc = Msum / AsumIa = Isum - Asum * yc ^ 2Wb = Ia / ycWd = Ia / (yd - yc)MsgBox "A=" & Format(Asum, ".00") & " M=" & Format(Msum, ".00") & " Yc=" & Format(yc, ".00") & " I=" & Format(Ia, ".00") & " Wd=" & Format(Wd, ".00") & " Wb=" & Format(Wb, ".00")Sub OneplusCp()‘未试验,可能有错Lpp0 = 186: Lpp = 189B0 = 34: B = 35dCpf = 0.0012: dCpa = -0.0003Cpf0 = 0.76: Cpa0 = 0.54Dim p0(0 To 2) As DoubleDim p1(0 To 2) As DoubleDim pta(0 To 21 * 2 - 1) As DoubleOn Error GoTotoExitDim ssAsAcadSelectionSetSet ss = ThisDrawing.SelectionSets.Add("wl")ss.SelectOnScreenDim pl As AcadLWPolylineFor Each pl In ssFor i = 0 To 20x0 = i / 10 - 1p0(0) = (x0 + 1) * Lpp0 / 2: p1(0) = p0(0)p1(1) = 1000Set xx = ThisDrawing.ModelSpace.AddXline(p0, p1) ptx = xx.IntersectWith(pl, acExtendNone)xx.DeleteIf UBound(ptx) <> 0 Then y0 = ptx(1) / B0If x0 > 0 Thendx = dCpf / (1 - Cpf0) * (1 - x)Elsedx = -dCpa / (1 - Cpa0) * (1 + x)End Ifx1 = x0 + dx: y1 = y0 * Bpta(i * 2) = (x1 + 1) * Lpp / 2pta(i * 2 + 1) = y1ThisDrawing.ModelSpace.AddLightWeightPolyline (pta) Next iNexttoExit:If Err.Description<> "" Then MsgBox (Err.Description) End SubSub setMesh()Dim ssAsAcadSelectionSetOn Error GoTotoExitSet ss = ThisDrawing.SelectionSets.Add("sp")ss.SelectOnScreenDim spAsAcadSplineDim p0(0 To 2) As DoubleDim p1(0 To 2) As Doublem = ss.Countn = 10ReDimpmn(0 To m * n * 3 - 1) As Doublei = 0For Each spInssx0 = sp.ControlPoints(0): x1 = sp.ControlPoints(3 * sp.NumberOfControlPoints - 3)dis = (x1 - x0) / (n - 1)For j = 0 To n - 1p0(0) = x0 + dis * j: p0(1) = 0p1(0) = p0(0): p1(1) = 1000Set xxx = ThisDrawing.ModelSpace.AddXline(p0, p1)ptx = xxx.IntersectWith(sp, acExtendNone)pmn(i * n * 3 + j * 3) = ptx(0): pmn(i * n * 3 + j * 3 + 1) = ptx(1): pmn(i * n * 3 + j * 3 + 2) = sp.LinetypeScalexxx.DeleteNext ji = i + 1NextSet mesh = ThisDrawing.ModelSpace.Add3DMesh(m, n, pmn)mesh.color = acBluetoExit:If Err.Description<> "" Then MsgBox (Err.Description)End Sub。
机械工程学院《VB程序设计》大作业题目:电子日记本姓名:李景波学号:200805788班级:机械10801班指导老师:李老师日期:2010年12月14日一、选材过程1、许多人都写过日记,都有自己的日记本,我也一样,但写日记时存在种种问题,如界面不美观、、不易修改、容易被别人偷看等等,那么我就想能不能做一个电子版的日记本呢?这样就能够使界面更美观,修改起来更方便,隐私不易泄漏跟安全等等。
2、老师在上课时也建议我们做一个自己的电子日记本,可以充分利用我们书本里所学的知识,把知识转化成为实用的东西。
二、总体设计目标1、友好的操作界面;2、可以实现身份验证;3、日记隐私的安全性;4、熟悉运用和掌握所学的VB知识。
三、总体设计结构一、设计结构图2、功能介绍(1)、账号注册:通过对输入两Textbox内账号和密码的属性,如长度、数据类型等的设置,并把输入的账号写入磁盘上的文本上,把输入的密码加密后保存在同一文本内,实现记忆功能。
(2)、用户登陆:通过把用户输入的账号和密码与注册时的账号和密码进行配对校验,对用户的身份进行确认,只要身份正确才能进入。
(3)、登陆后,用户可以在当前界面的文本框内写日记,保存日记,浏览日记,以及对日记文本的属性进行更改,使界面友好。
四、设计结果五、设计总结1、心得体会:通过做这个大作业,自动动手编写程序,使我对课本上的知识有了一个更深层次的了解,使我对VB面向对象编程有了一个比较全面的了解,大大的吸引了我学习语言的兴趣。
在设计过程中,我养成了仔细检查程序的好习惯,学会了如何一步步去调试程序,找出错误并加以改正。
2、遇到的问题:例如在编写对文本内容加密过程中,按照课本上老师所讲的方法,并不能实现对所有的汉字进行正确的加密解密,遇到问题后,我去图书馆查找相关资料,在网上查看相关加密算法,最终找到了解决问题的方法,可以实现对基本上所有的汉子及其他字符的加密加密。
另外,还有如何通过磁盘文件实现窗体直接相互传值引用等等,最终都在查阅资料以及同学的帮助下顺利解决了。
VB数学型大作业题目下面题目中任选两个完成。
1.歌星大奖赛在歌星大奖赛中,有10个评委为参赛的选手打分,分数为1~100分。
选手最后得分为:去掉一个最高分和一个最低分后其余8个分数的平均值。
请编写一个程序实现。
算法提示:这个问题的算法十分简单,但是要注意在程序中判断最大、最小值的变量是如何赋值的。
2.求最大数问555555的约数中最大的三位数是多少?算法提示:根据约数的定义,对于一个整数N,除去1和它自身外,凡能整除N的数即为N的约数。
因此,最简单的方法是用2到N-1之间的所有数去除N,即可求出N的全部约数。
本题只要求取约数中最大的三位数,则其取值范围可限制在100到999之间。
3.高次方数的尾数求13的13次方的最后三位数算法提示:解本题最直接的方法是:将13累乘13次方截取最后三位即可。
但是由于计算机所能表示的整数范围有限,用这种“正确”的算法不可能得到正确的结果。
事实上,题目仅要求最后三位的值,完全没有必要求13的13次方的完整结果。
研究乘法的规律发现:乘积的最后三位的值只与乘数和被乘数的后三位有关,与乘数和被乘数的高位无关。
利用这一规律,可以大大简化程序。
4.杨辉三角形在屏幕上显示杨辉三角形11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 1......................................算法提示:杨辉三角形中的数,正是(x+y)的N次方幂展开式各项的系数。
本题作为程序设计中具有代表性的题目,求解的方法很多,这里仅给出一种。
从杨辉三角形的特点出发,可以总结出:1)第N行有N+1个值(设起始行为第0行)2)对于第N行的第J个值:(N>=2)当J=1或J=N+1时:其值为1J!=1且J!=N+1时:其值为第N-1行的第J-1个值与第N-1行第J个值之和本程序应是根据以上递归的数学表达式编制的。
5.该存多少钱假设银行一年整存零取的月息为0.63%。
信息系统开发技术大作业( 2012 – 2013 学年第一学期)学院:专业:姓名:学号:程序设计(一)系统窗体设计一、设计要求熟悉信息系统开发基本过程,掌握窗体布局及调用设计,掌握系统界面和菜单设计方法,掌握系统功能设计及事件驱动等程序设计方法。
二、设计内容参照教科书第六章的6.1、6.2、6.3节进行如下设计:1.系统启动窗体设计2.系统主界面窗体设计3.界面窗体间连接代码设计三、程序源代码1.启动窗体界面代码设计Private Sub Image2_Click()Form2.ShowEnd SubPrivate Sub Image3_Click()EndEnd Sub2.栅栏数据域初始状态代码设计Private Sub Form_Load()Grid1.Row = 0For i = 1 To 49Grid1.Col = iGrid1.Text = " C"+Str(i)Next iGrid1.Col = 0For i = 1 To 999Grid1.Row = iGrid1.Text = " "+Str(i)Next iGrid1.Row = 0Grid1.Col = 0Grid1.Text ="数据域"Grid1.Row = 1Grid1.Col = 1End Sub四、程序运行结果程序设计(二)打开文件功能设计一、设计要求了解文件操作的基本功能,掌握应用FlexGrid控件和给定数据文件的文件调用编程方法, 了解数据转换的数学计算和调用设计方法。
二、设计内容参照教科书第六章的6.4节进行文件调用程序设计。
三、程序源代码Private Sub wjopen_Click()CommonDialog1.Filter = "All Files(*.Dat)|*.Dat"CommonDialog1.FilterIndex = 2CommonDialog1.ShowOpenFilenum = FreeFileMousePointer = 11 FontSize = 7.6Grid1.Row = 0 Grid1.Col = 1 Grid1.Text = "Kuh-Nr."Grid1.Col = 2 Grid1.Text = "Datum"Grid1.Col = 3 Grid1.Text = "Stunde"Grid1.Col = 4 Grid1.Text = "Minute"Grid1.Col = 5 Grid1.Text = "Schri.Stand"Grid1.Col = 6 Grid1.Text = "Schr.M.Wert"Grid1.Col = 7 Grid1.Text = "Schr.A.Wert"Grid1.Col = 8 Grid1.Text = "Milchmenge"Grid1.Col = 9 Grid1.Text = "M.Leitwert"Grid1.Col = 10 Grid1.Text = "M.A.24H.Le."Grid1.Col = 11 Grid1.Text = "K.F.Ration"Grid1.Col = 12 Grid1.Text = "K.F.Rest"Static ww(1 To 9999) As SingleDim nnn As Integer,k As IntegerFileName = CommonDialog1.FileNameOpen FileName For Input As #Filenumi = 1 Do Until EOF(Filenum)Input #Filenum,ww(i)i = i + 1Loopnnn = I mmm = nnn / 12k = 1For i = 1 To mmm For j = 1 To 12Grid1.Row = I Grid1.Col = j Grid1.Text = ww(k) k = k + 1Next j Next iMousePointer = 0End Sub四、程序运行结果程序设计(三)数据分析程序设计和用户错误操作处理方法一、设计要求了解数据分析的一般方法和编程思想,掌握拥护错误操作的处理方法。
二、设计内容参照教科书第六章的6.4 -6.8节进行如下设计:1.打开文件功能设计2.活动量数据分析程序设计3.出错处理方法三、程序源代码If MsgBox("程序运行所需数据文件没有打开!", 0 + 16, "SWYS für Windows") = 1 Then Exit Sub四、程序运行结果程序设计(四)产奶量数据分析程序设计一、设计要求了解数据分析的一般方法和编程思想,掌握数据输出的的屏幕设计方法。
二、设计内容参照教科书第六章的6.7节进行如下设计:1.数据分析的数学方法2.产奶量数据分析程序设计三、程序源代码Private Sub nalfm_Click()ClsGrid1.Col = 1 Grid1.Row = 1If Grid1.Text = "" ThenIf MsgBox("程序运行所需数据文件没有打开!",0 + 16,"SWYS für Windows") = 1 Then Exit SubEnd IfMousePointer = 11Scale (-20,30)-(250,-60)Line (0,0)-(230,0) Line (0,0)-(0,20)For i = 5 To 230 Step 5Line (i,0)-(i,0.4)Next iDrawWidth = 2 FontSize = 9For i = 10 To 230 Step 10Line (i,0)-(i,0.4),QBColor(4)Next iFor i = 10 To 90 Step 10CurrentX = i-3 CurrentY = -0.5Print I Next iFor i = 100 To 230 Step 10CurrentX = i-4 CurrentY = -0.5Print I Next iDrawWidth = 1For i = 1 To 19Line (0,i)-(-0.6,i)Next I DrawWidth = 2For i = 5 To 20 Step 5Line (0,i)-(-0.5,i),QBColor(4)Next iFor i = 0 To 20 Step 5CurrentX = -8 CurrentY = i+0.9Print Format$(i/10,"0.0")Next ICurrentX = 1 CurrentY = 20.7 Print "KG/Stunde"CurrentX = 220 CurrentY = 3 Print "Daten"CurrentX = 62 CurrentY = -18.5 Print "kg/St."CurrentX = -1 CurrentY = -3FontSize = 13Print "StundenmilchLeistung am Melken morgens und abends bei Oestrus verschiedener Kuehen"ForeColor = QBColor(0) FontSize = 7.6Static mstm(1 To 400) As SingleStatic msta(1 To 400) As SingleDim nn As Integer Dim ss As Singlenn = mmm/2-1Grid1.Col = 8For i = 1 To nnGrid1.Row = 2*i-1mstm(i) = Grid1.TextGrid1.Row = 2*imsta(i) = Grid1.TextNext iDrawWidth = 2DoEventsFor i = 1 To nn-1Line(i,mstm(i))-(i+1,mstm(i+1)),QBColor(0)Line(i,msta(i))-(i+1,msta(i+1)),QBColor(12)Next iDrawWidth = 1Static sma(1 To 10) As SingleStatic smm(1 To 10) As SingleFor i = 1 To nnIf mstm(i)>=0 And mstm(i)<0.2 Then smm(1)=smm(1)+1 If mstm(i)>=0.2 And mstm(i)<0.4 Then smm(2)=smm(2)+1 If mstm(i)>=0.4 And mstm(i)<0.6 Then smm(3)=smm(3)+1 If mstm(i)>=0.6 And mstm(i)<0.8 Then smm(4)=smm(4)+1 If mstm(i)>=0.8 And mstm(i)<1# Then smm(5)=smm(5)+1 If mstm(i)>=1# And mstm(i)<1.2 Then smm(6)=smm(6)+1 If mstm(i)>=1.2 And mstm(i)<1.4 Then smm(7)=smm(7)+1 If mstm(i)>=1.4 And mstm(i)<1.6 Then smm(8)=smm(8)+1 If mstm(i)>=1.6 And mstm(i)<1.8 Then smm(9)=smm(9)+1 If mstm(i)>=1.8 Then smm(10)=smm(10)+1Next iFor i = 1 To nnIf msta(i)>=0 And msta(i)<0.2 Then sma(1)=sma(1)+1If msta(i)>=0.2 And msta(i)<0.4 Then sma(2)=sma(2)+1If msta(i)>=0.4 And msta(i)<0.6 Then sma(3)=sma(3)+1If msta(i)>=0.6 And msta(i)<0.8 Then sma(4)=sma(4)+1If msta(i)>=0.8 And msta(i)<1# Then sma(5)=sma(5)+1If msta(i)>=1# And msta(i)<1.2 Then sma(6)=sma(6)+1If msta(i)>=1.2 And msta(i)<1.4 Then sma(7)=sma(7)+1If msta(i)>=1.4 And msta(i)<1.6 Then sma(8)=sma(8)+1If msta(i)>=1.6 And msta(i)<1.8 Then sma(9)=sma(9)+1If msta(i)>=1.8 Then sma(10)=sma(10)+1Next I Dim max As SingleStatic smmr(1 To 10) As Single Static smar(1 To 10) As Single For i = 1 To 10 smmr(i) = smm(i)/nnNext I max = 0For i = 1 To 10if smm(i) > max Then max = smm(i)End IfNext I For i = 1 To 10smm(i) = smm(i)/maxNext I For i = 1 To 10smar(i) = sma(i)/nnNext I max = 0For i = 1 To 10If sma(i) > max Then max = sma(i)End IfNext I For i = 1 To 10sma(i) = sma(i)/maxNext iLine (0,-20)-(60,-20)Line (0,-20)-(0,-10)For i = -19 To -11Line (0,i)-(-0.8,i)Next iFor i = -19 To -11Line (130,i)-(129.2,i)Next I DrawWidth = 2Line (0,-15)-(-0.8,-15),QBColor(4)Line (0,-10)-(-0.8,-10),QBColor(4)DrawWidth = 1Line (130,-20)-(190,-20)Line (130,-20)-(130,-10)DrawWidth = 2Line (130,-15)-(129.2,-15),QBColor(4)Line (130,-10)-(129.2,-10),QBColor(4)DrawWidth = 1For i = 136 To 190 Step 6Line (i,-20)-(i,-20.3),QBColor(4)Next iCurrentX = 134 CurrentY = -20.5 Print "0.2"CurrentX = 146.3 CurrentY = -20.5 Print "0.6"CurrentX = 157.7 CurrentY = -20.5 Print "1.0"CurrentX = 169.7 CurrentY = -20.5 Print "1.4"CurrentX = 181.7 CurrentY = -20.5 Print "1.8"CurrentX = 188.5 CurrentY = -20.5 Print "2.0"CurrentX = 126.2 CurrentY = -18.5 Print "0"CurrentX = 122 CurrentY = -14.3 Print "25"CurrentX = 122 CurrentY = -9.2 Print "50"CurrentX = 132 CurrentY = -9.2 Print "%"CurrentX = 192 CurrentY = -18.5FontSize = 9 Print "kg/St."CurrentX = 130 CurrentY = -24FontSize = 10 Print "Milchleistung pro Stunde bei Oestrus" CurrentX = 130 CurrentY = -26Print "verschiedener Kuehe am Abendgemelk"FontSize = 7.6 ForeColor = QBColor(0)CurrentX = -6 CurrentY = -19.2 Print "0"CurrentX = -8 CurrentY = -9.2 Print "50"CurrentX = 2 CurrentY = -9.2 Print "%"CurrentX = -8 CurrentY = -14.2 Print "25"For i = 2 To 11Line (-6+i*6,-20)-(-6+i*6,-20.3),QBColor(4)Next iCurrentY = -20.5 CurrentX = 4 Print "0.2"CurrentY = -20.5 CurrentX = 16 Print "0.6"CurrentX = 28 CurrentY = -20.5 Print "1.0"CurrentX = 40 CurrentY = -20.5 Print "1.4"CurrentX = 52 CurrentY = -20.5 Print "1.8"CurrentX = 58 CurrentY = -20.5 Print "2.0"For i = 1 To 10Line (-5.5+i*6,-20+smmr(i)*20)-(-6+(i+1)*6,-19.8),QBColor(i+2),BF Next I For i = 1 To 10CurrentX = 85 CurrentY = -5-i*1.7Print Format$(smmr(i),"0.00%")Next iFor i = 1 To 10Line (124.5+i*6,-20+smar(i)*20)-(124+(i+1)*6,-19.8),QBColor(i+3),BF Next I For i = 1 To 10CurrentX = 215 CurrentY = -5-i*1.7Print Format$(smar(i),"0.00%")Next iCurrentX = 198 CurrentY = -6.8 Print "(0~0.2)"CurrentX = 198 CurrentY = -13.5 Print "(0.8~1)"CurrentX = 198 CurrentY = -21.9 Print "(1.8~2)"CurrentX = 68 CurrentY = -6.8 Print "(0~0.2)"CurrentX = 68 CurrentY = -13.5 Print "(0.8~1)"CurrentX = 68 CurrentY = -21.9 Print "(1.8~2)"CurrentX = 0 CurrentY = -24FontSize = 10 'ForeColor = QBColor(8)Print "Milchleistung pro Stunde bei Oestrus"CurrentX = 0 CurrentY = -26Print "verschiedener Kuehe am Morgengemelk"FontSize = 9 ForeColor = QBColor(0)MousePointer = 0End Sub四、程序运行结果程序设计(五) 曲线图形程序设计一、设计要求掌握屏幕大小的定制和坐标系的刻画,掌握点、线、坐标、刻度等相互之间的关联性和协调性,掌握曲线的屏幕输出的程序设计方法。