计算机上机实习(vb)专业班级:油工10901学生学号:200906829学生姓名:方飞飞班级序号:4指导老师:冯翠丽完成日期:2010-12-17一.设计题目学生成绩管理系统二.设计思路从文本中读取文件数据,利用split函数对读取的数据进行分割并赋值,利用VB的顺序结构,选择结构,循环结构编写程序代码,最终将各代码写入界面设计中的各菜单下。三.程序实现的目标本程序将实现从文本中读取数据,赋值数据,运算数据,实现对学生的加权平均值,名次,全班每门课的分数段,不及格同学名单,优等生名单等运算,并写入文件。四.程序设计框图学生每门课加权平均分按平均分排名课程各分数段人数不及格课程学生名单优等生名单从文本中读取数据赋值运算并写入文五.数据处理原始成绩课程学分成绩学分加权平均分排名不及格学生名单优等生名单各分数人数六.源程序模块:TypestudentsnoAsString*6snameAsString*3a(1To5)AsIntegeraverAsSinglemcAsIntegerfeiAsIntegerEndTypeTypekechenbhAsStringkcmAsStringxfAsSinglef(1To5)AsIntegerEndType窗体代码:Dimkc()AskechenDimmAsIntegerDimstud()AsstudentDimstAsStringDimnAsIntegerDimst2AsStringDimzxfAsIntegerPrivateSubAverage_Click()Picture1.ClsForj=1Tonstud(j).aver=0Fori=1To5stud(j).aver=stud(j).aver+Val(stud(j).a(i))*Val(kc(i).xf)Nextistud(j).aver=stud(j).aver/zxfNextjPicture1.Printst;Space(4);"平均分"Fori=1TonPicture1.Printstud(i).sno;Space(5);stud(i).sname;Space(2);Forj=1TomPicture1.Printstud(i).a(j);Space(3);NextjPicture1.PrintFormat(stud(i).aver,"0.00")NextiEndSubPrivateSubForm_Load()DimchAsString,c()AsString,i%,d()AsStringn=0:k=0成绩.txt"ForInputAs#1LineInput#1,stPrintstDoWhileNotEOF(1)LineInput#1,chch=Trim(ch)ch=delspace(ch)c=Split(ch,"")n=n+1ReDimPreservestud(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)LoopClose#1学分.txt"ForInputAs#1LineInput#1,st2DoWhileNotEOF(1)LineInput#1,chch=Trim(ch)ch=delspace(ch)d=Split(ch,"")m=m+1ReDimPreservekc(1Tom)kc(m).bh=d(0)kc(m).kcm=d(1)kc(m).xf=d(2)zxf=zxf+kc(m).xfLoopClose#1EndSubPublicFunctiondelspace(sAsString)AsStringk=InStr(s,"")DoWhilek>0s=Replace(s,"","")k=InStr(s,"")Loopdelspace=sEndFunctionPrivateSubfsd_Click()Picture1.ClsDimfw(1To5)AsStringPicture1.Clsfw(1)=">=90"fw(2)="80-89"fw(3)="70-79"fw(4)="60-69"fw(5)="<60"各分数段人数.txt"ForOutputAs#1Fori=1TonForj=1TomIfstud(i).a(j)>=90Thenkc(j).f(1)=kc(j).f(1)+1ElseIfstud(i).a(j)>=80Thenkc(j).f(2)=kc(j).f(2)+1ElseIfstud(i).a(j)>=70Thenkc(j).f(3)=kc(j).f(3)+1ElseIfstud(i).a(j)>=60Thenkc(j).f(4)=kc(j).f(4)+1Elsekc(j).f(5)=kc(j).f(5)+1EndIfNextjNextiPicture1.Print"范围英语制图数学物理化学"Print#1,"范围英语制图数学物理化学"Forj=1To5Print#1,fw(j);Space(4);Picture1.Printfw(j);Space(4);Fori=1TomPrint#1,kc(i).f(j);Space(3);Picture1.Printkc(i).f(j);Space(4);NextiPicture1.PrintPrint#1,NextjClose#1EndSubPrivateSubminci_Click()Picture1.ClsFori=1Tonstud(i).mc=1Forj=1TonIfstud(i).aver