程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

Java实验二 Java面向对象程序设计(7题)

发布于2021-06-12 16:09     阅读(370)     评论(0)     点赞(13)     收藏(3)


文章目录:

一:书写语句完成下面的功能

二:判断下面说法是否正确

三:设计并测试一个名为Retangle的矩形类,包括的属性有矩形的左下角与右上角两个点的坐标,包括的方法有计算矩形的宽度和高度以及矩形的面积

四:编写一个类实现复数的运算

 五:为一个州立大学的学生建立账单系统。州内外的学生收费不同,州内每学分收费¥75,州外为¥200,每个学生的账单上有学校名称、学生姓名、信用卡使用的时间以及账单的总额

六:编写一个类实现银行帐户

七:编写一个学生类Student,包含的属性有学号、姓名、性别、年龄、班号等,方法有getter和setter方法,toString()方法等,定义构造方法初始化所有属性,编写一个班级学生管理程序将所有学生存储在一个数组中


一:书写语句完成下面的功能

  1. (1) 定义一个类,其名称为MyClass,它可以被所有的其他类访问。
  2. public class MyClass{}
  3. (2)将对象obj1的属性field1在屏幕上显示出来。
  4. System.out.print(Object1.field1);
  5. (3)调用对象obj1的方法method1,把返回值赋值给变量hold。
  6. Hold=Object1.method1();
  7. (3)定义一个整型属性mine,使得只有这个类本身可以访问它。
  8. Private int Mine;
  9. (5)为类Class1定义一个整型变量field2,使得所有其他类都可以访问它。
  10. public class Class1{public int field2;}
  11. (6)定义一个无形式参数无返回值的方法method2,使得使用类名Class1作前缀就可以调用它。
  12. static void method2()
  13. (7)为类Class2编写构造方法的方法头,该构造函数不接受形式参数。
  14. Class2()
  15. (8)为类Class2编写构造方法的方法头,该构造函数接受两个整型形式参数。
  16. Class2(int c1,int c2)
  17. (9)创建类Class1的一个对象obj1,定义这个类的一个引用ref1,把对象obj1的引用赋给ref1。
  18. Class1 obj1=new Class1() ; Class1 ref1=obj1;
  19. (10)为类Class1创建一个静态整型变量s_data。
  20. static int s_data;
  21. (11)写出一个空的静态初始化器。
  22. static {
  23. //静态域初始化语句
  24. }
  25. (12)写出抽象类IamAbstract的类头定义语句。
  26. public abstraact class IamAbstract
  27. (13)定义——个抽象方法abstractMethod,没有形式参数,返回值为布尔型量。
  28. public abstract boolean abstractMethod();
  29. (14)写出定义最终类IamFinal的类头定义语句。
  30. Final class IamFinal;
  31. (15)定义浮点常量PIE,其取值为3.1415926
  32. float PIE 3.1415926

二:判断下面说法是否正确

  1. (1) Java程序是由若干类定义组成的,类定义包括定义类头和定义类体。T
  2. (2)Class1类的属性被private修饰符修饰为私有变量,所以方法不能访问它。F
  3. (3)类头定义主要说明类的名字、父类名和接口名。T
  4. (4)一个程序里有且只能有一个公共类,它就是主类。F
  5. (5)类的修饰符有静态修饰符static、最终修饰符final、易失修饰符volatile和过渡修饰符transient。F
  6. (6)引用一个类的属性或调用其方法,必须以这个类的对象为前缀。F
  7. (7)创建新的类对象使用关键字new,回收无用的类对象使用关键字free。F
  8. (8)对象可以赋值,只要使用赋值号(等号)即可,相当于生成了一个各属性与赋值对象相同的新对象。F
  9. (9)有的类定义时可以不定义构造函数,所以构造函数不是必需的。F
  10. (10)类及其属性、方法可以同时有一个以上的修饰符来修饰。T
  11. (11)没有定义访问控制符的类属性和类方法可以被同一个包中的其他类和对象访问。F
  12. (12)与未加访问控制符的缺省情况相比,public和protected修饰符扩大了类及其属性和方法的被访问范围,private修饰符则缩小了这种范围。T
  13. (13)抽象类没有具体对象,所以抽象类没有构造函数。F
  14. (14)抽象类中的抽象方法必须在该类的子类中具体实现。F
  15. (15)抽象方法必须在抽象类中,所以抽象类中的方法都必须是抽象方法。F
  16. (16)final类中的属性和方法都必须被final修饰符修饰。F
  17. (17)最终类不能派生子类,最终方法不能被覆盖。T
  18. (18)同一个类的对象使用不同的内存字段,但静态成员共享相同的内存空间T
  19. (19)方法中的形参可以和方法所属类的属性同名。T
  20. (20) return 语句不能用来返回对象F
  21. (21) 不管类中是否定义了何种构造方法,创建对象时都可以使用默认的构造方法。F
  22. (22) 一个程序里有且只能有一个公共类,它就是主类。F

