管别人要的一道考试题.实现起来比较简单.
只不过要求比较多.而且从起名字到封装全部要按照要求来做.要不然会扣分的.
请哪位高人.顺便小练下手...给个正确的答案..谢谢..题目:薪水计算
一、 语言和环境
A、 实现语言
JA VA
B、 环境要求:
1、 JDK1.4或者以上版本开发环境
二、 要求
使用Swing设计界面,选择雇员(employee)或经理(manager),在文本框中显示雇员或经理的薪水。
其中雇员的薪水只有工资(wage);
经理的薪水为工资(wage)和津贴(allowance)的总和;
为简化操作:
定义雇员的薪水(工资)为300
经理的工资为300,津贴为200
程序功能要求:
1) 当用户选择雇员按钮(JRadioButton)时,文本框中显示300,当用户选择经理按钮时,文本框显示为500
2) 设计雇员类和经理类,其中经理类继承雇员类(extends)
3) 设计展示界面,包括两个Radio按钮(JRadiobutton),标签(Jlabel),文本框(JTextFidld)
三、 推荐实现步骤
1、 建立雇员类(Employee)
A、 建立构造方法Emplyee(),在构造方法中初始化类成员变量wage=300;
B、 设计类成员方法:getSalary(),该方法用于返回雇员的薪水;
C、 设计类成员变量,wage表示工资数额,因为涉及到类的继承,访问权限定义为protected.
2、 建立经理类(Manger)
A、 建立构造方法Mange(),在构造方法中初始化类成员allowance=200
B、 设计类成员方法(覆盖父类成员方法getSalary):getSalary. 该方法用于返回经理的薪水,应该返回工资+津贴。
C、 设计类成员,因为已经继承了父类的工资,所在这里只要定义一个成员变量allowance,表示津贴的数额,注意访问权限定义为private。
3、 建立窗口类;
A、 继承Jframe
B、 窗口类中定义布局方式,边界布局(borderLayout)
C、 构造两个Jpanel,并加入到窗口类的North位置,和Center位置
D、 两个Jpanel定义为流式布局
E、 在North位置的Jpanel中加入两个JpadioButton,并编组(使用ButtonGroup)
F、 在Center位置的Jpanel中加入文本框和标签框,即完成界面设计
G、 必须在窗口类中加入一个Employee引用,作为类成员变量
方法为:Employee emp;
在程序中表现为:
H、为两个Jradio按钮分别加入侦听器,使用addActionListener
I、为两个Jradio分别撰写事件处理程序,注意:需要在事件处理程序中构造职员对象,在不同的事件处理程序中分别使用
This.emp=new Emplyee();//在雇员按钮的事件处理程序中
This.emp=new Manager();//在经理按钮的事件处理程序中
J、在事件处理程序中使用文本框的SetText方法为设置文本内容
窗口类的代码结构如下:
public class frmShow extends Jframe{
………//布局对象,组件对象的定义
employee emp;//必须加入一个引用,用于在代码中显示不同对象的薪水
public frmShow(){ //构造方法
……..//构造布局,显示组建,并加入事件侦听程序
}
public static void main(String args[]){ //执行程序
frmShow fs =new frmShow();
fs.setSize(250,200);
fs.setvisible(trud);
}void rdbtnManager_actionPerformed(ActionEvent e){ //经理按钮的事件处理程序
this.emp=new manger(); //构造一个经理类对象
setTextValue(this.emp);
}void rdbtnEmployee_actionPerformed(ActionEvent e){ //雇员按钮的事件处理程序
this.emp=new emplyee(); //构造一个雇员类对象
setTextValue(this.emp);
}public void setTextValue(employee e) { //用于设置文本框中返回的薪水数值
this.txtSalary.setText(Double.toString(e.getSalary())); //txtSalary为文本域名称,仅作参考
}
}
4、提示
因为文本中的内容为String类型,所以需要使用Double.toString(this.emp.getsalary())将职工的薪水转换为String类型
四、 注意事项
请注意代码的书写、命名符合规范
只不过要求比较多.而且从起名字到封装全部要按照要求来做.要不然会扣分的.
请哪位高人.顺便小练下手...给个正确的答案..谢谢..题目:薪水计算
一、 语言和环境
A、 实现语言
JA VA
B、 环境要求:
1、 JDK1.4或者以上版本开发环境
二、 要求
使用Swing设计界面,选择雇员(employee)或经理(manager),在文本框中显示雇员或经理的薪水。
其中雇员的薪水只有工资(wage);
经理的薪水为工资(wage)和津贴(allowance)的总和;
为简化操作:
定义雇员的薪水(工资)为300
经理的工资为300,津贴为200
程序功能要求:
1) 当用户选择雇员按钮(JRadioButton)时,文本框中显示300,当用户选择经理按钮时,文本框显示为500
2) 设计雇员类和经理类,其中经理类继承雇员类(extends)
3) 设计展示界面,包括两个Radio按钮(JRadiobutton),标签(Jlabel),文本框(JTextFidld)
三、 推荐实现步骤
1、 建立雇员类(Employee)
A、 建立构造方法Emplyee(),在构造方法中初始化类成员变量wage=300;
B、 设计类成员方法:getSalary(),该方法用于返回雇员的薪水;
C、 设计类成员变量,wage表示工资数额,因为涉及到类的继承,访问权限定义为protected.
2、 建立经理类(Manger)
A、 建立构造方法Mange(),在构造方法中初始化类成员allowance=200
B、 设计类成员方法(覆盖父类成员方法getSalary):getSalary. 该方法用于返回经理的薪水,应该返回工资+津贴。
C、 设计类成员,因为已经继承了父类的工资,所在这里只要定义一个成员变量allowance,表示津贴的数额,注意访问权限定义为private。
3、 建立窗口类;
A、 继承Jframe
B、 窗口类中定义布局方式,边界布局(borderLayout)
C、 构造两个Jpanel,并加入到窗口类的North位置,和Center位置
D、 两个Jpanel定义为流式布局
E、 在North位置的Jpanel中加入两个JpadioButton,并编组(使用ButtonGroup)
F、 在Center位置的Jpanel中加入文本框和标签框,即完成界面设计
G、 必须在窗口类中加入一个Employee引用,作为类成员变量
方法为:Employee emp;
在程序中表现为:
H、为两个Jradio按钮分别加入侦听器,使用addActionListener
I、为两个Jradio分别撰写事件处理程序,注意:需要在事件处理程序中构造职员对象,在不同的事件处理程序中分别使用
This.emp=new Emplyee();//在雇员按钮的事件处理程序中
This.emp=new Manager();//在经理按钮的事件处理程序中
J、在事件处理程序中使用文本框的SetText方法为设置文本内容
窗口类的代码结构如下:
public class frmShow extends Jframe{
………//布局对象,组件对象的定义
employee emp;//必须加入一个引用,用于在代码中显示不同对象的薪水
public frmShow(){ //构造方法
……..//构造布局,显示组建,并加入事件侦听程序
}
public static void main(String args[]){ //执行程序
frmShow fs =new frmShow();
fs.setSize(250,200);
fs.setvisible(trud);
}void rdbtnManager_actionPerformed(ActionEvent e){ //经理按钮的事件处理程序
this.emp=new manger(); //构造一个经理类对象
setTextValue(this.emp);
}void rdbtnEmployee_actionPerformed(ActionEvent e){ //雇员按钮的事件处理程序
this.emp=new emplyee(); //构造一个雇员类对象
setTextValue(this.emp);
}public void setTextValue(employee e) { //用于设置文本框中返回的薪水数值
this.txtSalary.setText(Double.toString(e.getSalary())); //txtSalary为文本域名称,仅作参考
}
}
4、提示
因为文本中的内容为String类型,所以需要使用Double.toString(this.emp.getsalary())将职工的薪水转换为String类型
四、 注意事项
请注意代码的书写、命名符合规范
import java.awt.event.*;
import javax.swing.*;
import java.text.*;
import java.applet.*;
import java.util.*;public class Employee extends JApplet
{
JLabel Lb;
JTextField Text1;
JRadioButton JB1;
JRadioButton JB2;
JPanel p1,p2,p3;
public void init()
{
JB1=new JRadioButton("雇员",false);
JB2=new JRadioButton("经理",true);
Lb=new JLabel("薪水:");
Text1=new JTextField(10);
p1=new JPanel();
p2=new JPanel();
p3=new JPanel();
p1.add(JB1);
p1.add(JB2);
p2.add(Lb);
p2.add(Text1);
Container cp=getContentPane();
cp.setLayout(new BorderLayout());
cp.add(p1,BorderLayout.NORTH);
cp.add(p2,BorderLayout.CENTER);
cp.add(p3,BorderLayout.SOUTH);
JB1.addActionListener(new JBListener());
}
class JBListener implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
if(JB1.isSelected())//--------------以下有问题
{
Text1.setText("200");
}
else if(JB2.isSelected())
{
Text1.setText("300");
}
}
}
public static void main(String args[])
{
JFrame EmpFrame=new JFrame();
EmpFrame.setTitle("薪水计算");
EmpFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Employee m1=new Employee();
EmpFrame.getContentPane().add(m1);
m1.init();
EmpFrame.setSize(300,200);
EmpFrame.setVisible(true);
}
}
谁帮我改改啊.........就要成功了...