题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;
}
}