三:设计并测试一个名为Retangle的矩形类,包括的属性有矩形的左下角与右上角两个点的坐标,包括的方法有计算矩形的宽度和高度以及矩形的面积

Retangle.java
  1. package work.two.Test3;
  2. /**
  3. * 设计并测试一个名为Retangle的矩形类,
  4. * 包括的属性有矩形的左下角与右上角两个点的坐标,
  5. * 包括的方法有计算矩形的宽度和高度以及矩形的面积。
  6. */
  7. public class Retangle {
  8. private int x1,x2;
  9. private int y1,y2;
  10. public Retangle() {
  11. }
  12. public Retangle(int x1, int x2, int y1, int y2) {
  13. this.x1 = x1;
  14. this.x2 = x2;
  15. this.y1 = y1;
  16. this.y2 = y2;
  17. }
  18. public int getX1() {
  19. return x1;
  20. }
  21. public void setX1(int x1) {
  22. this.x1 = x1;
  23. }
  24. public int getX2() {
  25. return x2;
  26. }
  27. public void setX2(int x2) {
  28. this.x2 = x2;
  29. }
  30. public int getY1() {
  31. return y1;
  32. }
  33. public void setY1(int y1) {
  34. this.y1 = y1;
  35. }
  36. public int getY2() {
  37. return y2;
  38. }
  39. public void setY2(int y2) {
  40. this.y2 = y2;
  41. }
  42. @Override
  43. public String toString() {
  44. return "Retangle{" +
  45. "x1=" + x1 +
  46. ", x2=" + x2 +
  47. ", y1=" + y1 +
  48. ", y2=" + y2 +
  49. '}';
  50. }
  51. public int width(){
  52. return this.x2-this.x1;
  53. }
  54. public int height(){
  55. return this.y1-this.y2;
  56. }
  57. public int area(){
  58. return width()*height();
  59. }
  60. }
main.java
  1. package work.two.Test3;
  2. import java.util.Scanner;
  3. public class main {
  4. public static void main(String[] args) {
  5. Retangle retangle = new Retangle();
  6. Scanner scanner = new Scanner(System.in);
  7. System.out.print("请输入左上角坐标(x1,y1):");
  8. retangle.setX1(scanner.nextInt());
  9. retangle.setY1(scanner.nextInt());
  10. System.out.print("请输入右下角坐标(x2,y2):");
  11. retangle.setX2(scanner.nextInt());
  12. retangle.setY2(scanner.nextInt());
  13. System.out.println("你输入的坐标为:("+retangle.getX1()+","+retangle.getY1()+");("+retangle.getX2()+","+retangle.getY2()+")");
  14. System.out.println("两个坐标组成的矩形 宽为:"+Math.abs(retangle.width())+"\t长为:"+Math.abs(retangle.height()));
  15. System.out.println("组成矩形的面积为:"+Math.abs(retangle.area()));
  16. }
  17. }

四:编写一个类实现复数的运算

  1. 复数类ComplexNumber的属性:
  2. realPart:实部,代表复数的实数部分。
  3. imaginPart:虚部,代表复数的虚数部分。
  4. 复数类ComplexNumber的方法:
  5. (1) ComplexNumber():无参构造方法,初始化实部和虚部为0
  6. (2)ComplexNumber(double r,double i):构造方法,创建复数对象的同时完成复数的实部、虚部的初始化,r为实部的初值,i为虚部的初值
  7. (3) gettersetter方法
  8. (4)complexAdd(ComplexNumberc):当前复数对象与形式参数复数对象相加,所得的结果也是复数值。
  9. (5)complexSub(ComplexNumberc):当前复数对象与形式参数复数对象相减,所得的结果也是复数值。
  10. (6)complexMulti(ComplexNumber c):当前复数对象与形式参数复数对象相乘,所得的结果也是复数值。
  11. (7)complexDivide(ComplexNumber c):当前复数对象与形式参数复数对象相除,所得的结果也是复数值。
  12. (8)toString():把当前复数对象的实部、虚部组合成a+bi的字符串形式,其中ab分别为实部和虚部的数据。
  13. 编程实现这个类,并验证所编写的类能否正常使用

