Java语言程序设计A基础实验控制流程

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
{
ch='A';
}
if(item>=80&&item<90)
{
ch='B';
}
if(item>=70&&item<80)
{
ch='C';
}
if(item>=60&&item<70)
{
ch='D';
}
if(item<60)
ch='E';
switch(ch)
{
case'A':gradeA++;break;
二、小结、建议及体会
程序中代码比较长的时候,通常将为将不同的功能实现写成不同的方法,最后只需要在main()方法中调用即可,这样不仅大大增强了程序的可读性,并且通过模块化也能减少出错的概率,是调理更加清晰。此外,实验中对输入错误的处理还不够成熟,每当用户输入错误时能够提示用户输入错误,但提示完后,用户需要从头进行输入,这不是很好的用户体验,应再对程序进行改进,每次用户输入错误或者误操作,只需要重新输入当前的数值即可,无需重来来过。
{
doublemarkIn;
ScannerkeyBoard=newScanner;
do
{
"请输入一名学生成绩[输入负数结束]:");
markIn=();
if(markIn>100)
{
"分数值为0-100");
}
else
{
(markIn);
}
}
while(markIn>=0);
()-1);
}
publicstaticvoidjudgeMark(List<Double>marksIn)
{
doublemax=(0),min=(0),avg=0;
intnumber_A=0,number_B=0,number_C=0,number_D=0,number_Fail=0,num=0;
num=();
for(doubleitem:marksIn)
{
charch=0;
avg+=item/num;
{
doublemarkIn,max,min;
Scannersc=newScanner;
List<Double>marks=newArrayList<Double>();
do
{
"请输入一名学生成绩[输入负数结束]:");
markIn=();
(markIn);
}
while(markIn>=0);
()-1);
getMark(marks);
judgeMark(marks);
}catch(InputMismatchExceptione){
"输入有误,只能输入数字!");
}
}
publicstaticvoidgetMark(List<Double>marksIn)throwsInputMismatchException
max=min=(0);
for(doubleitem:marks)
{
if(item>max)
{
max=item;
}
if(item<min)
{
min=item;
}
}
"学生分数列表:"+marks);
"最低分:"+min+"\n"+"最高分:"+max);
}
}
运行结果如下:
实验2-3
程序代码如下:
.*;
"70到80分数段的人数:"+gradeC);
"60到70分数段的人数:"+gradeD);
"60分以下的人数:"+gradeD);
}
}
运行结果如下:
实验2-4
程序代码如下:
.*;
publicclassTest08{
publicstaticvoidmain(String[]args)
{
try{
List<Double>marks=newArrayList<Double>();
try{
do
{
"请输入一名学生成绩[输入负数结束]:");
markIn=();
(markIn);
}
while(markIn>=0);
()-1);
}catch(Exceptione){
"无效输入!");
}
for(doubleitem:marks)
{
charch=0;
if(item>=90&&item<100)
}
while(markIn>=0);
intlen=()-1;
(len);
for(inti=0;i<len;i++)
{
average+=(i)/len;
}
"名学生成绩的平均分为:"+;
}
}
运行结果如下:
实验2-2
程序代码如下:
.*;
publicclassTest06{
publicstaticvoidmain(String[]args)
1.选择。
2.循环。
三.主要仪器设备及耗材
1.PC及其兼容机。
2.计算机操作系统。
3.程序编辑器EditPlus。
4.Java开发工具JDK。
四.实验内容及要求
基础实验2-1:从键盘读取一个考试分数列表,计算它们的平均分。
基础实验2-2:从键盘读取一个考试分数列表,计算它们的最高分、最低分。
基础实验2-3:从键盘读取一个考试分数列表,计算总考试人数和每个级别的人数(90~100
publicstaticvoidmain(String[]args)
{
doublemarkIn;
Scannersc=newScanner;
List<Double>marks=newArrayList<Double>();
do
{
"请输入一名学生成绩[输入负数结束]:");
markIn=();
(markIn);
ize()方法的出考试人数,同时,在本次实验中是使用do{}while()来实现重复输入,其实也可以使用for循环实现此功能,在遍历集合求最大值、最小值、平均值、个分数级别的人数等等功能的时候,也可以使用增强的for循环来实现遍历,因为试验中不需要更改集合中的数值。此外,实验中在对最大值(max)和最小值(min)赋初值时一开始使他们的初值为0,但后来调试中发现得出的最小值始终未0,所以应当使他们的初始值为集合marks中的第一个值,这样才能得出正确的结果。
因为do{}while()循环是先执行do{}中的代码再判断,所以最后输入的负数会被存入集合的末尾,应该要将其删除,用语句()-1)实现。
第二部分:实验过程记录(可加页)(代码、运行结果、实验中出现的问题及解决过程)
实验2-1
程序代码如下:
.*;
publicclassTest05
{
staticdoubleaverage;
{
ch='D';
}
if(item<60)
ch='E';
switch(ch)
{
case'A':number_A++;break;
case'B':number_B++;break;
case'C':number_C++;break;
case'D':number_D++;break;
case'E':number_Fail++;break;
case'B':gradeB++;break;
case'C':gradeC++;break;
case'D':gradeD++;break;
case'E':gradeD++;break;
default:"错误信息");
}
}
"总考试人数为:"+());
"90到100分数段的人数:"+gradeA);
"80到90分数段的人数:"+gradeB);
实验课程名称:Java语言程序设计A
实验项目名称
基础实验2:控制流程
实验成绩
实验者
专业班级
组别
同组者

开始日期
第一部分:实验预习报告(包括实验目的及意义,实验基本原理与方法,主要仪器设备及耗材,实验内容及要求,实验方案与技术路线等)
一.实验目的及意义
控制流程(选择、循环)的应用。
二.实验基本原理与方法
publicclassTest07
{
publicstaticvoidmain(String[]args)
{
doublemarkIn;
intgradeA=0,gradeB=0,gradeC=0,gradeD=0,fail=0;
Scannersc=newScanner;
List<Double>marks=newArrayList<Double>();
优,80~89良,70~79中,60~69及格,0~59不及格)。
基础实验2-4:将实验2-1、2-2、2-3综合起来,从键盘读取一个考试分数列表,统计:总
考试人数、最高分、最低分、平均分、每个级别的人数、每个级别的人数
占总考试人数的百分比。
五.实验方案及技术路线(设计思路、算法、注意事项)
考虑到从键盘中读取的考试分数个数不确定,并且分数有可能重复,所以此处使用ArrayList集合储存double类型数据,决定采用do{}while()循环实现不断从键盘读取分数值,之后结合for循环及if语句的使用,计算集合中的分数的平均分、最高分和最低分以及各个分数级别人数和所占百分比等等。
if(item>max)
{
max=item;
}
if(item<min)
{
min=item;
}
if(item>=90&&item<100)
{
ch='A';
}
if(item>=80&&item<90)
{
ch='B';
}
if(item>=70&&item<80)
{
ch='C';
}
if(item>=60&&item<70)
相关文档
最新文档