vb实习报告.docx
《vb实习报告.docx》由会员分享,可在线阅读,更多相关《vb实习报告.docx(15页珍藏版)》请在冰豆网上搜索。
![vb实习报告.docx](https://file1.bdocx.com/fileroot1/2023-1/29/8e819fd5-814c-46c0-959a-f15b7ff4db39/8e819fd5-814c-46c0-959a-f15b7ff4db391.gif)
vb实习报告
计算机上机实习(vb)
专业班级:
油工10901
学生学号:
200906829
学生姓名:
方飞飞
班级序号:
4
指导老师:
冯翠丽
完成日期:
2010-12-17
一.设计题目
学生成绩管理系统
二.设计思路
从文本中读取文件数据,利用split函数对读取的数据进行分割并赋值,利用VB的顺序结构,选择结构,循环结构编写程序代码,最终将各代码写入界面设计中的各菜单下。
三.程序实现的目标
本程序将实现从文本中读取数据,赋值数据,运算数据,实现对学生的加权平均值,名次,全班每门课的分数段,不及格同学名单,优等生名单等运算,并写入文件。
四.
程序设计框图
五.数据处理
原始成绩
课程学分
成绩
学分
加权平均分
排名
不及格学生名单
优等生名单
各分数人数
六.源程序
模块:
Typestudent
snoAsString*6
snameAsString*3
a(1To5)AsInteger
averAsSingle
mcAsInteger
feiAsInteger
EndType
Typekechen
bhAsString
kcmAsString
xfAsSingle
f(1To5)AsInteger
EndType
窗体代码:
Dimkc()Askechen
DimmAsInteger
Dimstud()Asstudent
DimstAsString
DimnAsInteger
Dimst2AsString
DimzxfAsInteger
PrivateSubAverage_Click()
Picture1.Cls
Forj=1Ton
stud(j).aver=0
Fori=1To5
stud(j).aver=stud(j).aver+Val(stud(j).a(i))*Val(kc(i).xf)
Nexti
stud(j).aver=stud(j).aver/zxf
Nextj
Picture1.Printst;Space(4);"平均分"
Fori=1Ton
Picture1.Printstud(i).sno;Space(5);stud(i).sname;Space
(2);
Forj=1Tom
Picture1.Printstud(i).a(j);Space(3);
Nextj
Picture1.PrintFormat(stud(i).aver,"0.00")
Nexti
EndSub
PrivateSubForm_Load()
DimchAsString,c()AsString,i%,d()AsString
n=0:
k=0
OpenApp.Path+"\成绩.txt"ForInputAs#1
LineInput#1,st
Printst
DoWhileNotEOF
(1)
LineInput#1,ch
ch=Trim(ch)
ch=delspace(ch)
c=Split(ch,"")
n=n+1
ReDimPreservestud(n)
stud(n).sno=c(0)
stud(n).sname=c
(1)
stud(n).a
(1)=c
(2)
stud(n).a
(2)=c(3)
stud(n).a(3)=c(4)
stud(n).a(4)=c(5)
stud(n).a(5)=c(6)
Loop
Close#1
OpenApp.Path+"\学分.txt"ForInputAs#1
LineInput#1,st2
DoWhileNotEOF
(1)
LineInput#1,ch
ch=Trim(ch)
ch=delspace(ch)
d=Split(ch,"")
m=m+1
ReDimPreservekc(1Tom)
kc(m).bh=d(0)
kc(m).kcm=d
(1)
kc(m).xf=d
(2)
zxf=zxf+kc(m).xf
Loop
Close#1
EndSub
PublicFunctiondelspace(sAsString)AsString
k=InStr(s,"")
DoWhilek>0
s=Replace(s,"","")
k=InStr(s,"")
Loop
delspace=s
EndFunction
PrivateSubfsd_Click()
Picture1.Cls
Dimfw(1To5)AsString
Picture1.Cls
fw
(1)=">=90"
fw
(2)="80-89"
fw(3)="70-79"
fw(4)="60-69"
fw(5)="<60"
OpenApp.Path+"\各分数段人数.txt"ForOutputAs#1
Fori=1Ton
Forj=1Tom
Ifstud(i).a(j)>=90Then
kc(j).f
(1)=kc(j).f
(1)+1
ElseIfstud(i).a(j)>=80Then
kc(j).f
(2)=kc(j).f
(2)+1
ElseIfstud(i).a(j)>=70Then
kc(j).f(3)=kc(j).f(3)+1
ElseIfstud(i).a(j)>=60Then
kc(j).f(4)=kc(j).f(4)+1
Else
kc(j).f(5)=kc(j).f(5)+1
EndIf
Nextj
Nexti
Picture1.Print"范围英语制图数学物理化学"
Print#1,"范围英语制图数学物理化学"
Forj=1To5
Print#1,fw(j);Space(4);
Picture1.Printfw(j);Space(4);
Fori=1Tom
Print#1,kc(i).f(j);Space(3);
Picture1.Printkc(i).f(j);Space(4);
Nexti
Picture1.Print
Print#1,
Nextj
Close#1
EndSub
PrivateSubminci_Click()
Picture1.Cls
Fori=1Ton
stud(i).mc=1
Forj=1Ton
Ifstud(i).averstud(i).mc=stud(i).mc+1
EndIf
Nextj
Nexti
Picture1.Print"学号","姓名","名次"
Fori=1Ton
Picture1.Printstud(i).sno,stud(i).sname,stud(i).mc
Nexti
EndSub
PrivateSubPrint59_Click()
Picture1.Cls
OpenApp.Path+"\不及格学生名单.txt"ForOutputAs#1
Picture1.Print"学号姓名不及格课程名成绩学分"
Print#1,"学号姓名不及格课程名成绩学分"
Fori=1Ton
Forj=1Tom
Ifstud(i).a(j)<60Then
Print#1,stud(i).sno;Space(4);stud(i).sname;;Space(5);kc(j).kcm;Space(9);stud(i).a(j);Space(4);kc(j).xf
Picture1.Printstud(i).sno;Space(4);stud(i).sname;;Space(5);kc(j).kcm,Space(7);stud(i).a(j);Space(4);kc(j).xf
EndIf
Nextj
Nexti
Close#1
EndSub
PrivateSubPrintCJD_Click()
Picture1.Cls
OpenApp.Path+"\成绩单.txt"ForOutputAs#1
Print#1,st,"平均分","名次"
Picture1.Printst,"平均分","名次"
Fori=1Ton
Print#1,stud(i).sno;Space(5);stud(i).sname;Space
(2);
Picture1.Printstud(i).sno;Space(5);stud(i).sname;Space
(2);
Forj=1Tom
Print#1,stud(i).a(j);Space(3);
Picture1.Printstud(i).a(j);Space(3);;
Nextj
Print#1,Space(4);Format(stud(i).aver,"0.00");Space(9);stud(i).mc
Picture1.PrintSpace(4);Format(stud(i).aver,"0.00");Space(9);stud(i).mc
Nexti
Close#1
EndSub
PrivateSubPrintGood_Click()
Picture1.Cls
OpenApp.Path+"\优等生名单.txt"ForOutputAs#1
DimssAsInteger
Fori=1Ton
ss=0:
stud(i).fei=0
Forj=1Tom
Ifstud(i).a(j)>=95Then
ss=ss+1
EndIf
Nextj
Ifss>=2Then
Ifstud(i).aver>=85Then
stud(i).fei=1
EndIf
EndIf
Nexti
Print#1,st;Space(3);"平均分";Space(3);"名次"
Picture1.Printst;Space(3);"平均分";Space(3);"名次"
Fori=1Ton
Ifstud(i).mc<4Orstud(i).aver>=90Orstud(i).fei=1Then
Print#1,stud(i).sno;Space(5);stud(i).sname;Space
(2);
Picture1.Printstud(i).sno;Space(5);stud(i).sname;Space
(2);
Forj=1Tom
Print#1,stud(i).a(j);Space(3);
Picture1.Printstud(i).a(j);Space(3);
Nextj
Print#1,Format(stud(i).aver,"0.00");Space(4);stud(i).mc
Picture1.PrintFormat(stud(i).aver,"0.00");Space(4);stud(i).mc
EndIf
Nexti
Close#1
EndSub
PrivateSubyaunkc_Click()
Picture1.Cls
Picture1.Print"编号课程名称课程学分"
Fori=1Tom
Picture1.Printkc(i).bh,kc(i).kcm,kc(i).xf
Nexti
EndSub
PrivateSubyuancj_Click()
Picture1.Cls
Picture1.Printst
Fori=1Ton
Picture1.Printstud(i).sno;Space(5);stud(i).sname;Space
(2);
Forj=1Tom
Picture1.Printstud(i).a(j);Space(3);
Nextj
Picture1.Print
Nexti
EndSub
七.小结
在这次VB程序设计实习中,我逐渐了解了程序在VB6.0中调试并运行的方法,在其过程中,遇到了很多问题和困难,发现在之前的学习中,所学的东西不能完全掌握。
这次实习,是我在学习上的一次考验,让我深深体会到了实训操作的重要性。
同时感谢老师给予的耐心讲解,细心的帮助调试程序。
虽然此次实习已结束,时间不长,但意义很大。
它使我了解自己的短处,让我知道要从什么方面对自己进行补充,同时培养了我独立思考,求异思维的能力。
我深信这次课程设计,对我的VB学习以及今后的计算机等级考试的学习和考试会起到很大的促进作用,这对我今后的学习和工作将产生很大的影响。