ComplexNumber.java
  1. package work.two.Test4;
  2. public class ComplexNumber {
  3. public double realPart;
  4. private double imaginPart;//代表复数的虚数部分
  5. // 无参构造方法,初始化实部和虚部为0
  6. public ComplexNumber() {
  7. this.realPart=0;
  8. this.imaginPart=0;
  9. }
  10. //构造方法,创建复数对象的同时完成复数的实部、虚部的初始化,r为实部的初值,i为虚部的初值
  11. public ComplexNumber(double r, double i) {
  12. this.realPart = r;
  13. this.imaginPart = i;
  14. }
  15. // getter和setter方法
  16. public double getRealPart() {
  17. return realPart;
  18. }
  19. public void setRealPart(double realPart) {
  20. this.realPart = realPart;
  21. }
  22. public double getImaginPart() {
  23. return imaginPart;
  24. }
  25. public void setImaginPart(double imaginPart) {
  26. this.imaginPart = imaginPart;
  27. }
  28. //当前复数对象与形式参数复数对象相加,所得的结果也是复数值
  29. public ComplexNumber complexAdd(ComplexNumber c){
  30. ComplexNumber add=new ComplexNumber();
  31. add.setRealPart(this.realPart+c.realPart);
  32. add.setImaginPart(this.imaginPart+c.imaginPart);
  33. return add;
  34. }
  35. //当前复数对象与形式参数复数对象相减,所得的结果也是复数值
  36. public ComplexNumber complexSub(ComplexNumber c){
  37. ComplexNumber sub=new ComplexNumber();
  38. sub.setRealPart(this.realPart-c.realPart);
  39. sub.setImaginPart(this.imaginPart-c.imaginPart);
  40. return sub;
  41. }
  42. //当前复数对象与形式参数复数对象相乘,所得的结果也是复数值
  43. public ComplexNumber complexMulti(ComplexNumber c){
  44. ComplexNumber multi=new ComplexNumber();
  45. multi.setRealPart(this.realPart*c.realPart);
  46. multi.setImaginPart(this.imaginPart*c.imaginPart);
  47. return multi;
  48. }
  49. //当前复数对象与形式参数复数对象相除,所得的结果也是复数值
  50. public ComplexNumber complexDivide(ComplexNumber c){
  51. ComplexNumber divide=new ComplexNumber();
  52. divide.setRealPart(this.realPart/c.realPart);
  53. divide.setImaginPart(this.imaginPart/c.imaginPart);
  54. return divide;
  55. }
  56. //把当前复数对象的实部、虚部组合成a+bi的字符串形式,其中a和b分别为实部和虚部的数据
  57. @Override
  58. public String toString() {
  59. return "a+bi={" + realPart +"+" + imaginPart +"i}";
  60. }
  61. }

main.java

  1. package work.two.Test4;
  2. public class main {
  3. public static void main(String[] args) {
  4. ComplexNumber complexNumber=new ComplexNumber(3,3);
  5. ComplexNumber c1=complexNumber.complexAdd(new ComplexNumber(6,6));
  6. System.out.println("相加后 实部:"+c1.getRealPart()+"\t虚部:"+c1.getImaginPart());
  7. ComplexNumber c2=complexNumber.complexSub(new ComplexNumber(6,6));
  8. System.out.println("相减后 实部:"+c2.getRealPart()+"\t虚部:"+c2.getImaginPart());
  9. ComplexNumber c3=complexNumber.complexMulti(new ComplexNumber(6,6));
  10. System.out.println("相乘后 实部:"+c3.getRealPart()+"\t虚部:"+c3.getImaginPart());
  11. ComplexNumber c4=complexNumber.complexDivide(new ComplexNumber(6,6));
  12. System.out.println("相除后 实部:"+c4.getRealPart()+"\t虚部:"+c4.getImaginPart());
  13. System.out.println(complexNumber.toString());
  14. }
  15. }

 五:为一个州立大学的学生建立账单系统。州内外的学生收费不同,州内每学分收费¥75,州外为¥200,每个学生的账单上有学校名称、学生姓名、信用卡使用的时间以及账单的总额

