JAVA编程题
1、在工资支付系统中,雇员的记录由:雇员号(姓名(String)、地址(String)和工资(double)。编写一个程序完成雇员记录的添加、修改、删除、查询功能。要求在...
1、 在工资支付系统中,雇员的记录由:雇员号(姓名(String)、地址(String)和工资(double)。编写一个程序完成雇员记录的添加、修改、删除、查询功能。要求在系统退出时将系统所有的雇员记录写入文件中;在下次进入系统时,从该文件中恢复雇员信息。
思路提示:
(1)建立一个可序列化的雇员类,
类的数据成员:雇员号(int)、姓名(String)、地址(String)和工资(double)。
类的方法:构造函数、设置和读取各数据成员的方法。
(2)建立一个管理雇员记录的列表类。
类的数据成员:用于存放全部雇员记录的数组(或List或Vector);
雇员记录的个数(int).
类的方法:构造函数(创建数组对象,从文件中读全部雇员对象到数组对象中,并初始化雇员记录的个数);
完成雇员记录的添加、修改、删除、查询的四个方法(对对象数组进行)。
定义写方法:将对象数组中所有雇员记录保留到文件中。
(3)编写测试代码,测试上述功能。 展开
思路提示:
(1)建立一个可序列化的雇员类,
类的数据成员:雇员号(int)、姓名(String)、地址(String)和工资(double)。
类的方法:构造函数、设置和读取各数据成员的方法。
(2)建立一个管理雇员记录的列表类。
类的数据成员:用于存放全部雇员记录的数组(或List或Vector);
雇员记录的个数(int).
类的方法:构造函数(创建数组对象,从文件中读全部雇员对象到数组对象中,并初始化雇员记录的个数);
完成雇员记录的添加、修改、删除、查询的四个方法(对对象数组进行)。
定义写方法:将对象数组中所有雇员记录保留到文件中。
(3)编写测试代码,测试上述功能。 展开
2个回答
展开全部
import java.io.*;
import java.util.ArrayList;
import java.util.List;
public class Employee {
private int no;
private String name;
private String address;
private double salary;
public Employee(int no, String name, String address, double salary) {
this.no = no;
this.name = name;
this.address = address;
this.salary = salary;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getNo() {
return no;
}
public void setNo(int no) {
this.no = no;
}
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
}
class EmpList {
private List<Employee> empList;
private long count = 0;
public EmpList() {
empList = readText();
}
public long getCount() {
return empList.size();
}
public List<Employee> getEmpList() {
return empList;
}
public void setEmpList(List<Employee> empList) {
this.empList = empList;
}
public void add(Employee emp) {
empList.add(emp);
writeText();
}
public void delete(String name) {
Employee emp = query(name);
empList.clear();
}
public void update(Employee emp) {
empList.remove(emp);
add(emp);
}
public Employee query(String name) {
Employee temp = null;
for (Employee emp : empList) {
if (emp.getName().equals(name)) {
temp = emp;
}
}
return temp;
}
public List readText() {
List list = new ArrayList();
try {
File file = new File("D:\\emp.txt");
if (file.isFile() && file.exists()) { //判断文件是否存在
InputStreamReader read = new InputStreamReader(new FileInputStream(file), "gbk");//考虑到编码格式
BufferedReader bufferedReader = new BufferedReader(read);
String lineTxt = null;
while ((lineTxt = bufferedReader.readLine()) != null) {
int no = Integer.parseInt(lineTxt.split("#")[0]);
String name = lineTxt.split("#")[1];
String address = lineTxt.split("#")[2];
double salary = Double.parseDouble(lineTxt.split("#")[3]);
Employee emp = new Employee(no, name, address, salary);
list.add(emp);
}
read.close();
}
} catch (Exception e) {
e.printStackTrace();
}
return list;
}
public void writeText() {
try {
File f = new File("D:\\emp.txt");
if (!f.exists()) {
f.createNewFile();
}
OutputStreamWriter write = new OutputStreamWriter(new FileOutputStream(f), "gbk");
BufferedWriter writer = new BufferedWriter(write);
String writeTxt = "";
for (Employee emp : empList) {
writeTxt = emp.getNo() + "#" + emp.getName() + "#" + emp.getAddress() + "#" + emp.getSalary();
writer.write(writeTxt);
writer.newLine();
}
writer.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
class Test {
public static void main(String args[]) {
EmpList el = new EmpList();
Employee emp1 = new Employee(1,"张三","湖南",2000);
Employee emp2 = new Employee(2,"李四","湖北",3000);
el.add(emp1);
el.add(emp2);
List<Employee> list = el.getEmpList();
System.out.println("总共人数:"+el.getCount());
for (Employee emp : list) {
System.out.println("编号:"+emp.getNo() + " 姓名:" + emp.getName() + " 地址:" + emp.getAddress() + " 工资:" + emp.getSalary());
}
//el.writeText();
}
}
2014-12-18
展开全部
难zhe到shi要yao写nao出na来yang
追问
你写也可以,我写了一个,你能看看么,现在运行不起来
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |