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

📄 simpleagenda.java

📁 ssd8 exercise 4 答案 老师写的, 绝对正确
💻 JAVA
字号:
package Exercise4;

import java.rmi.*;
import java.rmi.server.*;
import java.util.*;

public class SimpleAgenda
    extends java.rmi.server.UnicastRemoteObject
    implements RMIAgenda {

  class CUsers {
    String name;
    String password;
    public CUsers() {
      name = new String("");
      password = new String("");
      System.currentTimeMillis();

    }

  }

  class CMeeting {
    String name1;
    String name2;
    Date start;
    Date end;
    String label;
    String ID;

    public CMeeting() {
      name1 = new String("");
      name2 = new String("");
      start = new java.util.Date();
      end = new java.util.Date();
      label = new String("");
      ID = new String("");
    }
  }

  public CUsers[] UsersInfo;
  public CMeeting[] MeetingInfo;

  public SimpleAgenda() throws RemoteException {
    UsersInfo = new CUsers[100];
    MeetingInfo = new CMeeting[100];
    for (int i = 0; i < 100; i++) {
      UsersInfo[i] = new CUsers();
      MeetingInfo[i] = new CMeeting();
    }
  }

  /*
// find word form array ,begin at start , i positon of Found  , -1 no found
    private int FindinStringArray(String [][]  Source , String Word , int Col, int Start)
    {
      for (int i=Start ;i< Source.length  && Source[i][Col]!="" ;i++)
      {
        if (Source[i][Col].equalsIgnoreCase( Word) )
          return i;
      }
      return -1;
    }

   */

  public int FindUser(String userName) {
    for (int i = 0;
         i < UsersInfo.length && !UsersInfo[i].name.equalsIgnoreCase(""); i++) {
      if (UsersInfo[i].name.equalsIgnoreCase(userName)) {
        return i;
      }
    }
    return -1;
  }

  public int CheckUser(String UserName, String Password) {
    for (int i = 0;
         i < UsersInfo.length && !UsersInfo[i].name.equalsIgnoreCase(""); i++) {
      if (UsersInfo[i].name.equalsIgnoreCase(UserName) &&
          UsersInfo[i].password.equalsIgnoreCase(Password)) {
        return i;
      }
    }
    return -1;
  }

  /**
   * UserRegist
   *
   * @param userName String
   * @param Password String
   * @return String
   */
  public String UserRegist(String userName, String Password) {
    int iNum;

    for (iNum = 0;
         iNum < UsersInfo.length && !UsersInfo[iNum].name.equalsIgnoreCase("");
         iNum++) {
      if (UsersInfo[iNum].name.equalsIgnoreCase(userName)) {
        return "The Name is used , Please Choose other Name.";
      }
    }

    UsersInfo[iNum].name = userName;
    UsersInfo[iNum].password = Password;
    return "User " + userName + " regist succede";
  }

  /**
   * AddingMeeting
   *
   * @param userName1 String
   * @param userName2 String
   * @param StartTime long
   * @param EndTime long
   * @param CallLab String
   * @return String
   */
  public String AddingMeeting(String userName1, String Password,
                              String userName2,
                              Date StartTime, Date EndTime, String CallLab) {
    //check username , if not regist , return
    if (FindUser(userName1) < 0 || FindUser(userName2) < 0) {
      return userName1 + " or " + userName2 +
          " not regist,Please register user first";
    }

    if (CheckUser(userName1, Password) == -1) {
      return " User name and password maybe wrong. ";
    }

    int iStart = 0;
    int iFound = -1;
    //find the meeting , username1 and username2
    for (iStart = 0;
         iStart < MeetingInfo.length &&
         !MeetingInfo[iStart].ID.equalsIgnoreCase(""); iStart++) {
      if ( (MeetingInfo[iStart].name1.equalsIgnoreCase(userName1) &&
            MeetingInfo[iStart].name2.equalsIgnoreCase(userName2)) ||
          (MeetingInfo[iStart].name1.equalsIgnoreCase(userName2) &&
           MeetingInfo[iStart].name2.equalsIgnoreCase(userName1))) {
        if ( (MeetingInfo[iStart].start.after(StartTime) &&
              MeetingInfo[iStart].start.before(EndTime)) ||
            (MeetingInfo[iStart].end.before(EndTime) &&
             MeetingInfo[iStart].end.after(StartTime))) {
          iFound = iStart;
          break;
        }
      }
    }

    //no found , add the meeting ,else , return error msg
    if (iFound == -1) {
      MeetingInfo[iStart].name1 = userName1;
      MeetingInfo[iStart].name2 = userName2;
      MeetingInfo[iStart].start = StartTime;
      MeetingInfo[iStart].end = EndTime;
      MeetingInfo[iStart].label = CallLab;
      MeetingInfo[iStart].ID = String.valueOf(iStart);
      return "Add the Meeting " + userName1 + " with " + userName2 + " ID is " +
          iStart;
    }
    else {
      return userName1 + "and " + userName2 + " already have meeting.";
    }

  }

  /**
   * QueryingMeetings
   *
   * @param StartTime long
   * @param EndTime long
   * @return String[][]
   */
  public String[][] QueryingMeetings(String userName, String Password,
                                     Date StartTime, Date EndTime) {
    String[][] result = new String[100][6];
    for (int m = 0; m < 100; m++) {
      for (int n = 0; n < 6; n++) {
        result[m][n] = new String("");

      }
    }
    int iNum = 0;

    if (CheckUser(userName, Password) == -1) {
      result[0][0] = " User name and password maybe wrong. ";
      return result;
    }

    for (int i = 0;
         i < MeetingInfo.length && !MeetingInfo[i].ID.equalsIgnoreCase(""); i++) {
      if (MeetingInfo[i].name1.equalsIgnoreCase(userName) ||
          MeetingInfo[i].name2.equalsIgnoreCase(userName)) {
        if ( (MeetingInfo[i].start.after(StartTime) &&
              MeetingInfo[i].start.before(EndTime)) ||
            (MeetingInfo[i].end.before(EndTime) &&
             MeetingInfo[i].end.after(StartTime))) {
          result[iNum][0] = MeetingInfo[i].name1;
          result[iNum][1] = MeetingInfo[i].name2;
          result[iNum][2] = MeetingInfo[i].start.toString();
          result[iNum][3] = MeetingInfo[i].end.toString();
          result[iNum][4] = MeetingInfo[i].label;
          result[iNum][5] = MeetingInfo[i].ID;
          iNum++;
        }
      }
    }
    return result;
  }

  /**
   * DeletingMeetings
   *
   * @param CallLab String
   * @return String
   */
  public String DeletingMeetings(String userName, String Password, String ID) {

    int iFound = -1;

    if (CheckUser(userName, Password) == -1) {
      return " User name and password maybe wrong. ";
    }

    for (int i = 0;
         i < MeetingInfo.length && !MeetingInfo[i].ID.equalsIgnoreCase(""); i++) {
      if (MeetingInfo[i].ID.equalsIgnoreCase( ID)) {
        iFound = i;
        break;
      }
    }
    //move the array to delete the label
    for (int i = iFound;
         i < MeetingInfo.length && !MeetingInfo[i].ID.equalsIgnoreCase(""); i++) {
      MeetingInfo[i].ID = MeetingInfo[i + 1].ID;
      MeetingInfo[i].name1 = MeetingInfo[i + 1].name1;
      MeetingInfo[i].name2 = MeetingInfo[i + 1].name2;
      MeetingInfo[i].start = MeetingInfo[i + 1].start;
      MeetingInfo[i].end = MeetingInfo[i + 1].end;
      MeetingInfo[i].label = MeetingInfo[i + 1].label;
    }
    if (iFound != -1) {
      return "The meeting " + ID + " deleted.";
    }
    else {
      return " The meeting " + ID + " no found.";
    }
  }

  /**
   * ClearingMeetings
   *
   * @return String
   */
  public String ClearingMeetings(String userName, String Password) {
    if (CheckUser(userName, Password) == -1) {
      return " User name and password maybe wrong. ";
    }

    for (int i = 0;
         i < MeetingInfo.length && !MeetingInfo[i].ID.equalsIgnoreCase(""); i++) {
      if (MeetingInfo[i].name1.equalsIgnoreCase(userName) ||
          MeetingInfo[i].name2.equalsIgnoreCase(userName)) {
        DeletingMeetings(userName, Password, MeetingInfo[i].ID);
      }
    }
    return " Cleared.";
  }

}

⌨️ 快捷键说明

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