淮海工学院计算机工程学院实验报告书课程名:《面向对象程序设计A》题目:实验二Java面向对象编程初步(2)______ 班级:____软嵌151学号:2015123352姓名:韩吉_一.实验目的(1)通过实验,进一步掌握类的定义,尤其是类中方法(包含构造方法)的定义。
掌握对象的创建方法及对象成员变量和方法的调用;(2)通过编写图形界面的程序,完成对象的创建和调用;(3)能够通过类图来描述程序中类的结构。
二. 实验内容及要求(1)定义教师类Teacher,包含属性工号,姓名,性别,所在部门,职称,职位,专业,学历;定义若干个构造方法,完成对象的各种初始化需要;定义若干个分别能够获取和修改成员变量的方法,如获取工号/修改工号;获取学历/修改学历等;定义toString()方法,能够输出教师的所有相关信息。
(40分)(2)编写字符界面的程序,能够创建若干个教师对象,并输出教师的相关信息;(20分)(3)要求在报告中能够画出类图来描述类的结构(15分)(4)编写图形界面的程序,能够创建若干个教师对象,并输出教师的相关信息。
(25分)可以参照实验指导书中第二个实验的最后一个程序示例。
三. 实验步骤public class Teacher {String number;//工号String teachername;//姓名int age; //年龄String sex; //性别String degree;//学位String title;//职称String position;//职位String depart;//部门String major;//专业static String collegeName = "淮海工学院";Teacher(String number){this.number = number;}Teacher(String number,Stringteachername){this(number);this.teachername = teachername;}Teacher(String number,Stringteachername,int age){this(number, teachername);this.age = age;}Teacher(String number,Stringteachername,intage,String sex){this(number, teachername, age);this.sex = sex;}Teacher(String number,Stringteachername,intage,Stringsex,String degree){ this(number, teachername, age,sex);this.degree = degree;}Teacher(String number,Stringteachername,intage,Stringsex,Stringdegree,String title){ this(number, teachername, age, sex, degree);this.title = title;}Teacher(String number,Stringteachername,intage,Stringsex,Stringdegree,Stringtitle,String position){this(number, teachername, age, sex, degree,title);this.position = position;}Teacher(Stringnumber,Stringteachername,intage,Stringsex,Stringdegree,Stringtitle,Stringposition,String depart){this(number, teachername, age, sex, degree, title, position);this.depart = depart;}Teacher(Stringnumber,Stringteachername,intage,Stringsex,Stringdegree,Stringtitle,Stringposition,Stringdepa rt,String major){this(number, teachername, age, sex, degree, title, position, depart);this.major = major;}public void setdegree(String newdegree){degree = newdegree;}public void settitle(String newtitle){title = newtitle;}public void setposition(String newposition){position = newposition;}public void Setdepart(String newdepart){depart = newdepart;}public static String getCollegeName(){return collegeName;}public static void setCollegeName(String newCollegeName){collegeName=newCollegeName;}public String toString(){return "工号:" + number + ";姓名:" + teachername + ";年龄:" + age + ";性别:" + "" + sex + ";学位:" + degree + ";专业: " + major + ";职称:" + title +";职位:" + position + "所在部门:" + depart + ";所在大学" + collegeName;}}import java.util.Scanner;public classtestTeacher{public static void main(String args[]){int count=0;Scanner scanner=new Scanner(System.in);Teacher[] teachers =new Teacher[80];//创建Teacher对象,表示汪老师Teacher wang = new Teacher("1996000021","汪前进",45,"男"," 硕士","软件工程","副教授","系主任","软件工程系");teachers[count++] = wang;//创建Teacher对象,表示张老师Teacher zhang = new Teacher("2006000037","张键",38,"男"," 博士","计算机硬件","副教授","处长","计算机科学系");teachers[count++] = zhang;//创建Teacher对象,表示董老师Teacher dong = new Teacher("1981000038"," 董剑利",58,"男","硕士","数据结构","教授","班主任","软件工程系");teachers[count++] = dong;//创建Teacher对象,表示戴老师Teacher dai = new Teacher("2008000053","戴志强",40,"男"," 博士","机械自动化","副教授","副院长","机械工程系");teachers[count++] = dai;//创建Teacher对象,表示樊老师Teacher fan = new Teacher("2002000018","樊玲",35,"女"," 硕士","法学","讲师","辅导员","软件工程系");teachers[count++] = fan;//创建Teacher对象,表示李老师Teacher li = new Teacher("2009000035","李志敏",34,"女"," 博士","船舶与海洋","副教授","副院长","海洋工程系");teachers[count++] = li;//输出所有的教师的信息count--;for(inti=0;i <= count;i++)System.out.println(teachers[i]);//以下按姓名查找老师System.out.println("请输入待查找的老师姓名:");while(scanner.hasNextLine()){boolean find = false;String teacherName = scanner.nextLine();for(inti=0;i <= count;i++){if(teachers[i].teachername.contains(teacherName)){ find=true;System.out.println("找到"+teacherName);System.out.println(teachers[i]);}}if(find==false)System.out.println("未找到该教师!!");}}}publicclass Teacher{String tno; //教师工号String tname; //教师姓名int age; //年龄String tsex; //性别String tdegree; //学位String ttitle; //职称String tdept; //所在部门static String collegeName="淮海工学院";//定义了若干个构造函数,相互可以调用Teacher(String tno){ this.tno=tno; }Teacher(String tno,String tname){ this(tno);this.tname=tname;}Teacher(String tno,String tname,int age){ this(tno,tname);this.age=age;}Teacher(String tno,String tname,int age,String tsex){ this(tno,tname,age);this.tsex=tsex;}Teacher(String tno,String tname,int age,String tsex,String tdegree){ this(tno,tname,age,tsex);this.tdegree=tdegree;}Teacher(String tno,String tname,int age,String tsex,String tdegree,String ttitle) { this(tno,tname,age,tsex,tdegree);this.ttitle=ttitle;}Teacher(Stringtno,String tname,int age,String tsex,String tdegree,String ttitle,String tdept) { this(tno,tname,age,tsex,tdegree,ttitle);this.tdept=tdept;}publicvoid setDegree(String newDegree){tdegree=newDegree;}publicvoid setTitle(String newTitle){ttitle=newTitle;}publicstatic String getCollegeName(){return collegeName;}publicstaticvoid setCollegeName(String newCollegeName){collegeName=newCollegeName;}public String toString(){return"工号:"+tno+";姓名:"+tname+";年龄:"+age+";性别:"+tsex+";学位:"+tdegree+";\n 职称:"+ttitle+";所在部门"+tdept+";所在大学"+collegeName;}}import java.awt.*;import javax.swing.*;import java.awt.event.*;class myFrame extends JFrame implements ActionListener{JLabel lblTno,lblTname,lblTage,lblTsex,lblTdegree,lblTtitle,lblTdept;JTextField txtTno,txtTname,txtTage,txtTsex,txtTdegree,txtTtitle,txtTdept;JButton btnCreate,btnSearch,btnshowAll;JLabel prompt;JTextArea jta;ButtonGroup group = new ButtonGroup();JRadioButton radio1 = new JRadioButton("男");JRadioButton radio2 = new JRadioButton("女");Teacher[] teachers=new Teacher[80];int count=0;myFrame(){setTitle("创建教师对象,并查找");setLayout(new FlowLayout());setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);lblTno=new JLabel("请输入工号:");txtTno=new JTextField(10);add(lblTno); add(txtTno);lblTname=new JLabel("请输入姓名:");txtTname=new JTextField(10);add(lblTname); add(txtTname);lblTage=new JLabel("请输入年龄:");txtTage=new JTextField(10);add(lblTage); add(txtTage);// lblTsex=new JLabel("请输入性别:");// txtTsex=new JTextField(10);// add(lblTsex); add(txtTsex);add(new JLabel("性别: "));group.add(radio1);group.add(radio2);add(radio1);add(radio2);lblTdegree=new JLabel("请输入学位:");txtTdegree=new JTextField(10);add(lblTdegree); add(txtTdegree);lblTtitle=new JLabel("请输入职称:");txtTtitle=new JTextField(10);add(lblTtitle); add(txtTtitle);lblTdept=new JLabel("请输入部门:");txtTdept=new JTextField(10);add(lblTdept); add(txtTdept);btnCreate=new JButton("创建教师");btnSearch=new JButton("按姓名查询教师");btnshowAll=new JButton("显示所有教师");add(btnCreate);add(btnSearch);add(btnshowAll);prompt=new JLabel(" ");jta=new JTextArea(40,60);add(prompt);add(jta);btnCreate.addActionListener(this);btnSearch.addActionListener(this);btnshowAll.addActionListener(this);}publicvoid actionPerformed(ActionEvent e){if(e.getSource() == btnCreate){String sex = new String();if (radio1.isSelected()){sex = radio1.getText().toString();}else{sex = radio2.getText().toString();}Teacher teacher = new Teacher(txtTno.getText(), txtTname.getText(), Integer.parseInt(txtTage.getText()), sex, txtTdegree.getText(),txtTtitle.getText(), txtTdept.getText());teachers[count++] = teacher;prompt.setText("成功创建" + "第" + count + "个教师!!!");}if(e.getSource() == btnshowAll&&count> 0){jta.setText(" ");for(int i = 0; i<count; i++){jta.append(teachers[i] + "\n");}}if(e.getSource() == btnSearch){jta.setText(" ");boolean find = false;String teacherName = txtTname.getText();for(int i = 0; i<count; i++)if(teachers[i].tname.equals(teacherName)){find = true;prompt.setText("找到" + teacherName);jta.append(teachers[i] + "\n");}if(find == false){prompt.setText("未找到该教师!!!");;}}}}publicclass testTeacher{publicstaticvoid main(String args[]){myFrame mf=new myFrame();mf.setSize(800,600);mf.setVisible(true);}}四.实验结果(请自己补充完整)五.实验的分析体会(请自己补充完整)对于此次试验,本来要求较简单,老师也把代码发给学生,但我本来想将职称之类弄成下拉菜单,但做好后发现无法读入选中的内容,我也不会。