长江大学
物理成绩分布图
化学成绩分布图
体育成绩分布图
问题及解决方案
我在写计算加权平均分时,出现了上述错误,我检查了很长时间都没发现错误,让同学帮我找也没发现,后来,我自己一句一句的看,然来,我把其中的一个Form1中的1写成l了。
- 11 -
长江大学
我未将文件存在指定的文件夹。我将文件存储后,程序可以运行。 问题三:我在做作业时遇到最大的问题就是每次做作业未做完需要保存,我每次在存的时候,程序都能运行,可是,我下次打开时,却不能打开,那时我不知道怎么办,但幸亏我事先将代码保存好了,但窗体需要重新设计。后来,我问崔老师,他教我用文件夹保存,此后,我就再也没有遇到这样的问题。
程序缺陷
我觉得本程序太过冗长复杂,变量设置过多,使得程序的调试非常麻烦。其次,程序菜单的名称完全是由程序员按自己的喜好编排的,这样使得除程序员以外的人在看代码是不知道该段程序到底是哪个菜单的。再次,本程序的代码受输入的文件的局限性太大,不能做成通用程序。
实习心得
通过本次的上机实习,我逐渐熟悉了VB6.0程序开发环境,原本在课堂上不懂的程序代码,现在感觉并不是什么天书了,可以自己编辑一些简单的程序,感觉挺有趣的。其次,我学会了常用控件的编辑和编辑菜单和多窗体的编程,并理解数组和过程及函数的类型定义,以及过程和函数的调用方法,初步认识了文件的读取和存放。再次,我觉得编程不仅需要自己的思维和方法,还应该有足够的细心和耐心,否则,这么长的英文代码让你不断的调试和检查早就让你头晕目眩了。同时,不懂就要问,这样才能不断的进步。认真思考也是非常的重要,只有经过自己思考的东西和知识才会变成自己的。还有,我认为编程不仅要知道自己的方法,还应看懂别人的程序,体验别人的思维方法。这样不仅可以在别人遇到问题时给予帮助,还可以通过对比融会贯通并得出最简洁的程序编写方法。最后,我在实习中遇到的问题帮助了我理解在课堂理论上没有弄懂的问题,更让我发现了我学习中的薄弱环节,让我有机会去改正和提高。我也深刻的懂得了实践是获取知识的最好方法,在今后的学习中,我应该多将理论与实践结合起来。
附录 Form1 原始课程学分 Private Sub yskg_Click() Form1.Cls Form1.BackColor = RGB(152, 100, 114) Form1.ForeColor = &H0& Form1.FontSize = 24 Open App.Path + \课程学 分.txt\ Line Input #2, str2 Print str2 Do While Not EOF(2) Line Input #2, str2 Print str2 Loop Close #2 End Sub 读原始学生成绩表 Private Sub dyscj_Click() Form1.Cls Form1.FontSize = 18 Form1.BackColor = Form1.BackColor = RGB(2, 180, 200) Form1.ForeColor = &HFF& Open App.Path + \成绩表.txt\Line Input #1, Str1 Print Str1 - 12 Do While Not EOF(1) - Line Input #1, Str1 Print Str1 Loop 长江大学
Private Sub averge_Click() Form1.Cls
Form1.FontSize = 16
Form1.ForeColor = RGB(12, 18, 187) Form1.BackColor = RGB(1, 255, 4)
Form1.Print \学号 姓名 英语 VB 化学 物理 数学 体育 加权平均分\For i = 1 To N stu(i).aver = 0 For j = 1 To M
每位同学的加权平均分 stu(i).aver = stu(i).aver + stu(i).cj(j) * ke(j).学分 Next j
stu(i).aver = Round(stu(i).aver / Zxf, 2) Next i
For i = 1 To N
Print Tab(2); stu(i).xh; Tab(9); stu(i).xm; Tab(18); stu(i).cj(1); Tab(27); stu(i).cj(2); Tab(34); stu(i).cj(3); Tab(43); stu(i).cj(4); Tab(52); stu(i).cj(5); Tab(60); stu(i).cj(6); Tab(68); Format(stu(i).aver, \Next i End Sub
Public Function space1(ByVal sss As String) Dim x% Space函数 x = InStr(sss, \ \ Do While x > 0
sss = Replace(sss, \ \ x = InStr(sss, \ \ Loop
space1 = sss End Function
Private Sub Form_Load() Dim st$(), Str1$
Open App.Path + \成绩表.txt\Open App.Path + \课程学分.txt\N = 0: M = 0: Zxf = 0 Line Input #1, Str1
- 13 -
长江大学
Do While Not EOF(1) N = N + 1
ReDim Preserve stu(N) Line Input #1, Str1 Str1 = Trim(Str1) Str1 = space1(Str1) st1 = Split(Str1, \ stu(N).xh = st1(0) stu(N).xm = st1(1) stu(N).cj(1) = st1(2) stu(N).cj(2) = st1(3) stu(N).cj(3) = st1(4) stu(N).cj(4) = st1(5) stu(N).cj(5) = st1(6) stu(N).cj(6) = st1(7) stu(N).aver = 0 stu(N).mc = 0 Loop
Line Input #2, Str1 Do While Not EOF(2) M = M + 1
ReDim Preserve ke(M) Line Input #2, Str1 Str1 = Trim(Str1) Str1 = space1(Str1) st1 = Split(Str1, \ ke(M).编号 = st1(0) ke(M).课程名 = st1(1) ke(M).学分 = st1(2) Zxf = Zxf + ke(M).学分 Loop
Close #1 Close #2 End Sub
Private Sub mc_Click() Dim t!, k As Single Form1.Cls
Form1.FontSize = 18
Form1.BackColor = RGB(252, 180, 14)
Form1.Print \学号 姓名 英语 权平均分 名次\For i = 1 To N
If i Mod 4 = 1 Then
Form1.ForeColor = RGB(123, 12, 45)
VB 化学 物理 数学 体育 加按平均分排名 - 14 -
长江大学
ElseIf i Mod 4 = 2 Then
Form1.ForeColor = RGB(45, 78, 100) ElseIf i Mod 4 = 3 Then
Form1.ForeColor = &HFF00FF Else:
Form1.ForeColor = &HFF& End If t = 1
If stu(i).aver = stu(i - 1).aver Then stu(i).mc = stu(i - 1).mc Else
For j = 1 To N
If stu(i).aver < stu(j).aver Then t = t + 1 End If Next j End If
stu(i).mc = t t = 1
Print Tab(2); stu(i).xh; Tab(9); stu(i).xm; Tab(18); stu(i).cj(1); Tab(27); stu(i).cj(2); Tab(34); stu(i).cj(3); Tab(43); stu(i).cj(4); Tab(52); stu(i).cj(5); Tab(60); stu(i).cj(6); Tab(68); Format(stu(i).aver, \Next i End Sub 平均分各分数段人数 Private Sub pjffsd_Click() Form1.Cls Form1.FontSize = 24 Print Form1.Print For i = 1 To 6 Form1.Print Next i Dim s(5 To 10), g For i = 1 To N g = stu(i).aver \\ 10 Select Case g Case 0 To 5 s(5) = s(5) + 1 Case 6 s(6) = s(6) + 1 Case 7
s(7) = s(7) + 1 Case 8 s(8) = s(8) + 1 Case 9 s(9) = s(9) + 1 - 15 -