JAVA作业——计算平均分和总成绩

合集下载

java习题

java习题
30、编写程序,要求用递归的方法求解表达式1×2+2×3+3×4+4×5+5×6+6×7+7×8+8×9+9×10的值,并将结果按格式1×2+2×3+3×4+4×5+5×6+6×7+7×8+8×9+9×10=330形式输出。
31、编写程序,利用循环控制语句输出如下数字金字塔图形。
老师3:发送第78份试卷
老师2:发送第77份试卷
老师3:发送第76份试卷
... ...
老师2:发送第1份试卷
/link?url=KMFDbF3z7BnHjFarK85i_30HstIyI98rVWRupXOPDP6DhXV-7HD5e8HOhqD3BMRS9lvU31L-lStKQdcgDMExmbp0lecBEgEmcfC1JIngqX_
8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
32、编写程序,利用线程模拟一段时间内(3分钟)交通信号灯的运行状况,红灯亮10秒,绿灯亮30秒,黄灯亮3秒。
18、已知,s=1-1/2+1/3-1/4+…+1/(n-1)-1/n,编写程序,求n=100时,s的值。
19、利用面向对象知识,用Java语言编写圆类(Circle)和矩形类(Retangle)继承自形状类(Shape),计算周长和面积,并编写测试类测试完成测试。
20、输入某年某月某日,判断这一天是这一年的第几天。计算方法为:h =(q+[26(m+1)/10]+k+[k/4]+[j/4]+5*j)%7,各变量含义如下:(1)h是一个星期中的每一天(0为星期六;1为星期天;2为星期一;3为星期二;4为星期三;5为星期四;6为星期五)(2)q是某月的某一天(3)m是月份(3为三月,4为四月,...,12为十二月)。一月和二月分别记为上一年的13和14月。(4)j是世纪数(即|year/100|)(5)k是世纪的年数(即year%100)。

50道JAVA基础编程练习题

50道JAVA基础编程练习题

50道JAVA基础编程练习题Java学习笔记2010-03-19 17:45:01 阅读1117 评论6 字号:大中小订阅【程序1】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?1.程序分析:兔子的规律为数列1,1,2,3,5,8,13,21....【程序2】题目:判断101-200之间有多少个素数,并输出所有素数。

1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。

做了【程序3】题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。

例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。

1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。

【程序4】题目:将一个正整数分解质因数。

例如:输入90,打印出90=2*3*3*5。

程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。

(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。

(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。

【程序5】题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。

1.程序分析:(a>b)?a:b这是条件运算符的基本例子。

【程序6】题目:输入两个正整数m和n,求其最大公约数和最小公倍数。

1.程序分析:利用辗除法。

【程序7】题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

Java程序设计课件:(六)数组

Java程序设计课件:(六)数组

访问成员
Chapter
60
80 成
90
绩 单
70
85
17
使用数组求平均分
回顾问题1:计算全班学员的平均分
public static void main(String[ ] args) {
int[ ] scores = new int[5]; //成绩数组
int sum = 0;
//成绩总和
Scanner input = new Scanner(System.in);
(六)数组
Chapter
1
回顾与作业点评
循环语句while、do-while、for的区别是什 么?
写出运行结果
int i = 0, j = 0;
while(i<7){
if(j>4){
System.out.println("**");
i++;
continue;
}
System.out.println("*");
int[ ] score = {89, 79, 76};

int[ ] score = new int[ ]{89, 79, 76};
方法2:动态地从键盘录入信息并赋
值 Scanner input = new Scanner(System.in);
for(int i = 0; i < 30; i ++){ score[i] = input.nextInt();
", 李明的身高是:" + heightLi);
heightZhang 170
不同的变量会分配不 同的存储空间

作业2-3:Java 语句控制

作业2-3:Java 语句控制

第3章控制语句学习目标•能够使用if和if…else选择语句来选择各种动作•能够使用for循环结构来重复地执行程序中的语句•能够使用do…while循环和while循环语句重复地执行程序中的语句•能够使用break和continue程序控制语句3.1 实验前检查在学完《Java语言程序设计》的第3章后,请回答以下问题.这些问题旨在检验和巩固你对关键概念的理解。

既可以在实验课程之前,也可以在实验课程期间完成。

3。

1.1 选择题:1.下列语句序列执行后,m 的值是(C )。

int a=10, b=3, m=5;if( a==b ) m+=a; else m=++a*m;A)15 B)50 C) 55 D) 52。

下列语句序列执行后,k 的值是( B ).int i=4,j=5,k=9,m=5;if(i〉j||m〈k)k++; else k—-;A)5 B)10 C)8 D)93.下列语句序列执行后,k 的值是(C)。

int i=10, j=18,k=30;switch( j — i ){case 8 :k++;case 9 :k+=2;case 10:k+=3;default : k/=j;}A) 31 B) 32 C)2 D)334。

若a和b均是整型变量并已正确赋值,正确的switch语句是(D )。

A) switch(a+b);{ 。

... }B)switch(a+b*3。

0 ) {。

.。

. }C) switch a {。

}D)switch (a%b ) {。

..。

.。

}5.下列语句序列执行后,j 的值是( A )。

int j=1;for( int i=5;i〉0;i—=2 ) j*=i;A)15 B)1 C)60 D) 06.以下for循环的执行次数是(B )。

for(int x=0;(x==0)&(x〈4);x++);A)无限次B)一次C)执行4次D)执行3次7。

