Test.cpp
#include "Message.h"
void main()
{Message m; int n; do {system("cls");cout << "主界面:" << endl <<"0.结束程序" << endl << "1.编辑短信" << endl << "2.发件箱" << endl<< "3.收件箱" << endl << "4.草稿箱" << endl << "5.最近联系人" << endl;cin >> n; switch (n){case 0:break;case 1:m.CreateMessage();break;case 2:m.SendMessage();break;case 3:m.ReceiveMessage();break;case 4:m.DraftMessage();break;case 5:m.RecentContact();break;default:cout << "输入错误,重新输入!" << endl;}} while (n);
}
Message.h
#if !defined(AFX_MESSAGE_H__7D2211A6_1DFE_4B26_AEF9_415A7C07E899__INCLUDED_)
#define AFX_MESSAGE_H__7D2211A6_1DFE_4B26_AEF9_415A7C07E899__INCLUDED_#if _MSC_VER > 1000
#pragma once
#endif
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;#define Max_Num 10
#define Folder "f:\\"
#define SendFolder "\\Send"
#define ReceiveFolder "\\Receive"
#define DraftFolder "\\Draft"
#define Contact "\\Contact" class Message
{
public:Message(); void CreateMessage(); void DraftMessage(); void SaveAsDraft(); void ReceiveMessage(); void SendMessage(); void ReadFolder(string FolderName); void ReadMess(string FileName); void Delete(string FileName); void DeleteFolder(string FolderName); void getFiles(string path, vector<string>& files); void Sending(string receiver); void RecentContact(); virtual ~Message();
private:string Send, RSend; string Receive, RReceive; string Draft, RDraft; string Recent, RRecent; string Sender; string Mess; string Receiver; static char Count;
};
#endif
Message.cpp
#include "Message.h"
char Message::Count = '0'; Message::Message()
{cout << "输入本人姓名:" << endl; cin >> Sender;string r = Folder + Sender; if (access(r.c_str(), 0)) system(("md " + r).c_str()); Send = r + SendFolder + Sender; Receive = r + ReceiveFolder + Sender;Draft = r + DraftFolder + Sender;Recent = r + Contact + Sender;if (access(Send.c_str(), 0)) system(("md " + Send).c_str());if (access(Receive.c_str(), 0))system(("md " + Receive).c_str()); if (access(Draft.c_str(), 0))system(("md " + Draft).c_str());if (access(Recent.c_str(), 0)) system(("md " + Recent).c_str());
}
void Message::CreateMessage()
{system("cls"); int n; Count++; cout << "输入收件人:" << endl; cin >> Receiver;cout << "输入短信内容:" << endl; cin >> Mess;do {system("cls"); cout << "请选择:" << endl << "0.退出编辑" << endl << "1.发送" << endl << "2.存入草稿箱" << endl;cin >> n; switch (n) {case 0: break;case 1: Sending("");n = 0;break;case 2: SaveAsDraft(); n = 0;break;default: cout << "输入错误,重新输入!" << endl;}} while (n);
}
void Message::Sending(string receiver)
{string SAddress = Sender; string RAddress; string Address1; string Address2; string Address3; string Address4; string news, draft; int n;if (receiver.compare("") == 0){RAddress = Receiver; Address1 = Send + "\\" + RAddress + Count + ".txt"; news = Mess;}else{n = receiver.find_last_of('.'); RAddress = receiver.substr(0, n - 1);Address1 = Send + "\\" + receiver;draft = Draft + "\\" + receiver; ifstream inf(draft.c_str()); if (inf.is_open()) {while (!getline(inf, news));inf.close();}}ofstream SendNews(Address1.c_str()); if (SendNews.is_open()){SendNews << news; SendNews.close();}Address3 = Recent + "\\" + RAddress + ".txt"; ofstream RecentNews(Address3.c_str());if (RecentNews.is_open()){RecentNews.close();}string r = Folder + RAddress;if (access(r.c_str(), 0)) system(("md " + r).c_str());RSend = r + SendFolder + RAddress; RRecent = r + Contact + RAddress; RReceive = r + ReceiveFolder + RAddress; RDraft = r + DraftFolder + RAddress; if (access(RSend.c_str(), 0)) system(("md " + RSend).c_str());if (access(RReceive.c_str(), 0))system(("md " + RReceive).c_str());if (access(RDraft.c_str(), 0))system(("md " + RDraft).c_str());if (access(RRecent.c_str(), 0))system(("md " + RRecent).c_str());if (receiver.compare("") == 0){Address2 = RReceive + "\\" + SAddress + Count + ".txt"; ofstream ReceiveNews(Address2.c_str()); if (ReceiveNews.is_open()){ReceiveNews << news;ReceiveNews.close();}}else{Address2 = RReceive + "\\" + SAddress + receiver.substr(n - 1); ofstream ReceiveNews(Address2.c_str());if (ReceiveNews.is_open()){ReceiveNews << news;ReceiveNews.close();}}Address4 = RRecent + "\\" + SAddress + ".txt"; ofstream RRecentNews(Address4.c_str());if (RRecentNews.is_open()){RRecentNews.close();}
}
void Message::SaveAsDraft()
{string r;ofstream DraftNews;r = Draft + "\\" + Receiver + Count + ".txt";DraftNews.open(r.c_str());if (DraftNews.is_open()){DraftNews << Mess;DraftNews.close();}elsecout << r + "文件打开失败!" << endl;
}
void Message::DraftMessage()
{int n;do {system("cls");cout << "请选择:" << endl << "0.返回主界面" << endl << "1.查看草稿箱" << endl << "2.清空草稿箱" << endl;cin >> n;switch (n) {case 0:break;case 1:ReadFolder(Draft);break;case 2:DeleteFolder(Draft.c_str());break;default:cout << "输入错误,重新输入!" << endl;}} while (n);
}
void Message::SendMessage()
{int n;do {system("cls");cout << "请选择:" << endl << "0.返回主界面" << endl << "1.查看发件箱" << endl << "2.清空发件箱" << endl;cin >> n;switch (n) {case 0:break;case 1:ReadFolder(Send);break;case 2:DeleteFolder(Send.c_str());break;default:cout << "输入错误,重新输入!" << endl;}} while (n);
}
void Message::ReceiveMessage()
{int n;do {system("cls");cout << "请选择:" << endl << "0.返回主界面" << endl << "1.查看收件箱" << endl << "2.清空收件箱" << endl;cin >> n;switch (n) {case 0:break;case 1:ReadFolder(Receive);break;case 2:DeleteFolder(Receive.c_str());break;default:cout << "输入错误,重新输入!" << endl;}} while (n);}
void Message::ReadFolder(string FolderName)
{int m, n, index1, index2;vector<string> files;getFiles(FolderName, files); int size = files.size();string filesname[20],name[20];if (!size)cout << "箱内无短信!" << endl;for (int i = 0; i < size; i++){
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!