Zhangdansystem.java
  1. package work.two.Test5;
  2. import java.text.SimpleDateFormat;
  3. import java.util.Date;
  4. /**
  5. * 为一个州立大学的学生建立账单系统。
  6. * 州内外的学生收费不同,州内每学分收费¥75,州外为¥200,
  7. * 每个学生的账单上有学校名称、学生姓名、信用卡使用的时间以及账单的总额。
  8. */
  9. //每个学生的账单上有学校名称、学生姓名、信用卡使用的时间以及账单的总额
  10. public class Zhangdansystem {
  11. private String SchoolName;
  12. private String StudentName;
  13. private Date CreditCardTime;
  14. private double bill=0;//账单的总额
  15. private boolean flag;//是否为州内学生
  16. public Zhangdansystem() {
  17. }
  18. public Zhangdansystem(String schoolName, String studentName, Date creditCardTime, double bill, boolean flag) {
  19. SchoolName = schoolName;
  20. StudentName = studentName;
  21. CreditCardTime = creditCardTime;
  22. this.bill = bill;
  23. this.flag = flag;
  24. }
  25. public String getSchoolName() {
  26. return SchoolName;
  27. }
  28. public void setSchoolName(String schoolName) {
  29. SchoolName = schoolName;
  30. }
  31. public String getStudentName() {
  32. return StudentName;
  33. }
  34. public void setStudentName(String studentName) {
  35. StudentName = studentName;
  36. }
  37. public String getCreditCardTime() {
  38. SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy/MM/dd HH:mm");
  39. return sdf2.format(this.CreditCardTime);
  40. }
  41. public void setCreditCardTime(Date creditCardTime) {
  42. CreditCardTime = creditCardTime;
  43. }
  44. public double getBill() {
  45. return bill;
  46. }
  47. public void setBill(double bill) {
  48. this.bill = bill;
  49. }
  50. public boolean isFlag() {
  51. return flag;
  52. }
  53. //州内每学分收费¥75,州外为¥200
  54. public void setFlag(boolean flag)
  55. {
  56. this.flag = flag;
  57. if (isFlag()){
  58. this.bill=75;
  59. }else {
  60. this.bill=200;
  61. }
  62. }
  63. @Override
  64. public String toString() {
  65. SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy/MM/dd HH:mm");
  66. return "StudentBill{" +
  67. "SchoolName='" + SchoolName + '\'' +
  68. ", StudentName='" + StudentName + '\'' +
  69. ", CreditCardTime=" + sdf2.format(this.CreditCardTime) +
  70. ", bill=" + bill +
  71. ", flag=" + flag +
  72. '}';
  73. }
  74. }

main.java

  1. package work.two.Test5;
  2. import java.text.ParseException;
  3. import java.util.Date;
  4. public class main {
  5. public static void main(String[] args) throws ParseException {
  6. Zhangdansystem student1=new Zhangdansystem();
  7. student1.setSchoolName("州内大学");
  8. student1.setStudentName("刘鑫磊");
  9. student1.setCreditCardTime(new Date());
  10. student1.setFlag(true);
  11. System.out.println
  12. (
  13. "姓名:"+student1.getStudentName()+
  14. "\n学校:"+student1.getSchoolName()+
  15. "\n信用卡使用时间:"+student1.getCreditCardTime()+
  16. "\n账单总额:"+student1.getBill()+
  17. "\n是否为州内学生:"+student1.isFlag()
  18. );
  19. System.out.println("********************************");
  20. Zhangdansystem student2=new Zhangdansystem();
  21. student2.setSchoolName("州外大学");
  22. student2.setStudentName("刘鑫");
  23. student2.setCreditCardTime(new Date());
  24. student2.setFlag(false);
  25. System.out.println
  26. (
  27. "姓名:"+student2.getStudentName()+
  28. "\n学校:"+student2.getSchoolName()+
  29. "\n信用卡使用时间:"+student2.getCreditCardTime()+
  30. "\n账单总额:"+student2.getBill()+
  31. "\n是否为州内学生:"+student2.isFlag()
  32. );
  33. }
  34. }