下列语句序列执行后,j 的值是(D )。

Java程序设计教程第6章6.2 类的方法

Java程序设计教程第6章6.2  类的方法

定义带参数的方法
public class ZhazhiJi {
public String zhazhi ( String fruit ) { String juice = fruit + "汁";
本章任务
4/61
会定义和使用类的无参方法 理解变量作用域 会添加JavaDoc注释 会定义带参方法 会使用带参方法 会创建包组织Java工程
本章目标
5/61
类的方法
按此按钮, 狮子开始跑
电动玩具狮子 属性:
颜色:黄色
问题
按此按钮, 狮子开始叫
行为: 跑 叫 抢球
写出狮子对象的“跑”方法、 “叫”方法、“抢 球”方法
public static void main(String[] args){

Student stu = new Student(); name = "神仙姐姐";
stu.sex
sex = 'F'; age = 18;
stu.age
stu.show();
}
}
3/61
实现计算平均分和课程总成绩 实现MyShopping系统菜单切换 实现MyShopping系统入口程序 实现客户信息的添加和显示 修改客户姓名 对客户姓名排序 实现模拟账户存取款功能
语法
对象名.方法名();
问题
小明过生日,爸爸送他一个电动狮子玩具,编程 测试这个狮子能否正常工作
10/61
方法调用
public class AutoLion {
String color = "黄色"; //颜色
/*跑*/ public void run(){

Java练习及参考答案

Java练习及参考答案

Java练习及参考答案1,编写程序,判断给定的某个年份是否是闰年。

闰年的判断规则如下:(1)若某个年份能被4整除但不能被100整除,则是闰年。

(2)若某个年份能被400整除,则也是闰年。

import java.util.Scanner;class Bissextile{public static void main(String[] arge){System.out.print("请输入年份");int year; //定义输入的年份名字为“year”Scanner scanner = new Scanner(System.in);year = scanner.nextInt();if (year<0||year>3000){System.out.println("年份有误,程序退出!"); System.exit(0);}if ((year%4==0)&&(year%100!=0)||(year%400==0)) System.out.println(year+" is bissextile");elseSystem.out.println(year+" is not bissextile ");}}2,给定一个百分制的分数,输出相应的等级。

90分以上 A级80~89 B级70~79 C级60~69 D级60分以下 E级import java.util.Scanner;class Mark{public static void main(String[] args){System.out.println("请输入一个分数");//定义输入的分数为“mark”,且分数会有小数double mark;Scanner scanner = new Scanner(System.in);mark = scanner.nextDouble();//判断是否有输入错误。

北大青鸟-使用Java理解程序逻辑

北大青鸟-使用Java理解程序逻辑
//检查邮箱格式 if (email.indexOf('@') !=- 1 && email.indexOf('.') > email.indexOf('@')){ emailCorrect = true; }else{ System.out.println("Email无效。"); }
检查文件和邮箱格式
第十五章
202X
字符串
回顾与作业点评
public class TestScore { //测试类 public static void main(String[] args) { Student stu=new Student(); Score sc=new Score(); float avg=0; stu.java=80; stu.database=95; stu.html=77; avg=sc.getAvg(stu); System.out.println("该学生的平均分为:"+avg); } }
提问
*
如何调用带参方法?应注意什么? 请说出以下代码的执行过程
预习检查
如何定义一个字符串? 使用什么方法可以获得字符串的长度? 如何定义一个StringBuffer类的对象?
提问
*
本章任务
实现注册信息的有效性验证 判断字符出现次数 格式化显示商品金额
*
本章目标
掌握String类的基本用法 会使用==和equals()比较字符串 会使用StringBuffer类方法对字符 串进行操作
常用提取方法
*
字符串常用提取方法4-3
字符串常用提取方法4-4
//检查Java文件名 int index = stIndexOf("."); if(index!=-1 && index!=0 && fileName.substring(index+1, fileName.length()).equals("java")){ fileCorrect = true; }else{ System.out.println("文件名无效。"); }

《Java语言程序设计》教案

《Java语言程序设计》教案
4.布尔类型Boolean类型
第3节变量与常量
1.常量
2.变量
3.课堂案例
第4节运算符
1.赋值运算符“=”
2.算术运算符+、-、*、/、%
3.自增自减运算符
4.比较运算符>;<;==;>=;<=;!=
5.逻辑运算符&&;||;!
6.三目运算符
7.运算符的优先级
第5节数据类型转换
1.自动类型转换
2.强制类型转换
5、计算1*2*3*4*……*10的结果。
6、输入一个大于0的整数放入到变量n中,计算1+2+3+……+(n-1)+n的结果。
7、输入一个整数放入到变量n中,如果这个整数大于0,那么计算1+2+3+……+(n-1)+n的结果,否则输出“输入的数据有错误”。
8、循环输入5个学生的成绩,计算这5个学生的总分,及平均分。
教学内容
备注
第5章数组和字符串
第1节数组
1.一维数组的声明与创建
2.一维数组的初始化
3.二维数组的创建与初始化
4.课堂案例——数组元素排序
第2节String类
1.声明并创建字符串(常用)
2.使用字符数组创建字符串
3.连接字符串连接字符串“Hello”和“Java”
4.连接其他数据类型
5.获取字符串长度
比如:输入abc输入def输入Esc
就输出abcdef
12.输出1000以内的水仙花数
13.使用do-while实现:输出摄氏温度与华氏温度的对照表,要求它从摄氏温度0度到250度,每隔20度为一项,对照表中的条目不超过10条。

java做成绩排名表,如何实现同分同名次

java做成绩排名表,如何实现同分同名次

java做成绩排名表,如何实现同分同名次要求计算综合平均分去除最⾼分和最低分,并且实现同分同名次//去除最⾼分,和最低分,实现思路,根据id 使⽤groupingby分组然后循环分组的map接着根据分数进⾏排序,然后去除最⾼的和最低分,删除list 第⼀条数据,以及最后⼀条数,这样就把最⾼分,和最低分去除然后统计平均分,实现思路,⼀样重新根据id 使⽤groupingby 重新分组然后循环数据合并,根据id为key,相同id的数据进⾏分数相加public List<CompetitionWorkExhibitionPo1> getList(List<CompetitionWorkExhibitionPo1> list) {List<CompetitionWorkExhibitionPo1> list1 = new ArrayList<>();List<CompetitionWorkExhibitionPo1> list2 = new ArrayList<>();Map<Long, List<CompetitionWorkExhibitionPo1>> collect = list.stream().collect(Collectors.groupingBy(CompetitionWorkExhibitionPo1::getCompetitionUserId));//使⽤groupingby分组for (Map.Entry<Long, List<CompetitionWorkExhibitionPo1>> com : collect.entrySet()) {List<CompetitionWorkExhibitionPo1> li = com.getValue();li.sort(paring(CompetitionWorkExhibitionPo1::getCompetitionUserId).thenComparing(CompetitionWorkExhibitionPo1::getSum));//根据分数排序li.remove(0);//删除list 第⼀条数据li.remove(li.size() - 1);//以及最后⼀条数list1.addAll(li);//然后把数据保存进⼀个新的list}Map<Long, List<CompetitionWorkExhibitionPo1>> collect1 = list1.stream().collect(Collectors.groupingBy(CompetitionWorkExhibitionPo1::getCompetitionUserId));//统计平均分,重新分组for (Map.Entry<Long, List<CompetitionWorkExhibitionPo1>> co : collect1.entrySet()) {List<CompetitionWorkExhibitionPo1> value = co.getValue();int inx = value.size();//保存list的长度,⽤户计算平均分list2.addAll(//处理完保存到⼀个新的集合value.stream()// 表⽰id为key,接着如果有重复的,那么从BillsNums对象o1与o2中筛选出⼀个,这⾥选择o1,// 并把id重复,需要将nums和sums与o1进⾏合并的o2, 赋值给o1,最后返回o1.collect(Collectors.toMap(CompetitionWorkExhibitionPo1::getCompetitionUserId, a -> a, (o1, o2) -> {o1.setSum(o1.getSum() + o2.getSum());//分数相加o1.setCount(String.valueOf(inx));//把list的长度,赋值return o1;})).values().stream().collect(Collectors.toList()));}int count = mapper2.count(); //查询最⾼点赞数DecimalFormat df = new DecimalFormat("0.00");//格式化⼩数for (CompetitionWorkExhibitionPo1 competitionWorkExhibitionPo1 : list2) { //处理点赞得分competitionWorkExhibitionPo1.setGiveScore(competitionWorkExhibitionPo1.getPraiseCount() > 0 ? df.format((float) competitionWorkExhibitionPo1.getPraiseCount() / count) : String.valueOf(0)); //处理总分competitionWorkExhibitionPo1.setReviewScore(df.format((float) competitionWorkExhibitionPo1.getSum() / Integer.parseInt(competitionWorkExhibitionPo1.getCount())));}for (CompetitionWorkExhibitionPo1 competitionWorkExhibitionPo1 : list2) { //处理综合总分=点赞得分+总分competitionWorkExhibitionPo1.setComprehensiveScore(Double.valueOf(competitionWorkExhibitionPo1.getGiveScore()) + Double.valueOf(competitionWorkExhibitionPo1.getReviewScore()));}List<CompetitionWorkExhibitionPo1> competitionWorkExhibitionPo1s = CompetitionRankingService.fun1(list2);//调⽤⽅法,得出排名return list2;}// ⽅法⼀:传统的⽅法排序:把不同成绩保存map中,最后实体类根据map的key找到排名存⼊实体排名⾥⾯public static List<CompetitionWorkExhibitionPo1> fun1(List<CompetitionWorkExhibitionPo1> stus) {// 按照成绩排序stus.sort(new Comparator<CompetitionWorkExhibitionPo1>() {@Overridepublic int compare(CompetitionWorkExhibitionPo1 s1, CompetitionWorkExhibitionPo1 s2) {return pare(s1.getComprehensiveScore(), s2.getComprehensiveScore());}});int rank = 1;//保存排名int index = 1;//排序号double lastScore = -1;// 最近⼀次的分for (int i = 0; i < stus.size(); i++) {CompetitionWorkExhibitionPo1 s = stus.get(i);if (pare(lastScore, s.getComprehensiveScore()) != 0) { // 如果成绩和上⼀名的成绩不相同,那么排名+1lastScore = s.getComprehensiveScore();stus.get(i).setRank(rank++);//设置排名stus.get(i).setIndex(index++);//设置排序号}}stus.stream().forEach(System.out::println);return stus;}/ ⽅法2: Java8开始⽀持的Lambada表达式配合 Stream API 来进⾏分组排序public static List<CompetitionWorkExhibitionPo1> fun2(List<CompetitionWorkExhibitionPo1> stus) {List<Map.Entry<Double, List<CompetitionWorkExhibitionPo1>>> list = stus.stream().collect(Collectors.groupingBy(CompetitionWorkExhibitionPo1::getComprehensiveScore)).entrySet() .stream().sorted((s1, s2) -> pare(s1.getKey(), s2.getKey())).collect(Collectors.toList());int rank = 1;//设置排名int index = 1;//设置排序号for (Map.Entry<Double, List<CompetitionWorkExhibitionPo1>> entry : list) {for (CompetitionWorkExhibitionPo1 competitionWorkExhibitionPo1 : entry.getValue()) {competitionWorkExhibitionPo1.setRank(rank++);competitionWorkExhibitionPo1.setIndex(index++);}}stus.stream().forEach(System.out::println);return stus;}。

学生成绩管理系统(JAVA课程设计)

学生成绩管理系统(JAVA课程设计)

Java课程设计课题:学生成绩管理系统一、问题及功能分析1、身份验证,和使用系统的权限设置、判定。

2、实现同学的学号、性别、成绩等信息的录入、编辑3、提供对学号或姓名,进行成绩或所有信息的查询.4、计算学生平均成绩,显示最高成绩学生信息5、能实现按成绩、学号、姓名排序列出学生信息.6、能统计学生成绩分数段的分布(60以下、60~70、70~80、80~90、90~100)情况,并输出。

7、用文件保存数据,以便反复使用.二、概要设计import java。

lang.*;import java.io。

*;class Mytest{public static void main(String[]args)throws IOException{{int select;select = 1;Student stu[]= new Student[10];StudentMis mis=new StudentMis();Scanner sc = new Scanner(System.in);System。

out.println();System.out。

println(”—---—-—-————————-——-——-——-—---—--———-——");System.out。

println(”* *");System。

out.println(”欢迎进入学生成绩管理系统");System。

out。

println(”**”);System。

out.println(”-————--——-—-—---——-——--———-—-—----——--—");while(true){System。

out.println( );System。

out.println(" 请选择您的操作:");System.out.println(” 1.录入学生成绩信息;”);System.out.println(" 2.显示学生成绩信息;”);System。

Java程序设计作业

Java程序设计作业

要求:一个院系一个年级的同学题目不能相同,所以选择题目时应避免做相同的题目,其它学院和年级的同学相对自由一点。

从22 道题目中任选一道,按实验指导书模式那样完成即可,写好大作业报告,同时写上自己的姓名、学号、学院和年级1、编写一个Java 应用程序,从键盘读取用户输入两个字符串,并重载3 个函数分别实现这两个字符串的拼接、整数相加和浮点数相加。

要进行异常处理,对输入的不符合要求的字符串提示给用户,不能使程序崩溃。

2、有工人,农民,教师,科学家,服务生,其中,工人,农民,服务生只有基本工资.教师除基本工资外,还有课酬(元/天),科学家除基本工资外,还有年终奖,请你写出相关类,将各种类型的员工的全年工资打印出来;3、创建一个复数类complex,对复数进行数学运算,复数具有如下格式:RealPart+ImaginaryPart*I其中,I 为-1的平方根。

要求如下:(1)利用浮点变量表示此类的私有数据。

提供两个构造方法,一个用于此类声明时对象的初始化;一个为带默认值得无参构造方法。

(2)提供两复数加、减、乘的运算方法。

(3)按格式(a,b)打印复数。

其中a 为实部,b 为虚部。

4、(1)编写一个圆类Circle,该类拥有:①一个成员变量Radius(私有,浮点型);// 存放圆的半径;②两个构造方法Circle( ) // 将半径设为0Circle(double r ) //创建Circle对象时将半径初始化为r③三个成员方法double getArea( ) //获取圆的面积double getPerimeter( ) //获取圆的周长void show( ) //将圆的半径、周长、面积输出到屏幕(2)编写一个圆柱体类Cylinder,它继承于上面的Circle 类。

还拥有:①一个成员变量double hight(私有,浮点型);// 圆柱体的高;②构造方法Cylinder (double r, double h ) //创建Circle 对象时将半径初始化为r③成员方法double getVolume( ) //获取圆柱体的体积void showVolume( ) //将圆柱体的体积输出到屏幕编写应用程序,创建类的对象,分别设置圆的半径、圆柱体的高,计算并分别显示圆半径、圆面积、圆周长,圆柱体的体积。

java实验

java实验
a. int 型变量 x,y 表示屏幕坐标系上的一个点; b. 两种构造方法实现对象的初始化:Point(int x, int y)和 Point(Point p);
c. 计算两个 Point 对象之间距离的方法 distance(Point a, Point b); d. 获得当前坐标 x,y 值的方法 getX(),getY(); e. 设置坐标 x,y 值的方法 setX(),setY(); f. 重写 Point 类的 toString()方法,以格式(x,y)输出当前点的字符串; g. 统计应用程序中 Point 类对象的个数(使用 Point 类的类变量)。 package javaapplication1; import static ng.Math.*; public class Point { private int x,y; private static int count=0; public Point() {
this(0,0); count++; } public Point(int a, int b) { x=a; y=b; count++; } public int getx(){ return x;} public int gety(){ return y;} public int getcount() { return count;} public void setx(int newx){ x=newx;} public void sety(int newy){ y=newy;} public static double distance(Point a, Point b){
System.out.println(age); } } public class Main { public static void main(String[] args) {

设计题目1.2输入某一个班级学生的Java程序设计期末考试成绩,以-1作为结束标记: (1)统计班级学生中,不

设计题目1.2输入某一个班级学生的Java程序设计期末考试成绩,以-1作为结束标记: (1)统计班级学生中,不
System.out.print("总人数为:");
return i;
}
public static void main(String args[])
{
int i=-1;
float[] a=new float [100];
System.out.println("请输入学生成绩,以-1作为结束标记:l=0,y=0,p;
for(p=0;p<=i;p++)
{
if(a[p]<60&&a[p]>=0)b++;
else if(a[p]<70&&a[p]>=60)j++;
else if(a[p]<80&&a[p]>=70)z++;
else if(a[p]<90&&a[p]>=80)l++;
do{
Scanner n=new Scanner(System.in);
i++;
a[i]=n.nextFloat();
}while(a[i]!=-1);
rank(a,i);
System.out.println(avarge(a,i));
}
}
else if(a[p]>=90&&a[p]<=100)y++;
else ;
}
System.out.println("不及格人数:"+b);
System.out.println("及格人数:"+j);

java学生成绩统计程序设计

java学生成绩统计程序设计

java学生成绩统计程序设计Java学生成绩统计程序设计Java是一种广泛应用于软件开发领域的编程语言。

在教育领域,Java也被广泛应用于计算机编程教学。

而学生成绩统计是教师们经常需要处理的任务之一。

为了提高教师们的工作效率,我们可以设计一个Java程序来自动完成学生成绩的统计。

本文将一步一步回答有关Java学生成绩统计程序设计的问题。

首先,我们需要明确程序的功能和需求。

一个基本的学生成绩统计程序需要能够记录学生的个人信息,并保存学生的成绩信息,同时还需要能够计算学生的平均分、最高分和最低分等统计指标。

因此,我们的程序需要包含学生类和成绩类,并且还需要有相应的方法来实现各种功能。

接下来,我们可以开始设计程序的结构。

在Java中,我们可以创建两个类:Student(学生类)和Grade(成绩类)。

Student类用于表示学生的个人信息,而Grade类用于表示学生的成绩信息。

首先,我们来设计Student类。

Student类需要包含学生的姓名、学号和班级等属性。

为了便于获取和设置学生的信息,我们可以使用私有变量,并提供公共的getter和setter方法。

javapublic class Student {private String name;private int studentId;private String className;public String getName() {return name;}public void setName(String name) { = name;}public int getStudentId() {return studentId;}public void setStudentId(int studentId) { this.studentId = studentId;}return className;}public void setClassName(String className) {this.className = className;}}接下来,我们来设计Grade类。

实验题java

实验题java

实验1 简单Java程序调试✧基本题1)编写一个程序输出如下图案****** ************* *** ********* ** ****** ** ****** ** ****** ** ************ ** ** ****** ** ** ****** ** ** ********* **************2)编制applet程序,绘制一个长120、宽80的红色矩形,并在矩形内部绘制一个兰色内切椭圆。

✧提高题1)编写一个应用程序绘制一个如下的操作菜单。

*****************************| 1. 增加1个学生 || 2. 显示所有学生 || 3. 退出程序 || 请输入选择(1-3): |*****************************2)创建一个applet程序,绘制两个同心圆,园心显示“同心”两个汉字。

实验2 分支、循环程序设计✧基本题1)从键盘输入4个学生的成绩,找出最高分和最低分。

【提示】引入两个变量分别存放最高分和最低分,根据比较改变这两个变量值。

2)写一个程序输入一个整数n,输出相应三角形。

例如:N=4,则三角形如下:##########3)编写一个程序,用于输出Fibonacci数列的前20项。

4)输入一个百分制分数,输出其对应的五分制成绩,包括:优、良、中、及格、不及格。

5) 计算算式: 1-1/2+1/3-1/4+1/5-…-1/1006)输出九九乘法表,格式如下:1*1=1 1*1=2 1*3=3 ……2*1=1 2*2=2 2*3=3 …………9*1=1 9*2=18 9*3=27 ……✧提高题1)设有一元二次方程如下:aX2+bx+c=0试根据从键盘输入的a,b,c求解方程的根。

【提示】要考虑各种情形:一是a为0的情形,方程根为-c/b。

还有就是根据判别式Δ=b2 - 4ac进行判断,如果Δ.>0有两个实根;Δ=0,有一个实根;Δ<0,无实数解。

Java集合练习题求学生对象的平均年龄及按班级求平均分数

Java集合练习题求学生对象的平均年龄及按班级求平均分数

Java集合练习题求学⽣对象的平均年龄及按班级求平均分数有如下Student 对象,private String name;private int age;private int score;private String classNum;其中,classNum 表⽰学⽣的班号,例如“class05”。

有如下ListList list = new ArrayList();list.add(new Student(“Tom”, 18, 100, “class05”));list.add(new Student(“Jerry”, 22, 70, “class04”));list.add(new Student(“Owen”, 25, 90, “class05”));list.add(new Student(“Jim”, 30,80 , “class05”));list.add(new Student(“Steve”, 28, 66, “class06”));list.add(new Student(“Kevin”, 24, 100, “class04”));在这个list 的基础上,完成下列要求:1)计算所有学⽣的平均年龄2)计算各个班级的平均分主类:1import java.util.ArrayList;23public class TestDay17_1_2 {45public static void main(String[] args) {6 ArrayList<TestDay17_1_2_Student> al = new ArrayList<>();78 al.add(new TestDay17_1_2_Student("Tom", 18, 100, "class05"));9 al.add(new TestDay17_1_2_Student("Jerry", 22, 70, "class04"));10 al.add(new TestDay17_1_2_Student("Owen", 25, 90, "class05"));11 al.add(new TestDay17_1_2_Student("Jim", 30, 80, "class05"));12 al.add(new TestDay17_1_2_Student("Steve", 28, 66, "class06"));13 al.add(new TestDay17_1_2_Student("Kevin", 24, 100, "class04"));1415// 计算平均年龄16//定义总年龄及⼈数变量17int sumAge = 0;18int count = 0;19//遍历集合总年龄累加、⼈数⾃增20for (TestDay17_1_2_Student s : al) {21 sumAge += s.getAge();22 count++;23 }24//计算并输出平均年龄25double averageAge = (sumAge * 1.0) / count;26 System.out.println("平均年龄是:" + averageAge);2728//计算各班级平均分29// 创建储存计算分数的集合30 ArrayList<TestDay17_1_2_Score> alscore = new ArrayList<>();31// 遍历班级唯⼀插⼊成绩对象3233for (int i = 0; i < al.size(); i++) {34//过去当前学⽣对象35 TestDay17_1_2_Student student = al.get(i);36boolean flag = false;//标记没有重复班级名称37for (int j = 0; j < alscore.size(); j++) {38//获取当前班级成绩对象39 TestDay17_1_2_Score score = alscore.get(j);40//判断班级名称是否重复41if (student.getClassNum().equals(score.getClassName())) {42//重复标记设为真43 flag = true;44//修改当前成绩对象中分数和⼈数信息并跳出内循环45 score.setStudentNum(score.getStudentNum()+1);46 score.setSumScore(score.getSumScore() + student.getScore());47break;48 }49 }5051//判断flag如果为假(没有重复)则添加⼀个新的成绩对象52if (!flag) {53 alscore.add(new TestDay17_1_2_Score(student.getClassNum(),1,student.getScore()));54 }55 }56for (TestDay17_1_2_Score score : alscore) {57 System.out.println(score.toString());58 }59 }60 }学⽣类:1public class TestDay17_1_2_Student {23private String name;4private int age;5private int score;6private String classNum;7public TestDay17_1_2_Student() {8super();9// TODO Auto-generated constructor stub10 }11public TestDay17_1_2_Student(String name, int age, int score, String classNum) {12super(); = name;14this.age = age;15this.score = score;16this.classNum = classNum;17 }18public String getName() {19return name;20 }21public void setName(String name) { = name;23 }24public int getAge() {25return age;26 }27public void setAge(int age) {28this.age = age;29 }30public int getScore() {31return score;32 }33public void setScore(int score) {34this.score = score;35 }36public String getClassNum() {37return classNum;38 }39public void setClassNum(String classNum) {40this.classNum = classNum;41 }42 }成绩类:1public class TestDay17_1_2_Score {23private String className;4private int studentNum;5private int sumScore;67public TestDay17_1_2_Score() {8super();9// TODO Auto-generated constructor stub10 }11public TestDay17_1_2_Score(String className, int studentNum, int sumScore) { 12super();13this.className = className;14this.studentNum = studentNum;15this.sumScore = sumScore;16 }17public String getClassName() {18return className;19 }20public void setClassName(String className) {21this.className = className;22 }23public int getStudentNum() {24return studentNum;25 }26public void setStudentNum(int studentNum) {27this.studentNum = studentNum;28 }29public int getSumScore() {30return sumScore;31 }32public void setSumScore(int sumScore) {33this.sumScore = sumScore;34 }3536public double getAverageScore() {37return (this.sumScore * 1.0) / this.studentNum;38 }3940 @Override41public String toString() {42double averageScore = this.getAverageScore();43 String className = this.getClassName();44int studentNum = this.getStudentNum();45int sumScore = this.getSumScore();46return47 (new StringBuffer()).append(className)48 .append("班级有").append(studentNum)49 .append("个同学,总分:").append(sumScore)50 .append(",平均分:").append(averageScore).toString()51 ;52 }53 }。

黑马程序员-JAVA基础-练习之存储学生信息

黑马程序员-JAVA基础-练习之存储学生信息

⿊马程序员-JAVA基础-练习之存储学⽣信息 题⽬:有⼀批学⽣,每个学⽣有3门课程,从键盘上输⼊以下数(姓名,三门成绩)输⼊格式:如zhangsan,30,40,60计算出总成绩。

并把学⽣的信息和计算出的总分数⾼低顺序存放到磁盘⽂件中。

思路: 1、创建⼀个描述学⽣信息的类:Student类,包含如下属性:姓名(name)、三门成绩(A、B、C) 和总成绩(sum); 2、建⽴学⽣⼯具类:StudentTool 。

其中的⽅法主要是从键盘上录⼊学⽣信息studentInfo() 和将学⽣信息写⼊到磁盘⽂件中的⽅法writeToFile()。

3、因为学⽣数量较多,⽽且还要把学⽣的信息按分数的⾼低排序,则选择Set集合中的TreeSet集合。

通过理清思路,可以得到如下代码: 学⽣类: 思路:1、定义学⽣属性:姓名、三门成绩、总成绩。

2、因为⽤TreeSet集合存储,则要实现Comparable接⼝来完成⾃然排序以及保证元素的唯⼀性(详情见:)。

3、重写compareTo⽅法、hashCode⽅法、equals⽅法,以及为了⽅便输出重写toString() ⽅法。

1 public class Student implements Comparable{2private String name ;3private int a , b , c ;4private int sum ;5public Student(String name , int a , int b ,int c) { = name ;7this.a = a ;8this.b = b ;9this.c = c ;10 }11// get和set⽅法。

12public String getName() {13return name;14 }15public void setName(String name) { = name;17 }18public int getA() {19return a;20 }21public void setA(int a) {22this.a = a;23 }24public int getB() {25return b;26 }27public void setB(int b) {28this.b = b;29 }30public int getC() {31return c;32 }33public void setC(int c) {34this.c = c;35 }36public int getSum() {37return sum;38 }39public void setSum(int sum) {40this.sum = sum;41 }42// 覆写compareTo⽅法43public int compareTo(Object o) {44if ( !(o instanceof Student))45throw new RuntimeException("匹配错误") ;46 Student stu = (Student) o ;47// 按照学⽣的名字排序48return pareTo(stu.getName());49 }50// 重写hashCode⽅法51public int hashCode() {52return .hashCode() * 87 + sum ;53 }54// 重写equals⽅法55public boolean equals(Object o) {56if ( !(o instanceof Student))57throw new RuntimeException("匹配错误") ;58 Student stu = (Student) o ;59if(.equals(stu.getName())&&this.a == stu.getA()&&this.c == stu.getC()) 60if (this.sum == this.getSum())61return true ;62return false ;63 }64public String toString() {65return "Stuent["++","+this.a+","+this.b+","+this.c+"]" ;66 }67 } 学⽣⼯具类: 思路:1、建⽴学⽣录⼊⽅法和学⽣信息存⼊磁盘的⽅法。

java作业之学生类

java作业之学生类

java作业之学⽣类题⽬、编写⼀个Java应⽤程序。

设计⼀个学⽣类Students,包括属性有:序号,学号,姓名,性别,专业,三门课程成绩(数学,计算机,英语);包括⽅法有:求成绩总分,成绩平均分,除序号外各个属性的赋值⽅法,各个属性值的获取⽅法等等。

说明:每创建⼀个Students 对象,则序号值增1;第⼀个学⽣对象的序号值为1。

编写⼀个主类StudentsDemo,在主⽅法中创建5个Students类的对象,按以下要求输出相关信息:(1)各课程最⾼/最低分同学的序号、学号、姓名和该门课程分数(2)总分最⾼/最低同学的序号、学号、姓名和所有课程分数(3)输⼊⼀个学号或者姓名,若存在这样的学号或姓名则输出该学⽣的所有信息,否则输出信息不存在。

package StudentsDemo;import java.util.Scanner;public class StudentsDemo {public static void main(String[] args) {//创建学⽣信息Student[] a = new Student[5];//以数组的形式存储5个学⽣类int i = 0;for (i = 0; i < 5; i++) {a[i] = new Student();a[i].math = (int) (Math.random() * 100);//产⽣⼀个0到1之间的随机数*100a[i].english = (int) (Math.random() * 100);//随机数录⼊成绩a[i].comp = (int) (Math.random() * 100);a[i].gender = "男";a[i].major = "计算机类";// System.out.println(a[i].nunber); 验证编号}a[0].stu_num = "125";a[1].stu_num = "244";a[2].stu_num = "334";a[3].stu_num = "442";a[4].stu_num = "542";//学号a[0].name = "张三";a[1].name = "⾥⾯";a[2].name = "黎明";a[3].name = "李华";a[4].name = "丽华";//起名int max1 = 0, min1 = 0;int max2 = 0, min2 = 0;int max3 = 0, min3 = 0;int MAX = 0;for (i = 0; i < 5; i++) {if (a[i].gettotal() > a[MAX].gettotal()) {MAX = i;}if (a[i].math > a[max1].math) {max1 = i;}if (a[i].math < a[min1].math) {min1 = i;}if (a[i].english > a[max2].english) {max2 = i;}if (a[i].english < a[max2].english) {min2 = i;}if (a[i].comp > a[max3].comp) {max3 = i;//寻找分⾼的⼈}if (a[i].comp < a[min3].comp) {min3 = i;}}Put(a, "英语", max2);Put(a, "数学", max1);Put(a, "计算机", max3);//输出学习信息Put2(a, "英语", min2);Put2(a, "数学", min1);Put2(a, "计算机", min3);Put(a, "", MAX);System.out.println("英语分 " + a[MAX].getEnglish());System.out.println("数学分为 " + a[MAX].getMath());System.out.println("计算机分数为 " + a[MAX].getComp());//输出总分最⾼//查找学⽣int cont = -1;Scanner in = new Scanner(System.in);System.out.println("请输⼊学号或姓名");String search = in.nextLine();for (i = 0; i < 5; i++) {//equals⽐较字符串是否相等if (a[i].name.equals(search) || a[i].stu_num.equals(search)) {cont = i;break;}}if (cont == -1) {System.out.println("信息不存在");} else {System.out.println("姓名是" + a[cont].name);System.out.println("序号是" + a[cont].nunber);System.out.println("学号是" + a[cont].stu_num);System.out.println("性别是" + a[cont].gender);System.out.println("专业是" + a[cont].major);System.out.println("英语成绩是" + a[cont].getEnglish());System.out.println("数学成绩是" + a[cont].math);System.out.println("计算机成绩是" + a[cont].comp);System.out.println("总分是" + a[cont].gettotal());System.out.println("平均分是" + a[cont].getaver());}}static void Put(Student[] ss, String course, int num) {System.out.println(course + "成绩最⾼的是" + ss[num].nunber + "号学⽣"); System.out.println("学号是" + ss[num].stu_num);System.out.println("姓名是" + ss[num].name);if (course.equals("english")) {//分号不能少System.out.println(course + "成绩是" + ss[num].english);} else if (course.equals("comp")) {System.out.println(course + "成绩是" + ss[num].comp);} else if (course.equals("math")) {System.out.println(course + "成绩是" + ss[num].math);}}static void Put2(Student[] ss, String course, int num) {System.out.println(course + "成绩最低的是" + ss[num].nunber + "号学⽣"); System.out.println("学号是" + ss[num].stu_num);System.out.println("姓名是" + ss[num].name);if (course.equals("english")) {System.out.println(course + "成绩是" + ss[num].english);} else if (course.equals("comp")) {System.out.println(course + "成绩是" + ss[num].comp);} else if (course.equals("math")) {System.out.println(course + "成绩是" + ss[num].math);}}}package StudentsDemo;public class Student {static int NUM = 1;int nunber;String stu_num;String name;String gender;double math;double comp;double english;String major;Student() {//构造⽅法nunber = NUM++;}public double gettotal() {//获取总分return this.math + this.english + p;}public double getaver() {return ((p + this.english + this.math) * 1.0) / 3; }public String getName() {return name;}public void setName(String name) { = name;}public double getComp() {return comp;}public void setComp(double comp) {p = comp;}public double getEnglish() {return english;}public void setEnglish(double english) {this.english = english;}public double getMath() {return math;}public void setMath(double math) {this.math = math;}public String getGender() {return gender;}public void setGender(String gender) {this.gender = gender;}public String getStu_num() {return stu_num;}public void setStu_num(String stu_num) {this.stu_num = stu_num;}public String getMajor() {return major;}public void setMajor(String major) {this.major = major;}}//另⼀种⽅法public class Student {static int id=0;//学⽣序号//⽤类变量保留相应科⽬最⾼(低)分的ID,便于对象共享static int mathScoreMaxID=0;static int mathScoreMinID=0;static int englishScoreMaxID=0;static int englishScoreMinID=0;static int computerScoreMaxID=0;static int computerScoreMinID=0;static int totalScoreMaxID=0;static int totalScoreMinID=0;//⽤类变量保留相应科⽬最⾼(低)分,便于对象共享private static float mathScoreMax=0;//数学科⽬最⾼分private static float englishScoreMax=0;private static float computerScoreMax=0;private static float mathScoreMin=100;private static float englishScoreMin=100;private static float computerScoreMin=100;private static float totalScoreMax=0;private static float totalScoreMin=0;//将成员变量定义为私有的,体现⾯向对象的封装性private String studentNumber;//学⽣学号private String studentName;private String studentSex;private String studentMajor;private float mathScore;private float englishScore;private float computerScore;private float totalScore;private float averageScore;//构造⽅法,创建对象时调⽤Student(String number,String name,String sex,String major){id++;//每创建⼀个Students对象,则序号值增1;studentNumber=number;studentName=name;studentSex=sex;studentMajor=major;}//给每个成员变量(各个科⽬成绩)赋值void setAllScore(int id,float math,float english,float computer){setMathScore(id,math);setEnglishScore(id,english);setComputerScore(id,computer);setTotalScore();setAverageScore();}//给数学成绩赋值,⽤类变量保存最⼤(⼩)值以及相应序号void setMathScore(int id,float math){mathScore=math;if(math>mathScoreMax){//获得数学分最⾼的学⽣序号mathScoreMax=math;mathScoreMaxID=id;}if(math<mathScoreMin){//获得数学分最低的学⽣序号mathScoreMin=math;mathScoreMinID=id;}}void setEnglishScore(int id ,float english ){englishScore=english;if(english>englishScoreMax){//获得英语分最⾼的学⽣序号englishScoreMax=english;englishScoreMaxID=id;}if(english<englishScoreMin){//获得英语分最低的学⽣序号englishScoreMin=english;englishScoreMinID=id;}}void setComputerScore(int id,float computer){computerScore=computer;if(computer>computerScoreMax){//获得计算机分最⾼的学⽣序号 computerScoreMax=computer;computerScoreMaxID=id;}if(computer<computerScoreMin){//获得计算机分最低的学⽣序号 computerScoreMin=computer;computerScoreMinID=id;}}void setTotalScore(){totalScore=mathScore+englishScore+computerScore;if(totalScore>totalScoreMax){totalScoreMax=totalScore;totalScoreMaxID=id;}if(totalScore<totalScoreMin){totalScoreMin=totalScore;totalScoreMinID=id;}}void setAverageScore(){averageScore=totalScore/3;}//学号、姓名查找⽅法boolean findStudentNumber(String number){return studentNumber.equals(number);}boolean findStudentName(String name){return studentName.equals(name); }//以下⽅法主要由于外部访问内部私有变量float getMathScore(){return mathScore;}float getEnglishScore(){return englishScore;}float getComputerScore(){return computerScore;}String getStudentNumber(){return studentNumber;}String getStudentName(){return studentName;}String getStudentSex(){return studentSex;}String getStudentMajor(){return studentMajor;}}。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档