c++为王道语言,最美之语言!快哉,C++!壮哉,C++! 美哉,C++!

荆楚闲人 2009-03-17 04:56:13
c#,java,c++,PHP我都涉及过,个人感觉还是C++是最美丽,最王道,最有魅力,最能锻炼程序员编程能力的语言,除了C++之外,没有一种语言,能让我几十天甚至几个月,抛掉所有的娱乐,一个人抱卷于青灯之下,孜孜不倦地学习和编程着,读经典的C++程序就好像在欣赏一幅精妙绝伦的油画,就好像在聆听柴可夫斯基优雅的音乐,就好像在人间仙境里旅游!快哉,C++!壮哉,C++! 美哉,C++!
...全文
405 40 打赏 收藏 转发到动态 举报
写回复
用AI写文章
40 条回复
切换为时间正序
请发表友善的回复…
发表回复
shuhuanai11 2012-07-10
  • 打赏
  • 举报
回复


我是菜鸟的说 下面是c++的简单计算器 求大神给注释一下 不准骂我菜哦哦


#include<iostream>
#include<cstdlib>
#include<vector>
#include<stack>
#include<cmath>
using namespace std;

class calculator
{
private:
vector<char>s;
stack<char,vector<char>>symbol;
stack<char,vector<double>>result;
vector<char>number;
public:
int compare(char m)
{
switch(m)
{
case '*':
case '/':
return 2;break;
case '+':
case '-':
return 1;break;
default:return 0;break;
}
}
void InputNumbers()
{
char element;
cout<<"输入你要计算的表达式必须以\"=\"号结尾"<<endl;
cin>>element;
while(element!='=')
{
s.push_back(element);
cin>>element;
}
vector<char>::iterator it;
system("cls");
for(it=s.begin();it!=s.end();it++)
{
cout<<*it;
}
cout<<'=';
symbol.push('=');
it=s.begin();
for(it=s.begin();it!=s.end();it++)
{
if(((*it>='0')&&(*it<='9'))||(*it=='.'))
{
number.push_back(*it);
}
if(*it=='(')
{
symbol.push('(');
it++;
while(*it!=')'){
if(((*it>='0')&&(*it<='9'))||(*it=='.'))
{number.push_back(*it); }
if((*it=='+')||(*it=='-')||(*it=='*')||(*it=='/')){
if(compare(*it)>compare(symbol.top()))
{symbol.push(*it);number.push_back(' ');}
else{
while(1){if(compare(*it)>compare(symbol.top()))
{symbol.push(*it);number.push_back(' ');break;}
else{
number.push_back(' ');
number.push_back(symbol.top());
symbol.pop();}
}
}
}
it++; }
if(*it==')'){number.push_back(' ');}
do
{
number.push_back(symbol.top());
number.push_back(' ');
symbol.pop();
}while(symbol.top()!='(');
symbol.pop();
number.pop_back();
}

if((*it=='+')||(*it=='-')||(*it=='*')||(*it=='/'))
{
if(compare(*it)>compare(symbol.top()))
{
symbol.push(*it);
number.push_back(' ');
}
else
{
while(1){
if(compare(*it)>compare(symbol.top()))
{symbol.push(*it);number.push_back(' ');break;}
else{
number.push_back(' ');
number.push_back(symbol.top());
symbol.pop();}}
}
}
}
char sym=symbol.top();
while(sym!='=')
{
number.push_back(' ');
number.push_back(sym);
symbol.pop();
sym=symbol.top();
}
/*for(it=number.begin();it!=number.end();it++)
{
cout<<*it;
}
cout<<endl;*/
}
void OutputResult()
{
double m=0.0,mm=0.0;
for(unsigned int i=0;i<number.size();i++){
double m=0.0,mm=0.0;
while((number>='0')&&(number<='9'))
{
m=m*10+(number-'0');
i++;
if(number==' ')
{
result.push(m);}
else if(number=='.')
{
i++;int n=1;
mm=number-'0';
i++;
while((number>='0')&&(number<='9'))
{
n++;
mm=mm*10+(number-'0');
i++;
}
if(number==' ')
{
result.push(m+mm/pow(10.0,n));
}
}
}
if((number=='+')||(number=='-')||(number=='/')||(number=='*'))
{
double n1=result.top();
result.pop();
double n2=result.top();
result.pop();
switch(number)
{
case '+':result.push(n2+n1);break;
case '-':result.push(n2-n1);break;
case '*':result.push(n2*n1);break;
case '/':result.push(n2/n1);break;
}
}
}
while(!result.empty())
{
cout<<result.top()<<endl;
result.pop();
}
}
};
int main()
{
char m='y';
while(m=='y' || m=='Y')
{
calculator cal;
cal.InputNumbers();
cal.OutputResult();
cout<<"是否继续计算【Y/N】";
m=getchar();m=getchar();
}
}

