四则运算(结对项目)

Github地址:https://github.com/wln772777917/wl.sizeyunsuan 

成员:08111602_1120161935_王连宁

           08111602_1120161917_李家葶

 

PSP表格

PSP2.1

Personal Software Process Stages

预估耗时(分钟)

实际耗时(分钟)

Planning

计划

5

10

· Estimate

· 估计这个任务需要多少时间

5

10

Development

开发

 

 

· Analysis

· 需求分析 (包括学习新技术)

120

800

· Design Spec

· 生成设计文档

30

60

· Design Review

· 设计复审 (和同事审核设计文档)

0

0

· Coding Standard

· 代码规范 (为目前的开发制定合适的规范)

10

30

· Design

· 具体设计

60

120

· Coding

· 具体编码

180

500

· Code Review

· 代码复审

0

0

· Test

· 测试(自我测试,修改代码,提交修改)

120

800

Reporting

报告

60

120

· Test Report

· 测试报告

30

30

· Size Measurement

· 计算工作量

10

10

· Postmortem & Process Improvement Plan

· 事后总结, 并提出过程改进计划

30

120

 

合计

660

2610

核心代码:

1.随机生成四则运算,后来加上^运算。

void aftersz(ZX number[100])
{
int i=rand()%10;
if(i<=2)
{
int j=rand()%5;
if(j==0)
number[t].a='+';
else if(j==1)
number[t].a='-';
else if(j==2)
number[t].a='*';
else if(j==3)
number[t].a='/';
else number[t].a='^';
number[t].b=0;
t++;
afterfh(number);
}
else if(i>=3&&i<=6)
{
if(n1==1)
{
aftersz(number);
}
else
return ;
}
else//右括号
{
if(n>0&&number[t-2].a!='('&&number[t-2].b!=0)
{
number[t].b=0;
number[t].a=')';
n--;
t++;
aftersz(number);
}
else
aftersz(number);
}
}

2.利用堆栈计算正确答案

int convert(ZX number[100])
{
stack<ZX>s2;
for(int i=0;i<t;i++)
{
if(number[i].b==1)//操作数
s2.push(number[i]);
else
{
if(number[i].a==')')
{
while(s1.top().a!='(')
{
s2.push(s1.top());
s1.pop();
}
s1.pop();
}
else if(s1.empty()||s1.top().a=='('||number[i].a=='(')
s1.push(number[i]);
else
{
if(number[i].b==0&&(number[i].a=='*'||number[i].a=='/'||number[i].a=='^')&&(s1.top().a=='+'||s1.top().a=='-'))
s1.push(number[i]);
else
{
s2.push(s1.top());
s1.pop();
i--;
}
}
}
}
while(!s1.empty())
{
s2.push(s1.top());
s1.pop();
}
while(!s2.empty())
{
ZX s=s2.top();
s2.pop();
s1.push(s);
}
ZX c1;
int c2,c3,c4;
stack<int>s3;
while(!s1.empty())
{
c1=s1.top();
s1.pop();
if(c1.b==1)
s3.push(c1.a);
else
{
c2=s3.top();
s3.pop();
c3=s3.top();
s3.pop();
switch(c1.a)
{
case '+':c4=c3+c2;break;
case '-':c4=c3-c2;break;
case '*':c4=c3*c2;break;
case '/':c4=c3/c2;break;
case '^':c4=pow(c3,c2);break;
}
s3.push(c4);
}
}
return s3.top();
}

3.倒计时功能

printf("Countdown start:\n");
for(int time=20;time>=0;time--)
{
Sleep(1000);
printf("\r%2d",time);
}

猜你喜欢

转载自www.cnblogs.com/qq772777917/p/9119148.html