计算机上机实习报告.docx

上传人:b****5 文档编号:2951806 上传时间:2022-11-16 格式:DOCX 页数:19 大小:352.37KB
下载 相关 举报
计算机上机实习报告.docx_第1页
第1页 / 共19页
计算机上机实习报告.docx_第2页
第2页 / 共19页
计算机上机实习报告.docx_第3页
第3页 / 共19页
计算机上机实习报告.docx_第4页
第4页 / 共19页
计算机上机实习报告.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

计算机上机实习报告.docx

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

计算机上机实习报告.docx

计算机上机实习报告

长江大学

计算机上机实习报告

学校:

长江大学

院系:

###

班级:

***

姓名:

***

序号:

@@

日期:

2013年1月4日

辅导老师:

###,###

一.实习目的

1.熟悉VB6.0的开发环境,掌握基本的编程方法,熟悉用VB语言完成一个应用程序的设计过程,掌握有关编辑和调试程序的方法和技巧;

2.学习二维数组,一维数组,函数过程的定义及应用,字过程,自定义类型,单循环,多循环,标准模块的定义,菜单编辑器的使用,数据文件的创建与读写等。

3.了解开发简单应用程序的全过程,包括:

分析﹑设计﹑编程﹑调试和编写报告.

二.实习内容

(一)用记事本新建一个文本文件,将本班的M名学生在本学期的N门考试课的成绩(要求用假想分数,并要求将自己的每门课的分数定在96分以上,放在第一列;而将别人的大多数课程分数都定在96分以下)输入到这个文件中,建议按如下形式存放(注:

20=

学号姓名英语VB数学

1我自己969899

2李某919667

3王某756768

4赵某686777

(二)将本学期的N门课程及其学分(16学时为1个学分)输入到另一个数据文件(文件类型同上题)中,建议按如下形式存放:

编号课程名称课程学分

1英语5.0

2VB程序3.5

3数学4.5

(三)请编写一个简单的学生成绩管理程序,要求完成以下功能:

1)根据以上两文件内容分别计算每个学生N门课的加权平均分(保留两位小数,四舍五入),按平均分排列名次,平均分相同则名次并列,如第1,2,2,4,5,5,7……名。

用VB创建一个数据文件,存放班级的成绩表,建议按以下形式存放。

学号姓名英语VB数学平均成绩名次

1我自己96989980.52

2李某91966778.23

3王某75676888.81

4赵某68677768.54

2)分别统计全班每门课的平均分,并计算各分数段(60分以下;60---69;70---79;80---89;90分以上)的学生人数。

用创建一个新的数据文件,在该文件中存放数据的格式如下:

范围英语VB………………

>=9035………………

80—901012………………

……………………………………………

3)打印每名学生成绩条(并将结果存放到用VB创建的一个新的数据文件中)。

4)打印所有存在不及格课程学生的名单(含学号,不及格课程名称,课程的学分及成绩)。

5)打印优等生名单(含学号,N门课程成绩,平均分,名次)。

优等生条件:

A)平均分>=90

B)名次在全班位于前三名

C)平均分>=85,并且有二门课的成绩都>=95

三.系统设计流程图

四分析设计与说明:

(一):

首先,在记事本上输入两份文件,即学生成绩表和课程学分表

(二):

存放学生的一些基本信息,如姓名,学号,成绩等,这就要在VB中通过自定义类型来解决.

(三):

在标准模块中定义了学生的学号、姓名、各科的成绩和课程的名称和它对应的学分。

(四):

加权平均分用了双循环,排名用了数组的选择法,多循环等,每门课的平均分声明了两个数组加上双循环,求各分数段的学生人数是定义一个二维数组,读取相应的原始文件,每个学生的成绩是结合平均分和班级名次代码求的,求优等生名单时定义一个逻辑字符并用选择语句求的。

五.系统分析与实现过:

(一)部分过程(函数)的源程序清单;

程序调试过程中遇到的问题及解决办法

由于每项信息的意义不同,数据类型也不同,但还要同时作为一个整体来描述和处理,这种情况在VB中通过自定义类型来解决。

在练习中将自定义过程放在模块中实现。

VB中自定义类型通过Type语句来实现,形式如下:

Type自定义类型名

元素名1As数据类型名

…………

元素名2As数据类型名

EndType

此次实习中定义的自定义过程如下:

Typexscjb

xhAsString*3

xmAsString*4

cj(1To4)AsSingle

averAsSingle

rankAsSingle

EndType

Typescore

bhAsString

kcAsString

xfAsInteger

EndType

Functionspace1(ByValsssAsString)

Dimx%

x=InStr(sss,"")

DoWhilex>0

sss=Replace(sss,"","")

x=InStr(sss,"")

Loop

space1=sss

