




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、摘要VisualBasic 6.0 是一款可视化的,面向对象和采用事件驱动方式的结构化高级程序设计语言,可用于开发windows 环境下的种类应用程序。它简单易学,效率高,且功能强大,可以与Windows专业开发工具相媲美。在VisualBasic环境下,利用事出有因件驱动的编程机制,新颖易用的可视化工具,使用Windows内部的广泛应用程序接口(API)函数,运用动态链接库(DLL),对象的链接与嵌入(OLE),开放式数据连接(ODBC)等技术,可以高效,可以快速地开发Windows环境不功能强大,图形界面丰富的程序。为了适应信息化时代的需求,各高校对大多数专业都开设了一定的计算机语言课程,
2、有的讲授VisualBasic语言。VisualBasic以其语法简单,可视化设计,功能强大,为许多学校计算机语言课程的首选语言。目前国内各出版了大量的VisualBasic语言教程,它们都具有同样的特点:介绍语言的语法等基本知识,再辅助一些简单的示例。学生通过学习,可能能够考一个不错的成绩,但所掌握的仍然是一些支离破碎的知识,不能将所有的知识融会贯通,遇到具体的程序设计,还是无从下手。这次我要做的是计算器,通过这样程序设计,我们可以学到好多关于VB语言的使方法,熟悉VisualBasic 6.0的运行环境,快速掌握VB语言!小小的计算器是我们学VB初级语言的最好课程。1 / 44目录一 功能
3、描述31功能32. 实验目的3二 概要设计41.界面设计42.程序运行5三 设计结果6四 程序源代码7五 设计总结40六 参考文献41一 功能描述1功能可以简单进行简单的坦克大战游戏,从而实现坦克战争的模拟。2.实验目的这次我要做的是坦克大战小游戏,通过这样程序设计,我们可以学到好多关于VB语言的使方法,熟悉VisualBasic 6.0的运行环境,快速掌握VB语言! 二 概要设计1.界面设计2.程序运行:三、设计结果生成可执行程序运行结果四、程序源代码:Dim CChange As BooleanDim OldX As LongDim OldY As LongDim WwW As LongD
4、im WwW2 As LongDim HP1 As LongDim HP2 As LongPrivate Declare Function sndPlaySound Lib winmm Alias sndPlaySoundA (ByVal lpszSoundName As String, ByVal uFlags As Long) As LongPrivate Const SND_ASYNC = &H1Private Declare Function GetAsyncKeyState Lib user32 (ByVal vKey As Long) As IntegerDim L(99999)
5、As erfDim L2(99999) As erfDim W(9999) As erf2Dim w2(9999) As erf2Dim P(9999) As erf2Dim P2(9999) As erf2Private Type Pos X As Integer Y As IntegerEnd TypePrivate Type erf Y As Integer Color As LongEnd TypePrivate Type erf2 Grow As Integer Damage As Integer X As Integer Y As Integer OldX As Integer O
6、ldY As Integer XF As Integer YF As Integer Color As Long type As Long tag As Long active As Boolean Size As Long Life As Integer Grav As IntegerEnd TypeDim Movement As IntegerDim Turn As BooleanPrivate Sub Command1_Click()Turn = TrueEnd SubPrivate Sub Form_Load()Dim Temp As IntegerPicks which layout
7、 Temp = MsgBox(Grass - Dirt - Mars, vbYesNoCancel, ?) If Temp = 7 Then Me.BackColor = RGB(40, 40, 40) End If If Temp = 2 Then Me.BackColor = RGB(100, 0, 0) End If Sets defaultsMovement = 50HP1 = 100HP2 = 100Me.Height = Screen.HeightMe.Width = Screen.WidthTurn = TrueMe.ClsMe.Picture = NothingMe.Refre
8、shMe.AutoRedraw = TrueSets wheel positionsFor i = 0 To 3 W(i).XF = 0 W(i).YF = 0 W(i).X = i * 10 + 100 W(i).Y = 2 W(i).Color = RGB(125, 125, 125) w2(i).XF = 0 w2(i).YF = 0 w2(i).X = i * 10 + Me.ScaleWidth - 200 w2(i).Y = 2 w2(i).Color = RGB(125, 125, 125)NextL(0).Y = Me.ScaleHeight / 4 * 3RandomizeM
9、e.Caption = Temp (DEBUG)Sets up groundFor i = 1 To Me.Width If Temp = 6 Then L(i).Y = L(i - 1).Y + Int(Rnd * 4) - Int(Rnd * 4) L(i).Color = RGB(0, 160 + Int(Rnd * 25), 0) Else If Temp = 7 Then L(i).Y = L(i - 1).Y + Int(Rnd * 6) - Int(Rnd * 6) L(i).Color = RGB(30 + Int(Rnd * 25) - Int(Rnd * 25), 30 +
10、 Int(Rnd * 25) - Int(Rnd * 25), 0) Else If Temp = 2 Then L(i).Y = L(i - 1).Y + Int(Rnd * 8) - Int(Rnd * 8) L(i).Color = RGB(160 + Int(Rnd * 25), 0, 0) End If End If End IfNextFor i = 0 To 10 If Temp = 6 Then ff = Int(Rnd * Screen.Width) Boom Int(ff), 0, 10, 15, 0, 0, 1 End If If Temp = 7 Then ff = I
11、nt(Rnd * Screen.Width) Boom Int(ff), 0, 20, 20, 0, 0, 1End If If Temp = 2 Then ff = Int(Rnd * Screen.Width) Boom Int(ff), 0, 30, 30, 0, 0, 1 ff = Int(Rnd * Screen.Width) Boom Int(ff), 0, 30, 30, 0, 0, 1 End IfNextFor i = 2 To Me.Width - 8 Step 1 L(i).Y = (L(i - 1).Y + L(i).Y + L(i + 1).Y + L(i - 2).
12、Y + L(i + 2).Y) / 5NextMe.AutoRedraw = TrueFor i = 2 To Me.Width Me.DrawWidth = 3 Me.Line (i - 2, L(i).Y)-(i - 2, Me.ScaleHeight), L(i).ColorNext Me.Refresh Me.AutoRedraw = False Timer1.Enabled = TrueEnd SubPrivate Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Mov
13、ement = 50 Turn = Not Turn If Turn = True Then Shape1.Visible = True Else Shape2.Visible = True End IfLine1.Visible = TruelblStrength.Visible = TrueOldX = W(0).X xOldY = W(0).Y yIf Turn = True Then Line1.X1 = W(0).X + 20 Line1.Y1 = W(0).Y - 30Else Line1.X1 = w2(0).X + 20 Line1.Y1 = w2(0).Y - 30End I
14、fLine1.X2 = XLine1.Y2 = YIf Turn = True Then Shape1.Left = Line1.X2 - Shape1.Width / 2 Shape1.Top = Line1.Y2 - Shape1.Height / 2Else Shape2.Left = Line1.X2 - Shape1.Width / 2 Shape2.Top = Line1.Y2 - Shape1.Height / 2End IfDim Pos1 As PosDim Pos2 As PosPos1.X = Line1.X2Pos2.X = Line1.X1Pos1.Y = Line1
15、.Y2Pos2.Y = Line1.Y1lblStrength.Move Shape1.Left, Shape1.Top - lblStrength.HeightlblStrength.Caption = Strength: & (Abs(Line1.X1 - Line1.X2) + Abs(Line1.Y1 - Line1.Y2) / 2 & | Angle & GetAngle(Pos1, Pos2)End SubPrivate Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
16、If Button 0 Then Line1.X2 = X Line1.Y2 = YIf 1 = 1 Then (Abs(Line1.X1 - Line1.X2) + Abs(Line1.Y1 - Line1.Y2) / 2) 0 ThenTypeR = 2Label2(z).Caption = Label2(z).Caption - 1ElseOption1.Value = TrueEnd IfEnd IfIf Option3.Value = True ThenIf Label3(z).Caption 0 ThenTypeR = 3Label3(z).Caption = Label3(z).
17、Caption - 1ElseOption1.Value = TrueEnd IfEnd IfIf Option4.Value = True ThenIf Label4(z).Caption 0 ThenTypeR = 4Label4(z).Caption = Label4(z).Caption - 1ElseOption1.Value = TrueEnd IfEnd IfIf Option5.Value = True ThenIf Label5(z).Caption 0 ThenTypeR = 5Label5(z).Caption = Label5(z).Caption - 1ElseOpt
18、ion1.Value = TrueEnd IfEnd IfIf Option6.Value = True ThenIf Label6(z).Caption 0 ThenTypeR = 6Label6(z).Caption = Label6(z).Caption - 1ElseOption1.Value = TrueEnd IfEnd IfTurn = FalseWwW = 6If Turn = True ThenNewMissle W(0).X + 20, W(0).Y - 10, vbRed, TypeR, (Line1.X2 - Line1.X1) / 10, (Line1.Y2 - Li
19、ne1.Y1) / 10If TypeR = 4 ThenNewMissle W(0).X + 20, W(0).Y - 10, vbRed, TypeR, (Line1.X2 - Line1.X1) / 10 + Int(Rnd * 10) - Int(Rnd * 10), (Line1.Y2 - Line1.Y1) / 10 + Int(Rnd * 10) - Int(Rnd * 10)NewMissle W(0).X + 20, W(0).Y - 10, vbRed, TypeR, (Line1.X2 - Line1.X1) / 10 + Int(Rnd * 10) - Int(Rnd
20、* 10), (Line1.Y2 - Line1.Y1) / 10 + Int(Rnd * 10) - Int(Rnd * 10)NewMissle W(0).X + 20, W(0).Y - 10, vbRed, TypeR, (Line1.X2 - Line1.X1) / 10 + Int(Rnd * 10) - Int(Rnd * 10), (Line1.Y2 - Line1.Y1) / 10 + Int(Rnd * 10) - Int(Rnd * 10)NewMissle W(0).X + 20, W(0).Y - 10, vbRed, TypeR, (Line1.X2 - Line1
21、.X1) / 10 + Int(Rnd * 10) - Int(Rnd * 10), (Line1.Y2 - Line1.Y1) / 10 + Int(Rnd * 10) - Int(Rnd * 10)End IfElseNewMissle w2(0).X + 20, w2(0).Y - 10, vbRed, TypeR, (Line1.X2 - Line1.X1) / 10, (Line1.Y2 - Line1.Y1) / 10If TypeR = 4 ThenNewMissle w2(0).X + 20, w2(0).Y - 10, vbRed, TypeR, (Line1.X2 - Li
22、ne1.X1) / 10 + Int(Rnd * 10) - Int(Rnd * 10), (Line1.Y2 - Line1.Y1) / 10 + Int(Rnd * 10) - Int(Rnd * 10)NewMissle w2(0).X + 20, w2(0).Y - 10, vbRed, TypeR, (Line1.X2 - Line1.X1) / 10 + Int(Rnd * 10) - Int(Rnd * 10), (Line1.Y2 - Line1.Y1) / 10 + Int(Rnd * 10) - Int(Rnd * 10)NewMissle w2(0).X + 20, w2
23、(0).Y - 10, vbRed, TypeR, (Line1.X2 - Line1.X1) / 10 + Int(Rnd * 10) - Int(Rnd * 10), (Line1.Y2 - Line1.Y1) / 10 + Int(Rnd * 10) - Int(Rnd * 10)NewMissle w2(0).X + 20, w2(0).Y - 10, vbRed, TypeR, (Line1.X2 - Line1.X1) / 10 + Int(Rnd * 10) - Int(Rnd * 10), (Line1.Y2 - Line1.Y1) / 10 + Int(Rnd * 10) -
24、 Int(Rnd * 10)End IfEnd IfEnd SubPrivate Sub Boom(X As Integer, Y As Integer, Size As Integer, dig As Integer, Dam As Integer, Optional Invert As Integer, Optional NoDraw As Integer)If X w2(0).X And X - Size / 2 W(0).X And X - Size / 2 W(3).X ThenHP1 = HP1 - DamCall sndPlaySound(ByVal App.Path & /hi
25、t.wav, SND_ASYNC)End IfMe.DrawWidth = 1For i = 0 To Screen.WidthL2(i).Y = L(i).YNextFor i = 0 To SizeIf Invert = 1 ThenL(X + i).Y = L(X + i).Y - digElseL(X + i).Y = L(X + i).Y + dig - iEnd IfNextFor i = 1 To SizeIf Invert = 1 ThenL(X - i).Y = L(X - i).Y - digElseL(X - i).Y = L(X - i).Y + dig - iEnd
26、IfNextMe.AutoRedraw = FalseMe.ClsMe.Picture = NothingMe.RefreshMe.AutoRedraw = TrueIf NoDraw 1 ThenFor i = 2 To Me.Width Step 1If L2(i).Y L(i).Y ThenL2(i).Y = (L2(i - 1).Y + L2(i).Y + L2(i + 1).Y + L2(i - 2).Y + L2(i + 2).Y) / 5Me.Line (i - 2, 0)-(i - 2, Me.ScaleHeight), Me.BackColorMe.Line (i - 2,
27、L(i).Y)-(i - 2, Me.ScaleHeight), L(i).ColorEnd IfNextEnd IfMe.AutoRedraw = FalseEnd SubPrivate Sub NewPart(Sizee As Integer, X As Integer, Y As Integer, OX As Integer, OY As Integer, Grow As Integer, Color As Long, XF As Long, YF As Long, Life As Integer, Grav As Integer)For i = 0 To 900If P2(i).act
28、ive = False ThenP2(i).active = TrueP2(i).Size = SizeeP2(i).X = XP2(i).Y = YP2(i).XF = XFP2(i).YF = YFP2(i).OldX = OXP2(i).OldY = OYP2(i).Grow = GrowP2(i).Color = ColorP2(i).Life = LifeP2(i).Grav = GravExit ForEnd IfNextEnd SubPrivate Sub Timer1_Timer()If HP1 0 ThenMsgBox Player 2 Wins!HP1 = 0EndEnd
29、IfIf HP2 0 ThenMsgBox Player 1 Wins!HP2 = 0EndEnd IfL(2).Y = 999If hp11.Caption Health: & HP1 Thenhp11.Caption = Health: & HP1End IfIf hp22.Caption Health: & HP2 Thenhp22.Caption = Health: & HP2End IfIf CChange = True ThenMe.RefreshEnd IfCChange = FalseIf HP1 0 ThenIf GetAsyncKeyState(vbKeyRight) Th
30、enMovement = Movement - 1CChange = TrueIf Movement 0 ThenIf Turn = False ThenFor i = 0 To 3If L(W(3).X - 2).Y - 10 L(W(i).X - 2).Y ThenW(i).Y = L(W(i).X - 2).Y - 1End IfNextElseFor i = 0 To 3If L(w2(3).X - 2).Y - 10 L(w2(i).X - 2).Y Thenw2(i).Y = L(w2(i).X - 2).Y - 1End IfNextEnd IfEnd IfEnd IfIf Ge
31、tAsyncKeyState(vbKeyLeft) ThenMovement = Movement - 1CChange = TrueIf Movement 0 ThenIf Turn = False ThenFor i = 0 To 3On Error Resume NextIf L(W(0).X - 2).Y - 8 L(W(i).X - 2).Y ThenW(i).Y = L(W(i).X - 2).Y - 1End IfNextElseFor i = 0 To 3On Error Resume NextIf L(w2(0).X - 2).Y - 8 L(w2(i).X - 2).Y T
32、henw2(i).Y = L(w2(i).X - 2).Y - 1End IfNextEnd IfEnd IfEnd IfEnd IfFor i = 0 To 3W(i).X = W(i).X + W(i).XF / 2W(i).XF = W(i).XF * 0.5If i = 1 ThenIf W(i).Y - 20 W(0).Y ThenW(i).Y = W(0).Y + 20W(i).YF = 0 W(i).Yf / 2W(i).Y = (W(i).Y + W(i + 1).Y) / 2End IfEnd IfIf i = 2 ThenIf W(i).Y - 20 W(3).Y Then
33、W(i).Y = W(3).Y + 20W(i).YF = 0 W(i).Yf / 2End IfEnd IfOn Error Resume NextIf W(i).Y + W(i).YF 3 ThenW(i).Y = L(W(i).X - 2).Y - 1W(i).YF = -W(i).YF * 0.5CChange = TrueEnd IfEnd IfMe.DrawWidth = 8Me.Line (W(i).X, W(i).Y)-(W(i).X, W(i).Y), W(i).Colorw2(i).X = w2(i).X + w2(i).XF / 2w2(i).XF = w2(i).XF
34、* 0.5If w2(i).Y + w2(i).YF 3 Thenw2(i).Y = L(w2(i).X - 2).Y - 1w2(i).YF = -w2(i).YF * 0.5End IfEnd IfMe.DrawWidth = 8Me.Line (w2(i).X, w2(i).Y)-(w2(i).X, w2(i).Y), w2(i).ColorNextMe.DrawWidth = 1For i = 0 To 2For z = 0 To 2If HP1 0 ThenMe.Line (W(i).X, W(i).Y)-(W(i + 1).X, W(i + 1).Y), vbBlackEnd If
35、Me.Line (w2(i).X, w2(i).Y)-(w2(i + 1).X, w2(i + 1).Y), vbBlackNextNextIf HP1 0 ThenMe.Line (W(0).X, W(0).Y)-(W(0).X, W(0).Y - 15), vbBlackMe.Line (W(3).X, W(3).Y)-(W(3).X, W(3).Y - 15), vbBlackMe.Line (W(0).X, W(0).Y - 5)-(W(3).X, W(3).Y - 5), vbBlackEnd IfMe.Line (w2(0).X, w2(0).Y)-(w2(0).X, w2(0).
36、Y - 15), vbBlackMe.Line (w2(3).X, w2(3).Y)-(w2(3).X, w2(3).Y - 15), vbBlackMe.Line (w2(0).X, w2(0).Y - 5)-(w2(3).X, w2(3).Y - 5), vbBlackFor F = 0 To 15 Step 2If HP1 0 ThenMe.Line (W(0).X, W(0).Y - F)-(W(3).X, W(3).Y - F), RGB(122, 122, 122)End IfMe.Line (w2(0).X, w2(0).Y - F)-(w2(3).X, w2(3).Y - F)
37、, RGB(122, 122, 122)NextF = 15If HP1 0 ThenMe.Line (W(0).X, W(0).Y - F)-(W(3).X, W(3).Y - F), vbBlackEnd IfMe.Line (w2(0).X, w2(0).Y - F)-(w2(3).X, w2(3).Y - F), vbBlackddddddddddddddFor i = 0 To 300If P2(i).active = True ThenCChange = TrueMe.DrawWidth = P2(i).SizeIf Check1.Value = 1 ThenMe.Line (P2
38、(i).X, P2(i).Y)-(P2(i).OldX, P2(i).OldY), P2(i).ColorEnd IfP2(i).OldX = P2(i).XP2(i).OldY = P2(i).YP2(i).Life = P2(i).Life - 1P2(i).Size = P2(i).Size + P2(i).GrowP2(i).X = P2(i).X + P2(i).XFP2(i).YF = P2(i).YF + P2(i).GravP2(i).Y = P2(i).Y + P2(i).YFIf P2(i).Life 3 Or Abs(W(i).XF) 3 ThenCChange = Tr
39、ueEnd IfIf Abs(w2(i).YF) 3 Or Abs(w2(i).XF) 3 ThenCChange = TrueEnd IfNextFor i = 0 To 90If P(i).active = True Thenttt = 100 + Int(Rnd * 40)NewPart 5, P(i).X + Int(Rnd * 10) - Int(Rnd * 10), P(i).Y + Int(Rnd * 10) - Int(Rnd * 10), P(i).X, P(i).Y, 7, RGB(ttt, ttt, ttt), 0, 0, 8, 0CChange = TrueMe.Dra
40、wWidth = 3P(i).YF = P(i).YF + 1P(i).OldX = P(i).XP(i).OldY = P(i).YP(i).X = P(i).X + P(i).XFP(i).Y = P(i).Y + P(i).YFOn Error Resume NextIf P(i).Y + P(i).YF L(P(i).X - 2).Y ThenP(i).active = FalseIf P(i).type 5 ThenIf P(i).X 0 ThenNewPart 40, P(i).X, P(i).Y + 20, P(i).X, P(i).Y + 20, 5, RGB(200 + In
41、t(Rnd * 10), 0, 0), 0, 0, 30, 0NewPart 20, P(i).X, P(i).Y + 20, P(i).X, P(i).Y + 20, 5, RGB(190 + Int(Rnd * 50), 30 + Int(Rnd * 50), 0), 0, 0, 30, 0NewPart 5, P(i).X, P(i).Y + 20, P(i).X, P(i).Y + 20, 4, RGB(200 + Int(Rnd * 55), 200 + Int(Rnd * 55), 0), 0, 0, 30, 0End IfEnd IfIf P(i).X 0 ThenNewPart
42、 8 + Int(Rnd * 3) - Int(Rnd * 3), P(i).X, P(i).Y, P(i).X, P(i).Y, 0, L(P(i).X - 2).Color, Int(Rnd * 10) - Int(Rnd * 10), -10 + -Int(Rnd * 10), 30 + Int(Rnd * 6) - Int(Rnd * 6), 1NewPart 8 + Int(Rnd * 3) - Int(Rnd * 3), P(i).X, P(i).Y, P(i).X, P(i).Y, 0, L(P(i).X - 2).Color, Int(Rnd * 10) - Int(Rnd *
43、 10), -10 + -Int(Rnd * 10), 30 + Int(Rnd * 6) - Int(Rnd * 6), 1NewPart 8 + Int(Rnd * 3) - Int(Rnd * 3), P(i).X, P(i).Y, P(i).X, P(i).Y, 0, L(P(i).X - 2).Color, Int(Rnd * 10) - Int(Rnd * 10), -10 + -Int(Rnd * 10), 30 + Int(Rnd * 6) - Int(Rnd * 6), 1NewPart 8 + Int(Rnd * 3) - Int(Rnd * 3), P(i).X, P(i
44、).Y, P(i).X, P(i).Y, 0, L(P(i).X - 2).Color, Int(Rnd * 10) - Int(Rnd * 10), -10 + -Int(Rnd * 10), 30 + Int(Rnd * 6) - Int(Rnd * 6), 1NewPart 8 + Int(Rnd * 3) - Int(Rnd * 3), P(i).X, P(i).Y, P(i).X, P(i).Y, 0, L(P(i).X - 2).Color, Int(Rnd * 10) - Int(Rnd * 10), -10 + -Int(Rnd * 10), 30 + Int(Rnd * 6) - Int(Rnd * 6), 1End IfIf P(i).type = 1 ThenBoom P(i).X - 2, P(i).Y, 30, 35, P(i).DamageEnd IfIf P(i)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 园林专业造价试题及答案
- 闵行区老旧厨房施工方案
- 时尚产业全球市场布局研究
- 互联网营销方案
- 网络安全威胁防范策略探讨
- 网络经纪合同
- 山东省日照市校际联合考试2024-2025学年高二上学期11月期中考试地理试卷(含答案)
- 建设天桥围栏施工方案
- 灰土防弹墙施工方案
- 湖北交通标牌施工方案
- 中国哲学史教案
- 云计算技术及应用PPT完整全套教学课件
- 辽宁省房屋面积测量与计算细则修订稿
- 血液透析病人情况表
- 历年高考满分作文集
- GB/T 6365-2006表面活性剂游离碱度或游离酸度的测定滴定法
- JB-T 501-2021 电力变压器试验导则
- GB/T 12496.19-2015木质活性炭试验方法铁含量的测定
- 2023年教师资格证书补发换发申请表下载
- project培训课程(共60张)
- MOST定标准工时介绍资料课件
评论
0/150
提交评论