资源预览内容
第1页 / 共42页
第2页 / 共42页
第3页 / 共42页
第4页 / 共42页
第5页 / 共42页
第6页 / 共42页
第7页 / 共42页
第8页 / 共42页
第9页 / 共42页
第10页 / 共42页
亲,该文档总共42页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
长 江 大 学Yangtze universityVB课程设计实习报告专业班级储运11001学生学号201007078 学生姓名彭壮 班级序号16 指导老师冯翠丽 完成时间2011-12-22 一设计题目 学生成绩管理系统二 设计思路从文本中读取文件数据,利用VB的顺序结构,选择结构,循环结构编写程序代码,最终将各代码写入界面设计中的各菜单下。三 程序实现的目标本程序将实现从文本中读取数据,赋值数据,运算数据,实现对学生的加权平均值,名次,全班每门课的分数段,不及格同学名单,优等生名单等运算,并写入文件。四 程序设计框图从文本中读取数据 赋值运算并写入文件 分数处理成绩分布打印查询成绩每位学生的加权分数按加权分数排名每门课程的班级平均分加权平均分分布每门课成绩分布每位学生的成绩条不及格学生名单优等生名单按姓名查找按学号查找按名次查找五运行结果原始成绩课程学分原始成绩和原始课程学分文件读取原始课程文件加权平均分成绩排名每门课程的班级平均分加权平均分分布每门课程及分布成绩条优等生名单不及格学生名单成绩查询系统按姓名查找示例按学号查找示例按名次查找示例六源程序模块代码:Type xscjb xh As String xm As String cj(1 To 5) As Integer aver As Single mc As IntegerEnd TypeType kechen 编号 As Integer 课程名 As String 学分 As SingleEnd TypePublic stu() As xscjbPublic ke() As kechenPublic N%, M%, Zxf%Public str As String窗体代码 : Form1:Public Function space1(ByVal sss As String) Dim x% x = InStr(sss, ) Do While x 0 sss = Replace(sss, , ) x = InStr(sss, ) Loop space1 = sssEnd FunctionPrivate Sub ajqfspm_Click()Dim t!, k As SingleForm1.ClsForm1.FontSize = 12Form1.Print Tab(25); 学号 姓名 平均分 名次stu(0).mc = 0stu(0).aver = 0t = 1For i = 1 To Nt = 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 Form1.Print Tab(25); stu(i).xh; Tab(34); stu(i).xm; Tab(44); stu(i).aver; Tab(54); stu(i).mc Next iEnd SubPrivate Sub amccz_Click()Dim l!, x!Form1.Clsl = Val(InputBox(请输入名次)For i = 1 To N If stu(i).mc = l Then x = x + 1: Form1.Print 学号 姓名 英语 VB 化学 物理 数学 加权平均分 名次: 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).aver; Tab(75); stu(i).mc: Form1.Print End If Next i If x = 0 Then MsgBox (无效请重新输入!)End SubPrivate Sub axhcz_Click()Form1.ClsDim v!, x!v = Val(InputBox(请输入学号)For i = 1 To N If stu(i).xh = v Then x = x + 1: Form1.Print 学号 姓名 英语 VB 化学 物理 数学 加权平均分 名次: 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).aver; Tab(75); stu(i).mc: Form1.Print End If Next i If x = 0 Then MsgBox (学号无效请重新输入!)End SubPrivate Sub axmcz_Click()Form1.ClsForm1.FontSize = 9Dim k$, x!k = InputBox(请输入姓名)For i = 1 To N If stu(i).xm = k Then x = i: Form1.Print 学号 姓名 英语 VB 化学 物理 数学 加权平均分 名次: 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).aver; Tab(75); stu(i).mc: Form1.Print End If Next i If x = 0 Then MsgBox (查无此人请重新输入!)End SubPrivate Sub bjgxsmd_Click()Form1.ClsForm1.FontSize = 16Form1.Print Tab(12); 挂科学生的名单!Form1.FontSize = 12Form1.PrintForm1.PrintOpen 不及格学生名单.txt For Output As #1Form1.Print Tab(30); 学号; Tab(38); 姓名; Tab(46); 课程名; Tab(54); 学分; Tab(62); 成绩Write #1, 学号, 姓名, 课程名, 学分, 成绩Form1.PrintFor i = 1 To M For j = 1 To N If stu(j).cj(i) 60 Then Print Tab(30); stu(j).xh; Tab(38); stu(j).xm; Tab(46); ke(i).课程名; Tab(54); ke(i).学分; Tab(62); stu(j).cj(i) Write #1, stu(j).xh, stu(j).xm, ke(i).课程名, ke(i).学分, stu(j).cj(i) End If Next j Next i Close #1End SubPrivate Sub Form_Load()Dim st$(), Str1$Open App.Path + 学生成绩.txt For Input As #1Open App.Path + 课程学分.txt For Input As #2N = 0: M = 0: Zxf = 0Line Input #1, Str1Do 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).aver = 0 stu(N).mc = 0 Loop Line Input #2, St
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号