vb上机实习报告.docx

上传人:b****6 文档编号:6283686 上传时间:2023-01-05 格式:DOCX 页数:27 大小:1.28MB
下载 相关 举报
vb上机实习报告.docx_第1页
第1页 / 共27页
vb上机实习报告.docx_第2页
第2页 / 共27页
vb上机实习报告.docx_第3页
第3页 / 共27页
vb上机实习报告.docx_第4页
第4页 / 共27页
vb上机实习报告.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

vb上机实习报告.docx

《vb上机实习报告.docx》由会员分享,可在线阅读,更多相关《vb上机实习报告.docx(27页珍藏版)》请在冰豆网上搜索。

vb上机实习报告.docx

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

Print

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

Print

Nexti

Close#2

EndSub

加权平均分

PrivateSubaver_Click()

Cls

Print

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1