JAVA数据管理系统(用ArrayList实现增删改查等操作)

通过查找大量有关ArrayList操作的文章,终于将这个小东西写完了。感觉心累。

//import java.util.ArrayList;
//import java.util.List;
//import java.util.Scanner;// I/O库函数
//import java.util.Comparator;
//import java.util.Collections;//集合库,在此程序中的作用是用来对ArrayList排序
//以上库函数可以直接用 import java.util.*;
import java.util.*; 
class Stu{
	private int id;	//编号
	private String name;	//姓名
	private boolean sex;	//性别
	private int bornDate;	//出生日期
	private int edu;     //学历
	private long phone;	//电话
	private float salary;		//工资

//	public void qtu(int id,String name,boolean sex,int bornDate,int edu,long phone,float salary)
//	{
//		this.id=id;
//		this.name=name;
//		this.sex=sex;
//		this.bornDate=bornDate;
//		this.edu=edu;
//		this.phone=phone;
//		this.salary=salary;
//	}
	
	public int getid()	//返回输入数据的值
	{
		return id;
	}
	
	public void setid(int id)	//因为定义的类型为私有,所以需要为数据的输入提供一个供外部访问的接口
	{
		this.id=id;
	}
	
	public String getname()
	{
		return name;
	}
	
	public void setname(String name)
	{
		this.name=name;
	}
	
	public boolean getsex()
	{
		return sex;
	}
	
	public void setsex(boolean sex)
	{
		this.sex=sex;
	}
	
	public int getbornDate()
	{
		return bornDate;
	}
	
	public void setbornDate(int bornDate)
	{
		this.bornDate=bornDate;
	}
	
	public int getedu()
	{
		return edu;
	}
	
	public void setedu(int edu)
	{
		this.edu=edu;
	}
	
	
	public long getphone()
	{
		return phone;
	}
	
	public void setphone(long phone)
	{
		this.phone=phone;
	}
	
	public float getsalary()
	{
		return salary;
	}
	
	public void setsalary(float salary)
	{
		this.salary=salary;
	}
	
	
}
class Operate{
	List<Stu> list=new ArrayList<Stu>();