Saingel 2009-06-26
  • 打赏
  • 举报
回复
[Quote=引用 24 楼 row 的回复:]
引用楼主 danshiming 的帖子:
c#,java,c++,PHP我都涉及过,个人感觉还是C++是最美丽,最王道,最有魅力,最能锻炼程序员编程能力的语言,除了C++之外,没有一种语言,能让我几十天甚至几个月,抛掉所有的娱乐,一个人抱卷于青灯之下,孜孜不倦地学习和编程着,读经典的C++程序就好像在欣赏一幅精妙绝伦的油画,就好像在聆听柴可夫斯基优雅的音乐,就好像在人间仙境里旅游!快哉,C++!壮哉,C++! 美哉,C++!


是啊,C++程序可以设计得让自己陶醉,
其他语言就很少有这种感觉。
[/Quote]
完全同意
RealStalish 2009-06-26
  • 打赏
  • 举报
回复
没有完美的语言,否则其它语言就没必要存在了
错觉错觉!
又一好同志走火入魔了!
priestmoon 2009-06-26
  • 打赏
  • 举报
回复
稀饭脚本语言
_highlight 2009-06-26
  • 打赏
  • 举报
回复
C还没学完!!!!!!!!
superyys 2009-06-26
  • 打赏
  • 举报
回复
中了C++的蛊了吧.
坚持就是幸福 2009-06-26
  • 打赏
  • 举报
回复
恩,支持楼主
这不是鸭头 2009-06-26
  • 打赏
  • 举报
回复
NB啊
一笑拔剑 2009-06-26
  • 打赏
  • 举报
回复
这是治,得病
joker1717 2009-06-26
  • 打赏
  • 举报
回复
[Quote=引用 30 楼 HinanaiTenshi 的回复:]
这是病,得治...
[/Quote]
HinanaiTenshi 2009-06-26
  • 打赏
  • 举报
回复
这是病,得治...
程序猿之殇 2009-06-26
  • 打赏
  • 举报
回复
哈哈.
hw80520997 2009-06-26
  • 打赏
  • 举报
回复
是么时候c++吧该死的宏定义、预处理、include、makefile、函数声明等等去掉我就回来搞它
gacia10 2009-03-19
  • 打赏
  • 举报
回复
看看。。以后学学
chenzi07 2009-03-19
  • 打赏
  • 举报
回复
[Quote=引用 23 楼 heguo 的回复:]
至今还搞不清楚C++构造函数出现异常,如何释放资源;
至今还搞不清楚拷贝构造函数会在哪些地方被调用;
至今还搞不清楚那些个隐式转换显示转换在什么时候会转换;
至今还搞不清楚不明不白的函数指针到底声明了什么东东;
至今还搞不清楚字符串有哪些编码;
至今还搞不清楚.........我菜。

这么美的语言,用来画画应该很不错。
[/Quote]


这话道出了心声啊!!!
十一文 2009-03-19
  • 打赏
  • 举报
回复
[Quote=引用 26 楼 gacia10 的回复:]
看看。。以后学学
[/Quote]

我也这样想
heguo 2009-03-18
  • 打赏
  • 举报
回复
至今还搞不清楚C++构造函数出现异常,如何释放资源;
至今还搞不清楚拷贝构造函数会在哪些地方被调用;
至今还搞不清楚那些个隐式转换显示转换在什么时候会转换;
至今还搞不清楚不明不白的函数指针到底声明了什么东东;
至今还搞不清楚字符串有哪些编码;
至今还搞不清楚.........我菜。

这么美的语言,用来画画应该很不错。
zhoulehua 2009-03-18
  • 打赏
  • 举报
回复
楼主好样的。
avajworm 2009-03-18
  • 打赏
  • 举报
回复
哈哈~~
row 2009-03-18
  • 打赏
  • 举报
回复
[Quote=引用楼主 danshiming 的帖子:]
c#,java,c++,PHP我都涉及过,个人感觉还是C++是最美丽,最王道,最有魅力,最能锻炼程序员编程能力的语言,除了C++之外,没有一种语言,能让我几十天甚至几个月,抛掉所有的娱乐,一个人抱卷于青灯之下,孜孜不倦地学习和编程着,读经典的C++程序就好像在欣赏一幅精妙绝伦的油画,就好像在聆听柴可夫斯基优雅的音乐,就好像在人间仙境里旅游!快哉,C++!壮哉,C++! 美哉,C++!
[/Quote]

是啊,C++程序可以设计得让自己陶醉,
其他语言就很少有这种感觉。
加载更多回复(20)

695

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