议程管理系统程序.doc_第1页
议程管理系统程序.doc_第2页
议程管理系统程序.doc_第3页
议程管理系统程序.doc_第4页
议程管理系统程序.doc_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

#include#includeusing namespace std;#defineSUCCESS0#defineERROR_COMMAND 1#defineERROR_ARGV2#defineERROR_REGISTER3#defineERROR_CLEAR4#defineERROR_DELETE5#defineERROR_ADD6#defineERROR_QUERY7#defineSUCCESS_MSG8#define ERROR_CANCEL 9#define SUCCESS_CANCEL 10#define SUCCESS_CHANGE 11#define ERROR_CHANGE 12#define MAXLEN256class Controllerprivate:AgendaManager manager;int nextMeetingID;string returnMsg;public:Controller(void);Controller(void); /将输入的命令进行解析int DispatchMessage( char* msg ); /将字符串按第一个spliter 将字符串分成两段,假如第二段头存在spliter将存在的spliter 都删除int Split( char str, char spliter, char* firstPart, char* secondPart );Date StrToDate( char* str );void ToLower( char* str );string GetReturnMsg();class Controllerprivate:AgendaManager manager;int nextMeetingID;string returnMsg;public:Controller(void);Controller(void); /将输入的命令进行解析int DispatchMessage( char* msg ); /将字符串按第一个spliter 将字符串分成两段,假如第二段头存在spliter将存在的spliter 都删除int Split( char str, char spliter, char* firstPart, char* secondPart );Date StrToDate( char* str );void ToLower( char* str );string GetReturnMsg();class UserListprivate:vector userList;public:UserList(void);UserList(void);bool AddUser( char* userName, char* password );bool CheckIn( char* userName, char* password );bool HasUser( char* userName );User& GetUserByName( char* userName );/vector:size_type get_userList_size();void Write();bool Cancel(char* username, char* password);void Change_Password(char* userName, char* newpassword);class Userprivate:char nameMAXLEN;char passwordMAXLEN;MeetingList meetingList;public:User(void);User( char* name, char* password);User(void);bool IsValid();bool IsPasswordRight( char* password );bool IsUserNameRight( char* userName );bool IsTimeFree( Date startTime, Date endTime );bool AddMeeting( int meetingID, char* sponser, char* invitee, Date startTime, Date endTime, char* title );bool GetMeetingInvitee( char* invitee , int meetingID );bool GetMeetingInviteeByTitle( char* invitee , char* title );bool CreaterOfMeeting( char* title );/bool DeleteMeeting( int meetingID );bool DeleteMeetingByTitle( char* title );/int GetFirstMeetingID();bool GetFirstMeetingTitle( char* title );bool RemoveAllMeetings();vector Query( Date startTime, Date endTime);char* get_name();char* get_password();void Write();vector QueryAll();void Change_Password( char* newpassword);class MeetingListprivate:vector meetingList;public:MeetingList(void);MeetingList(void);bool AddMeeting( int meetingID, char* sponser, char* invitee, Date startTime, Date endTime, char* title );bool GetMeetingInvitee( char* invitee, int meetingID );bool GetMeetingInviteeByTitle( char* invitee , char* title );bool CreaterOfMeeting( char* title, char* sponser );/bool DeleteMeeting( int meetingID );bool DeleteMeetingByTitle( char* title );/int GetFirstMeetingID( char* sponser );bool GetFirstMeetingTitle( char* sponser, char* title );bool RemoveAllMeetings();bool IsTimeFree( Date startTime, Date endTime );vector Query( Date start, Date end );void Write(ofstream&);vector QueryAll();class Meetingprivate:intmeetingID;chartitleMAXLEN;DatestartTime;DateendTime;charsponserMAXLEN;/创建人charinviteeMAXLEN;/被邀请人public:Meeting(void);Meeting( int meetingID, char* sponser, char* invitee, Date startTime, Date endTime, char* title );int GetMeetingID();Date GetStartTime();Date GetEndTime();char* GetInvitee();char* GetSponser();char* GetTitle();Meeting(void);class Dateprivate:int year;int month;int day;int hour;public:Date(void);Date( int year, int month, int day, int hour );unsigned long GetTimeNum();int Compare( Date anotherDate );bool IsValidDate();int GetYear();int GetMonth();int GetDay();int GetHour();Date(void);int main()Controller controller;int returnValue;char cmd2048;cout-欢迎使用议程管理系统-endlendl;while( true )/获取用户输入的命令cout$;cin.getline(cmd, 2047 );/命令交由Controller处理returnValue = controller.DispatchMessage(cmd);/根据返回值作出相应的提示switch( returnValue )case SUCCESS:cout操作成功完成!endlendl;break;case ERROR_COMMAND:cout无法识别的命令!endlendl;break;case ERROR_ARGV:cout参数数量不正确!endlendl;break;case ERROR_REGISTER:cout注册失败,用户名已存在!endlendl;break;case ERROR_CLEAR:cout清空用户会议列表失败!endlendl;break;case ERROR_DELETE:cout删除会议失败,可能会议不存在或该用户不是会议创建者!endlendl;break;case ERROR_ADD:cout添加会议失败,请检查参数正确性!endlendl;break;case ERROR_QUERY:cout查询会议失败,请检查参数正确性!endlendl;break;case SUCCESS_MSG:coutIDt创建人tt被邀请人t开始时间t结束时间t标题endl;coutcontroller.GetReturnMsg().c_str()endlendl;break;case ERROR_CANCEL:cout注销用户失败!endlendl;break;case SUCCESS_CANCEL:cout 注销用户成功! endlendl;break;case SUCCESS_CHANGE:cout 修改密码成功! endlendl;break;case ERROR_CHANGE:cout修改密码失败!endlnamepassword)manager.Register(name,password); infile.clear();infile.close ();infile.open(userList.txt);while(infilenamepassword)strcpy(name1,name);strcat(name,.txt);ifstream infile1;infile1.open(name);while(infile1idsponserinviteestarttimeendtimetitle)if(strcmp(sponser,name1)=0)manager.AddMeeting(id,sponser,password,invitee,StrToDate(starttime),StrToDate(endtime),title);nextMeetingID+;infile1.clear();infile1.close();infile.clear();infile.close();Controller:Controller(void)/将输入的命令进行解析int Controller:DispatchMessage( char* msg )char cmd256;char argvs1024;char argv1256;char argv2256;char argv3256;char argv4256;char argv5256;char argv6256;memset( cmd, 0, 256 );memset( argvs, 0, 1024 );memset( argv1, 0, 256 );memset( argv2, 0, 256 );memset( argv3, 0, 256 );memset( argv4, 0, 256 );memset( argv5, 0, 256 );memset( argv6, 0, 256 );Split( msg, , cmd, argvs );ToLower( cmd );if( strcmp( cmd, register ) = 0 )if( Split( argvs, , argv1, argv2 ) != 1 )return ERROR_ARGV;if( manager.Register( argv1, argv2 ) )return SUCCESS;elsereturn ERROR_REGISTER;/对命令add进行解析,由于add 有5个参数,所以要考虑缺少参数的情况if( strcmp( cmd, add ) = 0 )if( Split( argvs, , argv1, argvs ) != 1 )return ERROR_ARGV;if( Split( argvs, , argv2, argvs ) != 1 )return ERROR_ARGV;if( Split( argvs, , argv3, argvs ) != 1 )return ERROR_ARGV;if( Split( argvs, , argv4, argvs ) != 1 )return ERROR_ARGV;if( Split( argvs, , argv5, argv6 ) != 1 )return ERROR_ARGV;if( manager.AddMeeting( nextMeetingID, argv1, argv2, argv3, StrToDate(argv4), StrToDate(argv5), argv6 ) )nextMeetingID+;return SUCCESS;elsereturn ERROR_ADD;if( strcmp( cmd, query ) = 0 )int i = 0;char tempStr2048;char startTime256;char endTime256;Meeting meeting;vector meetingList;if( Split( argvs, , argv1, argvs ) != 1 )return ERROR_ARGV;if( Split( argvs, , argv2, argvs ) != 1 )return ERROR_ARGV;if( Split( argvs, , argv3, argv4 ) != 1 )return ERROR_ARGV;bool result = manager.Query( argv1, argv2, StrToDate( argv3 ), StrToDate( argv4 ), meetingList );if( !result )return ERROR_QUERY;returnMsg = ;int size = meetingList.size();if( size = 0 )returnMsg = 会议列表为空!;return SUCCESS_MSG;for( i = 0; i size; i+ )meeting = meetingListi;sprintf(startTime, %d/%d/%d/%d, meeting.GetStartTime().GetYear(), meeting.GetStartTime().GetMonth(), meeting.GetStartTime().GetDay(), meeting.GetStartTime().GetHour() );sprintf(endTime, %d/%d/%d/%d, meeting.GetEndTime().GetYear(), meeting.GetEndTime().GetMonth(), meeting.GetEndTime().GetDay(), meeting.GetEndTime().GetHour() );sprintf( tempStr, %dt%stt%stt%st%st%sn, meeting.GetMeetingID(), meeting.GetSponser(), meeting.GetInvitee(), startTime, endTime, meeting.GetTitle() );returnMsg.append( tempStr );return SUCCESS_MSG;if( strcmp( cmd, delete ) = 0 )if( Split( argvs, , argv1, argvs ) != 1 )return ERROR_ARGV;if( Split( argvs, , argv2, argv3 ) != 1 )return ERROR_ARGV;/*int meetingID = atoi( argv3 );if( manager.DeleteMeeting( argv1, argv2, meetingID ) )*/if( manager.DeleteMeetingByTitle( argv1, argv2, argv3 ) )return SUCCESS;elsereturn ERROR_DELETE;/清除某个用户所有的会议if( strcmp( cmd, clear ) = 0 )if( Split( argvs, , argv1, argv2 ) != 1 )return ERROR_ARGV;if( manager.RemoveMeetingList( argv1, argv2 ) )return SUCCESS;elsereturn ERROR_CLEAR;/批处理存储在文本文件fileName中的register、add、query、delete、clear等命令if(strcmp(cmd, batch)=0)ifstream infile;char sMAXLEN;infile.open(argvs);while(infile.getline(s, 2047 )Split( s, , cmd, argvs );ToLower( cmd );/用户注册if(strcmp(cmd,register)=0)if( Split( argvs, , argv1, argv2 ) != 1 )cout参数数量不正确!endlendl;else if( manager.Register( argv1, argv2 ) )cout register操作成功 endl;elsecout注册失败,用户名已存在!endlendl;/对命令add进行解析,由于add 有5个参数,所以要考虑缺少参数的情况if(strcmp(cmd,add)=0)if( Split( argvs, , argv1, argvs ) != 1 ) cout参数数量不正确!endlendl;else if( Split( argvs, , argv2, argvs ) != 1 )cout参数数量不正确!endlendl; else if( Split( argvs, , argv3, argvs ) != 1 )cout参数数量不正确!endlendl; else if( Split( argvs, , argv4, argvs ) != 1 )cout参数数量不正确!endlendl; else if( Split( argvs, , argv5, argv6 ) != 1 )cout参数数量不正确!endlendl; else if( manager.AddMeeting( nextMeetingID, argv1, argv2, argv3, StrToDate(argv4), StrToDate(argv5), argv6 ) )nextMeetingID+;cout add操作成功endlendl;elsecout添加会议失败,请检查参数正确性!endlendl;/某一时间段会议记录查询if(strcmp(cmd,query)=0)int i = 0;char tempStr2048;char startTime256;char endTime256;Meeting meeting;vector meetingList;if( Split( argvs, , argv1, argvs ) != 1 )cout参数数量不正确!endlendl;if( Split( argvs, , argv2, argvs ) != 1 )cout参数数量不正确!endlendl;if( Split( argvs, , argv3, argv4 ) != 1 )cout参数数量不正确!endlendl;bool result = manager.Query( argv1, argv2, StrToDate( argv3 ), StrToDate( argv4 ), meetingList );if( !result )cout查询会议失败,请检查参数正确性!endlendl;returnMsg = ;int size = meetingList.size();if( size = 0 )returnMsg = 会议列表为空!;coutIDt创建人tt被邀请人t开始时间t结束时间t标题endl;coutGetReturnMsg().c_str()endlendl;for( i = 0; i size; i+ )meeting = meetingListi;sprintf(startTime, %d/%d/%d/%d, meeting.GetStartTime().GetYear(), meeting.GetStartTime().GetMonth(), meeting.GetStartTime().GetDay(), meeting.GetStartTime().GetHour() );sprintf(endTime, %d/%d/%d/%d, meeting.GetEndTime().GetYear(), meeting.GetEndTime().GetMonth(), meeting.GetEndTime().GetDay(), meeting.GetEndTime().GetHour() );sprintf( tempStr, %dt%stt%stt%st%st%sn, meeting.GetMeetingID(), meeting.GetSponser(), meeting.GetInvitee(), startTime, endTime, meeting.GetTitle() );returnMsg.append( tempStr );coutIDt创建人tt被邀请人t开始时间t结束时间t标题endl;coutGetReturnMsg().c_str()endlendl;/删除回忆记录if(strcmp(cmd,delete)=0)if( Split( argvs, , argv1, argvs ) != 1 )cout参数数量不正确!endlendl;if( Split( argvs, , argv2, argv3 ) != 1 )cout参数数量不正确!endlendl;/*int meetingID = atoi( argv3 );if( manager.DeleteMeeting( argv1, argv2, meetingID ) )*/if( manager.DeleteMeetingByTitle( argv1, argv2, argv3 ) )coutdelete操作成功完成!endlendl;elsecout删除会议失败,可能会议不存在或该用户不是会议创建者!endlendl;/清除某个用户所有的会议if(strcmp(cmd,clear)=0)if( Split( argvs, , argv1, argv2 ) != 1 )cout参数数量不正确!endlendl;if( manager.RemoveMeetingList( argv1, argv2 ) )coutclear操作成功完成!endlendl;elsecout清空用户会议列表失败!endlendl; if(strcmp( cmd,cancelregister)=0) if( Split( argvs, , argv1, argv2 ) != 1 )cout参数数量不正确!endlendl;if( manager.CheckIn( argv1, argv2 ) )manager.RemoveMeetingList( argv1, argv2 );manager.Cancel(argv1, argv2);cout 注销用户成功! endlendl;elsecout注销用户失败!endlendl;if( strcmp( cmd, queryall ) = 0 )int i = 0;char tempStr2048;char startTime256;char endTime256;Meeting meeting;vector meetingList;if( Split( argvs, , argv1, argv2 ) != 1 )cout参数数量不正确!endlendl;bool result = manager.QueryAll( argv1, argv2, meetingList );if( !result )cout查询会议失败,请检查参数正确性!endlendl;returnMsg = ;int size = meetingList.size();if( size = 0 )returnMsg = 会议列表为空!;for( i = 0; i size; i+ )meeting = meetingListi;sprintf(startTime, %d/%d/%d/%d, meeting.GetStartTime().GetYear(), meeting.GetStartTime().GetMonth(), meeting.GetStartTime().GetDay(), meeting.GetStartTime().GetHour() );sprintf(endTime, %d/%d/%d/%d, meeting.GetEndTime().GetYear(), meeting.GetEndTime().GetMonth(), meeting.GetEndTime().GetDay(), meeting.GetEndTime().GetHour() );sprintf( tempStr, %dt%stt%stt%st%st%sn, meeting.GetMeetingID(), meeting.GetSponser(), meeting.GetInvitee(), startTime, endTime, meeting.GetTitle() );returnMsg.append( tempStr );if(strcmp(cmd,changepassword)=0)if( Split( argvs, , argv1, argvs ) != 1 )cout参数数量不正确!endlendl;if( Split( argvs, , argv2, argv3 ) != 1 )cout参数数量不正确!endlendl;if( manager.CheckIn( argv1, argv2 ) )manager.Change_Password(argv1,argv2,argv3);cout 修改密码成功! endlendl;elsecout修改密码失败!endlendl; infile.close();return SUCCESS;if(strcmp( cmd,cancelregister)=0)if( Split( argvs, , argv1, argv2 ) != 1 )return ERROR_ARGV;if( manager.CheckIn( argv1, argv2 ) )manager.RemoveMeetingList( argv1, argv2 );manager.Cancel(argv1, argv2);return SUCCESS_CANCEL;elsereturn ERROR_CANCEL;if( strcmp( cmd, queryall ) = 0 )int i = 0;char tempStr2048;char startTime256;char endTime256;Meeting meeting;vector meetingList;if( Split( argvs, , argv1, argv2 ) != 1 )return ERROR_ARGV;bool result = manager.QueryAll( argv1, argv2, meetingList );if( !result )return ERROR_QUERY;returnMsg = ;int size = meetingList.size();if( size = 0 )returnMsg = 会议列表为空!;return SUCCESS_MSG;for( i = 0; i size; i+ )meeting = meetingListi;sprintf(startTime, %d/%d/%d/%d, meeting.GetStartTime().GetYear(), meeting.GetStartTime().GetMonth(), meeting.GetStartTime().GetDay(), meeting.GetStartTime().GetHour() );sprintf(endTime, %d/%d/%d/%d, meeting.GetEndTime().GetYear(), meeting.GetEndTime().GetMonth(), meeting.GetEndTime().GetDay(), meeting.GetEndTime().GetHour() );sprintf( tempStr, %dt%stt%stt%st%st%sn, meeting.GetMeetingID(), meeting.GetSponser(), meeting.GetInvitee(), startTime, endTime, meeting.GetTitle() );returnMsg.append( tempStr );return SUCCESS_MSG;if(strcmp(cmd,changepassword)=0)if(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论