	Scanner cin=new Scanner(System.in);
	
	
//输入部分可以先将类型定义为String,再通过list.父类型.parse数据类型()转换为指定类型	
public void input() throws Exception//添加工程师信息
{
	int student_number=1;
	System.out.println("********* 添加学生信息,停止添加输入0 **********");

	while(true)
	{
	Stu stu=new Stu(); //这条语句一定要放在循环结构里,否则list中的值不会更新
	System.out.println("正在录入第 "+student_number+" 个工程师的信息....\n");
	System.out.println("******请输入工程师的编号******");
	stu.setid(Integer.parseInt(cin.next()));	//这里不能用的输入不能用 cin.nextLine() 原因应该与C语言的gets()后+scanf()差不多
	if(stu.getid()==0) {System.out.println("******成功退出输入******\n");break;}
	System.out.println("******请输入工程师的名字******");
	stu.setname(cin.next());
	System.out.println("******请输入工程师的性别******");
	stu.setsex(Boolean.parseBoolean(cin.next()));
	System.out.println("******请输入工程师的出生日期******");
	stu.setbornDate(Integer.parseInt(cin.next()));
	System.out.println("******请输入工程师的学历******");
	stu.setedu(Integer.parseInt(cin.next()));
	System.out.println("******请输入工程师的联系电话******");
	stu.setphone(Long.parseLong(cin.next()));
	System.out.println("******请输入工程师的工资******");
	stu.setsalary(Float.parseFloat(cin.next()));
	list.add(stu);
//	stu.id=cin.nextInt();
//	stu.name=cin.nextLine();
//	stu.sex=cin.nextBoolean();
//	stu.bornDate=cin.nextInt();
//	stu.edu=cin.nextInt();
//	stu.phone=cin.nextInt();
//	stu.salary=cin.nextFloat();
	System.out.println("第"+student_number+"个工程师的信息录入成功!\n");
	student_number++;
}
	
}

public void select()	//查找并打印出指定工程师信息
{
	System.out.println("************请输入要查询的工程师编号******");
	int num=cin.nextInt();
	int number=0;
	for(int i=0;i<list.size();i++)
	{
		if(num==list.get(i).getid())
		{
            System.out.println("**************************************************************************************");
            System.out.println(" 编号	姓名		性别		出生日期		学历		电话		工资");
            System.out.println(list.get(i).getid()+"\t"+list.get(i).getname()+"\t"+list.get(i).getsex()+"\t"+list.get(i).getbornDate()+"\t"+list.get(i).getedu()+"\t"+list.get(i).getphone()+"\t"+list.get(i).getsalary());
            System.out.println("**************************************************************************************");
            number++;
		}
	}
	if(number==0)
		System.out.println("************你要查找的工程师编号不存在************");
}

public void  delete()	//删除指定工程师信息
{
	System.out.println("******请输入要删除的工程师编号******");
	int num=cin.nextInt();
	for(int i=0;i<list.size();i++)
	{
	if(num==list.get(i).getid())
	{
		System.out.println("成功删除编号为"+list.get(i).getid()+"的工程师");
		list.remove(i);//删除下标为i的信息
	}
	}
}

public void update()	//修改指定工程师信息
{
	int rm=0;
	int id1;
	String name1;
	boolean sex1;
	int borndate1;
	int edu1;
	long phone1;
	float salary1;
	System.out.println("******请输入要修改的工程师编号******");
	int num=cin.nextInt();
	for(int i=0;i<list.size();i++)
	{
	if(num==list.get(i).getid())
	{
			rm=1;
			System.out.println("请输入修改后的编号");
			id1=Integer.parseInt(cin.next());
			list.get(i).setid(id1);//通过访问函数接口来完成修改功能
			System.out.println("请输入修改后的名字");
			name1=cin.next();
			list.get(i).setname(name1);
			System.out.println("请输入修改后的性别");
			sex1=Boolean.parseBoolean(cin.next());
			list.get(i).setsex(sex1);
			System.out.println("请输入修改后的出生日期");
			borndate1=Integer.parseInt(cin.next());
			list.get(i).setbornDate(borndate1);
			System.out.println("请输入修改后的学历");
			edu1=Integer.parseInt(cin.next());
			list.get(i).setedu(edu1);
			System.out.println("请输入修改后的电话");
			phone1=Long.parseLong(cin.next());
			list.get(i).setphone(phone1);
			System.out.println("请输入修改后的工资");
			salary1=Float.parseFloat(cin.next());
			list.get(i).setsalary(salary1);
			System.out.println("********信息修改完成**************");
			break;
	}
	}
	if(rm==0)
		System.out.println("无此编号工程师!");
}

public static class idComparator implements Comparator //自定义比较器类
{
	public int compare(Object o1,Object o2)
	{
	Stu s1,s2;
	s1=(Stu)o1;
	s2=(Stu)o2;
	return new Integer(s1.getid()).compareTo(new Integer(s2.getid()));//将s.getid()包装为Integer对象后进行比较
	}
}


public void sort()  //排序工程师信息
{
	Comparator cmp=new idComparator();//创建比较器对象
	Collections.sort(list,cmp);//集合排序函数Collections.sort(集合列表,比较器)
	System.out.println("*******编号排序成功**********");
}

public void output()	//输出所有工程师信息
{
	System.out.println("============打印工程师信息===========");
    System.out.println("**************************************************************************************");
    System.out.println(" 编号\t姓名\t性别\t出生日期\t\t学历\t电话\t\t工资(元)");
    System.out.println("**************************************************************************************");
	for( Stu u:list)
	{
		System.out.println(u.getid()+"\t"+u.getname()+"\t"+u.getsex()+"\t"+u.getbornDate()+"\t\t"+u.getedu()+"\t"+u.getphone()+"\t"+u.getsalary());
	}
    System.out.println("**************************************************************************************");
	System.out.println("======================================================================================");
}

public void clear() throws Exception	//清除所有工程师信息
{
	System.out.println("确认删除? true/false");
	boolean s=cin.nextBoolean();
	if(s)list.clear();
	if(!s) return ;
	System.out.println("******成功清除所有工程师信息******");
}
}

public class Ims{
	public static void main(String[] args)throws Exception{
		Scanner sc=new Scanner(System.in);
		Operate pt=new Operate();

		System.out.println("==============工程师信息管理系统===============\n");
		System.out.println("请选择:   1: 录入工程师信息  2: 查询指定工程师信息    3: 删除指定工程师信息    4: 修改指定工程师资料   5: 对工程师资料排序   6: 输出所有工程师资料   7: 清除所有工程师资料  8: 退出");
		while(sc.hasNextInt())
		{
		int n=sc.nextInt();
		if(n==8)
			break;
		switch(n)
		{
		case 1: pt.input();break;
		case 2: pt.select();break;
		case 3: pt.delete();break;
		case 4: pt.update();break;
		case 5: pt.sort();break;
		case 6: pt.output();break;
		case 7: pt.clear();break;
		}

		System.out.println("请选择:   1: 录入工程师信息  2: 查询指定工程师信息    3: 删除指定工程师信息    4: 修改指定工程师资料   5: 对工程师资料排序   6: 输出所有工程师资料   7: 清除所有工程师资料  8: 退出");
		}
		System.out.println("欢迎您下次继续使用本信息管理系统!");
		
	}
}
 

此代码仅供初学者参考=.=

猜你喜欢

转载自blog.csdn.net/sinat_41721615/article/details/83011296