




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验课程名称:Java语言程序设计A实验项目名称基础实验2:控制流程实验成绩实 验 者专业班级组 别同 组 者无开始日期第一部分:实验预习报告(包括实验目的及意义,实验基本原理与方法,主要仪器设备及耗材,实验内容及要求,实验方案与技术路线等)一实验目的及意义 控制流程(选择、循环)的应用。二实验基本原理与方法1选择。2循环。三主要仪器设备及耗材1PC及其兼容机。2计算机操作系统。3程序编辑器EditPlus。4Java开发工具JDK。四实验内容及要求基础实验2-1:从键盘读取一个考试分数列表,计算它们的平均分。基础实验2-2:从键盘读取一个考试分数列表,计算它们的最高分、最低分。基础实验2-3:从键盘读取一个考试分数列表,计算总考试人数和每个级别的人数(90100优,8089良,7079中,6069及格,059不及格)。基础实验2-4:将实验2-1、2-2、2-3综合起来,从键盘读取一个考试分数列表,统计:总考试人数、最高分、最低分、平均分、每个级别的人数、每个级别的人数占总考试人数的百分比。五实验方案及技术路线(设计思路、算法、注意事项) 考虑到从键盘中读取的考试分数个数不确定,并且分数有可能重复,所以此处使用ArrayList集合储存double类型数据,决定采用dowhile()循环实现不断从键盘读取分数值,之后结合for循环及if语句的使用,计算集合中的分数的平均分、最高分和最低分以及各个分数级别人数和所占百分比等等。 因为dowhile()循环是先执行do中的代码再判断,所以最后输入的负数会被存入集合的末尾,应该要将其删除,用语句marks.remove(marks.size()-1)实现。第二部分:实验过程记录(可加页)(代码、运行结果、实验中出现的问题及解决过程)n 实验2-1程序代码如下:import java.util.*;public class Test05static double average;public static void main(String args)double markIn;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;ilen;i+)average+=marks.get(i)/len;System.out.print(len+名学生成绩的平均分为:+average);运行结果如下:n 实验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(请输入一名学生成绩输入负数结束:);markIn=sc.nextDouble(); marks.add(markIn);while(markIn=0);marks.remove(marks.size()-1);max=min=marks.get(0);for(double item:marks)if(itemmax)max=item;if(itemmin)min=item;System.out.println(学生分数列表:+marks);System.out.println(最低分:+min+n+最高分:+max);运行结果如下:n 实验2-3程序代码如下:import java.util.*;public class Test07 public static void main(String args) double markIn;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); catch (Exception e) System.out.println(无效输入!);for(double item:marks)char ch = 0;if(item=90&item=80&item=70&item=60&item70)ch=D;if(item60)ch=E;switch(ch)case A:gradeA+;break;case B:gradeB+;break;case C:gradeC+;break;case D:gradeD+;break;case E:gradeD+;break;default :System.out.println(错误信息);System.out.println(总考试人数为:+marks.size();System.out.println(90到100分数段的人数:+gradeA);System.out.println(80到90分数段的人数:+gradeB);System.out.println(70到80分数段的人数:+gradeC);System.out.println(60到70分数段的人数:+gradeD);System.out.println(60分以下的人数:+gradeD);运行结果如下:n 实验2-4程序代码如下:import java.util.*;public class Test08 public static void main(String args)try List marks=new ArrayList();getMark(marks);judgeMark(marks); catch (InputMismatchException e) System.err.print(输入有误,只能输入数字!);public static void getMark(List marksIn) throws InputMismatchExceptiondouble markIn;Scanner keyBoard=new Scanner(System.in);doSystem.out.print(请输入一名学生成绩输入负数结束:);markIn=keyBoard.nextDouble();if(markIn100) System.err.println(分数值为0-100);elsemarksIn.add(markIn);while(markIn=0);marksIn.remove(marksIn.size()-1);public static void judgeMark(List marksIn)double max = marksIn.get(0),min = marksIn.get(0),avg=0;int number_A = 0,number_B=0,number_C=0,number_D=0,number_Fail=0,num=0;num=marksIn.size();for(double item:marksIn)char ch = 0;avg+=item/num;if(itemmax)max=item;if(item=90&item=80&item=70&item=60&item70)ch=D;if(item60)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;/当分数大于100时,输出此信息/default :System.out.println(分数值为0-100);break;System.out.println(总人数:+num+n+平均分:+avg+n+最低分:+min+n+最高分:+max);System.out.println(90到100分数段的人数:+number_A+占总分数的+number_A*100.0/num+%);System.out.println(80到90分数段的人数:+number_B+占总分数的+number_B*100.0/num+%);System.out.println(70到80分数段的人数:+number_C+占总分数的+number_C*100.0/num+%);System.out.println(60到70分数段的人数:+number_D+占总分数的+number_D*100.0/num+%);System.out.println(60分以下的人数:+number_Fail+占总分数的+number_Fail*100.0/num+%);运行结果如下: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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 餐饮合作协议的基本示本
- 产业链技术标准统一-洞察与解读
- 2025年四川省事业单位教师招聘考试生物学科专业知识真题模拟试卷
- 2025年陕西西安事业单位招聘考试综合类专业能力测试试卷(艺术设计类)真题模拟解析
- 2025年天津市和平区面向靖远籍招聘事业单位工作人员模拟试卷参考答案详解
- 2025年综合类事业单位招聘考试公共基础知识真题模拟试卷(河北)
- 跨境支付合规难题-洞察与解读
- 贺州期末考试卷子及答案
- 2025年中国无线智能可视门铃行业市场分析及投资价值评估前景预测报告
- 北师大版八年级上学期数学第四章一次函数第2节认识一次函数练习题(含答案)
- 航空服务艺术与管理专业介绍
- 新质生产力五要素
- 快递员合同协议
- 破产清算造价咨询合同协议
- 配送车辆消毒管理制度
- 手术室循证护理
- 2024-2030年全球汽车级智能座舱SoC芯片行业现状、重点企业分析及项目可行性研究报告
- 2025年高中政治选择性必修二《法律与生活》全册知识点总结
- 冠状动脉微血管疾病诊断和治疗中国专家共识(2023版)解读
- 白兰地酒水知识
- 《稀土冶金技术史》课件-中国南方风化淋积型(离子吸附型)稀土矿床
评论
0/150
提交评论