问题描述:
   Unix系统的用户信息通常都放置在/etc/passwd文件中,每个用户的信息占用一行,文件格式如下:
username:password:uid: gid:gcos-field:home-dir:login-shell每个用户都会属于不同的组,组信息通常放置在/etc/group文件中,每个组信息占用一行,文件格式如下:
groupname:password: gid:user-list一个用户可以属于不同的组,一个组也可以包含多个用户。用户信息中的password和gcos-field信息,组信息中的password信息在我们的系统中被忽略。
   要求:
   现在要建立一个用户管理系统,将所有的类型都放置在tarena.com.usermgmt包下:1. 尽量采用JavaBean的方式建立类型User和Group,类型除了包含以上提供的信息外,还要反映出两个类型之间的关系,同时这两个类型的对象能在网络上传输。2. 创建类型DataBuilder,通过解析字符串(文件/etc/passwd和/etc/group中的串)创建User和Group对象,DataBuilder类图为。DataBuilder
 
+parseUser(line : String) : User
+parseGroup(line : String): Group
3. 创建类型FileAnalyzer, 读取文件/etc/passwd和/etc/group的内容,使用DataBuilder,将文件内容完全反映到内存中。4 . 编写一个Socket的客户程序UserClient,将3中产生的用户和组对象传递到服务器上。5 . 编写一个Socket 的多线程服务程序UserServer,接收UserClient发送的对象,并在内存中形成所有服务器上的用户和组的内存映像。

解决方案 »

  1.   

    package tarena.com.usermgmt;public class User
    {
        String username;
        
        String uid;
        
        String gid;
        
        String home_dir;
        
        String login_shell;
        
        public String getGid()
        {
            return gid;
        }
        
        public void setGid(String gid)
        {
            this.gid = gid;
        }
        
        public String getHome_dir()
        {
            return home_dir;
        }
        
        public void setHome_dir(String home_dir)
        {
            this.home_dir = home_dir;
        }
        
        public String getLogin_shell()
        {
            return login_shell;
        }
        
        public void setLogin_shell(String login_shell)
        {
            this.login_shell = login_shell;
        }
        
        public String getUid()
        {
            return uid;
        }
        
        public void setUid(String uid)
        {
            this.uid = uid;
        }
        
        public String getUsername()
        {
            return username;
        }
        
        public void setUsername(String username)
        {
            this.username = username;
        }
    }
      

  2.   

    package tarena.com.usermgmt;import java.util.ArrayList;
    import java.util.List;public class Group
    {
        String groupname;
        
        String gid;
        
        List<User> user_list = new ArrayList<User>();
        
        public String getGid()
        {
            return gid;
        }
        
        public void setGid(String gid)
        {
            this.gid = gid;
        }
        
        public String getGroupname()
        {
            return groupname;
        }
        
        public void setGroupname(String groupname)
        {
            this.groupname = groupname;
        }
        
        public List<User> getUser_list()
        {
            return user_list;
        }
        
        public void setUser_list(List<User> user_list)
        {
            this.user_list = user_list;
        }
    }
      

  3.   

    两个JAVABEAN也拿出来抢分哈,,,哈哈...
    关注中...