import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
class Clerk {
//成员变量,职员的基本信息:编号、姓名和工资
private String no;
private String name;
private float sla;
Clerk(String n,String na,float s){
no=n;
name=na;
sla=s;
}
Clerk(){
}
public String getNo() {
return no;
}
public void setNo(String no) {
this.no = no;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public float getSla() {
return sla;
}
public void setSla(float sla) {
this.sla = sla;
}
public String toString(){
return "编号:" + no+"\n姓名:" + name+"\n工资:" + sla;
}
}
class ClerkManage {
Clerk al[] = null;
int size=0; //标识存入的元素个数
public ClerkManage(int n) {
al = new Clerk[n];
}
// 添加职员
public void addClerk(Clerk c) {
al[size]=c; //把元素存入数组当前的最后一个元素之后
size++;
System.out.println("添加职员,他的信息是");
System.out.println(c);
}
// 查找并显示职员的相关信息
public int showInfo(String no) {
// 遍历整个ArrayList
boolean flag=true;
for (int i = 0; flag&&(i < size); i++) {
// 取出一个职员
Clerk ct=al[i];
// 比较编号
if (ct.getNo().equals(no)) {
System.out.println("该职员的信息是");
System.out.println(ct);
flag=false;
return i;
}
}
if(flag) System.out.println("查无此人!");
return -1;
}
// 修改工资
public void updateSal(String no, float newsal) {
int n=showInfo(no);
if(n!=-1){
al[n].setSla(newsal);
System.out.println("修改后,他的信息是");
System.out.println(al[n]);
}
}
// 删除职员
public void delClerk(String no) {
int n=showInfo(no);
if(n!=-1){
//将之后元素向前移动
for(int j=n;j<size-1;j++){
al[j]=al[j+1];
}
size--; //元素个数减一
System.out.println("删除成功!");
}
}
}
class ClerkNode{
Clerk clerkdata;
ClerkNode next;
ClerkNode(Clerk c,ClerkNode cn){
clerkdata=c;
next=cn;
}
}
class ClerkManageLink {
ClerkNode head; //头结点
ClerkNode rear; //尾结点
int size;
ClerkManageLink(){
head=new ClerkNode(null,null);
rear=head;
size=0;
}
// 添加职员
public void addClerk(Clerk c) {
//用c生成一个结点,链入链表中,并让rear指向它
ClerkNode cn=new ClerkNode(c,null);
if(head.next==null){
head.next=cn;
rear=cn;
}else{
rear.next=cn;
rear=cn;
}
size++;
System.out.println("添加职员,他的信息是");
System.out.println(c);
}
// 查找并显示职员的相关信息
public ClerkNode showInfo(String no) {
// 遍历整个ArrayList
boolean flag=true;
for (ClerkNode p=head; flag&&(p.next!=null); p=p.next) {
// 取出一个职员
Clerk ct=p.next.clerkdata;
// 比较编号
if (ct.getNo().equals(no)) {
System.out.println("该职员的信息是");
System.out.println(ct);
flag=false;
return p;//返回的是要查找的这个结点的前一个结点,此举是为了后面删除方便
}
}
if(flag) System.out.println("查无此人!");
return null;
}
// 修改工资
public void updateSal(String no, float newsal) {
ClerkNode n=showInfo(no);
if(n!=null){
n.next.clerkdata.setSla(newsal);
System.out.println("修改后,他的信息是");
System.out.println(n.next.clerkdata);
}
}
// 删除职员
public void delClerk(String no) {
ClerkNode n=showInfo(no);
if(n!=null){
n.next=n.next.next ;
size--; //元素个数减一
System.out.println("删除成功!");
}
}
}
public class ClerkTester {
public static void main(String[] args) throws IOException{
ClerkManageLink cm=new ClerkManageLink();
//给出一个菜单
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
while(true){
System.out.println("**********欢迎使用职员管理系统*********");
System.out.println("\n\t请选择你要进行的操作:");
System.out.println("\n\t1.添加一个职员:");
System.out.println("\n\t2.查找一个职员:");
System.out.println("\n\t3.修改一个职员的工资:");
System.out.println("\n\t4.删除一个职员:");
System.out.println("\n\t5.退出!");
String operType=br.readLine();
if(operType.equals("1")){
System.out.println("请输入职员的编号:");
String no=br.readLine();
System.out.println("请输入职员的姓名:");
String responsibilities=br.readLine();
System.out.println("请输入职员的职位:");
String name=br.readLine();
System.out.println("请输入职员的工资:");
float sla=Float.parseFloat(br.readLine());
Clerk ck=new Clerk(no,name,sla);
cm.addClerk(ck);
}else if(operType.equals("2")){
System.out.println("请输入职员的编号:");
String no=br.readLine();
cm.showInfo(no);
}else if(operType.equals("3")){
System.out.println("请输入职员的编号:");
String no=br.readLine();
System.out.println("请输入职员的工资:");
float sla=Float.parseFloat(br.readLine());
cm.updateSal(no, sla);
}else if(operType.equals("4")){
System.out.println("请输入职员的编号:");
String no=br.readLine();
cm.delClerk(no);
}else if(operType.equals("5")){
System.exit(0);
}
}
}
}
从控制台管理员工信息
这个其实就是创建了一个员工的数组,然后一个个查,其实再深入一点用数据库就更明白了, al = new Clerk[n];这个创建了员工的对象数组,也就是员工1,员工2。。。的这些对象,然后对这个添加删除,做操作