📄 3.1.cpp
字号:
//////////////////////////////////////////////////////////////////
//实践2:电话终端 //
//功能: 1.外呼功能: //
// 两个终端,一个主叫(XXX),一个被叫(YYY),主叫呼叫后 //
// 显示“呼叫YYY” ,被叫显示“主叫XXX来电“ //
// 2.发短信功能: //
// 主叫XXX使用手机,被叫YYY使用手机,输入被叫号和短信 //
// 内容(70字,多了则分开)则主叫收到“发送短信给ZZZ成 //
// 功“,被叫显示“主叫XXX发送短信给ZZZ:内容” //
// 3.手机终端有电话本功能: //
// 电话本可支持100条记录,每条有姓名电话号码 //
// 可添加删除和修改记录 //
// 可通过电话号码本直接发送短信或者打电话 //
//制作日期:2006/9/9 //
//制作人:蔺皓 //
//////////////////////////////////////////////////////////////////
#include <iostream>
#include <list>
#include <string>
#include <vector>
#include <fstream>
#include <iomanip>
#include "windows.h"
#define length 20
#define lengthm 140
using namespace std;
class FixPhone
{
public:
void inputnumber (char innumber[length])
{
strcpy(number,innumber);
}
char* getnumber ()
{
return number;
}
//void scantxt();
void call();
private:
char number[length];
};
class CellPhone:public FixPhone
{
public:
void phoneBook();
void message();
};
class Mid
{
public:
char fromNumber[length];
char toNumber[length];
char shortmessage[lengthm];
};
void FixPhone::call()
{
Mid me;
char callNumber[length];
cout<<"请输入对方的电话号码:"<<endl;
cin>>callNumber;
strcpy(me.toNumber,callNumber);
strcpy(me.fromNumber,getnumber());
strcpy(me.shortmessage,"$call$");
ofstream infile("介质.txt",ios_base::out);
infile<<me.toNumber<<setw(15)<<me.fromNumber<<setw(140)<<me.shortmessage<<endl;
cout<<"呼叫"<<me.toNumber<<endl;
infile.close();
}
void CellPhone::message()
{
Mid me;
char newmessage[lengthm];
char callNumber[length];
cout<<"请输入对方的电话号码:"<<endl;
cin>>callNumber;
cout<<"请输入编辑的短消息:"<<endl;
cin>>newmessage;
strcpy(me.shortmessage,newmessage);
strcpy(me.toNumber,callNumber);
strcpy(me.fromNumber,getnumber());
ofstream infile("介质.txt",ios_base::out);
infile<<me.toNumber<<setw(15)<<me.fromNumber<<setw(140)<<me.shortmessage<<endl;
infile.close();
}
void scantxt();
char mynumber[length];
main()
{
cout<<"请输入该机的机型:(1-手机,2-固定电话,其它-退出):(正整数)"<<endl;
int choice,key;
CellPhone myCellPhone;
FixPhone myFixPhone;
cin>>choice;
cout<<"欢迎使用终端,请输入确定本终端的号码:"<<endl;
cin>>mynumber;
DWORD ThreadID = 1;
HANDLE hRead = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)scantxt,NULL,0,&ThreadID);
switch (choice)
{
case 1:
myCellPhone.inputnumber(mynumber);
cout<<mynumber<<"欢迎使用,请输入操作:(正整数)"<<endl;
cout<<"1-拨号\n2-发送短信\n3-进入电话本\n0-关机\n";
cin>>key;
while (key!=0)
{
switch (key)
{
case 1:
myCellPhone.call();
break;
case 2:
myCellPhone.message();
break;
case 3:
myCellPhone.phoneBook();
break;
case 0:
cout<<"谢谢使用,再见!"<<endl;
break;
default:
cout<<"无效输入,请重新输入:"<<endl;
break;
}
if(key!=0)
{
cout<<"请继续输入操作:(正整数)"<<endl;
cout<<"1-拨号\n2-发送短信\n3-进入电话本\n0-关机\n";
cin>>key;
}
}
break;
case 2:
myFixPhone.inputnumber(mynumber);
cout<<mynumber<<"欢迎使用,请输入操作:(正整数)"<<endl;
cout<<"1-拨号\n0-关机\n";
cin>>key;
while (key!=0)
{
switch (key)
{
case 1:
myFixPhone.call();
break;
case 0:
cout<<"谢谢使用,再见!"<<endl;
break;
default:
cout<<"无效输入,请重新输入:"<<endl;
break;
}
if(key!=0)
{
cout<<"请继续输入操作:(正整数)"<<endl;
cout<<"1-拨号\n0-关机\n";
cin>>key;
}
}
break;
default:
cout<<"谢谢使用,再见!"<<endl;
break;
}
system("PAUSE");
return 0;
}
void scantxt()
{
Mid me,back;
while (1)
{
ifstream infile("介质.txt",ios_base::in);
infile>>me.toNumber>>me.fromNumber>>me.shortmessage;
if(strcmp(me.toNumber,mynumber)==0)
{
if(strcmp(me.shortmessage,"$call$")==0)
{
cout<<"主叫"<<me.fromNumber<<"来电"<<endl;
strcpy(me.toNumber,"");
strcpy(me.fromNumber,"");
strcpy(me.shortmessage,"");
ofstream infile("介质.txt",ios_base::out);
infile<<me.toNumber<<setw(15)<<me.fromNumber<<setw(15)<<me.shortmessage<<endl;
}
else
{
if(strcmp(me.shortmessage,"$message$")==0)
{
cout<<"发送短信给"<<me.fromNumber<<"成功"<<endl;
strcpy(me.toNumber,"");
strcpy(me.fromNumber,"");
strcpy(me.shortmessage,"");
ofstream infile("介质.txt",ios_base::out);
infile<<me.toNumber<<setw(15)<<me.fromNumber<<setw(15)<<me.shortmessage<<endl;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -