栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java程序设计 实验3:类的重用

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java程序设计 实验3:类的重用

题1:假设公司员工分为:雇员(Employee)、经理(Manager)、技术员(Technician)、销售员(Salesman)和销售经理(SalesManager),他们分别包括如下属性:

Employee类:姓名、年龄、专业、固定工资

Manager类:姓名、年龄、固定工资、专业、级别、补贴

Technician类:姓名、年龄、固定工资、专业、工作时间、计时工资

Salesman类:姓名、年龄、固定工资、专业、销售额、销售提成比率

SalesManager类:姓名、年龄、固定工资、专业、补贴、销售额、销售提成比率

类中包括的成员方法(要完成操作有):

(1)构造方法;

(2)数据输入方法;

(3)数据输出方法;

(4)计算工资方法,计算工资方法如表1:

表1 工资计算方法

人员类别

固定工资

补贴

计时工资

销售提成

Employee

1500

0

0

0

Manager

8000

2000

0

0

Technician

1000

0

100(或根据实际情况修改)

0

Salesman

500

0

0

5%(或根据实际情况修改)

SaleManager

2000

1000

0

2%(或根据实际情况修改)

提示:把Employee类定义为抽象类,找到类之间的共性,用继承实现。

package Day3;

import java.util.Scanner;

public class CompanyTest {
    public static void main(String[] args) {
        System.out.println("员工系统");
        System.out.println("1. 员工");
        System.out.println("2. 经理");
        System.out.println("3. 技术员");
        System.out.println("4. 销售员");
        System.out.println("5. 销售经理");
        System.out.println("选择你的职位");
        Scanner sc = new Scanner(System.in);
        int i = sc.nextInt();
        if (i > 5 || i < 1)
            System.out.println("请输入正确序号");
        else {
            System.out.println("输入你的名字");
            String name = sc.next();
            System.out.println("输入你的年龄");
            int age = sc.nextInt();
            System.out.println("输入你的专业");
            String p = sc.next();

            switch (i) {
                case 1:
                    Employee e = new Employee(name, p, age);
                    e.dispaly();
                    e.money();
                    break;
                case 2:
                    Manager m = new Manager(name, p, age);
                    m.display();
                    m.money();
                    break;
                case 3:
                    System.out.println("请输入你的工作时长");
                    int time = sc.nextInt();
                    Technician t = new Technician(name, p, age, time);
                    t.display();
                    t.money();
                    break;
                case 4:
                    System.out.println("输入你的销售金额");
                    double sale = sc.nextDouble();
                    Salesman s = new Salesman(name, p, age, sale);
                    s.display();
                    s.money();

                    break;
                case 5:
                    System.out.println("输入你的销售金额");
                    double sale1 = sc.nextDouble();
                    SalesManager s1 = new SalesManager(name, p, age, sale1);
                    s1.dispaly();
                    s1.money();
                    break;

            }
        }
    }
}


class Employee {
    String name, profession;
    int age, Mmoney = 1500;

    Employee() {
    }

    Employee(String name, String profession, int age) {
        this.name = name;
        this.profession = profession;
        this.age = age;
    }

    void dispaly() {//信息的输出
        System.out.println("确认你的信息");
        System.out.println("你的名字是" + name + "n你的专业是" + profession + "n你的年龄是" + age);
    }

    void money() {//工资输出
        System.out.println("你的工资为" + Mmoney);
    }

}

class Manager extends Employee {
    int Mmoney = 8000, Tmoney = 2000;

    Manager(String name, String profession, int age) {
        super(name, profession, age);
    }

    void display() {//信息的输出
        super.dispaly();
    }

    void money() {
        System.out.println("你的工资为=固定工资+补贴=" + (Tmoney + Mmoney));
    }


}

class Technician extends Employee {

    int time, Mmoney = 1000;

    Technician(String name, String profession, int age, int time) {
        super(name, profession, age);
        this.time = time;
    }

    void display() {//信息的输出
        super.dispaly();
        System.out.println("你的工作时长为:" + time + "h");

    }

