vb上机实习报告.docx
- 文档编号:6283686
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:27
- 大小:1.28MB
vb上机实习报告.docx
《vb上机实习报告.docx》由会员分享,可在线阅读,更多相关《vb上机实习报告.docx(27页珍藏版)》请在冰豆网上搜索。
vb上机实习报告
专业班级:
化工11001
学生学号:
201003069
班内序号:
6
指导老师:
张老师吴老师
完成日期:
2011/12/23
目录
一:
设计题目
二:
设计思路
三:
设计目标
四:
设计思路
五:
数据处理
六:
程序代码
七:
小结
一:
设计题目
学生成绩管理
二:
设计思路
利用CommonDialog从文本中读取文件,再通过split函数分割数据并赋值给相应项目,再通过vb提供的各种变量、函数、过程及自定义变量、函数过程等等来完成所需的操作。
三:
设计目标
从文本中读取数据,赋值数据,运算数据来实现对学生加权平均分、平均分、每门课的平均分、每门课的分数段、不及格学生名单、优秀学生名单、成绩查询、每门课的成绩分布图的输出,并写入文件。
四:
设计思路
框架图
从文本读取数据
赋值并运算
加权平均分
平均分
每门课的平均分
每门课的分数段
不及格学生名单
成绩查询
分数条
成绩分布图
优秀学生名单
五:
数据处理
原始成绩
课程学分
学生成绩
课程学分
加权平均分
每门课的平均分
每门课的分数段
不及格学生名单及成绩
优秀学生
成绩查询
化工导论成绩分布图
Vb成绩分布图
线代成绩分布图
概率成绩分布图
物理成绩分布图
六:
程序代码
模块:
Typestudent
numberAsString*3
nameAsString*3
score(1To5)AsInteger
averAsSingle
averageAsSingle
rankAsInteger
count1AsInteger
count2AsInteger
EndType
Typeclass
numAsString
namAsString*4
scorAsSingle
EndType
Publicstu()Asstudent,stu1Asstudent,cla()Asclass
PublicFunctiondeletespace(strAsString)AsString
Dimi%
i=InStr(str,"")
DoWhilei<>o
str=Replace(str,"","")
i=InStr(str,"")
Loop
窗体级
OptionBase1
DimnAsInteger,str1AsString,strAsString,a()AsString,i%,j%,m%,k%,s%(5,5)
读学生成绩
PrivateSubstudentscore_Click()
Cls
CommonDialog1.Filter="文本文件|*.txt"
CommonDialog1.ShowOpen
OpenCommonDialog1.FileNameForInputAs#1
LineInput#1,str1
Printstr1
DoWhileNotEOF
(1)
LineInput#1,str
str=deletespace(Trim(str))
a=Split(str,"")
n=n+1
ReDimPreservestu(n)
stu(n).number=a(0)
stu(n).name=a
(1)
Fori=1To5
stu(n).score(i)=a(i+1)
Nexti
Loop
Fori=1Ton
Printstu(i).number;Tab(6);stu(i).name;Tab(15);
Forj=1To5
Printstu(i).score(j);Spc(5);
Nextj
Nexti
Close#1
EndSub
读课程学分
PrivateSubkechengxuefen_Click()
jisuan.Enabled=True
gekechengjiguanli.Enabled=True
chengjichaxun.Enabled=True
chengjifenbutu.Enabled=True
Cls
Dimk%
CommonDialog1.Filter="文本文件|*.txt"
CommonDialog1.ShowOpen
OpenCommonDialog1.FileNameForInputAs#2
LineInput#2,str1
Printstr1
DoWhileNotEOF
(2)
LineInput#2,str
str=deletespace(Trim(str))
a=Split(str,"")
m=m+1
ReDimPreservecla(m)
cla(m).num=a(0)
cla(m).nam=a
(1)
cla(m).scor=a
(2)
Loop
Fori=1Tom
Printcla(i).num;Tab(12);cla(i).nam;Tab(30);cla(i).scor
Nexti
Close#2
EndSub
加权平均分
PrivateSubaver_Click()
Cls
Print"姓名";Spc(4);"学号";Spc(4);"化工导论";Spc(5);"vb";Spc(8);"线代";Spc(7);"概率";Spc(7);"物理";Spc(6);"加权平均分";Spc(5)
count2=0
count1=0
Forj=1To20
Fori=1To5
count1=cla(i).scor+count1
count2=stu(j).score(i)*cla(i).scor+count2
Nexti
stu(j).aver=count2/count1'加权平均分
Nextj
Fori=1To20
Printstu(i).name;Tab(10);stu(i).number;Tab(18);
Forj=1To5
Printstu(i).score(j);Spc(7);
Nextj
PrintFormat(stu(i).aver,"00.00")
Nexti
EndSub
按加权平均分排名
PrivateSubanpingjunfenpaiming_Click()
Dimk%
Cls
Print"姓名";Spc(4);"学号";Tab(16);"化工导论";Tab(31);"vb";Tab(42);"线代";Tab(54);"概率";Tab(66);"物理";Tab(77);"加权平均分";Tab(89);"名次"
Fori=1To20
stu(i).rank=1
Forj=1To20
Ifstu(i).aver stu(i).rank=stu(i).rank+1'排名 EndIf Nextj Nexti Fori=1To20 Printstu(i).name;Tab(10);stu(i).number;Tab(18); Forj=1To5 Printstu(i).score(j);Spc(8); Nextj PrintFormat(stu(i).aver,"00.00");Spc(7);stu(i).rank'输出 Nexti EndSub 每门课的平均分 PrivateSubmeimenkedepingjunfen_Click()'每门课的平均分 Cls Form1.FontSize=18 Print"每门课的平均分如下: " Print"化工导论";Spc(6);"vb";Spc(10);"线代";Spc(7);"概率";Spc(8);"物理" Fori=1To5 Sum=0 Forj=1To20 Sum=Sum+stu(j).score(i)'求每门课的总分 Nextj stu(i).average=Sum/20'求每门课的平均分 Nexti Forj=1To5 PrintSpc (2);stu(j).average;Spc(3);'输出 Nextj EndSub 每门课的分数段 PrivateSubfenshuduan_Click() Cls Dimg% Fori=1To5 Forj=1To20 g=stu(j).score(i) SelectCaseg Case0To59 s(1,i)=s(1,i)+1 Case60To69 s(2,i)=s(2,i)+1 Case70To79 s(3,i)=s(3,i)+1 Case80To89 s(4,i)=s(4,i)+1 Case90To99 s(5,i)=s(5,i)+1 EndSelect Nextj Nexti Dimb$(5) b (1)="0---59" b (2)="60--69" b(3)="70--79" b(4)="80--89" b(5)="90--99" Form1.FontSize=18 Print"范围化工导论vb线代概率物理" Fori=1To5 Printb(i);Tab(13); Forj=1To5 Prints(i,j);Spc(5); Nextj Print Nexti EndSub 不及格学生名单 PrivateSubbujigexuesheng_Click()'不及格学生 Cls Form1.FontSize=13 Dimi%,j% Form1.ForeColor=vbRed Form1.FontSize=20 Print"不及格学生及其成绩如下;";Chr(13)+Chr(10) Form1.ForeColor=vbBlack Form1.FontSize=12 Print"学号";Spc(5);"姓名" Fori=1ToUBound(stu()) Forj=1To5 Ifstu(i).score(j)<60Then Printstu(i).number;Spc(4);stu(i).name; Print Print"不及格课程: ";cla(j).nam;Tab(25);"(该课程学分为: ";cla(j).scor;")";_ Tab(45);"该科分数: ";stu(i).score(j); Print EndIf Nextj Nexti Form1.FontSize=12 EndSub 优秀学生名单 PrivateSubyouxiuxueshneg_Click()'优秀学生 Cls DimflagAsBoolean Print"优秀学生名单如下: " Print Print"姓名";Tab(10);"学号";Tab(18);"化工导论";Tab(31);"vb";Tab(40);_ "线代";Tab(50);"概率";Tab(60);"物理";Tab(70);"平均分";Tab(79);_ "名次" Fori=1To20 flag=False Forj=1To5 Ifstu(i).score(j)>=90Then n=n+1 EndIf Nextj Ifstu(i).aver>=95Orstu(i).rank<=3Then flag=True ElseIfstu(i).aver>=85Andn>=2Then flag=True EndIf Ifflag=TrueThen Printstu(i).name;Tab(10);stu(i).number;_ Tab(20);stu(i).score (1);Tab(30);stu(i).score (2);Tab(40);_ stu(i).score(3);Tab(50);stu(i).score(4);Tab(60);stu(i).score(5);_ Tab(70);Format(stu(i).aver,"00.00");Tab(80);stu(i).rank; Print EndIf Nexti EndSub 成绩查询 PrivateSubchaxun_Click()'成绩查询 Cls Print"姓名学号化工导论vb线代概率物理平均分排名" i=InputBox("请输入1~20以内的学号") Ifi>=21Then n=MsgBox("您输入的学号有误,请重新输入",vbAbortRetryIgnore=5) EndIf Ifi>0Andi<=20Then Printstu(i).name;Tab(12);stu(i).number;Tab(20); Forj=1To5 Printstu(i).score(j);Spc(6); Nextj PrintFormat(stu(i).aver,"00.00");Tab(82);stu(i).rank ElseIfi>20Then ExitSub ElseIfi<1Then ExitSub EndIf EndSub 化工导论成绩分布图 PrivateSubhuagongdaolun_Click()'化工导论成绩分布图 Cls Form1.FontSize=8 Scale(-20,100)-(100,-20)'建立坐标系 Line(0,0)-(99,0)'画线 Line(0,0)-(0,99) DrawWidth=8 PSet(0,0) CurrentX=-2 CurrentY=-1 Print0 CurrentX=98.6 CurrentY=1 Print">"'打x轴箭头 CurrentX=-0.45 CurrentY=99.45 Print"∧"'打y轴箭头 DrawWidth=2 Forn=9To90Step9 Line(0,n)-(1,n) CurrentX=-2 CurrentY=n+1 Printn/9 Nextn Dimk$(81) k(9)="0--59" k(27)="60-69" k(45)="70-79" k(63)="80-89" k(81)="90-99" Forn=9To81Step18 CurrentX=n+2 CurrentY=-2 Printk(n); Nextn Line(9,36)-(18,0),vbGreen,BF'画矩形图 Line(27,18)-(36,0),vbGreen,BF Line(45,27)-(54,0),vbGreen,BF Line(63,36)-(72,0),vbGreen,BF Line(81,63)-(90,0),vbGreen,BF CurrentX=27 CurrentY=90 Form1.FontSize=25 Form1.ForeColor=vbRed Print"化工导论成绩分布图" Form1.FontSize=8 Form1.ForeColor=vbBlack CurrentX=95 CurrentY=-2 Print"分数段" EndSub Vb成绩分布图 PrivateSubVB_Click()'vb成绩分布图 Cls Form1.FontSize=8 Scale(-20,100)-(100,-20) Line(0,0)-(99,0)'画X轴 CurrentX=98.7 CurrentY=0.95 Print">" Line(0,0)-(0,99)'画Y轴 CurrentX=-0.5 CurrentY=99.25 Print"∧" Form1.ForeColor=vbBlack'打原点 DrawWidth=8 PSet(0,0) CurrentX=-1 CurrentY=-1 Print0 DrawWidth=2'打Y轴刻度 Fori=9To90Step9 Line(0,i)-(0.5,i) CurrentX=-2 CurrentY=i+1 Printi/9 Nexti Dimk$(81) k(9)="0--59" k(27)="60-69" k(45)="70-79" k(63)="80-89" k(81)="90-99" Fori=9To81Step18 CurrentX=i+2 CurrentY=-2 Printk(i); Nexti Line(9,27)-(18,0),vbBlue,BF Line(27,27)-(36,0),vbBlue,BF Line(45,9)-(54,0),vbBlue,BF Line(63,36)-(72,0),vbBlue,BF Line(81,81)-(90,0),vbBlue,BF CurrentX=40 CurrentY=90 FontSize=25 ForeColor=vbRed Print"vb成绩分布图" ForeColor=vbBlack FontSize=8 CurrentX=95 CurrentY=-2 Print"分数段" EndSub 概率成绩分布图 Cls Form1.FontSize=8 Scale(-20,100)-(100,-20)'建立坐标系 Line(0,0)-(99,0)'画线 Line(0,0)-(0,99) DrawWidth=8 PSet(0,0) CurrentX=-2 CurrentY=-1 Print0 CurrentX=98.6 CurrentY=1 Print">"'打x轴箭头 CurrentX=-0.5 CurrentY=99.45 Print"∧"'打y轴箭头 DrawWidth=2 Fori=9To90Step9 Line(0,i)-(0.8,i) CurrentX=-2 CurrentY=i+1 Printi/9 Nexti Dimk$(81) k(9)="0--59" k(27)="60-69" k(45)="70-79" k(63)="80-89" k(81)="90-99" Fori=9To81Step18 CurrentX=i+2 CurrentY=-2 Printk(i); Nexti Line(9,9)-(18,0),vbGreen,BF Line(27,27)-(36,0),vbGreen,BF Line(45,18)-(54,0),vbGreen,BF Line(63,63)-(72,0),vbGreen,BF Line(81,63)-(90,0),vbGreen,BF CurrentX=40 CurrentY=90 Form1.FontSize=25 Form1.ForeColor=vbRed Print"概率成绩分布图" Form1.FontSize=8 Form1.ForeColor=vbBlack CurrentX=95 CurrentY=-2 Print"分数段" EndSub 线代成绩分布图 PrivateSubxiandai_Click()'线代成绩分布图 Cls FontSize=8 ForeColor=vbBlack Scale(-20,100)-(100,-20)'建系 Line(0,0)-(99,0) CurrentX=98.75 CurrentY=0.95 Print">"'画X轴 Line(0,0)-(0,99) CurrentX=-0.525 CurrentY=99.25 Print"∧"'画Y轴 CurrentX=-1 CurrentY=-0.5 Print0 DrawWidth=6 PSet(0,0) DrawWidth=2'打原点 Fori=9To90Step9'打Y轴刻度 Line(0,i)-(1,i) CurrentX=-2 CurrentY=i+1 Printi/9 Nexti Dimk$(81) k(9)="0--59" k(27)="60-69" k(45)="70-79" k(63)="80-89" k(81)="90-99" Fori=9To81Step18 CurrentX=i+2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- vb 上机 实习 报告