和。 */
package hmx.company; import java.util.*; public class Company {
ArrayList
ArrayList
staff.add(st); }
public void deleteStaff(String name) {
Iterator
while(it.hasNext()) {
Staff st=it.next();
if(st.name.equals(name))
{ staff.remove(st); break; } } }
public double showSalary(String name) {
double salary=0.0; Iterator
while(it.hasNext()) {
Staff st=it.next();
if(st.name.equals(name))
{
} salary=st.getSalary(); } } HourStaff.java } /*3)子类:小时工类 return salary; 属性: } 工作的小时,每小时工资。 public double
方法:
getAllSalary()
1. 设置工作的小时 {
double salary=0.0; 2. 设置每小时的工资。
3. 重写计算工资方法: Iterator
it=staff.iterator(); 小时工没有基本工资,他 while(it.hasNext()) 的工资就是工作的小时* { 每小时工资。*/ Staff package hmx.company; st=it.next(); public class HourStaff extends Staff salary+=st.getSalary(); { } int hour; return salary; double hour_salary; } public } HourStaff(String name,int Staff.java hour,double hour_salary) /*2)定义一个抽象员工类 {
属性: 姓名,基本工资 super(name); 抽象方法:计算工资。*/ this.hour=hour;
package hmx.company;
public abstract class Staff this.hour_salary=hour_sal
ary; {
} String name;
void double basic_salary;
public abstract double hour_salary(double
hour_salary) getSalary()
public Staff(String {
name)
this.hour_salary=hour {
_salary; this.name=name;
} }
double public Staff(String public
getSalary() name,double
{ basic_salary)
return {
hour*hour_salary; this.name=name;
}
this.basic_salary=basic}
Sellstaff.java _salary;
/*4)子类:销售员工类 属性:
销售的总金额 方法
1. 设置销售的总金额 2. 重写计算工资方法: 基本工资+提成。 提成的计算:
当销售额再10000 以下时,则提成10%,
等销售额再10000-100000之间是,则提成15%。 再 100000以上是,提成18%。*/
package hmx.company; public class Sellstaff extends Staff {
double money;
double extra_salary; public Sellstaff(String name,double
basic_salary,double money) {
super(name,basic_salary);
this.money=money; }
public double getSalary() {
//return
basic_salary+extra_salary;
if (money <10000) {
extra_salary=money*0.1; } else
if(money<100000 && getSalary() money>10000) { { if (hour>196) { extra_salary=money*0 .15; salary=basic_salary+(hou } r-196)*200; else } if(money>100000) return salary; { } }
extra_salary=money*0Companytest.java .18; /*6)定义一个测试类,在 } main方法中生成 return 一个公司对象; basic_salary+extra_salary
一个小时工的对象,每小
;
时工资10,工作200 小时; }
一个小时工的对象,每小}
时工资10,工作 230小时; NormalStaff.java
/*5)子类: 普通员工类 一个销售员工的对象,基
本工资1000,销售额5000; 属性:
一个销售员工的对象,基工作的小时
本工资1000,销售额方法:
200000; 1. 设置工作的小时
2. 重写计算工资的方法: 一个普通员工对象,基本当每月工作的小时数超过工资1200,工作小时205
小时。 196 小时时,
超出的部分按每小时200 (注:员工的姓名可自行
) 元。 基本工资+(工作的拟定。
将以上员工对象加入公司小时-196)*200。*/
对象中, package hmx.company;
public class NomalStaff 然后调用公司对象的输出extends Staff 所有员工工资和的方法, { 查看该公司该月应该发的 int hour;
工资总和。*/
double salary;
package hmx.company;
public
public class Companytest
NomalStaff(String
{
name,int hour)
public static void
{
main(String args[])
super(name);
{
this.hour=hour;
Company com=new
}
Company();
public double
HourStaff hs1=new HourStaff(\张三\
HourStaff hs2=new HourStaff(\李四\ Sellstaff ss1=new Sellstaff(\李五\ Sellstaff ss2=new Sellstaff(\李六\
NomalStaff ns=new NomalStaff(\李七\ com.addStaff(hs1); com.addStaff(hs2); com.addStaff(ss1); com.addStaff(ss2); com.addStaff(ns); System.out.println(\工资和\} }
输出结果: 工资和44600.0
实验 AWT事件处理机制 一、实验目的
利用AWT中的事件处理机制完成图形用户界面与用户的交互。 二、实验要求
1.理解awt的事件处理机制,理解事件源、事件、事件监听器、事件处理者之间的关系。
2.掌握事件处理机制的编程方式。 三、实验内容
1. 制作如图所示的界面:
b.addActionListener(this);
this.add(t1); add(t2);
add(b);
在前两个文本框中输 add(t3); 入两个整数,点击“计算”, this.setVisible(true);
在最后一个文本框中显示 } 输入的两个整数的和。 public static void 注:按照事件处理机制main(String args[]) 的四种方式完成 {
(1) 事件源和监听器 new Test1();
} 在同一类中
void (2) 监听器和事件源 public
actionPerformed(ActionE
不在同一个类中
vent e)
(3) 监听器是事件源 {
所在类的内部类 int x1,x2; (4) 监听器是事件源
所在类的内部类 x1=Integer.parseInt(t1.get
Text()); Test1.java
import java.awt.*;
import java.awt.event.*; x2=Integer.parseInt(t2.getpublic class Test1 extends Text()); Frame implements
t3.setText(String.valueOf(ActionListener
x1+x2)); {
TextField t1,t2,t3;
//t3.setText(Integer.parseI Button b;
nt(t1.getText())+Integer.p public Test1()
arseInt(t2.getText())); {
} t1=new
} TextField(5);
Test2.java t2=new
import java.awt.*; TextField(5);
import java.awt.event.*; t3=new
public class Test2 extends TextField(10);
b=new Button(\计Frame
{ 算\
static TextField
this.setBounds(100,100,30t1,t2,t3;
Button b; 0,200);
this.setLayout(new public Test2()
{ FlowLayout());
t1=new
TextField(5); t2=new TextField(5); t3=new TextField(10);
b=new Button(\计算\
this.setBounds(100,100,300,200);
this.setLayout(new FlowLayout());
b.addActionListener(new Listener1());
this.add(t1); add(t2); add(b); add(t3);
this.setVisible(true); }
public static void main(String args[]) {
new Test2(); } } class Listener1 implements ActionListener {
public void actionPerformed(ActionEvent e) throws NumberFormatException {
int x1,x2; try {
x1=Integer.parseInt(Test2.t1.getText());
x2=Integer.parseInt(Test2.t2.getText());
Test2.t3.setText(String.valueOf(x1+x2)); }
catch(NumberFormatException e1) {
System.out.println(\请输入数据\
}
//static.t3.setText(Integer.parseInt(static.t1.getText())+Integer.parseInt(static.t2.getText())); } }
Test3.java
import java.awt.*;
import java.awt.event.*; public class Test3 extends Frame {
TextField t1,t2,t3; Button b; public Test3() {
t1=new TextField(5); t2=new TextField(5); t3=new TextField(10);
b=new Button(\计算\
this.setBounds(100,100,300,200);
this.setLayout(new FlowLayout());
b.addActionListener(new Listener1());
this.add(t1);
add(t2); add(b); add(t3);
this.setVisible(true); }
public static void main(String args[]) {
new Test3(); } class Listener1 implements ActionListener {
public void actionPerformed(ActionEvent e) {
int x1,x2; try {
x1=Integer.parseInt(t1.getText());
x2=Integer.parseInt(t2.getText());
t3.setText(String.valueOf(x1+x2)); }
catch(NumberFormatException e1) {
System.out.println(\请输入数据\ }
//t3.setText(Integer.parseInt(t1.getText())+Integer.parseInt(t2.getText())); } }
}
Test4.java
import java.awt.*;
import java.awt.event.*; public class Test4 extends Frame {
TextField t1,t2,t3; Button b; public Test4() {
t1=new TextField(5); t2=new TextField(5); t3=new TextField(10);
b=new Button(\计算\
this.setBounds(100,100,300,200);
this.setLayout(new FlowLayout());
b.addActionListener (
new ActionListener() {
public void actionPerformed(ActionEvent e) {
int x1,x2; try {
x1=Integer.parseInt(t1.getText());
x2=Integer.parseInt(t2.getText());
t3.setText(String.valueOf(x1+x2));
}
catch(NumberFormatException e1) {
System.out.println(\请输入数据\ }
//t3.setText(Integer.parseInt(t1.getText())+Integer.parseInt(t2.getText())); } });
this.add(t1); add(t2); add(b); add(t3);
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e)
{
System.exit(0); } });
this.setVisible(true); }
public static void main(String args[]) {
new Test4(); } }
实验 JDBC数据库编程
一、实验目的
掌握JDBC操作数据
库的基本过程,熟练掌握Connection、Statement、ResultSet等使用方法。 二、实验要求
3.掌握加载数据库驱动程序的方法。 4.掌握建立数据库访问的一般步骤。 5.掌握Connection、Statement、ResultSet的使用方法。
6.以Access为例,建立数据源的连接。 三、实验内容
1.在Access中建立一个教师表:
表结构包括的字段有:姓名、年龄、性别、职称、毕业院校、基本工资等信息。
编程实现以下功能: (1) 插入某一教师的具体信息。 (2) 修改某一教师的职称和基本工资。 (3) 检索职称为“讲师”的所有教师信息。 (4) 倒序输出所有教师的基本信息。 DBTest.java /*1.在Access中建立一个教师表:
表结构包括的字段有:姓名、年龄、性别、职称、毕业院校、基本工资等信息。
编程实现以下功能: (3) 检索职称为“讲师”的所有教师信息。*/ import java.sql.*;