    void money() {
        System.out.println("你的工资为固定工资+计时工资=" + Mmoney + "+" + 100 * time + "=" + (1000 + 100 * time));
    }


}

class Salesman extends Employee {
    double sale;//销售额
    int Mmoney = 500;

    Salesman(String name, String profession, int age, double sale) {
        super(name, profession, age);
        this.sale = sale;
    }

    void display() {//信息的输出
        super.dispaly();
        System.out.println("你的销售金额为:" + sale + "元");
    }

    void money() {
        System.out.println("你的工资为固定工资+销售提成=" + Mmoney + "+" + sale + "*0.05=" + (500 + 0.05 * sale));
    }
}

class SalesManager extends Employee {
    double sale;//销售额
    int Tmoney = 1000, Mmoney = 2000;

    SalesManager(String name, String profession, int age, double sale) {//信息的输出
        super(name, profession, age);
        this.sale = sale;
    }

    void money() {
        System.out.println("你的工资为固定工资+补贴+销售提成=" + Mmoney + "+" + Tmoney + "+" + sale + "*0.02=" + (2000 + 1000 + 0.05 * sale));
    }
}

题2:电子时钟类:

设计编写一个电子时钟类ElectronicClock,包含年、月、日、时、分、秒等属性。电子时钟类由时间类和日期类组合而成,实现并测试这个类。

package Day3;

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.Timer;
public class Main extends Jframe implements ActionListener {
    JLabel label = new JLabel(String.format("%tY年% 

题4:学生成绩信息类

编写一个学生成绩信息类,包含的数据由学号、姓名、程序设计课程设计成绩、计算机网络课程成绩、数据库课程成绩。实现并测试这个类。

类中包括的成员方法(要完成操作)有:

(1)查询学生成绩方法;

(2)修改学生成绩方法;

(3)添加学生信息方法;

(4)删除学生信息方法;

提示:

(1)学生的学号从1开始自动排序,由系统自动获取(用静态成员实现);

(2)对系统进行测试,测试方法是输入5名学生的成绩信息,显示三门课程总分从高到低的排名和每门成绩都大于85分的学生名单。 

package Day3;

import java.util.ArrayList;
import java.util.Scanner;

public class StudentTest {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        Student[] stu = new Student[100];
        int i = 1, z=0,x=0,m=1;
        tool t = new tool();
        while (i != 0) {
            System.out.println("-------------------学生成绩管理系统------------------------");
            System.out.println("--------------------1.添加学生-------------------");
            System.out.println("--------------------2.删除学生-------------------");
            System.out.println("--------------------3.查询学生信息-------------------");
            System.out.println("--------------------4.修改学生信息-------------------");
            System.out.println("--------------------5.总览学生信息-------------------");
            System.out.println("请选择需要的功能");
            int k = in.nextInt();
            switch (k) {
                case 1:

                     z = t.add(stu);
                    break;

                case 2:
                    t.delete(stu);
                    break;
                case 3:
                    t.check(stu);
                    break;
                case 4:
                    t.change(stu);
                    break;
                case 5:
                    while(m!=0){
                    if(z!=0){
                    for( x=0;xstu[c+1].zongfen)
                            {
                                int temp=stu[c].zongfen;
                                stu[c].zongfen=stu[c+1].zongfen;
                                stu[c+1].zongfen=temp;
                            }
                        }}
                    for( x=1;x85)&&(stu[x].g2>85)&&(stu[x].g3>85))
                            System.out.println("t学生姓名"+stu[x].name+"t课程设计成绩为:"+stu[x].g1+"t计算机网络课程为:"+stu[x].g2
                                    +"t数据库成绩为:"+stu[x].g3);
                    System.out.println("退出排名请按0");
                    m=in.nextInt();}
                    break;
                default:
                    System.out.println("输入正确数字");
                    System.out.println("按0退出程序");
                    i = in.nextInt();
            }
        }
    }
}

class tool {//工具类
    static int i = 1;

