Java语言程序设计A基础实验控制流程_第1页
Java语言程序设计A基础实验控制流程_第2页
Java语言程序设计A基础实验控制流程_第3页
Java语言程序设计A基础实验控制流程_第4页
Java语言程序设计A基础实验控制流程_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验课程名称Java 语 言 程 序 设 计 A实验项目名称基础实验2:控制流程实验成绩实验者专业班级组另V同组者无开始日期第一部分:实验预习报告( 包括实验目的及意义,实验基本原理与方法,主要仪器设备及耗材,实验内容及要求,实验方案与技术路线等)一实验目的及意义控制流程(选择、循环)的应用。二实验基本原理与方法i选择。 2循环。三主要仪器设备及耗材1 PC及其兼容机。2.计算机操作系统。3 程序编辑器 EditPlus。4. Java开发工具JDK。四实验内容及要求基础实验2-1 :从键盘读取一个考试分数列表,计算它们的平均分。基础实验2-2 :从键盘读取一个考试分数列表,计算它们的最高分、

2、最低分。基础实验2-3 :从键盘读取一个考试分数列表,计算总考试人数和每个级别的人数(90100优,8089良,7079中,6069及格,059不及格)。基础实验2-4 :将实验2-1、2-2、2-3综合起来,从键盘读取一个考试分数列表,统计:总 考试人数、最高分、最低分、平均分、每个级别的人数、每个级别的人数 占总考试人数的百分比。五实验方案及技术路线(设计思路、算法、注意事项)考虑到从键盘中读取的考试分数个数不确定,并且分数有可能重复,所以此处使用 ArrayList集合储存double 类型数据,决定采用dowhile ()循环实现不断从键盘读取分数值,之后结合for循环及if语句的使用

3、,计算集合中的分数的平均分、最高分和最低分以及各个分数级别人 数和所占百分比等等。因为dowhile ()循环是先执行do中的代码再判断,所以最后输入的负数会被存入集合 的末尾,应该要将其删除,用语句 marks .remove( marks .size()-1) 实现。第二部分:实验过程记录(可加页)(代码、运行结果、实验中岀现的问题及解决过程)实验2-1程序代码如下:import java.util.*;public class Test05static double average ;public static void ma in (Strin gargs )double markln

4、 ;Scanner sc = new Scanner(System.in );List marks =new ArrayList(); doSystem. out .print(请输入一名学生成绩输入负数结束:); markIn =sc. nextDouble();marks .add( markIn );while (markIn =0);int len =marks .size()-1; marks .remove( len );for (int i =0; i len ; i +)average +=marks .get( i )/ len ;System. out .print( le

5、n +名学生成绩的平均分为:+average );运行结果如下:实验2-2程序代码如下:import java.util.*;public class Test06 public static void main(String args )double markIn , max, min ;Scanner sc = new Scanner(System.in );List marks =new ArrayList(); doSystem, out .print(请输入一名学生成绩 输入负数结束:); markln =sc. nextDouble(); marks .add( markln );

6、while (markln =0);marks .remove( marks .size()-1); max=min =marks .get(O);for (double item : marks)if (item max)max=item ;if (item min)min =item ;System. out .println(学生分数列表:+marks);System. out .println(最低分:+min+n +最高分:+max);运行结果如下:实验2-3程序代码如下:import java.util.*;public class Test07public static void

7、 main(String args )double markln ;int gradeA =0, gradeB =0, gradeC =0, gradeD =0, fail =0;Scanner sc = new Scanner(System.in );List marks =new ArrayList();try doSystem. out .print(请输入一名学生成绩输入负数结束:); markIn =sc. nextDouble();marks .add( markIn );while (markIn =0); marks .remove( marks .size()-1); cat

8、ch (Exception e) System. out .println(无效输入!);for (double item : marks)char ch = 0;if (item =90&item =80&item =70&item =60&item 70) ch=D;if (item 60)ch=Eswitch (ch)case A : gradeA +; break ; case B : gradeB +; break ; case C : gradeC +; break ; case D : gradeD +; break ; case E : gradeD +; break ; de

9、fault :System. out .println( System. out .println( System. out .println( System. out .println( System. out .println( System. out .println( System. out .println(运行结果如下:实验2-4II错误信息);总考试人数为:+marks .size();90到100分数段的人数:+gradeA);80到90分数段的人数:+gradeB );70到80分数段的人数:+gradeC);60到70分数段的人数:+gradeD);60分以下的人数:+gr

10、adeD );程序代码如下:import java.util.*;public class Test08 public static void main(Stringargs )try List marks =new ArrayList(); getMark (marks);judgeMark (marks); catch (InputMismatchExceptione) System. err .print(输入有误,只能输入数字!);public static void getMark(List marksIn ) throwsIn putMismatchExceptio ndouble

11、 markln ;Scanner keyBoard =new Scanner(System.in );doSystem. out .print(请输入一名学生成绩输入负数结束:); markIn =keyBoard .nextDouble();if (markIn 100)System.err.println(分数值为 0-100);elsemarksIn .add( markIn );while (markIn =0);marksIn .remove( marksIn .size()-1);public static void judgeMark(Listmarks In )double m

12、ax = marks In .get(0), min = marks In .get(0), avg =0;int nu mber_A =0, number_B=0, number_C=0, number_D=0, number_Fail =0, num=0;num=marksIn .size();for (double item : marks In )char ch = 0;avg +=item / num;if (item ma max=item ;if (item =90&item =80&item =70&item =60&item 70) ch=D;if (item 60) ch=

13、E;switchcase(ch)A:number_A+; break ;caseB:number_B+; break ;caseC:number_C+; break ;caseD:number_D+; break ;caseE:number_Fail +; break/当分数大于100时,输出此信息平均分:+avg +n +number_A+占总分+number_B+占总分数+number_C+占总分数+number_D+占总分数System. out .println(总人数:+num+n +最低分:+min+n +最高分:+max);System. out .println(90 至U 1

14、00 分数段的人数:数的+number_A*100.0/ num+%);System. out .println(80 到 90 分数段的人数:的+number_B*100.0/ num+%);System. out .println(70 到 80 分数段的人数:的+number_C*100.0/ num+%);System. out .println(60 到 70 分数段的人数:的+number D*100.0/ num+%);System. out .println(60 分以下的人数:+ number_Fail +占总分数的+number_Fail *100.0/ num+%);运行

15、结果如下:1)当输入错误时,给出提示如下:2)当输入分数大于 100时给岀提示如下:3)正常输入后结果如下:教师签字第三部分结果与讨论(可加页)一、实验结果分析(包括数据处理、影响因素讨论、综合分析和结论等)试验中使用 ArrayList集合解决了考试人数不确定问题,最后也可以很方便的通过.size ()方法的岀考试人数,同时,在本次实验中是使用dowhile ()来实现重复输入,其实也可以使用for循环实现此功能,在遍历集合求最大值、最小值、平均值、个分数级别的人数等等功能 的时候,也可以使用增强的for循环来实现遍历,因为试验中不需要更改集合中的数值。此外,实验中在对最大值(max)和最小值(min )赋初值时一开始使他们的初值为0,但后来调试中发现得岀的最小值始终未0,所以应当使他们的初始值为集合marks中

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论