六:编写一个类实现银行帐户

  1. (1)设置的属性有“帐号”、“储尸姓名”、“地址”、“存款余额”,
  2. (2)设置的方法有“存款”、“取款”、“查询”、“计算利息”、“累加利息”等。
  3. (3)给类增加一个静态属性“最小余额”和一个用来修改这个最小余额属性的方法。
  4. (4)给类增加一个静态属性“活期利息”和封装这个数据的相应方法。
  5. 完成整个程序的测试

Account.java
  1. package work.two.Test6;
  2. /**
  3. * 编写一个类实现银行帐户。
  4. * (1)设置的属性有“帐号”、“储尸姓名”、“地址”、“存款余额”,
  5. * (2)设置的方法有“存款”、“取款”、“查询”、“计算利息”、“累加利息”等。
  6. * (3)给类增加一个静态属性“最小余额”和一个用来修改这个最小余额属性的方法。
  7. * (4)给类增加一个静态属性“活期利息”和封装这个数据的相应方法。
  8. * 完成整个程序的测试
  9. */
  10. public class Account {
  11. //设置的属性有“帐号”、“储尸姓名”、“地址”、“存款余额”
  12. private String AccountNumber;
  13. private String UserName;
  14. private String Address;
  15. private double Deposit;
  16. private static double MinDeposit=10;//给类增加一个静态属性“最小余额”和一个用来修改这个最小余额属性的方法
  17. private static double CurrentInterest=0.05;//给类增加一个静态属性“活期利息”和封装这个数据的相应方法
  18. public Account() {
  19. }
  20. public Account(String accountNumber, String userName, String address, double deposit) {
  21. AccountNumber = accountNumber;
  22. UserName = userName;
  23. Address = address;
  24. Deposit = deposit;
  25. }
  26. public static void setMinDeposit(double minDeposit) {
  27. MinDeposit = minDeposit;
  28. }
  29. public static double getCurrentInterest() {
  30. return CurrentInterest;
  31. }
  32. public static void setCurrentInterest(double currentInterest) {
  33. CurrentInterest = currentInterest;
  34. }
  35. public String getAccountNumber() {
  36. return AccountNumber;
  37. }
  38. public void setAccountNumber(String accountNumber) {
  39. AccountNumber = accountNumber;
  40. }
  41. public String getUserName() {
  42. return UserName;
  43. }
  44. public void setUserName(String userName) {
  45. UserName = userName;
  46. }
  47. public String getAddress() {
  48. return Address;
  49. }
  50. public void setAddress(String address) {
  51. Address = address;
  52. }
  53. public double getDeposit() {
  54. return Deposit;
  55. }
  56. public void setDeposit(double deposit) {
  57. Deposit = deposit;
  58. }
  59. @Override
  60. public String toString() {
  61. return "Account{" +
  62. "AccountNumber=" + AccountNumber +
  63. ", UserName='" + UserName + '\'' +
  64. ", Address='" + Address + '\'' +
  65. ", Deposit=" + Deposit +
  66. '}';
  67. }
  68. //设置的方法有“存款”、“取款”、“查询”、“计算利息”、“累加利息”等
  69. /**
  70. * 存款方法
  71. * @param money
  72. */
  73. public void deposit(double money){
  74. this.Deposit+=money;
  75. System.out.println("本次存入"+money+"元,当前余额为:"+Deposit+"元");
  76. }
  77. /**
  78. * 取款方法
  79. * @param money
  80. */
  81. public void withdraw(double money){
  82. this.Deposit-=money;
  83. System.out.println("本次取出"+money+"元,当前余额为:"+Deposit+"元");
  84. }
  85. //基本信息
  86. public void base(){
  87. System.out.println(
  88. "账号:"+this.AccountNumber+
  89. "\n姓名:"+this.UserName+
  90. "\n地址:"+this.Address+
  91. "\n余额:"+this.Deposit+"元");
  92. }
  93. /**
  94. * 计算利息
  95. * @return
  96. */
  97. public double interest(){
  98. double interest=this.Deposit*CurrentInterest;
  99. return interest;
  100. }
  101. /**
  102. * 累加利息
  103. */
  104. public void calculation(){
  105. System.out.println("本次增加利息为:"+interest()+"元");
  106. Deposit+=interest();
  107. System.out.println("当前余额为:"+Deposit+"元");
  108. }
  109. }

