目录
1.设计一个包含多个构造方法的类,并分别用这些构造方法实例化对象。
2.编写一个类Calculate1,实现加、减两种运算,然后,编写另一个派生类Calculate2,实现乘、除两种运算。
3.建立三个类:居民、成人、官员。居民包含身份证号、姓名、出生日期,而成人继承自居民,多包含学历、职业两项数据;官员则继承自成人,多包含党派、职务两项数据。要求每个类的字段都以属性的方式对外提供数据输入输出的功能。
4.编写一个类,其中包含一个排序的方法sort(),当传入的是一串整数,就按照从小到大的顺序输出,如果传入的是一个字符串,就将字符串反序输出。
5.设计一个立方体类Box,它能计算并输出立方体的体积和表面积。
6.编写一个程序,设计一个点类Point,实例化两个点之后,能调用其方法求两个点之间的距离。
7、 写一个学生类,包括属性: 学号,班号,姓名,年龄,性别;要求用无参构造,方法获得:学号,班号,姓名,年龄(只能小于100岁,大于1,否则重新输入) ,性别(只能男或者女,否则重新输入),最后在主方法输出你对一个学生对象赋值的信息。
8、设计一个BankAccount类,实现银行某账号的资金往来账目管理,包括建账号、存入、取出等。BankAccount类包括,账号(BankAccountId)、开户日期Date(日期),Money(金额),Rest(余额)。另有一个构造方法和三个成员方法Bankin()(处理存入账),Bankout()处理取出账)和和一个负责生成账号的自动增长的方法。
9、 编写一个程序,已有若干学生数据,包括学号、姓名、成绩,要求输出这些学生数据并计算平均分。思路:设计一个学生类Stud,除了包括no(学号)、name(姓名)、和deg(成绩)数据成员外。有两个静态变量sum和num,分别存放总分和人数,另有一个构造方法、一个普通成员方法disp()和一个静态成员方法avg(),它用于计算平均分。
10.编写一个程序,统计学生成绩,其功能包括输入学生的姓名和成绩,按成绩从高到低排列打印输出,对前70%的学生定为合格(PASS),而后30%的学生定为不合格(FAIL)。思路: 设计一个类student,包含学生的姓名和成绩等数据。设计一个类Compute: sort()、disp(),它们分别用于按成绩排序和输出数据。
1.设计一个包含多个构造方法的类,并分别用这些构造方法实例化对象。
class Like {
public String name;
public String age;
public String hobby;
public Like() {
}
public Like(String name, String age, String hobby) {
this.name = name;
this.age = age;
this.hobby = hobby;
}
// 说话
public void say() {
System.out.println(name + "说:沸羊羊你个臭**");
}
public void saying() {
System.out.println(name + "说:美羊羊你 TMD 真双标");
}
public void show() {
System.out.println("我可是" + name + age + hobby);
}
}
public class NO1 {
public static void main(String[] args) {
Like landawang = new Like("懒大王,", "你什么身份,我什么地位", ",你在狗叫什么!");
Like laozi = new Like("羊村村霸,", "村长都得给我递烟!", "少TM在那逼逼赖赖!");
landawang.show();
laozi.show();
landawang.say();
laozi.saying();
}
}
2.编写一个类Calculate1,实现加、减两种运算,然后,编写另一个派生类Calculate2,实现乘、除两种运算。
public class NO2 {
public static void main(String[] args) {
Calculate1 c1 = new Calculate1();
Calculate2 c2 = new Calculate2();
System.out.println("c1的加法:" + c1.plus(3, 2));
System.out.println("c1的减法:" + c1.subtraction(5, 3));
System.out.println("c2的乘法:" + c2.multiply(4, 4));
System.out.println("c2的除法:" + c2.remove(6, 3));
}
}
class Calculate1 {
public double plus(double x, double y) {
return x + y;
}
public double subtraction(double x, double y) {
return x - y;
}
}
class Calculate2 extends Calculate1 {
public double multiply(double x, double y) {
return x * y;
}
public double remove(double x, double y) {
return x / y;
}
}
3.建立三个类:居民、成人、官员。居民包含身份证号、姓名、出生日期,而成人继承自居民,多包含学历、职业两项数据;官员则继承自成人,多包含党派、职务两项数据。要求每个类的字段都以属性的方式对外提供数据输入输出的功能。
class Person {
public String no;
public String name;
public String birth;
public Person(String no, String name, String birth) {
LO(no);
LOV(name);
LOVE(birth);
}
public void LO(String no) {
System.out.println("身份证号:" + no);
this.no = no;
}
public void LOV(String name) {
System.out.println("姓名:" + name);
this.name = name;
}
public void LOVE(String birth) {
System.out.println("出生日期:" + birth);
this.birth = birth;
}
}
class Adult extends Person {
public String study;
public String job;
public Adult(String no, String name, String birth, String study, String job) {
super(no, name, birth);
ST(study);
JO(job);
}
public void ST(String study) {
System.out.println("学历:" + study);
this.study = study;
}
public void JO(String job) {
System.out.println("职业:" + job);
this.job = job;
}
}
class Official extends Adult {
public String political;
public String post;
public Official(String no, String name, String birth, String study, String job, String political, String post) {
super(no, name, birth, study, job);
Pol(political);
Pos(post);
}
public void Pol(String Political) {
System.out.println("党派:" + Political);
this.political = Political;
}
public void Pos(String post) {
System.out.println("职务:" + post);
this.post = post;
}
}
public class NO3 {
public static void main(String[] args) {
Person m = new Person("4************0", "美羊羊", "2000-02-02");
System.out.println();
Adult f = new Adult("4************1", "沸羊羊", "2001-03-08", "小学羊", "添购");
System.out.println();
Official l = new Official("4************2", "懒大王", "2002-08-08", "研究羊", "羊", "羊党", "羊村村霸");
}
}
4.编写一个类,其中包含一个排序的方法sort(),当传入的是一串整数,就按照从小到大的顺序输出,如果传入的是一个字符串,就将字符串反序输出。
import java.util.Arrays;
public class NO4 {
public static void main(String[] args) {
int[] obj = { 3, 6, 1, 10, 8 };
obj = sort(obj);
// 随便建一个字符的数组
String[] objs = { "b", "a", "c", "h", "d" };
objs = sort(objs);
// 打印
System.out.println("字符输出t");
for (int i = 0; i < objs.length; i++) {
System.out.print(objs[i] + " ");
}
System.out.println("t");
System.out.println("整数输出t");
for (int i = 0; i < obj.length; i++) {
System.out.print(obj[i] + " ");
}
}
// 用Arrays.sort()方法排序,默认从小到大
public static int[] sort(int[] nums) {
Arrays.sort(nums);
return nums;
}
// 字符串排序,用冒泡排序,通过compareTo(str)方法进行比较,该方法是根据字典表的顺序进行比较,如果参数大于本值,则返回-1,如果相等返回0,大于返回1
public static String[] sort(String[] strs) {
for (int i = 0; i < strs.length; i++) {
for (int j = 0; j < strs.length - i - 1; j++) {
if (strs[j].compareTo(strs[j + 1]) < 1) {
String temp = strs[j];
strs[j] = strs[j + 1];
strs[j + 1] = temp;
}
}
}
return strs;
}
}
5.设计一个立方体类Box,它能计算并输出立方体的体积和表面积。
import java.util.Scanner;
class Box {
private int length;
private int width;
private int heigth;
void setBox(int l, int w, int h) {
length = l;
width = w;
heigth = h;
}
int volume() {
System.out.println("立方体的体积是;" + length * width * heigth);
return 0;
}
int superficial() {
System.out.println("立方体的表面积是;" + 2 * (length * width + width * heigth + length * heigth));
return 0;
}
}
public class NO5 {
public static void main(String[] args) {
Box b = new Box();
System.out.println("下面将输入你所要计算的立方体体积和表面积");
System.out.println("下面将输入你所要计算的立方体长");
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
System.out.println("下面将输入你所要计算的立方体宽");
int j = sc.nextInt();
System.out.println("下面将输入你所要计算的立方体高");
int k = sc.nextInt();
b.setBox(i, j, k);
b.volume();
b.superficial();
}
}
6.编写一个程序,设计一个点类Point,实例化两个点之后,能调用其方法求两个点之间的距离。
class Point {
private double x;
private double y;
public Point(double x, double y) {
this.x = x;
this.y = y;
}
public static void distance(Point p1, Point p2) {
double sum = Math.sqrt(Math.pow(p1.x - p2.x, 2) + Math.pow(p1.y - p2.y, 2));
System.out.println("两点间的距离为t");
System.out.println(sum);
}
}
public class NO6 {
public static void main(String[] args) {
Point.distance(new Point(0, 0), new Point(3, 4));
//原点到(3,4)的距离
}
}
7、 写一个学生类,包括属性: 学号,班号,姓名,年龄,性别;要求用无参构造,方法获得:学号,班号,姓名,年龄(只能小于100岁,大于1,否则重新输入) ,性别(只能男或者女,否则重新输入),最后在主方法输出你对一个学生对象赋值的信息。
import java.util.Scanner;
public class NO7 {
public static class Student { // 以public class开头的内部类为动态的,而主程序以public static class开头
// 在java中,类中的静态方法不能直接调用动态方法,只有将某个内部类修饰为静态类,能够在静态类中调用该类的成员变量与成员方法。即此处应改为public
// static class Student
int num;// 学号
int classnum;// 班号
String name;// 姓名
int age;// 年龄
String sex;// 性别
public Student()// 空参构造
{
super();
}
public Student(int num, int classnum, String name, int age, String sex) // 有参构造
{
this.num = num;
this.classnum = classnum;
this.name = name;
this.age = age;
this.sex = sex;
}
// 各属性的getter和setter方法
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public int getClassnum() {
return classnum;
}
public void setClassnum(int classnum) {
this.classnum = classnum;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
// 数组中顺序显示所有学生信息
void Print(Student[] array)// Student[] array为对象数组,其在使用时必须逐一实例化
{
for (int i = 0; i < array.length; i++) {
System.out.println("学号:" + array[i].num + " 班号:" + array[i].classnum + " 姓名:" + array[i].name
+ " 年龄:" + array[i].age + " 性别:" + array[i].sex);
}
}
// 通过学生学号查找学生信息
void Find(int num, Student[] array)// 参数为num。和学生类数组array
{
for (int i = 0; i < array.length; i++) {
if (num == array[i].getNum()) {
System.out.println("学号:" + array[i].num + " 班号:" + array[i].classnum + " 姓名:" + array[i].name
+ " 年龄:" + array[i].age + " 性别:" + array[i].sex);
}
}
}
public static void main(String[] args) {
// 法一:手动输入学生信息
Scanner sc = new Scanner(System.in);
System.out.println("请输入学生人数:");
int x = sc.nextInt();
Student[] array = new Student[x];
for (int i = 0; i < array.length; i++) {
array[i] = new Student();// 若在编写一个java程序时没有添加无参构造方法,编译器会自动添加无参构造方法;
// 但是若编写时添加了有参构造方法而未添加无参构造方法,则编译器只认有参构造方法而不会默认添加无参构造方法,需要注意的是如果需要使用无参构造方法,一定要在类中里面添加
System.out.println("请输入第" + (i + 1) + "个学生的学号");
int num = sc.nextInt();// 输入学号
array[i].setNum(num);
System.out.println("请输入第" + (i + 1) + "个学生的班号");
int classnum = sc.nextInt();// 输入班号
array[i].setClassnum(classnum);
System.out.println("请输入第" + (i + 1) + "个学生的姓名");
String name = sc.next();// 输入姓名
array[i].setName(name);
System.out.println("请输入第" + (i + 1) + "个学生的年龄");
int age = sc.nextInt();// 输入年龄
if (age < 100 && age > 1)
array[i].setAge(age);
else {
System.out.println("请重新输入");
continue;
}
System.out.println("请输入第" + (i + 1) + "个学生的性别");
String sex = sc.next();// 输入性别
if (sex != " 男" || sex != " 女")
array[i].setSex(sex);
else {
System.out.println("请重新输入");
continue;
}
}
System.out.println("所有学生初始信息如下:");
array[0].Print(array);
System.out.println("----------------------------------");
System.out.println("学号为201801学生信息如下:");
array[0].Find(201801, array);
System.out.println("----------------------------------");
}
}
}
8、设计一个BankAccount类,实现银行某账号的资金往来账目管理,包括建账号、存入、取出等。BankAccount类包括,账号(BankAccountId)、开户日期Date(日期),Money(金额),Rest(余额)。另有一个构造方法和三个成员方法Bankin()(处理存入账),Bankout()处理取出账)和和一个负责生成账号的自动增长的方法。
import java.util.Scanner;
public class denglu2 {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
geren1[] user = new geren1[10];
//System.out.println(user[1]);
BankAccount(sc,user);
}
public static void BankAccount(Scanner sc,geren1[] user){
while (true)
{
System.out.println("===银行系统===");
System.out.println();
System.out.println("1,登录tt2,注册tt3,退出");
int xuanze = sc.nextInt();
if (xuanze == 1)
{
//print(user);
denglu1(sc,user);
}else if(xuanze == 2){
BankAccountId(sc,user);
//print(user);
}else if(xuanze == 3){
break;
}
else{System.out.println("输入有误!");}
}
}
public static void BankAccountId(Scanner sc, geren1[] user){
System.out.println("==== 注 册 ====");
for (int i=0;i { if (user[i] == null) { System.out.println("请输入注册账号:"); //user[i][0] = sc.next(); String zhanghao = sc.next(); System.out.println("请输入注册密码:"); //user[i][1] = sc.next(); String mima = sc.next(); System.out.println("请输入您的真实姓名:"); String name = sc.next(); System.out.println("请输入手机号:"); //zijin[i][2] = sc.nextInt(); String phone = sc.next(); geren1 gr = new geren1(zhanghao,mima,name,phone,i); user[i] = gr; System.out.println("注册成功"); return; } } } public static void denglu1(Scanner sc,geren1[] user){ System.out.println("==== 登 录 ====="); System.out.println("请输入账号:"); String zh = sc.next(); System.out.println("请输入密码:"); String mm = sc.next(); for (int i = 0;i //System.out.println(user[i]); if (user[i] != null){ geren1 gr = user[i]; //System.out.println(gr.getZijin()); if (zh.equals(gr.getZhanghao()) && mm.equals(gr.getMima())) { System.out.println("登录成功!"); grjiemian(sc,user,gr); return; } } } System.out.println("无此账号或密码错误!"); } public static void grjiemian(Scanner sc,geren1[] user,geren1 gr){ while(true){ System.out.println("==== 个人页面 ====="); System.out.println("请选择您要办理的业务:"); System.out.println("1,存款ttt2,取款"); System.out.println("3,查询余额tt4,转账"); System.out.println("5,查询个人信息t6,退出登录"); int xuanze = sc.nextInt(); if (xuanze == 1){ System.out.println("请输入存款金额:"); gr.setZijin(gr.getZijin()+sc.nextInt()); System.out.println("存款成功,当前余额:"+gr.getZijin()+"元"); }else if (xuanze == 2){ System.out.println("请输入取款金额:"); int qk = sc.nextInt(); if(qk>gr.getZijin()){ System.out.println("余额不足。。。"); }else{ gr.setZijin(gr.getZijin()-qk); System.out.println("取款成功,当前余额:"+gr.getZijin()+"元"); } }else if(xuanze == 3){ System.out.println("当前余额:"+gr.getZijin()+"元"); } else if(xuanze == 4){ System.out.println("请输入转账账号:"); String zh = sc.next(); System.out.println("请输入转账金额:"); int jine = sc.nextInt(); for (int zhao = 0;zhao if (user[zhao] !=null){ geren1 gr1 = user[zhao]; if (zh.equals(gr1.getZhanghao())){ gr1.setZijin(gr1.getZijin()+jine); gr.setZijin(gr.getZijin() - jine); } } } } else if(xuanze == 5){ gr.print(); } else if(xuanze == 6){ return; } } } } import java.util.Scanner; public class Student { int no; String name; double score; static double sum; static int num; public Student() { } public void disp() { Scanner sc= new Scanner(System.in); System.out.println("请输入存放同学的位数为*人"); num = sc.nextInt(); System.out.println("请输入学号"); no = sc.nextInt(); System.out.println("请输入名字"); name = sc.next(); System.out.println("请输入成绩"); score = sc.nextDouble(); sum = sum+score; } static double ave() {return sum/num;} public void showInto() { System.out.println("该同学学号为"+no); System.out.println("该同学名字为"+name); System.out.println("该同学成绩为"+score); System.out.println("截至该同学目前平均成绩为"+ave()); } } \ public class Stud { public static void main(String[] args) { System.out.println("请存放三个学生的信息"); Student one = new Student(); Student two = new Student(); Student three = new Student(); one.disp(); one.showInto(); two.disp(); two.showInto(); three.disp(); three.showInto(); } } student类 public class Student { String name; double deg; public Student(String name, double deg) { this.name = name; this.deg = deg; } } compute类 public class Compute { public void sort(Student [] students){ for(int i = 0;i < students.length;i++){ for(int j = i;j < students.length;j++){ if(students[i].deg < students[j].deg){ Student temp = students[i]; students[i] = students[j]; students[j] = temp; } } } } public void disp(Student[] students){ sort(students); for(int i = 0;i < students.length;i++){ if(i <= students.length*0.7-1){ System.out.println("姓名:"+students[i].name+" 成绩:"+students[i].deg+" PASS"); }else { System.out.println("姓名:"+students[i].name+" 成绩:"+students[i].deg+" FAIL"); } } } } Demo类 public class Demo { public static void main(String[] args) { Student[] s = new Student[5]; s[0] = new Student("四浪",79); s[1] = new Student("三根",88); s[2] = new Student("二狗",56); s[3] = new Student("一休",75); s[4] = new Student("零零",65); Compute compute = new Compute(); compute.disp(s); } }9、 编写一个程序,已有若干学生数据,包括学号、姓名、成绩,要求输出这些学生数据并计算平均分。思路:设计一个学生类Stud,除了包括no(学号)、name(姓名)、和deg(成绩)数据成员外。有两个静态变量sum和num,分别存放总分和人数,另有一个构造方法、一个普通成员方法disp()和一个静态成员方法avg(),它用于计算平均分。
10.编写一个程序,统计学生成绩,其功能包括输入学生的姓名和成绩,按成绩从高到低排列打印输出,对前70%的学生定为合格(PASS),而后30%的学生定为不合格(FAIL)。思路: 设计一个类student,包含学生的姓名和成绩等数据。设计一个类Compute: sort()、disp(),它们分别用于按成绩排序和输出数据。



