ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:140.50KB ,
资源ID:27517905      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/27517905.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Java语言程序设计A基础实验2控制流程.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

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

1、Java语言程序设计A基础实验2控制流程实验课程名称:Java语言程序设计A实验项目名称基础实验2:控制流程实验成绩实 验 者专业班级组 别同 组 者无开始日期第一部分:实验预习报告(包括实验目的及意义,实验基本原理与方法,主要仪器设备及耗材,实验内容及要求,实验方案与技术路线等)一实验目的及意义 控制流程(选择、循环)的应用。二实验基本原理与方法1选择。2循环。三主要仪器设备及耗材1PC及其兼容机。2计算机操作系统。3程序编辑器EditPlus。4Java开发工具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 Test05 static double average; public static void main(String args) double markIn; Sc

4、anner sc=new Scanner(System.in); List marks=new ArrayList(); do System.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); 运行结果如下

5、: 实验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(); do System.out.print(请输入一名学生成绩输入负数结束:); markIn=sc.nextDouble(); marks.add(markIn); while(markIn=0); marks.remove(marks.size()

6、-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); 运行结果如下: 实验2-3程序代码如下:import java.util.*;public class Test07 public static void main(String args) double markIn; int gradeA=0,gradeB

7、=0,gradeC=0,gradeD=0,fail=0; Scanner sc=new Scanner(System.in); List marks=new ArrayList(); try do System.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

8、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分数段的

9、人数:+gradeA); System.out.println(80到90分数段的人数:+gradeB); System.out.println(70到80分数段的人数:+gradeC); System.out.println(60到70分数段的人数:+gradeD); System.out.println(60分以下的人数:+gradeD); 运行结果如下: 实验2-4程序代码如下:import java.util.*;public class Test08 public static void main(String args) try List marks=new ArrayList()

10、; getMark(marks); judgeMark(marks); catch (InputMismatchException e) System.err.print(输入有误,只能输入数字!); public static void getMark(List marksIn) throws InputMismatchException double markIn; Scanner keyBoard=new Scanner(System.in); do System.out.print(请输入一名学生成绩输入负数结束:); markIn=keyBoard.nextDouble(); if(

11、markIn100) System.err.println(分数值为0-100); else marksIn.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

12、.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时,输出此信息

13、 /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+占总分数的+n

14、umber_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集合解决了考试人数不确定问

15、题,最后也可以很方便的通过.size()方法的出考试人数,同时,在本次实验中是使用dowhile()来实现重复输入,其实也可以使用for循环实现此功能,在遍历集合求最大值、最小值、平均值、个分数级别的人数等等功能的时候,也可以使用增强的for循环来实现遍历,因为试验中不需要更改集合中的数值。此外,实验中在对最大值(max)和最小值(min)赋初值时一开始使他们的初值为0,但后来调试中发现得出的最小值始终未0,所以应当使他们的初始值为集合marks中的第一个值,这样才能得出正确的结果。二、小结、建议及体会 程序中代码比较长的时候,通常将为将不同的功能实现写成不同的方法,最后只需要在main()方法中调用即可,这样不仅大大增强了程序的可读性,并且通过模块化也能减少出错的概率,是调理更加清晰。此外,实验中对输入错误的处理还不够成熟,每当用户输入错误时能够提示用户输入错误,但提示完后,用户需要从头进行输入,这不是很好的用户体验,应再对程序进行改进,每次用户输入错误或者误操作,只需要重新输入当前的数值即可,无需重来来过。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1