数据统计.docx

上传人:b****5 文档编号:4444874 上传时间:2022-12-01 格式:DOCX 页数:13 大小:118.60KB
下载 相关 举报
数据统计.docx_第1页
第1页 / 共13页
数据统计.docx_第2页
第2页 / 共13页
数据统计.docx_第3页
第3页 / 共13页
数据统计.docx_第4页
第4页 / 共13页
数据统计.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

数据统计.docx

《数据统计.docx》由会员分享,可在线阅读,更多相关《数据统计.docx(13页珍藏版)》请在冰豆网上搜索。

数据统计.docx

数据统计

沈阳航空航天大学

课程设计

学号2009040302076

班级94030203

姓名曹帅

指导教师王晓岩

2011年3月15日

沈阳航空航天大学

课程设计任务书

学院:

航空宇航工程专业:

飞行器制造工程班级:

94030203

学号:

2009040302076题目:

数据统计

一、课程设计时间

2011年3月7~11日(第1周),共计1周,20学时。

二、课程设计内容

一个文本文件(file11_数据统计.txt)存储了若干位同学的数学成绩,文件中每行的内容按照顺序为:

学号,班级,数学成绩,姓名。

请完成以下问题:

①将文件中的内容全部显示到窗体,并统计总人数。

②统计数学成绩的平均分。

③统计各个班级的平均分。

三、课程设计要求

程序质量:

✧贯彻事件驱动的程序设计思想。

✧用户界面友好,功能明确,操作方便;可以加以其它功能或修饰。

✧用户界面中的菜单至少应包括“打印全部,并统计人数”、“计算总平均分”、“计算各个班的平均分”、“退出”4项。

✧代码应适当缩进,并给出必要的注释,以增强程序的可读性。

课程设计说明书:

✧课程结束后,上交课程设计说明书和源程序。

课程设计说明书的内容参见提供的模板。

四、指导教师和学生签字

指导教师:

________学生签名:

________

五、成绩

六、教师评语

 

目录

需求分析3

设计分析4

技术要点6

主要界面截图10

总结13

完整的源程序15

参考文献18

 

需求分析

一个文本文件(file11_数据统计.txt)存储了若干位同学的数学成绩,文件中每行的内容按照顺序为:

学号,班级,数学成绩,姓名。

要求:

(1)将文件中的内容全部显示到窗体,并统计总人数。

(2)统计数学成绩的平均分。

(3)统计各个班级的平均分。

设计分析

(1)概述:

基本原理:

建立程序设计与文本文件的连接,通过程对文本文件进行读操作。

然后通过循环语句对文件内容进行操作。

(2)总体设计:

图1总体设计

(3)详细设计:

技术要点

1读取文件

Open文件名For模式As【#】文件号

程序段如下:

OptionExplicit

OptionBase1

PrivateTypestudentype‘自定义数组类型

numAsString‘学号

claAsString‘班级

scorAsInteger‘数学成绩

namAsString‘姓名

countAsInteger‘学生人数

EndType

Dimxue()Asstudentype‘定义数组类型

PrivateSubForm_Load()

DimiAsInteger

i=1

Open"file11_数据统计.txt"ForInputAs#1‘对文件进行读操作

DoWhileNotEOF

(1)

ReDimPreservexue(k)

Input#1,xue(k).num,xue(k).cla,xue(k).scor,xue(k).nam

k=k+1

Loop

Close#1

Fori=1ToUBound(stu)‘对学生人数进行赋值

stu(i).count=1

xue(i).count=1

Nexti

EndSub

2文件内容显示在窗体上并且统计总人数

【对象.】print表达式

程序段如下:

PrivateSubprint_Click()

DimcountAsInteger

count=0

Print"班级"&Space(6)&"姓名"&Space

(2)&"学号"&Space(8)&"成绩"

Fori=1ToUBound(xue)

count=xue(i).count+count

Printxue(i).cla&Space

(2)&xue(i).nam&Space

(2)&xue(i).num&Space

(2)&xue(i).scor

Nexti

Print"总人数:

";count

EndSub

3计算总平均分

程序段如下:

PrivateSubaver1_Click()‘计算总平均分

DimsumAsInteger

DimcountAsInteger

Fori=1ToUBound(stu)

sum=stu(i).scor+sum

count=stu(i).count+count

Nexti

Picture1.Print"总平均分";Format(sum/count,"0.000")

EndSub

4计算各班平均分

For循环控制变量=初值To终值【Step步长】

循环体

Next循环控制变量

程序段如下:

PrivateSubaver2_Click()

DimiAsInteger

DimkAsInteger

DimjAsInteger

i=1

j=1

k=1

Fori=1ToUBound(stu)‘查询班级,计算各班级班级平均分

Forj=i+1ToUBound(stu)

Ifstu(i).cla=stu(j).claThen

stu(i).scor=stu(i).scor+stu(j).scor

stu(i).count=stu(i).count+1

Fork=jToUBound(stu)-1

stu(k)=stu(k+1)

Nextk

