继承与多态实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《高级Java编程技术》课程实验报告
院(系)名称:计算机学院专业班级:09计科 3 班
学号:姓名:
实验题目:实验10继承与多态
实验日期:2011/11/29实验(上机)学时:2
一、实验内容、要求
1.实验内容:计算课程成绩
2.要求:
编写应用程序,读入以下风格的文本文件,并显示最后的课程成绩,根据列出的公式,对于本科生和研究生,课程成绩的计算方法不同。输入的文本格式如下:
(1)用单独的一行表示一个学生的信息。
(2)每行使用下面的格式:
其中,
生的姓和名;
(3)“END”指明输入的结束。字母的大小写不重要。
公式如下:
学生类型评分方案
本科生通过,如果(test1+test2+test3)/3>=70
研究生通过,如果(test1+test2+test3)/3>=80
实现一个类完成以下功能:
(1)读入输入文本文件。
(2)计算课程成绩。
(3)输出结果。
我们将用五个增量步骤开发此程序:
(1)以程序结构开始,定义ComputeGrades类的框架。
(2)实现printResult方法,定义实现printResult所必需的任何其他方法。
(3)实现computerGrades方法,定义实现computerGrades所必需的任何其他方法。
(4)实现readDate方法,定义实现readDate所必需的任何其他方
法。
(5)最后完成并改进。
二、所采用的数据结构
如:线性表,二叉树,树,图等。你在此用到了啥样的数据结构就写啥。无数据结构。
三、实验的主要模块(或函数)及其功能
函数分块及各块主要功能的文字描述
ComputGrades类:这是本程序的主类,且是MainWindow的子类。MainWindows本身是Jframe的子类,并且又将其自身放在屏幕中间的功能。ComputGrades类包含的方法如下:
1、构造方法。生成任意大小的数组,让程序员在构造方法中传递数组的
大小,不在构造方法中生成数组。
2、printResult方法。将学生信息机计算出来的成绩输出到OutputBox
对象。
private void printResult()
3、conputeGrade方法。扫描Student对象数组,并计算课程成绩。
private void computeGrade()
4、readData方法。打开文本文件,并从中读取数据,从输入数据生成
Student对象的数组。如果此操作成功,则返回true。
private boolean readData()
5、processDate方法。显示自身,并执行三个主要任务。
public void processData()
6、buildRoster方法。每次从指定的文件读取一行数据,对于每行数据,
生成一个相应的学生对象。如果行中的数据与指定的格式不相符,则忽略此行。
private boolean buildRoster(String filename)
7、createStudent方法。如果输入行中的类型是U或G,则通过调用
newStudentWithData方法生成学生对象。如果成功,则返回生成的学生,否则,返回unll。
private Student createStudent(String line)
8、newStudentWithData 方法。通过重复调用StringTokenizer 对象的
nextToken 方法,该方法生成UndergraduateStudent 或GraduateStudent 对象,并将对象赋给此对象。
四、主要模块(或函数)的算法思想和程序框图
上面三中的各块的具体算法实现文字描述或框图。
ComputeGrades 的程序图:
五、程序运行时的输入数据(随机产生的数据要求输出显示),输出结果
1、(1)打开保存有学生成绩信息的文件,此文件所有行的格式都正确:
MainWindow OutputBox ComputeGrades Gradute UnderGradute
没有显示 系统类
(2)输出结果:
2、(1)打开保存有学生成绩信息的文件,此文件某些行的格式不正确,例如:第四行的Mary Hin和Mick Taylor的格式有错,缺少一次成绩:
(2)程序的处理结果将会把格式有错的两行忽略掉,输出结果为: