用c++写一个复数计算器 复数运算,发邮箱

复数计算器问题求解_c++吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:246,302贴子:
复数计算器问题求解收藏
本人新手 在复数求模函数中double mod(const Complex &c) {
return(c.real*c.real+c.imag*c.imag); }说是error C2601: 'mod' : local function definitions are illegal请问我这句语法出现错误了吗??
0基础电脑培训——变身高富帅!
本地函数定义非法。又是哪里的大括号写错了吧....
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或求大神 编写c++复数计算器源代码_百度知道如何用c++写一个简单的计算器程序?
之前学习的是C语言编程,现在在学习C++,C++ Primer看了近一半,习题也有做,基本知识点基本掌握,想找些项目锻炼一下,边动手边学习,但不要知道如何开始?如何用C++写个计算器?如何用C++绘制图形界面?望大家帮助
不着急上图形界面。你可以先搞定界面以外的部分,比如输入一个数学表达式,进行语法解析,执行求值。下一步的GUI的部分,计算器级别的GUI非常简单。
一定要C++么?C行不行?绝对符合“简单”两字!
给你一个解释器的代码吧如果要改成图形化的计算器的话需要用到GUI库代码来自《C++ programming language》#include&cctype&
#include&iostream&
#include&map&
#include&string&
using namespace std;
enum Token_value{
NAME,NUMBER,END,PLUS='+',MINUS='-',MUL='*',DIV='/',PRINT=';',ASSIGN='=',LP='(',RP=')'
Token_value curr_tok=PRINT;
map&string,double& table;
double number_value;
string string_value;
int no_of_errors;
double expr(bool get);
double term(bool get);
double prim(bool get);
Token_value get_token();
double error(const string& s)
no_of_errors++;
cerr&&"error:"&&s&&endl;
Token_value get_token()
char ch=0;
switch (ch) {
return curr_tok=END;
case ';':case '*':case '/':case '+':case '-':case '(':case ')':case '=':
return curr_tok=Token_value(ch);
case '0':case '1':case '2':case '3':case '4':case '5':case '6':case '7':case '8':case '9':case '.':
cin.putback(ch);
cin&&number_value;
return curr_tok=NUMBER;
if (isalpha(ch)) {
cin.putback(ch);
cin&&string_value;
return curr_tok=NAME;
error("bad token");
return curr_tok=PRINT;
double prim(bool get)
if (get) get_token();
switch (curr_tok) {
case NUMBER:
double v=number_value;
get_token();
case NAME:
double& v=table[string_value];
if (get_token()==ASSIGN) v=expr(true);
case MINUS:
return -prim(true);
double e=expr(true);
if (curr_tok!=RP) return error(") expected");
get_token();
return error("primary expected");
double term(bool get)
double left=prim(get);
switch (curr_tok) {
left*=prim(true);
if (double d=prim(true)) {
return error("divide by 0");
return left;
double expr(bool get)
double left=term(get);
switch(curr_tok) {
case PLUS:
left+=term(true);
case MINUS:
left-=term(true);
return left;
int main()
table["pi"]=3.7932385;
table["e"]=2.354;
while (cin) {
get_token();
if (curr_tok==END) break;
if (curr_tok==PRINT) continue;
cout&&expr(false)&&endl;
return no_of_errors;
刚刚写了一个计算器,正好答这个问题。有提到用mfc的,固然可以,不过我以为用qt会更容易上手一些。图形界面什么的拖拖控件就行了,信号与槽的机制能让你对程序结构更清晰,这样可以省点时间思考算法。写的时候注意栈的运用,逆波兰什么的。网上资料应该大把,有想法就动手,边写边查吧。
你要是做计算器的话可以看看《c++实践之路》
面向对象+GUI
详细百度 “MFC实现计算器”,一大堆博客文章教你。感觉最好的办法是:找一本书,一本:MFC入门
同志你真的不玩玩逆波兰么
已有帐号?
无法登录?
社交帐号登录&&&&C++实现的复数计算器(完整版源代码)
C++实现的复数计算器(完整版源代码)
C++实现 的复数计算器 (完整版源代码)
若举报审核通过,可奖励20下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
VIP下载&&免积分60元/年(1200次)
您可能还需要
课程资源下载排行

我要回帖

更多关于 计算器 复数运算 的文章

 

随机推荐