mian.java

  1. package work.two.Test6;
  2. public class main {
  3. public static void main(String[] args) {
  4. Account liu = new Account();
  5. liu.setAccountNumber("3320180993322");
  6. liu.setUserName("刘鑫磊");
  7. liu.setAddress("西华大学");
  8. liu.setDeposit(300);//存款余额
  9. liu.base();//基本信息
  10. liu.deposit(300);//存款
  11. liu.withdraw(400);//取款
  12. liu.calculation();//累加利息
  13. }
  14. }

七:编写一个学生类Student,包含的属性有学号、姓名、性别、年龄、班号等,方法有getter和setter方法,toString()方法等,定义构造方法初始化所有属性,编写一个班级学生管理程序将所有学生存储在一个数组中

  1. 实现如下管理操作:
  2. (1)增加一个学生;
  3. (2) 根据学号删除某个学生;
  4. (3) 将所有学生年龄增加一岁;
  5. (4) 将某个学生转到另一个班;
  6. (5) 输入班号、列出该班所有学生

Student.java
  1. package work.two.Test7;
  2. import java.util.Scanner;
  3. /**
  4. * 编写一个学生类Student,
  5. * 包含的属性有学号、姓名、性别、年龄、班号等,
  6. * 方法有getter和setter方法,toString()方法等,
  7. */
  8. public class Student {
  9. private String StdNumber;
  10. private String Name;
  11. private String Gender;
  12. private int age;
  13. private int ClassNumber;
  14. public Student() {
  15. }
  16. public Student(String stdNumber, String name, String gender, int age, int classNumber) {
  17. StdNumber = stdNumber;
  18. Name = name;
  19. Gender = gender;
  20. this.age = age;
  21. ClassNumber = classNumber;
  22. }
  23. public String getStdNumber() {
  24. return StdNumber;
  25. }
  26. public void setStdNumber(String stdNumber) {
  27. StdNumber = stdNumber;
  28. }
  29. public String getName() {
  30. return Name;
  31. }
  32. public void setName(String name) {
  33. Name = name;
  34. }
  35. public String getGender() {
  36. return Gender;
  37. }
  38. public void setGender(String gender) {
  39. Gender = gender;
  40. }
  41. public int getAge() {
  42. return age;
  43. }
  44. public void setAge(int age) {
  45. this.age = age;
  46. }
  47. public int getClassNumber() {
  48. return ClassNumber;
  49. }
  50. public void setClassNumber(int classNumber) {
  51. ClassNumber = classNumber;
  52. }
  53. @Override
  54. public String toString() {
  55. return "Student{" +
  56. "StdNumber='" + StdNumber + '\'' +
  57. ", Name='" + Name + '\'' +
  58. ", Gender='" + Gender + '\'' +
  59. ", age=" + age +
  60. ", ClassNumber=" + ClassNumber +
  61. '}';
  62. }
  63. //下面开始实现各种方法
  64. /**
  65. * 查询所有学生信息
  66. *
  67. * @param students
  68. */
  69. public void find(Student students[]) {
  70. for (int i = 0; i < students.length; i++) {
  71. if (students[i] != null)
  72. {
  73. System.out.print("学号:" + students[i].getStdNumber());
  74. System.out.print("\t姓名:" + students[i].getName());
  75. System.out.print("\t性别:" + students[i].getGender());
  76. System.out.print("\t年龄:" + students[i].getAge());
  77. System.out.println("\t班号:" + students[i].getClassNumber());
  78. }
  79. }
  80. }
  81. /**
  82. * 增加学生信息
  83. *
  84. * @param students
  85. */
  86. public void addStudent(Student students[]) {
  87. Scanner scanner = new Scanner(System.in);
  88. for (int i = 0; i < students.length; i++) {
  89. if (students[i] == null) {
  90. students[i] = new Student();
  91. System.out.print("请输入要增加的学生学号:");
  92. students[i].setStdNumber(scanner.next());
  93. System.out.print("请输入要增加的学生姓名:");
  94. students[i].setName(scanner.next());
  95. System.out.print("请输入要增加的学生性别:");
  96. students[i].setGender(scanner.next());
  97. System.out.print("请输入要增加的学生年龄:");
  98. students[i].setAge(scanner.nextInt());
  99. System.out.print("请输入要增加的学生班号:");
  100. students[i].setClassNumber(scanner.nextInt());
  101. break;
  102. }
  103. }
  104. }
  105. /**
  106. * 删除学生信息
  107. *
  108. * @param students
  109. */
  110. public void delete(Student students[]) {
  111. Scanner scanner = new Scanner(System.in);
  112. System.out.print("请输入要删除的学生学号:");
  113. String num = scanner.next();
  114. boolean flag = true;
  115. for (int i = 0; i < students.length; i++) {
  116. if (students[i].getStdNumber().equals(num)) {
  117. flag = false;
  118. students[i] = null;
  119. }
  120. }
  121. if (flag) {
  122. System.out.print("您输入的学号不存在!请重新输入!");
  123. delete(students);
  124. }
  125. }
  126. /**
  127. * 所有学生年龄增加一岁
  128. *
  129. * @param students
  130. */
  131. public void addAllAge(Student students[]) {
  132. for (int i = 0; i < students.length; i++) {
  133. if (students[i] != null) {
  134. students[i].setAge(students[i].getAge() + 1);
  135. }
  136. }
  137. }
  138. /**
  139. * 某个学生转到另一个班
  140. *
  141. * @param students
  142. */
  143. public void move(Student students[]) {
  144. Scanner scanner = new Scanner(System.in);
  145. System.out.print("请输入要转班的学生学号:");
  146. String num = scanner.next();
  147. System.out.print("请输入要转入的班号:");
  148. int clsnum = scanner.nextInt();
  149. boolean flag = true;
  150. for (int i = 0; i < students.length; i++) {
  151. if (students[i] != null) {
  152. if (students[i].getStdNumber().equals(num)) {
  153. flag = false;
  154. students[i].setClassNumber(clsnum);
  155. }
  156. }
  157. }
  158. if (flag) {
  159. System.out.print("您输入的学号不存在!请重新输入!");
  160. move(students);
  161. }
  162. }
  163. /**
  164. * 输入班号、列出该班所有学生
  165. *
  166. * @param students
  167. */
  168. public void numStudent(Student students[]) {
  169. Scanner scanner = new Scanner(System.in);
  170. System.out.print("请输入班号:");
  171. int classNum = scanner.nextInt();
  172. for (int i = 0; i < students.length; i++) {
  173. if (students[i] != null) {
  174. if (students[i].getClassNumber() == classNum) {
  175. System.out.print("学号:" + students[i].getStdNumber());
  176. System.out.print("\t姓名:" + students[i].getName());
  177. System.out.print("\t性别:" + students[i].getGender());
  178. System.out.print("\t年龄:" + students[i].getAge());
  179. System.out.println("\t班号:" + students[i].getClassNumber());
  180. }
  181. }
  182. }
  183. }
  184. }

