📄 simpleagenda.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 + -