淮海工学院java实验二.docx
- 文档编号:28582598
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:20
- 大小:151.29KB
淮海工学院java实验二.docx
《淮海工学院java实验二.docx》由会员分享,可在线阅读,更多相关《淮海工学院java实验二.docx(20页珍藏版)》请在冰豆网上搜索。
淮海工学院java实验二
淮海工学院
计算机工程学院
实验报告书
课程名:
《面向对象程序设计A》
题目:
实验二Java面向对象编程初步
(2)______
班级:
____软嵌151
学号:
2015123352
姓名:
韩吉_
一.实验目的
(1)通过实验,进一步掌握类的定义,尤其是类中方法(包含构造方法)的定义。
掌握对象的创建方法及对象成员变量和方法的调用;
(2)通过编写图形界面的程序,完成对象的创建和调用;(3)能够通过类图来描述程序中类的结构。
二. 实验内容及要求
(1)定义教师类Teacher,包含属性工号,姓名,性别,所在部门,职称,职位,专业,学历;定义若干个构造方法,完成对象的各种初始化需要;定义若干个分别能够获取和修改成员变量的方法,如获取工号/修改工号;获取学历/修改学历等;定义toString()方法,能够输出教师的所有相关信息。
(40分)
(2)编写字符界面的程序,能够创建若干个教师对象,并输出教师的相关信息;(20分)
(3)要求在报告中能够画出类图来描述类的结构(15分)
(4)编写图形界面的程序,能够创建若干个教师对象,并输出教师的相关信息。
(25分)
可以参照实验指导书中第二个实验的最后一个程序示例。
三. 实验步骤
publicclassTeacher{
Stringnumber;//工号
Stringteachername;//姓名
intage;//年龄
Stringsex;//性别
Stringdegree;//学位
Stringtitle;//职称
Stringposition;//职位
Stringdepart;//部门
Stringmajor;//专业
staticStringcollegeName="淮海工学院";
Teacher(Stringnumber){
this.number=number;
}
Teacher(Stringnumber,Stringteachername){
this(number);
this.teachername=teachername;
}
Teacher(Stringnumber,Stringteachername,intage){
this(number,teachername);
this.age=age;
}
Teacher(Stringnumber,Stringteachername,intage,Stringsex){
this(number,teachername,age);
this.sex=sex;
}
Teacher(Stringnumber,Stringteachername,intage,Stringsex,Stringdegree){
this(number,teachername,age,sex);
this.degree=degree;
}
Teacher(Stringnumber,Stringteachername,intage,Stringsex,Stringdegree,Stringtitle){
this(number,teachername,age,sex,degree);
this.title=title;
}
Teacher(Stringnumber,Stringteachername,intage,Stringsex,Stringdegree,Stringtitle,Stringposition){
this(number,teachername,age,sex,degree,title);
this.position=position;
}
Teacher(Stringnumber,Stringteachername,intage,Stringsex,Stringdegree,Stringtitle,Stringposition,Stringdepart){
this(number,teachername,age,sex,degree,title,position);
this.depart=depart;
}
Teacher(Stringnumber,Stringteachername,intage,Stringsex,Stringdegree,Stringtitle,Stringposition,Stringdepart,Stringmajor){
this(number,teachername,age,sex,degree,title,position,depart);
this.major=major;
}
publicvoidsetdegree(Stringnewdegree){
degree=newdegree;
}
publicvoidsettitle(Stringnewtitle){
title=newtitle;
}
publicvoidsetposition(Stringnewposition){
position=newposition;
}
publicvoidSetdepart(Stringnewdepart){
depart=newdepart;
}
publicstaticStringgetCollegeName(){
returncollegeName;
}
publicstaticvoidsetCollegeName(StringnewCollegeName){
collegeName=newCollegeName;
}
publicStringtoString(){
return"工号:
"+number+";姓名:
"+teachername+";年龄:
"+age+";性别:
"+
""+sex+";学位:
"+degree+";专业:
"+major+";职称:
"+title+
";职位:
"+position+"所在部门:
"+depart+";所在大学"+collegeName;
}
}
importjava.util.Scanner;
publicclasstestTeacher
{
publicstaticvoidmain(Stringargs[])
{
intcount=0;
Scannerscanner=newScanner(System.in);
Teacher[]teachers=newTeacher[80];
//创建Teacher对象,表示汪老师
Teacherwang=newTeacher("1996000021","汪前进",45,"男","硕士","软件工程","副教授","系主任","软件工程系");
teachers[count++]=wang;
//创建Teacher对象,表示张老师
Teacherzhang=newTeacher("2006000037","张键",38,"男","博士","计算机硬件","副教授","处长","计算机科学系");
teachers[count++]=zhang;
//创建Teacher对象,表示董老师
Teacherdong=newTeacher("1981000038","董剑利",58,"男","硕士","数据结构","教授","班主任","软件工程系");
teachers[count++]=dong;
//创建Teacher对象,表示戴老师
Teacherdai=newTeacher("2008000053","戴志强",40,"男","博士","机械自动化","副教授","副院长","机械工程系");
teachers[count++]=dai;
//创建Teacher对象,表示樊老师
Teacherfan=newTeacher("2002000018","樊玲",35,"女","硕士","法学","讲师","辅导员","软件工程系");
teachers[count++]=fan;
//创建Teacher对象,表示李老师
Teacherli=newTeacher("2009000035","李志敏",34,"女","博士","船舶与海洋","副教授","副院长","海洋工程系");
teachers[count++]=li;
//输出所有的教师的信息
count--;
for(inti=0;i<=count;i++)
System.out.println(teachers[i]);
//以下按姓名查找老师
System.out.println("请输入待查找的老师姓名:
");
while(scanner.hasNextLine())
{
booleanfind=false;
StringteacherName=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("未找到该教师!
!
");
}
}
}
publicclassTeacher
{
Stringtno;//教师工号
Stringtname;//教师姓名
intage;//年龄
Stringtsex;//性别
Stringtdegree;//学位
Stringttitle;//职称
Stringtdept;//所在部门
staticStringcollegeName="淮海工学院";
//定义了若干个构造函数,相互可以调用
Teacher(Stringtno)
{this.tno=tno;}
Teacher(Stringtno,Stringtname)
{this(tno);
this.tname=tname;
}
Teacher(Stringtno,Stringtname,intage)
{this(tno,tname);
this.age=age;
}
Teacher(Stringtno,Stringtname,intage,Stringtsex)
{this(tno,tname,age);
this.tsex=tsex;
}
Teacher(Stringtno,Stringtname,intage,Stringtsex,Stringtdegree)
{this(tno,tname,age,tsex);
this.tdegree=tdegree;
}
Teacher(Stringtno,Stringtname,intage,Stringtsex,Stringtdegree,Stringttitle)
{this(tno,tname,age,tsex,tdegree);
this.ttitle=ttitle;
}
Teacher(Stringtno,Stringtname,intage,Stringtsex,Stringtdegree,Stringttitle,Stringtdept)
{this(tno,tname,age,tsex,tdegree,ttitle);
this.tdept=tdept;
}
publicvoidsetDegree(StringnewDegree)
{
tdegree=newDegree;
}
publicvoidsetTitle(StringnewTitle)
{
ttitle=newTitle;
}
publicstaticStringgetCollegeName()
{
returncollegeName;
}
publicstaticvoidsetCollegeName(StringnewCollegeName)
{
collegeName=newCollegeName;
}
publicStringtoString()
{
return"工号:
"+tno+";姓名:
"+tname+";年龄:
"+age+";性别:
"+tsex+";学位:
"+tdegree+";\n职称:
"+ttitle+";所在部门"+tdept+";所在大学"+collegeName;
}
}
importjava.awt.*;
importjavax.swing.*;
importjava.awt.event.*;
classmyFrameextendsJFrameimplementsActionListener
{
JLabellblTno,lblTname,lblTage,lblTsex,lblTdegree,lblTtitle,lblTdept;
JTextFieldtxtTno,txtTname,txtTage,txtTsex,txtTdegree,txtTtitle,txtTdept;
JButtonbtnCreate,btnSearch,btnshowAll;
JLabelprompt;
JTextAreajta;
ButtonGroupgroup=newButtonGroup();
JRadioButtonradio1=newJRadioButton("男");
JRadioButtonradio2=newJRadioButton("女");
Teacher[]teachers=newTeacher[80];
intcount=0;
myFrame()
{
setTitle("创建教师对象,并查找");
setLayout(newFlowLayout());
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
lblTno=newJLabel("请输入工号:
");
txtTno=newJTextField(10);
add(lblTno);add(txtTno);
lblTname=newJLabel("请输入姓名:
");
txtTname=newJTextField(10);
add(lblTname);add(txtTname);
lblTage=newJLabel("请输入年龄:
");
txtTage=newJTextField(10);
add(lblTage);add(txtTage);
//lblTsex=newJLabel("请输入性别:
");
//txtTsex=newJTextField(10);
//add(lblTsex);add(txtTsex);
add(newJLabel("性别:
"));
group.add(radio1);
group.add(radio2);
add(radio1);
add(radio2);
lblTdegree=newJLabel("请输入学位:
");
txtTdegree=newJTextField(10);
add(lblTdegree);add(txtTdegree);
lblTtitle=newJLabel("请输入职称:
");
txtTtitle=newJTextField(10);
add(lblTtitle);add(txtTtitle);
lblTdept=newJLabel("请输入部门:
");
txtTdept=newJTextField(10);
add(lblTdept);add(txtTdept);
btnCreate=newJButton("创建教师");
btnSearch=newJButton("按姓名查询教师");
btnshowAll=newJButton("显示所有教师");
add(btnCreate);add(btnSearch);add(btnshowAll);
prompt=newJLabel("");
jta=newJTextArea(40,60);
add(prompt);add(jta);
btnCreate.addActionListener(this);
btnSearch.addActionListener(this);
btnshowAll.addActionListener(this);
}
publicvoidactionPerformed(ActionEvente)
{
if(e.getSource()==btnCreate)
{
Stringsex=newString();
if(radio1.isSelected())
{
sex=radio1.getText().toString();
}
else
{
sex=radio2.getText().toString();
}
Teacherteacher=newTeacher(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(inti=0;i { jta.append(teachers[i]+"\n"); } } if(e.getSource()==btnSearch) { jta.setText(""); booleanfind=false; StringteacherName=txtTname.getText(); for(inti=0;i if(teachers[i].tname.equals(teacherName)) { find=true; prompt.setText("找到"+teacherName); jta.append(teachers[i]+"\n"); } if(find==false) { prompt.setText("未找到该教师! ! ! ");; } } } } publicclasstestTeacher { publicstaticvoidmain(Stringargs[]) { myFramemf=newmyFrame(); mf.setSize(800,600); mf.setVisible(true); } } 四.实验结果(请自己补充完整) 五.实验的分析体会(请自己补充完整) 对于此次试验,本来要求较简单,老师也把代码发给学生,但我本来想将职称之类弄成下拉菜单,但做好后发现无法读入选中的内容,我也不会。 如下: 附上错误代码: importjava.awt.*; importjavax.swing.*; importjava.awt.event.*; importjava.awt.CheckboxGroup; importjava.awt.Checkbox; importjava.awt.CheckboxMenuItem; classmyFrameextendsJFrameimplementsActionListener { //StringtxtTsex,txtTdegree,txtTtitle,txtTdept; JLabellblTno,lblTname,lblTage; JTextFieldtxtTno,txtTname,txtTage; JButtonbtnCreate,btnSearch,btnshowAll; JLabelprompt; JTextAreajta; JComboBoxcomBox1,comBox2,comBox3;//下拉菜单 ButtonGroupgroup; JRadioButtonradio1,radio2; Teacher[]teachers=newTeacher[80]; intcount=0; myFrame() { setTitle("创建教师对象,并查找"); setLayout(newFlowLayout()); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); lblTno=newJLabel("请输入工号: "); txtTno=newJTextField(10); add(lblTno);add(txtTno); lblTname=newJLabel("请输入姓名: "); txtTna
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 淮海 工学院 java 实验