資源簡介
這是一個網絡課設,題目是仿真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? {
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?<
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?<“操作符入棧?“?< break;
}
else??????????????????????????????????????????//否則,棧頂操作符出棧,進行計算;
{
char?operation?=?opStack.top();
opStack.pop();
cout?<“操作符出棧?“?< if?(operation?==?‘(‘)
break;
else
{
float?opdataR?=?dataStack.top();??dataStack.pop();???cout?<“操作數出棧?“?< float?opdataL?=?dataStack.top();??dataStack.pop();???cout?<“操作數出棧?“?< float?opAnswer?=?calculate(opdataL?opdataR?operation);
dataStack.push(opAnswer);????cout?<“操作數入棧?“?< }
}
}
}
}
else?????//否則為操作數;
{
dataStack.push(stof(str));?????cout?<“操作數入棧?“?< }
}
//清倉
while?(opStack.empty()?==?false)
{
char?operation?=?opStack.top();?????opStack.pop();??????cout?<“操作符出棧?“?< float?opdataR?=?dataStack.top();??dataStack.pop();??????cout?<“操作數出棧?“?< float?opdataL?=?dataStack.top();??dataStack.pop();??????cout?<“操作數出棧?“?< float?opAnswer?=?calculate(opdataL?opdataR?operation);
dataStack.push(opAnswer);???????????????????????????????cout?<“操作數入棧?“?< }
//cout?<“THe?answer?is?“?<
/*cout?<“操作數棧:“?< 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\li
?????文件??????????2??2016-05-03?23:37??登錄\登錄\Debug\li
?????文件??????????2??2016-05-03?23:37??登錄\登錄\Debug\li
?????文件??????????2??2016-05-03?23:37??登錄\登錄\Debug\li
?????文件??????????2??2016-05-03?23:37??登錄\登錄\Debug\li
?????文件??????????2??2016-05-03?23:37??登錄\登錄\Debug\li
?????文件??????????2??2016-05-03?23:37??登錄\登錄\Debug\li
?????文件??????????2??2016-05-03?23:37??登錄\登錄\Debug\li
?????文件??????????2??2016-05-03?23:37??登錄\登錄\Debug\li
?????文件??????????2??2016-05-03?23:37??登錄\登錄\Debug\li
?????文件??????????2??2016-05-03?23:37??登錄\登錄\Debug\li
?????文件??????????2??2016-05-03?23:37??登錄\登錄\Debug\li
?????文件??????????2??2016-05-03?23:37??登錄\登錄\Debug\li
?????文件??????????2??2016-05-03?23:37??登錄\登錄\Debug\li
?????文件??????????2??2016-05-03?23:37??登錄\登錄\Debug\li
?????文件??????????2??2016-05-03?23:37??登錄\登錄\Debug\li
?????文件??????????2??2016-05-03?23:37??登錄\登錄\Debug\li
?????文件??????????2??2016-05-03?23:37??登錄\登錄\Debug\li
?????文件??????????2??2016-05-03?23:37??登錄\登錄\Debug\li
?????文件??????????2??2016-05-03?23:37??登錄\登錄\Debug\li
............此處省略126個文件信息
評論
共有 條評論