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 + -
显示快捷键?