• 大小: 48.76MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-06-17
  • 语言: 其他
  • 标签: socket  四则运算  

资源简介

这是一个网络课设,题目是仿真telnet.用socket编程实现客户端与服务器通信,计算四则远算(包括浮点数)。采用图形化界面。带有登录功能。亲自测试,可用,并且作为课设上交检查通过。

资源截图

代码片段和文件信息

#include 
#include  
#include 
#include 
using namespace std;


int getPri(char c);
float calculate(float opDataLfloat opDataR char operation);

float main2(string line)
{
stack opStack;
stack dataStack;

vector lineVector;
//getline(cinline);

while (line.size() > 0)
{
if (line[0] == ‘+‘ || line[0] == ‘-‘ || line[0] == ‘*‘ || line[0] == ‘/‘ || line[0] == ‘(‘ || line[0] == ‘)‘)
{
string str(1 line[0]);
lineVector.push_back(str);
line.erase(0 1);
}
else
{
int i;
for (i = 0; i < line.size(); i++)
{
if ((line[i] != ‘.‘) && (line[i]<‘0‘ || line[i]>‘9‘))
break;
}
lineVector.push_back(line.substr(0 i));
line.erase(0 i);
}
}
//显示
/*for (auto str : lineVector)
cout << str<
string str;
vector::iterator it;
for(it=lineVector.begin(); it != lineVector.end(); it++)
{
str = *it;
if (str == “+“ || str == “-“ || str == “*“ || str == “/“ || str == “(“ || str == “)“)      //若为操作符
{
while (true)
{
if (opStack.empty() == true)
{
opStack.push(str[0]);
cout << “操作符入栈 “< break;
}
else
{
if ( getPri(str[0]) > getPri(opStack.top()) || str[0] == ‘(‘ )   //若将要插入的操作符的优先级比栈顶操作符的优先级要高,则插入;
{
opStack.push(str[0]);
cout << “操作符入栈 “ << str[0] << “ “ << endl;
break;
}
else                                          //否则,栈顶操作符出栈,进行计算;
{
char operation = opStack.top();
opStack.pop();
cout << “操作符出栈 “ << operation << “ “ << endl;
if (operation == ‘(‘)
break;
else
{
float opdataR = dataStack.top();  dataStack.pop();   cout << “操作数出栈 “ << opdataR << “ “ << endl;
float opdataL = dataStack.top();  dataStack.pop();   cout << “操作数出栈 “ << opdataL << “ “ << endl;
float opAnswer = calculate(opdataL opdataR operation);
dataStack.push(opAnswer);    cout << “操作数入栈 “ << opAnswer << “ “ << endl;
}
}
}
}
}
else     //否则为操作数;
{
dataStack.push(stof(str));     cout << “操作数入栈 “ << stof(str) << “ “ << endl;
}
}

//清仓
while (opStack.empty() == false)
{
char operation = opStack.top();     opStack.pop();      cout << “操作符出栈 “ << operation << “ “ << endl;
float opdataR = dataStack.top();  dataStack.pop();      cout << “操作数出栈 “ << opdataR << “ “ << endl;
float opdataL = dataStack.top();  dataStack.pop();      cout << “操作数出栈 “ << opdataL << “ “ << endl;
float opAnswer = calculate(opdataL opdataR operation);
dataStack.push(opAnswer);                               cout << “操作数入栈 “ << opAnswer << “ “ << endl;
}

//cout << “THe answer is “ << dataStack.top() << “;“ << endl;

/*cout << “操作数栈:“ << endl;
while (dataStack.empty() != true)
{
cout< dataStack.pop();
}

cout < whil

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件     176640  2016-05-03 23:37  登录\Debug\登录.exe

     文件    1100236  2016-05-03 23:37  登录\Debug\登录.ilk

     文件    4983808  2016-05-03 23:37  登录\Debug\登录.pdb

     文件   88735744  2016-05-03 23:58  登录\ipch\登录-14bbc25f\登录-5ad38cbc.ipch

     文件       2552  2016-05-03 19:47  登录\登录\CalcuDlg.cpp

     文件        421  2016-05-03 18:38  登录\登录\CalcuDlg.h

     文件     118424  2016-05-03 23:37  登录\登录\Debug\CalcuDlg.obj

     文件       2790  2016-05-03 23:37  登录\登录\Debug\cl.command.1.tlog

     文件      55834  2016-05-03 23:37  登录\登录\Debug\CL.read.1.tlog

     文件       1902  2016-05-03 23:37  登录\登录\Debug\CL.write.1.tlog

     文件          2  2016-05-03 23:37  登录\登录\Debug\link-cvtres.read.1.tlog

     文件          2  2016-05-03 23:37  登录\登录\Debug\link-cvtres.write.1.tlog

     文件          2  2016-05-03 23:37  登录\登录\Debug\link.10992-cvtres.read.1.tlog

     文件          2  2016-05-03 23:37  登录\登录\Debug\link.10992-cvtres.write.1.tlog

     文件          2  2016-05-03 23:37  登录\登录\Debug\link.10992.read.1.tlog

     文件          2  2016-05-03 23:37  登录\登录\Debug\link.10992.write.1.tlog

     文件          2  2016-05-03 23:37  登录\登录\Debug\link.5080-cvtres.read.1.tlog

     文件          2  2016-05-03 23:37  登录\登录\Debug\link.5080-cvtres.write.1.tlog

     文件          2  2016-05-03 23:37  登录\登录\Debug\link.5080.read.1.tlog

     文件          2  2016-05-03 23:37  登录\登录\Debug\link.5080.write.1.tlog

     文件          2  2016-05-03 23:37  登录\登录\Debug\link.6304-cvtres.read.1.tlog

     文件          2  2016-05-03 23:37  登录\登录\Debug\link.6304-cvtres.write.1.tlog

     文件          2  2016-05-03 23:37  登录\登录\Debug\link.6304.read.1.tlog

     文件          2  2016-05-03 23:37  登录\登录\Debug\link.6304.write.1.tlog

     文件          2  2016-05-03 23:37  登录\登录\Debug\link.8916-cvtres.read.1.tlog

     文件          2  2016-05-03 23:37  登录\登录\Debug\link.8916-cvtres.write.1.tlog

     文件          2  2016-05-03 23:37  登录\登录\Debug\link.8916.read.1.tlog

     文件          2  2016-05-03 23:37  登录\登录\Debug\link.8916.write.1.tlog

     文件          2  2016-05-03 23:37  登录\登录\Debug\link.9532-cvtres.read.1.tlog

     文件          2  2016-05-03 23:37  登录\登录\Debug\link.9532-cvtres.write.1.tlog

............此处省略126个文件信息

评论

共有 条评论