EndFunction

(二):

将两份txt文件中的内容读到程序中,一份是学生成绩表,一份是各个学科的学分。

此次过程中用到input,其中要注意到两点:

1.要实现数据读入,输出,用lineinput时应采用循环结构,即边读边打印。

2.对数据处理,要注意数据类型。

学生成绩表的读入:

PrivateSubinformation_Click()

Dimst$(),stri$

Open"D:

\MyDocuments\课设\学生成绩.txt"ForInputAs#1

n=0

LineInput#1,str1

Printstr1

DoWhileNotEOF

(1)

n=n+1

ReDimPreservestu(n)

LineInput#1,str1

str1=Trim(str1):

str1=space1(str1)

st=Split(str1,"")

stu(n).xh=st(0):

stu(n).xm=st

(1)

stu(n).cj

(1)=st

(2):

stu(n).cj

(2)=st(3)

stu(n).cj(3)=st(4):

stu(n).cj(4)=st(5)

PrintSpace

(1);stu(n).xh;Space(4);stu(n).xm;

PrintSpace(3);stu(n).cj

(1);Space(3);stu(n).cj

(2);

PrintSpace(3);stu(n).cj(3);Space(3);stu(n).cj(4)

Loop

Close#1

EndSub

学分的打印:

PrivateSubsubject_Click()

Cls

Open"D:

\MyDocuments\课设\学分.txt"ForInputAs#2

Dimn%,i%

n=5

Fori=1Ton

LineInput#2,str1:

Printstr1“循环结构打印”

Nexti

Close#2

EndSub

 

在分割字符串之前先定义了一个函数过程space1,此过程的作用是将两个字符串之间的多个空格都改为一个。

此过程的思想是在一行中查找两个空格,然后用一个空格将两个空格替换。

循环若干次后变可以将多个空格改为一个空格,以便于下一步进行。

程序代码如下:

PublicFunctionspace1(ByValsssAsString)'自定义函数过程

Dimx%

x=InStr(sss,"")'查找两个空格

DoWhilex>0'找到两个空格

sss=Replace(sss,"","")'用一个空格取代两个空格

x=InStr(sss,"")'继续查找两个空格

Loop

space1=sss'函数返回值

EndFunction

 

成绩表和课程学分显示结果

(三)计算加权分,此时需要将四门课学分读入,用一个动态数组将各科的学分存储在其中。

学分的读入:

PrivateSub加权average_Click()

Cls

Dimst$(),stri$,cd$()

Open"D:

\MyDocuments\课设\学分.txt"ForInputAs#2

n=0

DoWhileNotEOF

(2)

n=n+1

ReDimPreservesb(n)

LineInput#2,str2

str2=Trim(str2):

str2=space1(str2)

cd=Split(str2,"")

sb(n).bh=cd(0)

sb(n).kc=cd

(1)

sb(n).xf=Val(cd

(2))注意此时应将字符型数据转化为数值型

Loop

求加权平均分:

Open"D:

\MyDocuments\课设\学生成绩.txt"ForInputAs#1

LineInput#1,str1

Printstr1&"平均分"

n=0

DoWhileNotEOF

(1)

n=n+1

ReDimPreservestu(n)

LineInput#1,str1

str1=Trim(str1):

str1=space1(str1)

st=Split(str1,"")

stu(n).xh=st(0):

stu(n).xm=st

(1)

stu(n).cj

(1)=st

(2):

stu(n).cj

(2)=st(3)

stu(n).cj(3)=st(4):

stu(n).cj(4)=st(5)

stu(n).aver=(stu(n).cj

(1)*sb

(1).xf+stu(n).cj

(2)*sb

(2).xf+stu(n).cj(3)*sb(3).xf+stu(n).cj(4)*sb(4).xf)/(sb

(1).xf+sb

(2).xf+sb(3).xf+sb(4).xf)

PrintSpace

(1);stu(n).xh;Space(4);stu(n).xm;

PrintSpace(3);stu(n).cj

(1);Space(3);stu(n).cj

(2);

PrintSpace(3);stu(n).cj(3);Space(3);stu(n).cj(4);Space(4);Format(stu(n).aver,"00.00")

Loop

加权平均分运行结果

(四)计算排名

1.利用算出来的加权平均分来排名

2.将每个人的名次构成一个数组

PrivateSubrank_Click()

Cls

Dimst$(),stri$,cd$(),i%,j%,k%

Dimrank()AsInteger

Open"D:

\MyDocuments\课设\学分.txt"ForInputAs#2

n=0

DoWhileNotEOF

(2)

n=n+1

ReDimPreservesb(n)

LineInput#2,str2

str2=Trim(str2):

str2=space1(str2)

cd=Split(str2,"")

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

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

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

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