⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 staffinfomation.java

📁 一个课程设计中经常出现的题目 职工管理系统 有助于初学者学习
💻 JAVA
字号:
package staff;//包
import java.io.*;

public class StaffInfomation {
	public static void main(final String[] args) throws IOException 
    //throws IOException用来抛出io的错误,文件读写错误,主要涉及到java的安全机制
	{
		staffInfo staffOne[]=new staffInfo[100];  //定义100个类数组
		for(int j=0;j<100;j++) staffOne[j] = new staffInfo();//建立这100个类的对象
		final ways staffTwo=new ways();  //建立这个方法类的对象
  
		staffTwo.caidan(staffOne);
		staffTwo.creat(staffOne);
		staffTwo.output(staffOne);
		staffTwo.search(staffOne);
		staffTwo.delete(staffOne);
	//以上几个方法分别对应着:caidan菜单选择、增加(建立)职工信息、
	//输出(预览)、查询、删除这些功能,以数组类为参数
	}
}

class staffInfo{ //职工信息类,存放职工的信息
	public String name; 
	public String num; 
	public String sex;
	public String age; 
	public String record;
	public String position;
	public String wanges; 
	public String tel;
	public String addr;
	//把name、num、sex、age、record等声明为全局变量,
	//因为它们贯穿于整个程序中,方便其它方法、类调用它们
}

//方法类,主要实现职工信息的建立,显示,查找,删除,信息的保存与读取;这个类是整个程序的操作类。
class ways {
	public String recordkey;
	public int i=0;//i用来存放职工的人数
	public String filename="Infomation.txt";
	BufferedReader buf=new BufferedReader(new InputStreamReader(System.in)); 
	
	void caidan(staffInfo staffOne[]) throws IOException{
		final BufferedReader buf=new BufferedReader(new InputStreamReader(System.in));
   		// 产生Buf对象;buf是BufferedReader类的变量,此处将读入字符串至buf
		int choice;

		do{
			System.out.println("☆★☆★☆★☆数学与计算科学系0633061班★刘备★设计★☆★☆★☆\n\n");
			System.out.println("┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓"); 
			System.out.println("┃★      ★ ★     职工管理系统主菜单界面       ★ ★      ★┃");
    		System.out.println("┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫");
    		System.out.println("┃★ ★ ★ ★        ①.输入职工信息             ★ ★ ★ ★┃");
    		System.out.println("┃★ ★ ★             ②.预览职工信息                ★ ★ ★┃");
    		System.out.println("┃★ ★ ★             ③.查找职工信息                ★ ★ ★┃");
    		System.out.println("┃★ ★ ★             ④.删除职工信息                ★ ★ ★┃");
    		System.out.println("┃★ ★ ★            ⑤.安全退出系统                ★ ★ ★┃");
    		System.out.println("┃★ ★ ★ ★          ⑥.读取数据                 ★ ★ ★ ★┃");   
    		System.out.println("┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛");
    		System.out.print(" 请输入您的选择(0--6):");        
    		choice=Integer.parseInt(buf.readLine()); 
    		switch(choice){
    			case 1:creat(staffOne);break;
    			case 2:output(staffOne);break; 
    			case 3:search(staffOne);break;
    			case 4:delete(staffOne);break;
    			case 5:save(staffOne);break;
    			case 6:read(staffOne);break;
    		}
		}while(choice!=0);
	}

	//实现“增加(建立)职工信息”
	void creat(staffInfo staffOne[]) throws IOException {
		final BufferedReader buf=new BufferedReader(new InputStreamReader(System.in)); 
   		System.out.print("\n请输入职工信息(以0结束)\n");
		System.out.print("姓名:\n\n");
		staffOne[i].name=buf.readLine();
		
		//用数组staffOne[i]来暂存职工的序号,并用compareTo方法确定判定是否应该写入新信息
		while(staffOne[i].name.compareTo("0")!=0){
			System.out.print("工号:\n\n");
			staffOne[i].num=buf.readLine();
			System.out.print("性别:\n\n");
			staffOne[i].sex=buf.readLine();
			System.out.print("年龄:\n\n");
			staffOne[i].age=buf.readLine();
			System.out.print("学历:\n\n");
			staffOne[i].record=buf.readLine();
			System.out.print("职位:\n\n");
			staffOne[i].position=buf.readLine();
			System.out.print("工资:\n\n");
			staffOne[i].wanges=buf.readLine();
			System.out.print("电话:\n\n");
			staffOne[i].tel=buf.readLine();
			System.out.print("住址:\n\n");
			staffOne[i].addr=buf.readLine();
			i++;
			System.out.println("请输入下一个职工信息:\n\n");
			staffOne[i].name=buf.readLine();
		} 
	}

