add.java

来自「采用面向对象方法和Java语言开发一个基于命令行交互方式的议程管理系统(agen」· Java 代码 · 共 176 行

JAVA
176
字号
package agenda;

import java.util.ArrayList;
import java.util.List;
import agenda.User;
import agenda.ManageUse;
import agenda.Agenda;
import agenda.ManageAgenda;
import agenda.Time_string;
/*
Add 类用于执行添加议程功能。成功添加的议程在ManageAgenda中保存。
 */
public class Add {
	// 添加一个新的会议安排,要求参数为以字符串为元素的列表
	public static void doAddAgenda(List list) {
		int Flag_1 = 1;
		if(((String)(list.get(0)) != null)&&((String)(list.get(2))) != null){
			if(!(((String)(list.get(0))).equalsIgnoreCase((String)(list.get(2))))){
				Flag_1 = 0;
			}else{
				Flag_1 = 1;
			}
		}			
		// 创建注册用户管理实例,用于查找添加议程语句中的用户
	    ManageUse manageUser = new ManageUse();	    	
	    // 标记议程发起者是否为注册用户
	    int Flag_2 = 0;
	    //查找、判断议程的发起用户是否已注册
	    for(int index = 0;index<manageUser.Registered_List.size();index++){
	    	if(((String)list.get(0)).equals(((User)manageUser.Registered_List.get(index)).userName)){
	    		Flag_2 = 1;
	    		break;
	    	}
	    }	    	
	    // 标记议程预约者是否为注册用户
	    int Flag_4 = 0;
	    //查找、判断被预约用户是否已注册
	    for(int index = 0;index<manageUser.Registered_List.size();index++){
	    	if(((String)list.get(2)).equals(((User)manageUser.Registered_List.get(index)).userName)){
	    		Flag_4 = 1;
	    		break;
	    	}
	    }	    	
	    // 创建议程管理实例
	    ManageAgenda manageAgenda = new ManageAgenda();
	    List user_List = (List)new java.util.ArrayList(); //new ArrayList();
	    for(int index = 0;index<manageAgenda.AgendaList.size();index++){
	    	if(((String)list.get(0)).equals(((Agenda)manageAgenda.AgendaList.get(index)).userName)
	    			||((String)list.get(0)).equals(((Agenda)manageAgenda.AgendaList.get(index)).otheruserName)){
	    		user_List.add(Integer.valueOf(index)); // 保存user所在的议程号
	    	}
	    }
	    List otherInAgendaList = new ArrayList();
	    for(int index = 0;index<manageAgenda.AgendaList.size();index++){
	    	if(((String)list.get(0)).equals(((Agenda)manageAgenda.AgendaList.get(index)).userName)
	    			||((String)list.get(0)).equals(((Agenda)manageAgenda.AgendaList.get(index)).otheruserName)){
	    		otherInAgendaList.add(Integer.valueOf(index));
	    	}
	    }	    	
	    int user_ListLag;
	    if(user_List.size() > 0){
	    	user_ListLag = 1;
	    }else{
	    	user_ListLag = 0;
	    }	    	
	    int Flag_6;
	    if(user_List.size() > 0){
	    	Flag_6 = 1;
	    }else{
	    	Flag_6 = 0;
	    }	    	
	    Time_string time = new Time_string();
	    // user、other已在其他议程中,但没有时间冲突,则可以添加议程
	    int usercanuse = 0;
	    int othercanuse = 0;
	    // user、other不在议程中,准备直接ADD;1表示可以用。
	    int Flag_3 = 0;
	    int Flag_5 = 0;
		if(Flag_1 == 1){
			System.out.println("不能与自己预约!");
		}else{
			if((Flag_2 == 1)&&(Flag_4 == 1)){ //两人都是注册用户
				if(user_ListLag == 1){ 
					// 标记待添加议程时间与用户所在议程的时间冲突的议程个数,只要此标记有值则调试冲突
					int number_flag= 0;
					int user_ListSize = user_List.size();
					for(int i = 0;i<user_List.size();i++){
						//得到用户所在的议程列表中的议程编号
						int userinagendaindex =( (Integer)(user_List.get(i))).intValue();
						if(!((time.Conserse((String)list.get(3))).after(time.Conserse(((Agenda)manageAgenda.AgendaList.get(userinagendaindex)).endTime))
								||(time.Conserse((String)list.get(4))).before(time.Conserse(((Agenda)manageAgenda.AgendaList.get(userinagendaindex)).startTime)))){
							number_flag++;
						}else{
								;
								}
						}
					if(number_flag > 0){ //时间有冲突
						System.out.println("议程发起者时间冲突,添加失败!");
					}
					if(number_flag == 0){ //没有时间冲突
						usercanuse = 1; //标记User可以用
					}
					}else{ // user无任何议程
						Flag_3 = 1;
						}
				if(Flag_6 == 1){ // other
					// 标记待添加议程时间与用户所在议程的时间冲突的议程个数
					int number_flag2= 0;
					int otherInAgendaListSize = otherInAgendaList.size();
					for(int i = 0;i<otherInAgendaList.size();i++){
						//得到用户所在的议程列表中的议程编号
						int otherinagendaindex = ((Integer)otherInAgendaList.get(i)).intValue();
						if(!((time.Conserse((String)list.get(3))).before(time.Conserse(((Agenda)manageAgenda.AgendaList.get(otherinagendaindex)).endTime))
								||(time.Conserse((String)list.get(4))).after(time.Conserse(((Agenda)manageAgenda.AgendaList.get(otherinagendaindex)).startTime)))){
							number_flag2++;
						}else{
								;
						}
					}
					if(number_flag2 > 0){ //时间有冲突
						System.out.println("所预约者时间冲突,添加议程失败!");
					}
					if(number_flag2 == 0){ //没有时间冲突
						othercanuse = 1;
					}
				}else{//other无任何议程
					Flag_5 = 1;
				}
				if((usercanuse == 1)&&(othercanuse == 1)){
					// 根据Add命令参数创建议程对象
		        	Agenda agenda = new Agenda();
		        	   agenda.SetUsername((String)list.get(0));
		        	   agenda.Setpassword((String)list.get(1));
		               agenda.SetOtheruserName((String)list.get(2));
		               agenda.SetstartTime((String)list.get(3));
		               agenda.SetendTime((String)list.get(4));
		               agenda.Settitle((String)list.get(5));
		            // 添加议程
		            ManageAgenda.AgendaList.add(agenda);
		            System.out.println("新添加议程成功!");
		            // 添加成功后,随即报告显示所添加的议程
		            ManageAgenda.PrintAgenda(ManageAgenda.AgendaList.size()-1);
		            // 打印添加的所有议程
		            System.out.println("\n");
		            ManageAgenda.PrintAgenda();
		            }
				if((Flag_3 == 1)&&(Flag_5 == 1)){
					// 根据Add命令参数创建议程对象
		        	Agenda agenda = new Agenda();
		               agenda.SetUsername((String)list.get(0));
		               agenda.Setpassword((String)list.get(1));
		               agenda.SetOtheruserName((String)list.get(2));
		               agenda.SetstartTime((String)list.get(3));
		               agenda.SetendTime((String)list.get(4));
		               agenda.Settitle((String)list.get(5));
		               // 添加议程
		               ManageAgenda.AgendaList.add(agenda);
		               System.out.println("新添加议程成功!");
		               // 添加成功后,随即报告显示所添加的议程
		               ManageAgenda.PrintAgenda(ManageAgenda.AgendaList.size()-1);
		               // 打印添加的所有议程
		               System.out.println("\n");
		               ManageAgenda.PrintAgenda();
					}
				}else if(!(Flag_2 == 1)){ // 有人未注册
					System.out.println("议程发起者未注册,请先注册!");
				}else if(!(Flag_4 == 1)){ // 有人未注册
					System.out.println("所预约者未注册,不能添加!");
				}else if((!(Flag_2 == 1))&&(!(Flag_4 == 1))){
					System.out.println("议程发起者和所预约者未注册,请先注册!");
				}
			}

	    }
	}

⌨️ 快捷键说明

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