    int add(Student stu[]) {//添加学生信息
        int g1 = 0, g2 = 0, g3 = 0, k = 1,zongfen;
        while (k == 1) {
            Scanner sc = new Scanner(System.in);
            System.out.println("输入名字");
            String name = sc.next();
            System.out.println("输入课设成绩");
            g1 = sc.nextInt();
            System.out.println("输入计算机网络成绩");
            g2 = sc.nextInt();
            System.out.println("输入数据库成绩");
            g3 = sc.nextInt();
            zongfen=g1+g2+g3;
            stu[i] = new Student(name, g1, g2, g3,zongfen);
            stu[i].setName(name);
            stu[i].setG1(g1);
            stu[i].setG2(g2);
            stu[i].setG3(g3);
            stu[i].setZongfen(zongfen);
            System.out.println("创建成功,该学生学号为:" + i);
            System.out.println("继续输入请按1,输入其他数字返回页面");
            k = sc.nextInt();
            i++;

        }
        return i;
    }

    void check(Student stu[]) {//查找学生
        int k = 1;
        Scanner sc = new Scanner(System.in);
        while (k == 1) {
            System.out.println("请输入你要查找学生的学号");
            int n = sc.nextInt();
            if (stu[n] != null) {
                System.out.println("学生名字是:" + stu[n].name);
                System.out.println("学生学号为:" + n);
                System.out.println("学生课设成绩为:" + stu[n].g1);
                System.out.println("学生计算机成绩为:" + stu[n].g2);
                System.out.println("学生数据库成绩为:" + stu[n].g3);
            } else
                System.out.println("没有此学号");
            System.out.println("继续查找请按1,输入其他数字返回页面");
            k = sc.nextInt();
        }
    }

    void delete(Student stu[]) {//删除学生
        int k = 1;
        while (k == 1) {
            System.out.println("输入你要删除的学生的学号");
            Scanner sc = new Scanner(System.in);
            int n = sc.nextInt();
            if (stu[n].name == null)
                System.out.println("没有此学号");
            else {
                stu[n].name = null;
                stu[n].g1 = 0;
                stu[n].g2 = 0;
                stu[n].g3 = 0;
                System.out.println("删除成功");
            }
            System.out.println("继续查找请按1,输入其他数字返回页面");
            k = sc.nextInt();
        }
    }

    void change(Student stu[]) {//改动学生
        int k = 1;
        while (k == 1) {
            System.out.println("输入你要修改的学生的学号");
            Scanner sc = new Scanner(System.in);
            int n = sc.nextInt();
            if (stu[n].name == null)
                System.out.println("没有此学号");
            else {
                System.out.println("请输入新的姓名");
                String na = sc.next();
                System.out.println("请输入新的课设成绩");
                int g1 = sc.nextInt();
                System.out.println("请输入新的计算机成绩");
                int g2 = sc.nextInt();
                System.out.println("请输入新的数据库成绩");
                int g3 = sc.nextInt();
                stu[n].name = na;
                stu[n].g1 = g1;
                stu[n].g2 = g2;
                stu[n].g3 = g3;
                System.out.println("修改成功");
            }
            System.out.println("继续查找请按1,输入其他数字返回页面");
            k = sc.nextInt();
        }
    }
}


class Student {//学生类
    String name;
    int g1=0, g2=0, g3=0,zongfen;

    public Student(String name, int g1, int g2, int g3,int zongfen) {
        this.name = name;
        this.g1 = g1;
        this.g3 = g3;
       this.zongfen=zongfen;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setG1(int g1) {
        this.g1 = g1;
    }

    public int getG1() {
        return g1;
    }

    public void setG2(int g2) {
        this.g2 = g2;
    }

    public int getG2() {
        return g2;
    }

    public void setG3(int g3) {
        this.g3 = g3;
    }

    public int getG3() {
        return g3;
    }

    public void setZongfen(int zongfen) {
        this.zongfen = zongfen;
    }

    public int getZongfen() {
        return zongfen;
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/749849.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号