	//这里是实现“输出(预览)职工信息”output的模块
	void output(staffInfo staffOne[]) throws IOException{
		System.out.println("-------------------------------------------------------------------------------");
   		System.out.println("                             *员工信息表*                                       ");
   		System.out.println("-------------------------------------------------------------------------------"); 
   		System.out.println("姓名     工号      性别    年龄 学历 职位 工 资 电话号码    住址              ");
   		System.out.println("-------------------------------------------------------------------------------"); 
   		if(i!=0){
   			for(int j=0;j<i;j++){
   				System.out.print(staffOne[j].name+"    "+staffOne[j].num+"    "+staffOne[j].sex+"    ");
    			System.out.print(staffOne[j].age+"    "+staffOne[j].record+"    "+staffOne[j].position+"    ");
    			System.out.print(staffOne[j].wanges+"    "+staffOne[j].tel+"    "+staffOne[j].addr+"\n");
     		}
     		System.out.println("-------------------------------------------------------------------------------"); 
   		}
   		else System.out.println("没有员工信息!");
   	}

	//实现职工信息的查询功能的模块
	void search(staffInfo staffOne[]) throws IOException{
		final BufferedReader buf=new BufferedReader(new InputStreamReader(System.in));
		System.out.println("\n请输入您要查找的职工学历:");
		recordkey=buf.readLine();
		boolean flg=true;
   		System.out.println("-------------------------------------------------------------------------------");
   		System.out.println("                             *员工信息表*                                       ");
   		System.out.println("-------------------------------------------------------------------------------"); 
   		System.out.println("姓名     工号      性别    年龄 学历 职位 工 资 电话号码    住址              ");
   		System.out.println("-------------------------------------------------------------------------------");   
   		for(int j=0;j<i;j++) {
   			if(recordkey.equals(staffOne[j].record)){//equals是字符串比较函数相等返回true
   				System.out.print(staffOne[j].name+"    "+staffOne[j].num+"    "+staffOne[j].sex+"    ");
     			System.out.print(staffOne[j].age+"    "+staffOne[j].record+"    "+staffOne[j].position+"    ");
     			System.out.print(staffOne[j].wanges+"    "+staffOne[j].tel+"    "+staffOne[j].addr+"\n");
     			flg=false;
     		}    
   		}
   		if(flg)
    	System.out.println("对不起,查无此人!");
    }


	void delete(staffInfo staffOne[]) throws IOException {
		final BufferedReader buf=new BufferedReader(new InputStreamReader(System.in));
		System.out.println("\n请输入您要删除的职工姓名:");
		recordkey=buf.readLine();
		boolean flg=true;
		for(int j=0;j<i;j++){
			if(recordkey.equals(staffOne[j].name)){
				//利用顺序表的删除算法,删除值之后,再把后面的值往前移位,从而实现删除
				for(int k=j;k<=i-1;k++){
					staffOne[k].name=staffOne[k+1].name ;
					staffOne[k].num=staffOne[k+1].num ;
      				staffOne[k].sex=staffOne[k+1].sex ;
      				staffOne[k].age=staffOne[k+1].age ;
      				staffOne[k].record=staffOne[k+1].record ;
      				staffOne[k].position=staffOne[k+1].position ;
      				staffOne[k].wanges=staffOne[k+1].wanges ;
      				staffOne[k].tel=staffOne[k+1].tel ;
      				staffOne[k].addr=staffOne[k+1].addr ;
      			}
     			i--;//职工人数要减一
     			flg=false;
     		}    
		}
		if(flg)
    	System.out.println("对不起,查无此人!。");
   		else System.out.println("已经删除!。");
	}

	//数据的保存模块,把输入的职工信息保存到相应的文件里。
	void save(staffInfo staffOne[]) throws IOException{
		int k;
		final FileWriter fw=new FileWriter(filename);//调用构造函数FileWriter()创建FileWriter类的对象。
   		//文件的读取
   		fw.write( i+"\n");//把职工的人数保存到文件中以便下次读取是使用
  
   		for( k=0;k<i;k++){//每个职工有9个信息字段,下面就是这9个信息段。
   			fw.write( staffOne[k].name+"\n");  
    		fw.write( staffOne[k].num+"\n");
    		fw.write( staffOne[k].sex+"\n" );
    		fw.write( staffOne[k].age+"\n");
    		fw.write( staffOne[k].record+"\n");
    		fw.write( staffOne[k].position+"\n") ;
    		fw.write( staffOne[k].wanges+"\n");
    		fw.write( staffOne[k].tel+"\n");
    		fw.write( staffOne[k].addr+"\n");
    	}

   		fw.close();
   		System.out.println("\n 系统已经安全退出!感谢您的使用!");
   		System.exit(0);
	}
	
	//读文件模块,读取先前已存在的职工信息文件
	void read(staffInfo staffOne[]) throws IOException {
		final FileReader fr=new FileReader(filename);
		final BufferedReader bfr=new BufferedReader(fr);
		if((recordkey=bfr.readLine())!=null)
			i=Integer.parseInt(recordkey);
		for(int j=0;j<i;j++){
			staffOne[j].name=bfr.readLine();
     		staffOne[j].num=bfr.readLine();
     		staffOne[j].sex=bfr.readLine();
    		staffOne[j].age=bfr.readLine();
    		staffOne[j].record=bfr.readLine();
    		staffOne[j].position=bfr.readLine();
    		staffOne[j].wanges=bfr.readLine();
    		staffOne[j].tel=bfr.readLine();
    		staffOne[j].addr=bfr.readLine();
   		}  
   		fr.close();
   		System.out.println("\n 数据已经成功读取!");
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -