第一、二次实训作业及第三次上机
- 1、编写程序:声明一个整型变量a,并赋初值5,在程序中判断a是奇数还是偶数,然后输出判断的结果。
public class s { public static void main(String[] args) { int a=5; if(a%2==0){ System.out.println("a为偶数"); } else System.out.println("a为奇数"); } }
- 2、编写程序:从键盘输入圆的半径,计算圆的面积并输出。
package hhh; import java.util.*; public class r { @SuppressWarnings("resource") public static void main(String[] args) { int r; double s; Scanner c=new Scanner(System.in); r=c.nextInt(); //s=c.nextDouble(); s=3.14*r*r; System.out.println("圆的半径为:"+r+"圆的面积为:"+s); } }
- 3、编写程序:实现一个数字加密器。运行时输入加密前的整数,通过加密运算后,输出加密后的结果,加密结果仍为一整数。加密规则为:加密结果 = (整数*10+5) / 2 + 3.14159
import java.util.*;
public class j {
public static void main(String[] args) {
int a,b;
@SuppressWarnings("resource")
Scanner c=new Scanner(System.in);
System.out.println("请输入需要加密的数:");
a=c.nextInt();
System.out.println("加密后的数是:");
b= (int) ((a*10+5) / 2 + 3.14159);
System.out.println(b);
}
}
4、编写程序:公鸡5元/只,母鸡3元/只,小鸡3只/元,问100元买100只鸡,公鸡、母鸡、小鸡各几只?
package hyy; public class mj { public static void main(String[] args) { int i,j,k; for(i=0;i<=25;i++) for(j=0;j<=33;j++) for(k=0;k<=100;k=k+3) if(i+j+k==100&&i*5+j*3+k*1/3==100) System.out.println("公鸡:"+i+",母鸡:"+j+",小鸡:"+k); } }
5、编写程序:有1、2、3、4共4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。
package hyy; public class sz { public static void main(String[] args) { int i,j,k,n=0; for(i=1;i<=4;i++) for(j=1;j<=4;j++) for(k=1;k<=4;k++) if(i!=j&&j!=k&&i!=k){ System.out.println(i+","+j+","+k); n++; } System.out.println("共"+n+"个"); } }
6、编写程序:判断输入的整数是否为素数。
package hyy; import java.util.*; public class ss { @SuppressWarnings("resource") public static void main(String[] args) { Scanner read=new Scanner(System.in); int i,x; System.out.println("请输入需要判断的数字:"); x=read.nextInt(); for(i=2;i<x;i++) if(x%i==0) break; if(i==x) System.out.println(x+"是素数"); else System.out.println(x+"不是素数"); } }
7、编写程序:
声明并创建存放4个人考试成绩的一维数组,并使用for循环遍历数组并打印分数。要求:
- 首先按“顺序”遍历,即打印顺序为:从第一个人到第四个人;
- 然后按“逆序”遍历,即打印顺序为:从从第四个人到第一个人;
- 输出最高分;
- 输出最低分
package hyy; public class dx { public static void main(String[] args) { double stu[]=new double[]{3,22,69,100}; int j; double max=stu[0],min=stu[0]; System.out.println("顺序"); for(j=0;j<4;j++) System.out.print(stu[j]+" "); System.out.println(); System.out.println("逆序"); for(j=3;j>=0;j--) System.out.print(stu[j]+" "); System.out.println(); for(j=1;j<4;j++){ if(max<stu[j]){ max=stu[j]; } if(min>stu[j]){ min=stu[j]; } } System.out.println("最大值:"+max+",最小值:"+min); } }
8、Arrays类的sort方法的理解与应用(参照110页程序)。
对无序的10个数字使用Arrays类的sort方法进行排序。要求:
- 声明并初始化数组
- 按如下格式输出排序后的数组
sum[0] = 1
sum[1] = 2
………………package hyy; import java.util.*; public class px { public static void main(String[] args) { int a[]=new int[10]; @SuppressWarnings("resource") Scanner read=new Scanner(System.in); System.out.print("请输入十个整数:"); for(int i=0;i<10;i++) { a[i]=read.nextInt(); } Arrays.sort(a); System.out.println("排序后的结果为:"); for(int i=0;i<10;i++) { System.out.println("sum["+i+"]="+a[i]); } } }
9.一个班级的学生成绩存在长度为10的数组中,计算不及格的学生数目。
package hyy; import java.util.*; public class cj { public static void main(String[] args) { int s[]=new int[10]; @SuppressWarnings("resource") Scanner read=new Scanner(System.in); System.out.print("请输入十个学生成绩:"); for(int i=0;i<10;i++) { s[i]=read.nextInt(); } int count=0; for(int i=0;i<10;i++) { if(s[i]<60) { System.out.println("不及格的分数为:"+s[i]); count++; } } System.out.println("不及格的人数有"+count+"个"); } }
10、身份证号码的判断。
声明String类型的字符串,保存身份证号码。编写程序判断:
- 该号码是否为湖南长沙的号码(判断依据:前4位为4301,即长沙号码;否则不是长沙号码)。
- 该号码主人的性别(判断依据:第17位为奇数,性别为男;第17位为偶数,性别为女)。
- 第三次上机
-
编写“学生”类及其测试类。
-
5.1 “学生”类:
² 类名:Student
² 属性:姓名、性别、年龄、学号、5门课程的成绩
² 方法1:在控制台输出各个属性的值、
² 方法2:计算平均成绩
² 方法3:输出各个属性的值和平均成绩
5.2 测试类
² 创建2个对象,调用方法,要求:对象各个属性的值,从键盘输入。
package hyy; import java.util.*; public class Student { String name; char sex; int age; String num; double score[]=new double[5]; void printq(Student s){ System.out.println("姓名:"+s.name); System.out.println("性别:"+s.sex); System.out.println("年龄:"+s.age); System.out.println("学号:"+s.num); System.out.println("成绩:"); for(int i=0;i<5;i++){ System.out.print(s.score[i]+" "); } } double avarage(Student s){ double sum=0; for(int i=0;i<5;i++){ sum=sum+s.score[i]; } return sum/5; } void prints(Student s){ s.printq(s); System.out.println("平均成绩为:"); System.out.println(s.avarage(s)); } public static void main(String[] args) { @SuppressWarnings("resource") Scanner read=new Scanner(System.in); Student s=new Student(); System.out.println("请输入姓名、性别、年龄、学号和成绩:"); s.name=read.next(); s.sex=read.next().charAt(0); s.age=read.nextInt(); s.num=read.next(); for(int i=0;i<5;i++){ s.score[i]=read.nextDouble(); } s.prints(s); } }
编写“借书卡”类及其测试类。
6.1 “借书卡”类
² 属性:账号、持卡人姓名、身份证号码、地址、已借书数、可借书数、本次借书数、本次还书数
² 方法一:借书,显示本次借书数和可借书数
² 方法二:还书,显示本次还书数和可借书数
6.2 测试类
² 本次借书数 和 本次还书数,从键盘输入
package hyy; import java.util.*; public class book { String num; String name; String ID; String address; int borrow; //本次借书数 int back; //本次还书数 int i; //已借书数 int j; //可借书数 public void borrow1(book s1){ int n=5; s1.j=n-s1.i; System.out.println("可借书数为:"+s1.j+","+"本次借书数为:"+s1.borrow); } public void back1(book s1) { int m=5; s1.j=m-s1.i-s1.borrow+s1.back; System.out.println("本次还书数为:"+s1.back+","+"可借书数为:"+s1.j); } public static void main(String[]args) { book s1=new book(); @SuppressWarnings("resource") Scanner borrow=new Scanner(System.in); System.out.println("账号:"); s1.num=borrow.next(); System.out.println("持卡人姓名:"); s1.name=borrow.next(); System.out.println("身份证号码:"); s1.ID=borrow.next(); System.out.println("地址:"); s1.address=borrow.next(); s1.i=1; //设已借1本 System.out.println("本次借书数为:"); s1.borrow=borrow.nextInt(); System.out.println("本次还书数为:"); s1.back=borrow.nextInt(); s1.borrow1(s1); s1.back1(s1); } }
编写“电费管理类”及其测试类。
7.1 “借书卡”类
² 属性:上月电表读数、本月电表读数
² 方法一:显示上月、本月电表读数
² 方法二:计算本月用电数
² 方法三:显示本月用电数
² 方法四:假设每度电的价格为1.2元,计算并显示本月电费
7.2 测试类
² 上月电表读数、本月电表读数,从键盘输入
package hyy; import java.util.*; public class number { float a,b,c; //a为上个月电表读数,b为本月电表读数,c为本月用电数 final float d=1.2f; public void see1() { System.out.println("上个月的电表读数为:"+a+"\n本月的电表读数为:"+b); } public void electricity1() { c=b-a; } public void see2() { System.out.println("本月用电量为:"+c); } public void electricity2() { float sum; sum=c*d; System.out.println("本月的电费为:"+sum); } public static void main(String[]args) { number s1=new number(); @SuppressWarnings("resource") Scanner number=new Scanner(System.in); System.out.println("上个月的电表读数为:"); s1.a=number.nextFloat(); System.out.println("本月的电表读数为:"); s1.b=number.nextFloat(); s1.see1(); s1.electricity1(); s1.see2(); s1.electricity2(); } }
编写“四则运算类”及其测试类。
8.1 应用场景
² 计算器。能实现简单的四则运算,要求:只进行一次运算。
8.1 “四则运算”类
² 属性:操作数一、操作数二、操作符
² 方法一:对两个操作数做加运算
² 方法二:对两个操作数做减运算
² 方法三:对两个操作数做乘运算
² 方法四:对两个操作数做除运算
8.2 测试类
² 从键盘输入两个操作数和一个操作符,计算之后,输出运算结果。
package hyy; import java.util.*; public class operation { public static void main(String[] args) { @SuppressWarnings("resource") Scanner s = new Scanner(System.in); System.out.println("输入第一个数:"); int num1 = s.nextInt(); System.out.println("输入第二个数:"); int num2 = s.nextInt(); System.out.println("输入运算符:"); @SuppressWarnings("unused") String num3= s.next(); int c=0; System.out.println(c+" = "+num1+" + "+num2); System.out.println(c+" = "+num1+" - "+num2); System.out.println(c+" = "+num1+" * "+num2); System.out.println(c+" = "+num1+" / "+num2); }}