Java语言程序设计A基础实验2控制流程Word文档格式.docx

上传人:b****1 文档编号:5746848 上传时间:2023-05-05 格式:DOCX 页数:13 大小:140.48KB
下载 相关 举报
Java语言程序设计A基础实验2控制流程Word文档格式.docx_第1页
第1页 / 共13页
Java语言程序设计A基础实验2控制流程Word文档格式.docx_第2页
第2页 / 共13页
Java语言程序设计A基础实验2控制流程Word文档格式.docx_第3页
第3页 / 共13页
Java语言程序设计A基础实验2控制流程Word文档格式.docx_第4页
第4页 / 共13页
Java语言程序设计A基础实验2控制流程Word文档格式.docx_第5页
第5页 / 共13页
Java语言程序设计A基础实验2控制流程Word文档格式.docx_第6页
第6页 / 共13页
Java语言程序设计A基础实验2控制流程Word文档格式.docx_第7页
第7页 / 共13页
Java语言程序设计A基础实验2控制流程Word文档格式.docx_第8页
第8页 / 共13页
Java语言程序设计A基础实验2控制流程Word文档格式.docx_第9页
第9页 / 共13页
Java语言程序设计A基础实验2控制流程Word文档格式.docx_第10页
第10页 / 共13页
Java语言程序设计A基础实验2控制流程Word文档格式.docx_第11页
第11页 / 共13页
Java语言程序设计A基础实验2控制流程Word文档格式.docx_第12页
第12页 / 共13页
Java语言程序设计A基础实验2控制流程Word文档格式.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

Java语言程序设计A基础实验2控制流程Word文档格式.docx

《Java语言程序设计A基础实验2控制流程Word文档格式.docx》由会员分享,可在线阅读,更多相关《Java语言程序设计A基础实验2控制流程Word文档格式.docx(13页珍藏版)》请在冰点文库上搜索。

Java语言程序设计A基础实验2控制流程Word文档格式.docx

2.计算机操作系统。

3.程序编辑器EditPlus。

4.Java开发工具JDK。

四.实验内容及要求

基础实验2-1:

从键盘读取一个考试分数列表,计算它们的平均分。

基础实验2-2:

从键盘读取一个考试分数列表,计算它们的最高分、最低分。

基础实验2-3:

从键盘读取一个考试分数列表,计算总考试人数和每个级别的人数(90~100

优,80~89良,70~79中,60~69及格,0~59不及格)。

基础实验2-4:

将实验2-1、2-2、2-3综合起来,从键盘读取一个考试分数列表,统计:

考试人数、最高分、最低分、平均分、每个级别的人数、每个级别的人数

占总考试人数的百分比。

五.实验方案及技术路线(设计思路、算法、注意事项)

考虑到从键盘中读取的考试分数个数不确定,并且分数有可能重复,所以此处使用ArrayList集合储存double类型数据,决定采用do{}while()循环实现不断从键盘读取分数值,之后结合for循环及if语句的使用,计算集合中的分数的平均分、最高分和最低分以及各个分数级别人数和所占百分比等等。

因为do{}while()循环是先执行do{}中的代码再判断,所以最后输入的负数会被存入集合的末尾,应该要将其删除,用语句marks.remove(marks.size()-1)实现。

第二部分:

实验过程记录(可加页)(代码、运行结果、实验中出现的问题及解决过程)

⏹实验2-1

程序代码如下:

importjava.util.*;

publicclassTest05

{

staticdoubleaverage;

publicstaticvoidmain(String[]args)

{

doublemarkIn;

Scannersc=newScanner(System.in);

List<

Double>

marks=newArrayList<

();

do

{

System.out.print("

请输入一名学生成绩[输入负数结束]:

"

);

markIn=sc.nextDouble();

marks.add(markIn);

}

while(markIn>

=0);

intlen=marks.size()-1;

marks.remove(len);

for(inti=0;

i<

len;

i++)

average+=marks.get(i)/len;

System.out.print(len+"

名学生成绩的平均分为:

+average);

}

}

运行结果如下:

⏹实验2-2