mian.java

  1. package work.two.Test7;
  2. /**
  3. * 定义构造方法初始化所有属性,编写一个班级学生管理程序将所有学生存储在一个数组中,实现如下管理操作:
  4. * (1)增加一个学生;
  5. * (2)根据学号删除某个学生;
  6. * (3)将所有学生年龄增加一岁;
  7. * (4)将某个学生转到另一个班;
  8. * (5)输入班号、列出该班所有学生
  9. */
  10. public class main {
  11. public static void main(String[] args) {
  12. Student []students=new Student[6];
  13. students[0]=new Student("001","刘鑫磊","男",20,1);
  14. students[1]=new Student("002","刘鑫","女",19,1);
  15. students[2]=new Student("003","刘磊","男",18,2);
  16. students[3]=new Student("004","鑫磊","女",17,2);
  17. students[4]=new Student("005","雨花石","女",16,3);
  18. Student student = new Student();
  19. student.find(students);//先全部输出来
  20. System.out.println("***********增加学生信息***************");
  21. student.addStudent(students);
  22. student.find(students);
  23. System.out.println("***********删除学生信息***************");
  24. student.delete(students);
  25. student.find(students);
  26. System.out.println("*********所有学生年龄增加一岁**********");
  27. student.addAllAge(students);
  28. student.find(students);
  29. System.out.println("*********某个学生转到另一个班**********");
  30. student.move(students);
  31. student.find(students);
  32. System.out.println("*******输入班号列出该班所有学生********");
  33. student.numStudent(students);
  34. }
  35. }

 

原文链接:https://blog.csdn.net/liu17234050/article/details/117687912



所属网站分类: 技术文章 > 博客

作者:我长得真不赖

链接:http://www.javaheidong.com/blog/article/222533/0205476dc264b997d663/

来源:java黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

13 0
收藏该文
已收藏

评论内容:(最多支持255个字符)