t=Val(UBound(stu))-1

ReDimPreservestu(t)

EndIf

Ifj=UBound(stu)ThenExitFor

Nextj

Nexti

t=UBound(stu)

Fori=1ToUBound(stu)–1‘判断学生,并对已出现的班级进行覆盖

Ifstu(i).cla=stu(t).claThen

stu(i).scor=stu(i).scor+stu(t).scor

stu(i).count=stu(i).count+1

ReDimPreservestu(t-1)‘重新定义数组

ExitFor

EndIf

Nexti

Fori=1ToUBound(stu)‘在图片框打印文件内容

Picture1.Print"班级:

";stu(i).cla&Space

(2);

Picture1.Print"平均分:

";Format(stu(i).scor/stu(i).count,"0.000");Space

(2);

Picture1.Print"班级总人数:

";stu(i).count

Nexti

EndSub

主要界面截图

图3显示文件内容及统计总人数

图4计算总平均分

图5各班平均分

总结

这次课设我的题目是数据统计,通过这次课设让我了解了VB与文本文件的联系,可以利用Open语句读文本文件进行读写操作,还可以能够对文本文件进行修改。

同时,支持自定义数组类型,为文件的读取及对其内容的操作提供了很大的方便。

循环语句的恰当运用可以使问题简单化、解决的高效化。

在课设过程中,我遇到了重重困难,例如:

在计算各班的数学成绩是,必须先统计各班号时出现了问题,通过老师的指点和自己查阅资料,多次试验和命令的调试,我克服了困难,顺利的完成了任务。

同时我也了解了VB的出现是一场技术革命,它活中各个方面都能发挥巨大的作用,VB及其它语言的开发与利用使生活中很多看似复杂的问题变得简单,从而使解决问题的效率大大提高。

所以,学好VB是社会发在生展的需要。

把编程语言和自己的专业同时进行是整个社会的所趋。

 

完整的源程序

OptionExplicit

OptionBase1

PrivateTypestudentype

numAsString

claAsString

scorAsInteger

namAsString

countAsInteger

EndType

Dimstu()Asstudentype

Dimxue()Asstudentype

PrivateSubaver1_Click()

DimsumAsInteger

DimcountAsInteger

Fori=1ToUBound(stu)

sum=stu(i).scor+sum

count=stu(i).count+count

Nexti

Picture1.Print"总平均分";Format(sum/count,"0.000")

EndSub

PrivateSubaver2_Click()

DimtAsInteger

DimiAsInteger

DimkAsInteger

DimjAsInteger

i=1

j=1

k=1

Fori=1ToUBound(stu)

Forj=i+1ToUBound(stu)

Ifstu(i).cla=stu(j).claThen

stu(i).scor=stu(i).scor+stu(j).scor

stu(i).count=stu(i).count+1

Fork=jToUBound(stu)-1

stu(k)=stu(k+1)

Nextk

t=Val(UBound(stu))-1

ReDimPreservestu(t)

j=i+1

EndIf

Ifj=UBound(stu)ThenExitFor

Nextj

Nexti

t=UBound(stu)

Fori=1ToUBound(stu)-1

Ifstu(i).cla=stu(t).claThen

stu(i).scor=stu(i).scor+stu(t).scor

stu(i).count=stu(i).count+1

ReDimPreservestu(t-1)

ExitFor

EndIf

Nexti

Fori=1ToUBound(stu)

Picture1.Print"班级:

";stu(i).cla&Space

(2);

Picture1.Print"平均分:

";Format(stu(i).scor/stu(i).count,"0.000");Space

(2);

Picture1.Print"班级总人数:

";stu(i).count

Nexti

EndSub

PrivateSubexit_Click()

End

EndSub

PrivateSubForm_Load()

DimiAsInteger,kAsInteger

i=1

k=1

Open"file11_数据统计.txt"ForInputAs#1

DoWhileNotEOF

(1)

ReDimPreservexue(k)

Input#1,xue(k).num,xue(k).cla,xue(k).scor,xue(k).nam

k=k+1

Loop

Close#1

Open"file11_数据统计.txt"ForInputAs#1

DoWhileNotEOF

(1)

ReDimPreservestu(i)

Input#1,stu(i).num,stu(i).cla,stu(i).scor,stu(i).nam

i=i+1

Loop

Close#1

Fori=1ToUBound(stu)

stu(i).count=1

xue(i).count=1

Nexti

EndSub

PrivateSubprint_Click()

DimcountAsInteger

count=0

Print"班级"&Space(6)&"姓名"&Space

(2)&"学号"&Space(8)&"成绩"

Fori=1ToUBound(xue)

count=xue(i).count+count

Printxue(i).cla&Space

(2)&xue(i).nam&Space

(2)&xue(i).num&Space

(2)&xue(i).scor

Nexti

Print"总人数:

";count

EndSub

参考文献

[1]龚沛曾等.《VisualBasic程序设计教程》.北京:

高等教育出版社,2007

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

当前位置:首页 > PPT模板 > 可爱清新

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

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