沈阳航空航天大学课程设计
学号2009040603045
班级94060302
姓名崔建国
指导教师刘学平
2011年7 月 6 日
沈阳航空航天大学
课程设计任务书
学院:机电工程学院专业:车辆工程班级:94060302 学号:2009040603045 题目:矩阵的乘法运算
一、课程设计时间
2011年6月27日~7月1日(第17周),共计1周。
二、课程设计内容
在“file05_矩阵相乘.txt”文件中存放了两个矩阵,请读取这两个矩阵进行乘法运算,并显示结果矩阵。
三、课程设计要求
程序质量:
?贯彻事件驱动的程序设计思想。
?用户界面友好,功能明确,操作方便;可以加以其它功能或修饰。
?用户界面中的菜单至少应包括“读取矩阵”、“开始计算”、“显示结果”、“退
出”4项。
?代码应适当缩进,并给出必要的注释,以增强程序的可读性。
课程设计说明书:
?课程结束后,上交课程设计说明书和源程序。课程设计说明书的内容参见提
供的模板。
四、指导教师和学生签字
指导教师:刘学平学生签名:崔建国
五、成绩
六、教师评语
目录
一、需求分析 (4)
二、设计分析 (4)
三、关键技术 (6)
四、总结 (10)
五、完整的源程序 (11)
六、参考文献 (13)
一、需求分析
矩阵乘法运算是通过读取文本文件的资料,将两个矩阵进
行乘法运算,并显示结果。要求:
①学生会编程读取文本文会运open
②会运用Do while loop 的循环语句
③懂得矩阵运算的法则.
二、设计分析
(1) 基本原理:运用打开顺序文件
open 文件名For Input/ output/ As # 文件号,
在文本文件中读取数据矩阵相乘采用二维数组For 循环
结构。矩阵相乘是将每个数字赋予一个字符,然后把字符
用公式写出来,进而进行计算,将得出的结果按矩阵的形
式打印在窗体上。
(2) 总体设计:
(3)详细设计:
显示文本文件
Option
Base 1 Do
读取数据
计算
显示结果
退出
(4)界面设置:
界面设置一定要美观得体,如果窗体比较多,就会显得比较乱,要便于操作与观察以便很快理解。
关键技术
1建立读取文本文件的连接代码如下
Option Base 1
Private Type Mytype
a As String '声明变量属性
b As String
c As String
d As Integer
e As Integer
f As Integer
g As Integer
End Type
Dim rows() As MyType
Private Sub Command1_Click()
(二)打开顺序文件
open 文件名For Input/ output/ As # 文件号
Dim i As Integer, pos As Integer
i = 1
Open "c:\file05_矩阵相乘.txt" For Input As #1
Do While i = 1
ReDim Preserve rows(i) '动态数组定义列
Input #1, rows(i).a
i = i + 1
Loop
Do While i < 4 And i > 1 用Do While Loop形式
Do 【Whil 条件表达式】
语句块(循环体)
Loop
ReDim Preserve rows(i) '
Input #1, rows(i).a, rows(i).b, rows(i).c
i = i + 1
Loop
Do While i = 4
ReDim Preserve rows(i)
Input #1, rows(i).a
i = i + 1
Loop
Do While i < 8 And i > 4
ReDim Preserve rows(i)
Input #1, rows(i).a, rows(i).b
i = i + 1
Loop
(三)关闭文件Clos [ [#] 文件号]
Close #1
For i = 2 To 3
Picture1.Print rows(i).a; Tab(4); rows(i).b; Tab(8); rows(i).c
Next i
For i = 5 To 7
Picture2.Print rows(i).a; Tab(4); rows(i).b
Next i
End Sub
Private Sub Command2_Click()
Picture4.Print rows(2).a; "×"; rows(5).a; "+"; rows(2).b; "×"; rows(6).a; "+"; rows(2).c; "×"; rows(7).a; "="
Picture4.Print rows(2).a; "×"; rows(5).b; "+"; rows(2).b; "×"; rows(6).b; "+"; rows(2).c; "×"; rows(7).b; "="
Picture4.Print rows(3).a; "-"; rows(5).a; "+"; rows(3).b; "×"; rows(6).a; "+"; rows(3).c; "×"; rows(7).a; "="
Picture4.Print rows(3).a; "×"; rows(5).b; "+"; rows(3).b; "×"; rows(6).b; "+"; rows(3).c; "×"; rows(7).b; "="
End
Sub
由于相乘的两个矩阵分别是2*3和3*2的矩阵,所以结果矩阵是2*2的方阵,所以在开始部分设了四个整型变量,并对它们分别设置了方程,并显示在窗体中,如下:
Private Sub Command3_Click()
d = rows(2).a * rows(5).a + rows(2).b * rows(6).a + rows(2).c * rows(7).a
e = rows(2).a * rows(5).b + rows(2).b * rows(6).b + rows(2).c * rows(7).b
f = rows(3).a * rows(5).a + rows(3).b * rows(6).a + rows(3).c * rows(7).a
g = rows(3).a * rows(5).b + rows(3).b * rows(6).b + rows(3).c * rows(7).b Print
Picture3.Print d; e
Picture3.Print f; g
End Sub
Private Sub Command4_Click()
End
End Sub
总结
这次课设我的题目是矩阵乘法运算,通过这次课设让我了解了怎样读取文本文件的数据来进行运用,文件的调用和矩阵乘法运算法则,也同时了解了二维数组,可以应用赋值并循环运算,还可以应用读/写数据文件向其中添加新的信息。
在课设过程中,我遇到了很多困难,通过自己查阅资料,我克服了困难,顺利的完成了任务。
同时我也了解了VB它在生活中各个方面都能发挥巨大的作用,所以,学好VB不仅是为了自身的发展,更是为了社会科技的快速发展做出我们应尽的义务。所以,学好VB是社会发展的需要。
五、完整的源程序
Option Base 1
Private Type MyType
a As String
b As String
c As String
d As Integer
e As Integer
f As Integer
g As Integer
End Type
Dim rows() As MyType
Private Sub Command1_Click()
Dim i As Integer, pos As Integer
i = 1
Open "C:\file05_矩阵相乘.txt" For Input As #1
Do While i = 1
ReDim Preserve rows(i) '
Input #1, rows(i).a
i = i + 1
Loop
Do While i < 4 And i > 1
ReDim Preserve rows(i) '
Input #1, rows(i).a, rows(i).b, rows(i).c
i = i + 1
Loop
Do While i = 4
ReDim Preserve rows(i)
Input #1, rows(i).a
i = i + 1
Loop
Do While i < 8 And i > 4
ReDim Preserve rows(i)
Input #1, rows(i).a, rows(i).b
i = i + 1
Loop
Close #1
For i = 2 To 3
Picture1.Print rows(i).a; Tab(4); rows(i).b; Tab(8); rows(i).c
Next i
For i = 5 To 7
Picture2.Print rows(i).a; Tab(4); rows(i).b
Next i
End Sub
Private Sub Command2_Click()
Picture4.Print rows(2).a; "×"; rows(5).a; "+"; rows(2).b; "×"; rows(6).a; "+"; rows(2).c; "×"; rows(7).a; "="
Picture4.Print rows(2).a; "×"; rows(5).b; "+"; rows(2).b; "×"; rows(6).b; "+"; rows(2).c; "×"; rows(7).b; "="
Picture4.Print rows(3).a; "-"; rows(5).a; "+"; rows(3).b; "×"; rows(6).a; "+"; rows(3).c; "×"; rows(7).a; "="
Picture4.Print rows(3).a; "×"; rows(5).b; "+"; rows(3).b; "×"; rows(6).b; "+"; rows(3).c; "×"; rows(7).b; "="
End Sub
Private Sub Command3_Click()
d = rows(2).a * rows(5).a + rows(2).b * rows(6).a + rows(2).c * rows(7).a
e = rows(2).a * rows(5).b + rows(2).b * rows(6).b + rows(2).c * rows(7).b
f = rows(3).a * rows(5).a + rows(3).b * rows(6).a + rows(3).c * rows(7).a
g = rows(3).a * rows(5).b + rows(3).b * rows(6).b + rows(3).c * rows(7).b
Picture3.Print d; e
Picture3.Print f; g
End Sub
Private Sub Command4_Click()
End
End Sub
六、参考文献
[1] 刘瑞新.《Visual Basic程序设计教程》.北京:机械工业出版社,2003
[2] 王栋《Visual Basic程序设计使用教程》第三版北京清华大学出版社2007年2月
[3] 龚沛曾杨志强陆慰民.《Visual Basic程序设计教程》.北京:高等教育
出版社,2007
[4] 王学军张玉梅.《Visual Basic程序设计》.北京:中国铁道出版社,2010