import java.rmi.*;
import java.util.*;
import java.rmi.server.UnicastRemoteObject;
public class InterfacesImp extends UnicastRemoteObject implements Interfaces
{
private ArrayList<Users> user= new ArrayList<Users>(); //用户数组
private ArrayList<Meeting> meet=new ArrayList<Meeting>(); //会议数组
public InterfacesImp()throws java.rmi.RemoteException
{
super();
}
public Iterator<Users> iterator() {
return this.user.iterator();
}
public Iterator<Meeting> iterator1(){
return this.meet.iterator();
}
//新用户注册
public String register(String name, String passwords)
throws RemoteException {
//先判断用户是否存在
String str="";
int num=0;
for( Users user2: this.user )
{
if(user2.GetName().equals(name))
{
str+="该用户名已经被使用,无法重新注册!";
break;
}
else num++;
}
if(num == this.user.size())
{
Users user1=new Users(name,passwords);
user.add(user1);
str+="注册成功,恭喜您称为新用户!";
}
return str;
}
//查询已注册的所有用户
public String searchall() throws RemoteException {
String str="";
if(user==null)
{
str+="目前没有用户,请添加新用户";
}
int i=0;
for(Users user: this.user)
{
i++;
str+="用户名"+user.GetName() +"\n\r";
}
str+="用户总数量"+ i +"\n\r";
return str;
}
// 添加会议
public String add(String userName, String password, String otherUserName,
String title, String startTime, String endTime)
throws RemoteException {
boolean flag =false;
boolean flag1 =false;
boolean flag2=false;
boolean flag3=false;
boolean flag4=false;
String str=" ";
//先判断要参加会议的用户是否存在
Iterator<Users> it=user.iterator();
try{
int num=0;
while(it.hasNext())
{
Users userTemp = it.next();
if(userTemp.GetName().equals(userName)&&userTemp.GetPasswords().equals(password))
{ flag1=true;}
else if(num==this.user.size()-1)
{
str="输入的会议召开者不存在!";
flag=false;
}
else
{ num++;}
}
if(flag1)
{
Iterator<Meeting> met=meet.iterator();
int num4=0;
while(met.hasNext())
{
Meeting meetTemp = met.next();
if((meetTemp.GetUser().GetName().equals(userName))||(meetTemp.GetOtherusername().equals(userName)))
{
String starttime[]=startTime.split(":");String start1=starttime[0];String start2=starttime[1];
String starTime[]=meetTemp.StartTime().split(":");String start3=starTime[0];String start4=starTime[1];
String endtime[]=endTime.split(":");String end1=endtime[0];String end2=endtime[1];
String enTime[]=meetTemp.EndTime().split(":");String end3=enTime[0];String end4=enTime[1];
if(!(((Integer.parseInt(start3)*60+Integer.parseInt(start4))>=(Integer.parseInt(end1)*60+Integer.parseInt(end2)))
||((Integer.parseInt(end3)*60+Integer.parseInt(end4))<=(Integer.parseInt(start1)*60+Integer.parseInt(start2)))))
{
str+="时间与会议召开者的已确定会议时间相冲突!";flag=false;break;//flag2=false;//flag1=false;
}
else num4++;
}
else num4++;
if(num4==this.meet.size())
{
flag=true;}
}
while(this.meet.size()==0)
{
Users user2=new Users(userName,password);
Meeting meet1=new Meeting(startTime,endTime,title,otherUserName,user2);
meet.add(meet1);
user2.SetMeet(meet1);
str+="添加会议成功\n";
str+="会议的ID号:"+meet1.GetId()+"会议的主题:"+meet1.GetTilte()+"会议时间"+meet1.StartTime()+"--"
+meet1.EndTime();
}
}
}catch(Exception e)
{e.printStackTrace();}
try{
//判断用户是否有会议
if(flag)
{
int num1=0;
int num2=0;
for(Users user: this.user)
{
if(user.GetName().equals(otherUserName))
{
Iterator<Meeting> met=meet.iterator();
while(met.hasNext())
{
Meeting meetTemp = (Meeting)met.next();
if((meetTemp.GetOtherusername().equals(otherUserName))||(meetTemp.GetUser().GetName().equals(otherUserName)))
{
flag3=true;
}
else num2++;
}
if(num2==this.meet.size())
{flag3=true;}
}
else if(num1==this.user.size()-1)
{str+="被邀请的与会人员不存在!";
flag3=false;}
else num1++;
}
}
if(flag3)
{
int num3=0;
Iterator<Meeting> met=meet.iterator();
while(met.hasNext())
{
Meeting meetTemp = (Meeting)met.next(); //while(flag3){
if((meetTemp.GetOtherusername().equals(otherUserName))||(meetTemp.GetUser().GetName().equals(otherUserName)))
{
System.out.println("www");
String starttime[]=startTime.split(":");String start1=starttime[0];String start2=starttime[1];
String starTime[]=meetTemp.StartTime().split(":");String start3=starTime[0];String start4=starTime[1];
String endtime[]=endTime.split(":");String end1=endtime[0];String end2=endtime[1];
String enTime[]=meetTemp.EndTime().split(":");String end3=enTime[0];String end4=enTime[1];
if(!(((Integer.parseInt(start3)*60+Integer.parseInt(start4))>=(Integer.parseInt(end1)*60+Integer.parseInt(end2)))
||((Integer.parseInt(end3)*60+Integer.parseInt(end4))<=(Integer.parseInt(start1)*60+Integer.parseInt(start2)))))
{
str+="时间与被邀请者的已确定会议时间相冲突!";break;
}
else num3++;//flag3=true;
}
else num3++;
}
if(num3==this.meet.size())
{
Users user2=new Users(userName,password);
Meeting meet1=new Meeting(startTime,endTime,title,otherUserName,user2);
meet.add(meet1);
user2.SetMeet(meet1);
str+="添加会议成功\n";
str+="会议的ID号:"+meet1.GetId()+"会议的主题:"+meet1.GetTilte()+"会议时间"+meet1.StartTime()+"--"
+meet1.EndTime();
}
}
}catch(Exception e)
{e.printStackTrace();}
return str;
}
//查询会议详细信息
public String query(String userName, String password, String start, String end)
throws RemoteException {
String str = " ";
String str1 = "";
for(Meeting meet:this.meet){
if((meet.GetUser().GetName().equals(userName) &&meet.GetUser().GetPasswords().equals(password))||
meet.GetOtherusername().equals(userName)){
String starttime[]=start.split(":");
String start1=starttime[0];
String start2=starttime[1];
String startTime[]=meet.StartTime().split(":");
String start3=startTime[0];
String start4=startTime[1];
String endtime[]=end.split(":");
String end1=endtime[0];
String end2=endtime[1];
String endTime[]=meet.EndTime().split(":");
String end3=endTime[0];
String end4=endTime[1];
if(((Integer.parseInt(start3)*60+Integer.parseInt(start4))>=(Integer.parseInt(start1)*60+Integer.parseInt(start2)))
&&((Integer.parseInt(end3)*60+Integer.parseInt(end4))<=(Integer.parseInt(end1)*60+Integer.parseInt(end2)))){
str1 = "会议"+ meet.GetId() + ":开始时间:" + meet.StartTime() + "结束时间:" + meet.EndTime() +
"主题:" + meet.GetTilte()+ "会议召开者:"+meet.GetUser().GetName()+"与会其他人员:"+meet.GetOtherusername()+"\n";
str=str+"\n"+str1;
}
}
}
if(str.equals(" "))
str = "查询的会议没有或无此用户!";
else str=str;
return str;
}
// 取消用户的指定会�
东北大学程序实践三网络编程
5星 · 超过95%的资源 需积分: 10 141 浏览量
2011-06-10
11:29:58
上传
评论 1
收藏 22KB RAR 举报
我要变大牛yeah
- 粉丝: 26
- 资源: 11
最新资源
- 基于matlab实现图像处理,本程序使用背景差分法对来往车辆进行检测和跟踪.rar
- 基于matlab实现视频监控中车型识别代码,自己写的,希望和大家多多交流.rar
- sdk.config
- 基于matlab实现配电网三相潮流计算方法,对几种常用的配电网潮流计算方法进行了对比分析.rar
- 基于matlab实现配电网潮流 经典33节点 前推回代法潮流计算 回代电流 前推电压 带注释.rar
- 基于matlab实现模拟退火遗传算法的车辆调度问题研究,用MATLAB语言加以实现.rar
- 基于matlab实现蒙特卡洛的的移动传感器节点定位算法仿真代码.rar
- 华中数控系统818用户说明书
- 基于matlab实现卡尔曼滤波器完成多传感器数据融合 对多个机器人的不同传感器数据进行融合估计足球精确位置.rar
- 基于matlab实现进行简单车辆识别-车辆检测.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