四则运算 石亚佩

四则运算代码

 

#include <stdio.h>
#include <stdlib.h>

double get_oprand() 
{
double value;
scanf("%lf", &value);
return value;
}

char get_operator() 
{
char op;
do
{
scanf("%c", &op);
} while (op == ' ');
return op;
}

int prior(char op1, char op2) 
{
int flag;
if (op1 == '*' || op1 == '/')
if (op2 == '+' || op2 == '-')
flag = 1;
else flag = 0;
else if (op2 == '*' || op2 == '/')
flag = -1;
else flag = 0;
return flag;
}

double evaluates(double left, char op, double right) 
{
{
switch (op)
{
case '+':return left + right; break;
case '-':return left - right; break;
case '*':return left * right; break;
case '/':
if (right != 0)
return left / right;
else
{ //除数为零
printf("除数不合法,检查是否为零\n");
exit(1); //强制结束程序
}
default:return 0.0;
}
}
}


int main()
{
double value1, value2, value3, result;
char op1, op2;
value1 = get_oprand();
op1 = get_operator();
value2 = get_oprand();
op2 = get_operator();
while (op2 != '\n') 
{
value3 = get_oprand();
if (prior(op2, op1))
value2 = evaluates(value2, op2, value3);
else
{
value1 = evaluates(value1, op1, value2);
op1 = op2;
value2 = value3;
}
op2 = get_operator();
}
result = evaluates(value1, op1, value2); 

printf("结果为%lf\n", result);
return 0;
}

任务内容计划共完成需要的时间(h)实际完成需要的时间(h)
计划 9 12
开发 9 13
需求分析 (包括学习新技术) 0.5 0.5
· 生成设计文档 1 2
· 设计复审 (和同事审核设计文档) 1 0.5
代码规范 (为目前的开发制定合适的规范) 1.5 1.5
具体设计 1 1.5
具体编码 2.5 2.5
· 代码复审 1 1.5
· 测试(自我测试,修改代码,提交修改) 1 1.5
报告 1.5 3.5
· 测试报告 1 1.5
计算工作量 1 2
· 事后总结 ,并提出过程改进计划 1 0.5

个人总结:

        这次个人项目的完成让我深刻认识到了自身的不足,所学的专业知识还远远不够,需要更多努力!从编写代码到测试代码中间碰到了很多问题,一步步的修改错误,改进代码,最终完成。

通过这次编写代码我决定要继续学习更多知识,充实自己,写好代码!

 

计应191西  石亚佩

 

posted @ 2021-04-11 21:01  计应191西第二组  阅读(81)  评论(0)    收藏  举报