实验7:Student类继承Person类,并增加查找,统计功能
源代码如下:
1 package Students; 2 public class Person 3 { 4 public String name; 5 public String birthday; 6 public String province,city; 7 public int count; 8 public Person(String nam,String birthda,String provinc,String cit,int n) 9 { 10 name=nam;birthday=birthda;province=provinc;city=cit;count=n; 11 12 } 13 } 14 15 class Student extends Person 16 {public String major; 17 public int sum1,sum2,sum3; 18 public int grade; 19 public int number; 20 public int score; 21 22 Student(String nam,String birthda,String provinc,String cit,int n,String majo,int grad,int scor) 23 { super(nam,birthda,provinc,cit,n); 24 major=majo; 25 grade=grad; 26 score=scor; 27 String a,b,c; 28 a=new String("网络工程"); 29 b=new String("物联网"); 30 c=new String("计算机科学与技术"); 31 32 33 if(major.equals(a)) 34 {number=grade*10000+01*100+count; 35 } 36 if(major.equals(b)) 37 {number=grade*10000+02*100+count; 38 } 39 if(major.equals(c)) 40 {number=grade*10000+03*100+count; 41 } 42 43 } 44 public void searchname(String nam) 45 { int i=-1; 46 i=name.indexOf(nam); 47 48 if(i!=-1) 49 System.out.println(name); 50 }; 51 public void searchbirthday(String num) 52 { 53 int i=-1; 54 i=birthday.indexOf(num); 55 if(i!=-1) 56 System.out.println(name); 57 } 58 public void searchplace(String place) 59 { 60 int i=-1; 61 i=province.indexOf(place); 62 if(i!=-1) 63 System.out.println(name); 64 65 } 66 67 public int separate() 68 { 69 String a,b,c; 70 71 a=new String("网络工程"); 72 b=new String("物联网"); 73 c=new String("计算机科学与技术"); 74 if(major.equals(a)) 75 { 76 sum1=sum1+score; 77 return sum1; 78 } 79 if(major.equals(b)) 80 {sum2=sum2+score; 81 return sum2; 82 } 83 if(major.equals(c)) 84 { 85 sum3=sum3+score; 86 return sum3; 87 } 88 else return 0; 89 } 90 91 public static void main(String[] args) 92 { 93 System.out.println("初始数据:学生1:姓名:张三,生日:1998年11月15日,省份:青海,城市:西宁,专业:物联网,入学年份:2017,成绩:89"); 94 System.out.println(" 学生2:姓名:李四,生日:1999年01月08日,省份:河南,城市:洛阳,专业:网络工程,入学年份:2017,成绩:97"); 95 System.out.println(" 学生3:姓名:王二,生日:1998年07月24日,省份:山东,城市:青岛,专业:网络工程,入学年份:2017,成绩:92"); 96 System.out.println(" 学生4:姓名:赵六,生日:1997年08月30日,省份:陕西,城市:西安,专业:计算机科学与技术,入学年份:2017,成绩:84"); 97 Student stud1=new Student("张三","1998年11月15日","青海","西宁",01,"物联网",2017,89); 98 Student stud2=new Student("李四","1999年01月08日","河南","洛阳",02,"网络工程",2017,97); 99 Student stud3=new Student("王二","1998年07月24日","山东","青岛",03,"网络工程",2017,92); 100 Student stud4=new Student("赵六","1997年08月30日","陕西","西安",04,"计算机科学与技术",2017,84); 101 System.out.println("张三的学号为:"+stud1.number); 102 System.out.println("李四的学号为:"+stud2.number); 103 System.out.println("王二的学号为:"+stud3.number); 104 System.out.println("赵六的学号为:"+stud4.number); 105 System.out.print("查找姓‘王’的学生为:"); 106 stud1.searchname("王"); 107 stud2.searchname("王"); 108 stud3.searchname("王"); 109 stud4.searchname("王"); 110 System.out.print("查找生日为1999年01月08日的学生为:"); 111 stud1.searchbirthday("1999年01月08日"); 112 stud2.searchbirthday("1999年01月08日"); 113 stud3.searchbirthday("1999年01月08日"); 114 stud4.searchbirthday("1999年01月08日"); 115 System.out.print("查找所在地区是陕西的学生为:"); 116 stud1.searchplace("陕西"); 117 stud2.searchplace("陕西"); 118 stud3.searchplace("陕西"); 119 stud4.searchplace("陕西"); 120 stud1.separate(); 121 stud2.separate(); 122 stud3.separate(); 123 stud4.separate(); 124 int add1=0,add2=0,add3=0; 125 add1=stud1.sum1+stud2.sum1+stud3.sum1+stud4.sum1; 126 add2=stud1.sum2+stud2.sum2+stud3.sum2+stud4.sum2; 127 add3=stud1.sum3+stud2.sum3+stud3.sum3+stud4.sum3; 128 System.out.println("网络工程班总成绩是:"+add1); 129 System.out.println("物联网班总成绩是:"+add2); 130 System.out.println("计算机科学与技术班总成绩是:"+add3); 131 } 132 }
心得总结:
(1)在定义数据类型时一定不要加上static,不然后面的对象数据会覆盖之前的数据
(2)在统计成绩时,一定要先运行对象中的函数separate(),因为对象是无法自动执行函数
(3)最后是通过该实验,掌握了几个新的调用函数,如:indexOf(),这个函数作用是匹配字符串中的相同部分,equals(),这个函数作用是比较两个字符串是否相同,如果不同则返回-1,相同则返回0