publicclassTest06{

doublemarkIn,max,min;

marks.remove(marks.size()-1);

max=min=marks.get(0);

for(doubleitem:

marks)

if(item>

max)

{

max=item;

}

if(item<

min)

min=item;

System.out.println("

学生分数列表:

+marks);

最低分:

+min+"

\n"

+"

最高分:

+max);

⏹实验2-3

publicclassTest07

publicstaticvoidmain(String[]args)

intgradeA=0,gradeB=0,gradeC=0,gradeD=0,fail=0;

try{

do

System.out.print("

markIn=sc.nextDouble();

marks.add(markIn);

while(markIn>

marks.remove(marks.size()-1);

}catch(Exceptione){

System.out.println("

无效输入!

charch=0;

=90&

&

item<

100)

ch='

A'

;

=80&

90)

B'

=70&

80)

C'

=60&

70)

D'

60)

E'

switch(ch)

case'

:

gradeA++;

break;

gradeB++;

gradeC++;

gradeD++;

default:

System.out.println("

错误信息"

总考试人数为:

+marks.size());

90到100分数段的人数:

+gradeA);

80到90分数段的人数:

+gradeB);

70到80分数段的人数:

+gradeC);

60到70分数段的人数:

+gradeD);

60分以下的人数:

⏹实验2-4

publicclassTest08{

List<

getMark(marks);

judgeMark(marks);

}catch(InputMismatchExceptione){

System.err.print("

输入有误,只能输入数字!

publicstaticvoidgetMark(List<

marksIn)throwsInputMismatchException

ScannerkeyBoard=newScanner(System.in);

markIn=keyBoard.nextDouble();

if(markIn>

{

System.err.println("

分数值为0-100"

}

else

marksIn.add(markIn);

marksIn.remove(marksIn.size()-1);

publicstaticvoidjudgeMark(List<

marksIn)

doublemax=marksIn.get(0),min=marksIn.get(0),avg=0;

intnumber_A=0,number_B=0,number_C=0,number_D=0,number_Fail=0,num=0;

num=marksIn.size();

marksIn)

avg+=item/num;

number_A++;

number_B++;

number_C++;

number_D++;

number_Fail++;

//当分数大于100时,输出此信息

//default:

总人数:

+num+"

平均分:

+avg+"

+number_A+"

占总分数的"

+number_A*100.0/num+"

%"

+number_B+"

+number_B*100.0/num+"

+number_C+"

+number_C*100.0/num+"

+number_D+"

+number_D*100.0/num+"

+number_Fail+"

+number_Fail*100.0/num+"

1)当输入错误时,给出提示如下:

2)当输入分数大于100时给出提示如下:

3)正常输入后结果如下:

 

教师签字__________

第三部分结果与讨论(可加页)

一、实验结果分析(包括数据处理、影响因素讨论、综合分析和结论等)

试验中使用ArrayList集合解决了考试人数不确定问题,最后也可以很方便的通过.size()方法的出考试人数,同时,在本次实验中是使用do{}while()来实现重复输入,其实也可以使用for循环实现此功能,在遍历集合求最大值、最小值、平均值、个分数级别的人数等等功能的时候,也可以使用增强的for循环来实现遍历,因为试验中不需要更改集合中的数值。

此外,实验中在对最大值(max)和最小值(min)赋初值时一开始使他们的初值为0,但后来调试中发现得出的最小值始终未0,所以应当使他们的初始值为集合marks中的第一个值,这样才能得出正确的结果。

二、小结、建议及体会

程序中代码比较长的时候,通常将为将不同的功能实现写成不同的方法,最后只需要在main()方法中调用即可,这样不仅大大增强了程序的可读性,并且通过模块化也能减少出错的概率,是调理更加清晰。

此外,实验中对输入错误的处理还不够成熟,每当用户输入错误时能够提示用户输入错误,但提示完后,用户需要从头进行输入,这不是很好的用户体验,应再对程序进行改进,每次用户输入错误或者误操作,只需要重新输入当前的数值即可,无需重来来过。

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

当前位置:首页 > PPT模板 > 其它模板

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2