读书人

简易计算器-编译失误

发布时间: 2013-09-14 13:03:22 作者: rapoo

简易计算器-编译出错
以下程序是一个简易计算器,编译时一直通不过。
编译时老是提示:Permission denied ld returned 1 exit status
我用的是dev-c++编译器, 希望大家帮我看看是什么原因????


#include<iostream>
#include<stdlib.h> //头文件用来支持exit()
#include<stdio.h> //头文件用来支持flush()

using namespace std;


int main()
{
float getData(void);
void printResult(float num1, float num2, float result, int option);
int getOption(void);
float calc(int option, float num1, float num2);

int option;
float num1, num2, result;

while((option=getOption())!=5)
{
num1=getData();
num2=getData();
result=calc(option, num1, num2);
printResult(num1, num2, result, option);

cin.sync();
//flush(stdin); //清除输入缓冲区

}
cout<<"\n谢谢使用这个程序!"<<endl;

system("pause");
return 0;
}

int getOption(void)
{
int option;
cout<<"\n";
cout<<"\n\t*****************";
cout<<"\n\t* 菜单 *";
cout<<"\n\t* *";
cout<<"\n\t* 1.加法 *";
cout<<"\n\t* 2.减法 *";
cout<<"\n\t* 3.乘法 *";
cout<<"\n\t* 4.除法 *";
cout<<"\n\t* 5.结束程序 *";
cout<<"\n\t* *";
cout<<"\n\t*****************";
cout<<"\n\n请输入你的选择然后按下回车键";
cin>>option;
return option;

}

float getData(void)
{ float data;


cout<<"\n输入一个值:";
cin>>data;
return data;
}

float calc(int option, float num1, float num2)
{
float add(float num1, float num2);
float sub(float num1, float num2);
float mul(float num1, float num2);
float dvd(float num1, float num2);

float result;

switch (option)
{
case 1: result=add(num1, num2);
break;
case 2: result=sub(num1, num2);
break;
case 3: result=mul(num1, num2);
break;
case 4: if(num2==0.0)
{
cout<<"\n\a\a错误计算:";
cout<<"分母为零***"<<endl;
exit(1);
}
else
result=dvd(num1, num2);
break;
default: cout<<"\a错误计算选择"<<endl;
exit(1);
}
return result;
}

float add(float num1, float num2)
{return (num1+num2);}

float sub(float num1, float num2)
{return (num1-num2);}



float mul(float num1, float num2)
{return (num1*num2);}

float dvd(float num1, float num2)
{return (num1/num2);}

void printResult(float num1, float num2, float res, int option)
{
cout<<endl<<num1;
switch(option)
{
case 1: cout<<"+"; break;
case 2: cout<<"-"; break;
case 3: cout<<"*"; break;
case 4: cout<<"/"; break;
}
cout<<num2<<"="<<res<<endl;
return;
}


#include<iostream>
#include<stdlib.h> //头文件用来支持exit()
#include<stdio.h> //头文件用来支持flush()

using namespace std;


int main()
{
float getData(void);
void printResult(float num1, float num2, float result, int option);
int getOption(void);
float calc(int option, float num1, float num2);

int option;
float num1, num2, result;

while((option=getOption())!=5)
{
num1=getData();
num2=getData();
result=calc(option, num1, num2);
printResult(num1, num2, result, option);

cin.sync();
//flush(stdin); //清除输入缓冲区

}
cout<<"\n谢谢使用这个程序!"<<endl;

system("pause");
return 0;
}

int getOption(void)
{
int option;
cout<<"\n";
cout<<"\n\t*****************";
cout<<"\n\t* 菜单 *";
cout<<"\n\t* *";
cout<<"\n\t* 1.加法 *";
cout<<"\n\t* 2.减法 *";
cout<<"\n\t* 3.乘法 *";


cout<<"\n\t* 4.除法 *";
cout<<"\n\t* 5.结束程序 *";
cout<<"\n\t* *";
cout<<"\n\t*****************";
cout<<"\n\n请输入你的选择然后按下回车键";
cin>>option;
return option;

}

float getData(void)
{ float data;
cout<<"\n输入一个值:";
cin>>data;
return data;
}

float calc(int option, float num1, float num2)
{
float add(float num1, float num2);
float sub(float num1, float num2);
float mul(float num1, float num2);
float dvd(float num1, float num2);

float result;

switch (option)
{
case 1: result=add(num1, num2);
break;
case 2: result=sub(num1, num2);
break;
case 3: result=mul(num1, num2);
break;
case 4: if(num2==0.0)
{
cout<<"\n\a\a错误计算:";
cout<<"分母为零***"<<endl;
exit(1);
}
else
result=dvd(num1, num2);
break;
default: cout<<"\a错误计算选择"<<endl;


exit(1);
}
return result;
}

float add(float num1, float num2)
{return (num1+num2);}

float sub(float num1, float num2)
{return (num1-num2);}

float mul(float num1, float num2)
{return (num1*num2);}

float dvd(float num1, float num2)
{return (num1/num2);}

void printResult(float num1, float num2, float res, int option)
{
cout<<endl<<num1;
switch(option)
{
case 1: cout<<"+"; break;
case 2: cout<<"-"; break;
case 3: cout<<"*"; break;
case 4: cout<<"/"; break;
}
cout<<num2<<"="<<res<<endl;
return;
}

刚开始运行,是可以运行的,出现了上面那个对话框后,就老报错。

用vs的时候 最好关闭相关杀毒软件和防火墙

读书人网 >C++

热点推荐