软件工程个人作业03
Posted waitingforyou123
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件工程个人作业03相关的知识,希望对你有一定的参考价值。
设计思路:
定义两个数组number[1000],oper[1000]分存储数字和运算符,利用随机数函数随机的为number,oper数组分配整数和运算符
Int Puanduan()用来判断计算结果是否正确,正确返回1,错误返回0
利用for循环找到除号首先进行运算把结果保存到与字符序号相同的number【i】数组中并把poer【i】变为加号,把number[i+1]变为0;最后从左到右算一遍加减运算
//四则运算
//李营;20142930;2016/3/21
#include "size.h"
void main()
{
size A;
P:
int n;
cout<<"请选择模式:1答题模式;2混合运算答题模式"<<endl;
cin>>n;
int N;
if(n==2)
{
cout<<"请输入混合运算数的个数:"<<endl;
cin>>N;
}
switch(n)
{
case 1:
{
A.CeShi();
}
case 2:
{
A.CeShi2(N);
}
}
goto P;
}
.h文件
#pragma once
#include<iostream>
#include<string>
using namespace std;
class size
{
public:
size(void);
~size(void);
void CeShi();//一般运算函数
void CeShi2(int N);//混合运算函数
char Operator();//运算符发生函数
int PanDuan(int d,int a,int b,char o);//d:传递用户输入的答案;a,b:传递参与运算的数字;o:传递运算符
int PanDuan2(int d,int N,int number[1000],char oper[1000]);//d:传递用户输入的答案;N:传递用户所选混合运算的整数个数
};
.cpp文件
#include "size.h"
size::size(void)
{
}
size::~size(void)
{
}
void size::CeShi()//测试模式(只能2个数进行运算)
{
int n=0;//用来计算作对数目
for(int i=0;i<30;i++)
{
int D;//储存用户答案
int a=rand()%100;
int b=rand()%100;
if(b==0)
{
i--;
}
else
{
if(a%b!=0)
{
i--;
}
else
{
char o;//存储运算符
o=Operator();
cout<<a<<o<<b<<"=?";
cin>>D;
n=n+PanDuan(D,a,b,o);
}
}
}
cout<<"您答对了"<<n<<"道题目!"<<endl;
}
char size::Operator()//随机产生运算符
{
char c;//存储运算符
int r;
r=rand()%4;
if(r==0)
{
c=‘+‘;
}
else if(r==1)
{
c=‘-‘;
}
else if(r==2)
{
c=‘*‘;
}
else
{
c=‘/‘;
}
return c;
}
int size::PanDuan(int d,int a,int b,char o)//判断结果是否正确
{
int n=0;//用来返回用户答案是否正确如正确返回1,错误返回0
if(o==‘+‘)
{
if(d==(a+b))
{
cout<<"正确!";
n=1;
}
else
{
cout<<"错误!";
}
}
else if(o==‘-‘)
{
if(d==(a-b))
{
cout<<"正确!";
n=1;
}
else
{
cout<<"错误!";
}
}
else if(o==‘*‘)
{
if(d==(a*b))
{
cout<<"正确!";
n=1;
}
else
{
cout<<"错误!";
}
}
else if(o==‘/‘)
{
if(d==(a/b))
{
cout<<"正确!";
n=1;
}
else
{
cout<<"错误!";
}
}
cout<<endl;
return n;
}
int size::PanDuan2(int d,int N,int number[1000],char oper[1000])//判断混合运算用户单是否正确
{
int n=0;//用来返回用户答案是否正确如正确返回1,错误返回0
for(int i=0;i<N;i++)
{
if(oper[i]==‘/‘)
{
number[i+1]=(number[i])/(number[i+1]);
oper[i]=‘+‘;
number[i]=0;
}
}
for(int i=0;i<N;i++)
{
if(oper[i]==‘*‘)
{
number[i+1]=(number[i])*(number[i+1]);
oper[i]=‘+‘;
number[i]=0;
}
}
int sum=number[0];
for(int i=0;i<(N-1);i++)
{
if(oper[i]==‘+‘)
{
sum=sum+number[i+1];
}
else
{
sum=sum-number[i+1];
}
}
if(d==sum)
{
n=1;
cout<<"正确!";
}
else
{
cout<<"错误!";
}
cout<<endl;
return n;
}
void size::CeShi2(int N)//实现混合运算式的输出
{
int n=0;//用来计算作对数目
for(int i=0;i<30;i++)//循环生成30道题目
{
int N1=N-1;//运算符个数
char oper[1000];//用来存储运算符
int number[1000];//用来存储参与运算的随机数
for(int i=0;i<N;i++)//对参与运算的数依次赋值
{
number[i]=(rand()%100);
}
for(int i=0;i<N-1;i++)//对参与运算的运算符依次赋值
{
oper[i]=Operator();
}
oper[N-1]=‘=‘;
for(int i=0;i<N;i++)//输出每一个混合运算式
{
int m;
if(((oper[i]==‘/‘)&&(oper[i-1]!=‘/‘))||((oper[i]==‘/‘)&&(oper[i-1]==‘/‘)&&(oper[i-2]==‘/‘)))
//解决连续除号的如何加括号
{
cout<<"(";
m=i;
}
cout<<number[i];
if(i==(m+1)&&oper[m]==‘/‘)//后括号的输出
{
cout<<")";
}
cout<<oper[i];
}
cout<<"?"<<endl;
int D;//用来存储用户输入的答案
cin>>D;
n=n+PanDuan2(D,N,number,oper);
}
cout<<"您答对了"<<n<<"道题目"<<endl;
}
程序截图:
周活动总结表
姓名:李营 日期:2016/3/26
日期 任务 |
听课(min) |
编写程序(min) |
阅读课本 |
准备考试 |
整理并发布作业 |
|
日总计(min) |
周日 |
|
|
|
|
|
|
|
周一 |
100 |
120 |
|
|
|
|
220 |
周二 |
|
|
|
|
|
|
|
周三 |
|
150 |
|
|
|
|
150 |
周四 |
|
|
|
|
|
|
|
周五 |
|
|
60 |
|
|
|
60 |
周六 |
|
|
|
|
120 |
|
120 |
周总计 |
100 |
270 |
|
|
|
|
450 |
阶段时间和效率:
不包括本周的累计时间:
总计 |
100 |
270 |
120 |
|
|
|
390 |
平均 |
100 |
270 |
120 |
|
|
|
390 |
最大 |
100 |
270 |
120 |
|
|
|
390 |
最小 |
100 |
270 |
120 |
|
|
|
390 |
全部周的累积时间:
总计 |
200 |
540 |
180 |
|
120 |
|
840 |
平均 |
100 |
270 |
90 |
|
120 |
|
420 |
最大 |
100 |
270 |
120 |
|
120 |
|
450 |
最小 |
100 |
270 |
60 |
|
120 |
|
390 |
时间记录日志
学生:李营 日程:20016/3/19
教师:王建民 课程;软件工程概论
日期 |
开始时间 |
结束时间 |
中断时间 |
净时间 |
活动 |
备注 |
3/21 |
8:00 |
9:50 |
10 |
100 |
听课 |
王老师讲课 |
|
14:30 |
16:50 |
20 |
120 |
编写程序(二柱子) ,打水,聊天 |
作业 |
3/23 |
14:00 |
16:40 |
10 |
150 |
编写程序(利用数组解决了就安吉算出答案的问题,打水 |
作业 |
3/25 |
14:00 |
15:00 |
|
120 |
阅读大道至简 |
作业 |
3/26 |
9:30 |
11:30 |
|
120 |
编写程序(对程序稍加完善),整理提交作业 |
作业 |
缺陷记录日志
学生:李营
日期:2016/3/26
教员:王建民
程序号:2
日期 |
编号 |
类型 |
引入阶段 |
排除阶段 |
修复时间 |
修复缺陷 |
3/21 |
1 |
a |
编码 |
编码 |
1min |
|
注释时多注释了一个“}” |
||||||
|
2 |
b |
编译运行 |
编译运行 |
1min |
|
|
不能正确的输出答案 |
|||||
3/23 |
3 |
c |
编码 |
编码 |
1min |
|
忘记了关闭上一次的运行窗口造成程序报错为找不到保存路径 |
以上是关于软件工程个人作业03的主要内容,如果未能解决你的问题,请参考以下文章