课程设计报告
cin.ignore(); menu(); }
void count::fatoce()//华氏温度转化为摄氏温度 { cout << \将华氏温度转化为摄氏温度\\n\ cout << \请输入一个华氏温度: \ cin >> number1; answer =((number1 - 32) * 5) / 9; cout << \它的摄氏温度是\ cin.ignore(); menu(); }
void count::cetofa()//摄氏温度转化为华氏温度 { cout << \将摄氏温度转化为华氏温度\\n\ cout << \请输入一个摄氏温度: \ cin >> number1; answer =number1 * 9 / 5 + 32; cout << \它的华氏温度是\ cin.ignore(); menu(); }
const int a=30;
double s1[a+1];//操作数栈 char s2[a+1];//运算符栈 int t1,t2;
void count::calcu()//一次计算 { double x1,x2,x; char p;
p=s2[t2--];//弹出一个运算符 x2=s1[t1--];//弹出两个操作数 x1=s1[t1--];
switch (p)//进行一次运算 { case '+': x=cadd(x1,x2); break; case '-': x=csub(x1,x2); break; case '*': x=cmult(x1,x2);
12
课程设计报告
break; case '/': x=cdiv(x1,x2); break; } s1[++t1]=x;//结果压入操作数栈 }
double count::calculate(char *f) { double x; char *p=f; t1=t2=0; //设置空栈 while (*p!='\\0') switch(*p) {
case '+': case '-': while (t2&&(s2[t2]!='('))
//执行先遇到的加、减、乘、除运算 calcu();
//当前运算符进栈 s2[++t2]=*p; //读下一个字符 p++; break; case '*': case '/':
if (t2&&(s2[t2]=='*')||(s2[t2]=='/')) //执行先遇到的乘、除运算 calcu();
//当前运算符进栈 s2[++t2]=*p; //读下一个字符 p++; break; case '(': //左括号进栈 s2[++t2]=*p; //读下一个字符 p++; break; case ')': while (s2[t2]!='(') //执行括号内的加、减、乘、除运算 calcu(); //弹出左括号
13
课程设计报告
t2--; //读下一个字符 p++; break; default: //把字符串转换成整数值 x=0; do { x=10*x+*p-'0'; p++; } while((*p>='0')&&(*p<='9')); //操作数进栈 s1[++t1]=x; }; //执行先遇到的加、减、乘、除运算 while (t2) calcu(); //返回结果 return s1[t1]; }
void count::mixed()//混合运算函数 { cout<<\混合运算函数,请输入要计算的表达式:\\n\ char b[100]; cin>>b; cout< void count::cexit()//退出函数 { exit(0); } void count::badinput()//出错提示函数 { cout << \输入错误!\\n\ cin.ignore(); menu(); } void count::test()//测试函数 { cout<<\进行测试\\n\ int s,sum=0; 14 课程设计报告 float x; for(int i=1;i<=10;i++) { s=rand()%4+1;//随机给出题目的+或-或*或/ srand ( time (NULL) ); switch(s) { case 1: number1=rand()%MAX; number2=rand()%MAX; cout< 15 课程设计报告 } void count::menu()//主菜单函数 { count a; cout <<\ cout <<\ 1: 进行正弦运算 ***\\n\ cout <<\ 2: 进行余弦运算 ***\\n\ cout <<\ 3: 进行正切运算 ***\\n\ cout <<\ 4: 进行对数运算 ***\\n\ cout <<\ 5: 进行求平方运算 ***\\n\ cout <<\ 6: 进行求平方根运算 ***\\n\ cout <<\ 7: 进行华氏温度转化为摄氏温度的运算 ***\\n\ cout <<\ 8: 进行摄氏温度转化为华氏温度的运算 ***\\n\ cout <<\ 9: 进行混合运算 ***\\n\ cout <<\ 10:进行测试 ***\\n\ cout <<\ 0:退出运算 ***\\n\ cout <<\ 请选择: ***\\n\ cout <<\ cin >> input; switch (input) { case 1: a.csin(); break; case 2: a.ccos(); break; case 3: a.ctan(); break; case 4: a.clog(); break; case 5: a.csqure(); break; case 6: a.squreroot(); break; case 7: a.fatoce(); break; case 8: 16 menu(); 课程设计报告 a.cetofa(); break; case 9: a.mixed(); break; case 10: a.test(); break; case 0: a.cexit(); break; default : a.badinput(); } } int main() { count s; s.menu(); return 0; } 17