四则运算3程序扩展

一.设计思想

1.设计要求:让程序能接受用户输入答案,并判定对错。最后给出总共对/错 的数量。

2.对于用户输入答案这个条件进行编程时,是按照系统输入一个题目,同学进行回答,然后系统进行判断对错。但是这部符合题目的要求不能定制,而且图形界面不好看,于是在系统出完题后在让学生输入一行答案。

3.首先将正确的答案放入一个数组里面,然后同学的答案放入另一个数组,最后两个数组作比较,相同的输入正确,反之错误。

4.统计正确与错误元素的序列号作为提醒同学错几题正确几题,然后输出正确答案。

二.源程序代码

#include<iostream.h>
#include<stdlib.h>
void size(int X,int Y)
{

int d,n,a,i,j,b,c1,c2,z,e,x,y,m,h,t;
int rightanwer[10000],anwer[10000];
int r[1000];
int w[1000];
int wright[10000];
int cunt=0;
int nc=0;

cout<<" "<<"1.题目的数量(1~100):";
cin>>m;
while(m>100||m<0)
{
cout<<" .请正确输入数量:";
cin>>m;

}
cout<<endl;

cout<<" "<<"2.题目的列数(1~7):";
cin>>h;
while(h>7||h<0)
{
cout<<" .请正确输入列数:";
cin>>h;

}

cout<<endl;

cout<<" "<<"3.打印间隔(1~5):";
cin>>t;
while(t>5||t<0)
{
cout<<" .请正确输入间隔:";
cin>>t;

}
cout<<endl;

cout<<" "<<"4.数值最大为多少:";
cin>>b;
while(b>500||b<-500)
{
cout<<" .请重新输入最大数(0~500):";
cin>>b;

}
cout<<endl;

cout<<" "<<"5.式内是否有乘除(有:1;无:0):";
cin>>a;
while(a!=1&&a!=0)
{
cout<<" .请重新输入条件:";
cin>>a;

}
cout<<endl;

cout<<" "<<"6.加减数有无负数(有:1;无:0):";
cin>>z;
while(z!=1&&z!=0)
{
cout<<" .请重新输入条件:";
cin>>z;

}
cout<<endl;
cout<<"***********"<<"以下是题目"<<"*****************"<<endl;

for(i=0;i<m;i++)

{
cout<<i+1<<".";

X=rand()%b;
Y=rand()%b;
d=rand();
e=rand();

c1=d%2;
c2=e%2;

n=d%4;

if(n==3)
{
if(Y!=0)
{
X=Y*(rand()%100);//确定能够除尽
}
else
{
X=(Y+1)*(rand()%100);
}
}
//------------------------------------有无乘除
switch(a)
{
case 0:
if(n>1)
{
n=n-2;
};break;
case 1: break;
default:cout<<"输入的乘除控制条件错误!";

}

//------------------------------------加减有无负数

switch(z)
{
case 0:break;
case 1: x=(-1)^c1*X;

y=(-1)^c2*Y;break;
default:cout<<"输入的加减控制条件错误!";
}

//----------------------------------控制括号和输出

switch(n)
{
case 0:if(z>0)
{
cout<<x<<"+"<<"("<<y<<")"<<"="<<"\t";
}
else
{
cout<<X<<"+"<<Y<<"="<<"\t";
};break;
case 1:if(z>0)
{
cout<<x<<"-"<<"("<<y<<")"<<"="<<"\t";
}
else
{
cout<<X<<"-"<<Y<<"="<<"\t";
};break;
case 2:cout<<X<<"*"<<Y<<"="<<"\t";break;
case 3:cout<<X<<"/"<<Y<<"="<<"\t";break;

}
//-----------------------------------------判断是否答对,并且计算答对的数量
// cin>>anwer[i];
switch(n)
{
case 0:rightanwer[i]=x+y;break;
case 1:rightanwer[i]=x-y;break;
case 2:rightanwer[i]=X*Y;break;
case 3:rightanwer[i]=X/Y;break;

}

//----------------------------------------控制列数,和两行间隔数

if((i+1)%h==0)
{
for(j=0;j<t;j++)
{
cout<<endl;
}
}

}
cout<<endl;
cout<<"****************************************"<<endl;
cout<<"请同学输入正确的答案:"<<endl;
for(i=0;i<m;i++)
{
cin>>anwer[i];
if(rightanwer[i]==anwer[i])
{

r[cunt]=i+1;
cunt++;
}
else
{

w[nc]=i+1;
nc++;
}
}
cout<<"*****************************************"<<endl;
cout<<"对学生答题情况进行系统统计:"<<endl;

cout<<"1).答对题目的数量为:"<<cunt<<endl<<"2).答错题目的数量为:"<<m-cunt<<endl;

cout<<"3).答对的题目为:";
for(i=0;i<(cunt);i++)
{
cout<<r[i]<<" ";
}
cout<<endl;

cout<<"4).答错的题目为:";
for(i=0;i<(nc);i++)
{
cout<<w[i]<<" ";

}
cout<<endl;

cout<<"5).正确答案为:"<<endl;
for(i=0;i<m;i++)
{
cout<<" "<<rightanwer[i]<<" ";
}
cout<<endl;

}

//--------------------------主函数
int main()
{
int a;
int b;
cout<<"***********"<<"四则运算题目定制:"<<"************"<<endl<<endl;
size(a,b);
return 0;
}

三.运算截图

四.编程总结

在编写程序的过程中一定要做到条理有序不仅便于读写代码,而且便于程序的测试。

在这次的程序的开放过程中体会到用户的需求,例如,用户需要知道自己那道题目答对那道答错,然后知道正确结果。程序要求很快就编写完成,更多的时间是在完善程序,真让我深有体会。

五.记录开发表

3 周活动总结表            
姓名: 付东     日期: 3月21日    
日期\任务 听课 编写程序 阅读课本 准备考试     日总计
周日              
周一              
周二 300 30 0       330
周三 100 0         100
周四 400 0 0       400
周五 200 40 0       240
周六 0 240 0       150
周总计 1000 290 0       1290
               
阶段时间和效率     周数: 3      
               
不包括上一周在内的累计时间              
总计 1000 290         1290
平均 1000 290         1290
最大 1000 290         1290
最小 1000 290         1290
               
               
以前各周的累计时间              
总计 2490 500 45       3400
平均 1245 250 22.5       1700
最大 1200 290 45       1535
最小 1200 210 0       1410
学生: 付东   日期: 3月21日    
教师: 王建民   课程: 软件工程    
             
日期 开始时间 结束时间 中断时间 净时 活动 备注
3月18日 9:30 11:30 10:00 100 编程 四则程序的扩展
  2:30 5:40   150 编程 四则的扩展,聊天,玩手机
  7:30 9:50   120 阅读英语 好好考级
3月20日 9:20 11:30 20 70 编程结对 编程,聊天,玩手机
  4:00 4:30   30 作业 将最近的作业写完
3月21日 2:00 5:30 2:30-3:40 110 结对编程 打球编程
  7:00 9:00   120 上传博客  
学生: 付东          
日期: 3月21日          
教员: 王建民          
程序: 四则运算扩展          
日期 编号 类型 引入阶段 排除阶段 修复时间 修复缺陷
3月18日 1   编码 编码 2min  
  循环次数使用错误
  2   编码 运行 10min  
  数组定义太大导致程序错误。
3月20日 3   编码 编译 1min  
  程序中使用制表符驶左对齐。
  4   编码 编译 1min  
 3月21 日 结对二实验中,输入数组的行列计算错误
  5   编码 编译 0.2min  
  测试正确错误题目错误,算好循环次数。
  6   编码 编译 0.2min  
  计算子数组中,加法中输入的数组不对应。
时间: 2024-10-10 19:10:12

四则运算3程序扩展的相关文章

四则运算程序扩展:将程序改为java语言,并允许用户输入,对输入结果进行验证

题目 每个同学选一个方向,把程序扩展一下:1.让程序能接受用户输入答案,并判定对错.最后给出总共对/错 的数量.2.把程序变成一个网页程序,用户通过设定参数,就可以得到各种题目.3.把程序变成一个Windows 图形界面的程序.4.把程序变成一个智能手机程序 (你正在用什么手机, 就写那个手机的程序).(可以延期3周后)5.选一个你从来没有学过的编程语言,试一试实现基本功能. 设计思想 本次程序采用数组记录答案,包含输入数组和正确结果保存数组,进行比较 源代码 package minirisof

四则运算手机开发版

一.题目 每个同学选一个方向,把程序扩展一下:1.让程序能接受用户输入答案,并判定对错.并输出正确的错题数2.把程序变成一个网页程序,用户通过设定参数,就可以得到各种题目.3.把程序变成一个Windows 图形界面的程序.4.把程序变成一个智能手机程序 (你正在用什么手机, 就写那个手机的程序).(可以延期3周后)5.选一个你从来没有学过的编程语言,试一试实现基本功能. 二.思路 四则运算出题应用 1.输入出题数 ,点击Confirm ( 1<=n<=MAXNUMBER) 2.提交成功后,显示

四则运算终结版

四则运算之给出解题答案 一.题目 每个同学选一个方向,把程序扩展一下:1.让程序能接受用户输入答案,并判定对错.并输出正确的错题数2.把程序变成一个网页程序,用户通过设定参数,就可以得到各种题目.3.把程序变成一个Windows 图形界面的程序.4.把程序变成一个智能手机程序 (你正在用什么手机, 就写那个手机的程序).(可以延期3周后)5.选一个你从来没有学过的编程语言,试一试实现基本功能. 选择1 二.思路:1 用一个数组把结果存到里面去,用以计算结果 2 用户输入的结果与正确答案相比对,给

20130409 【结对】 四则运算

编写环境: Eclipse 作业代码: import java.util.*; import java.io.*; import javax.swing.*; import java.awt.*; import javax.swing.event.*; import java.awt.event.*; class Expression//表达式类,存放表达式 { int a;//第一个数 int b;//第二个数 int c;//正确答案 int d;//输入答案 char operator;/

作业二、四则运算估计时间

合作同伴29罗凯旋:http://www.cnblogs.com/kasion/ 这个四则运算程序扩展的方向主要有: 1.计时,还有自由限定做题提示,还有完成时候提醒用时多少. 2.答题完成的时候显示做对哪道题,做错哪道题,正确答案多少,当初自己写的答案多少. 3.设置了用户登陆名,这有个好处,可以记录其他用户的做题记录,并且构成一个排行版,提升趣味. 4.整个界面清晰易懂 缺点:1.没有做到多个运算符,使得题目难度无法提升 2.没有做到计算到小数,主要是当初定义为整型,这个在后面没有修改. 3

自动生成小学四则运算题目(C语言)

这个简易四则运算是我在百度上找的博主叫53余雅诗的一篇c语言代码,网址为http://www.cnblogs.com/ys1101/p/4368103.html,功能是可以选择加减乘除进行简易的四则运算,判断对错.我在VS2017上编译没有bug,因为功能只有整数运算,所以我在此基础上加了真分数的四则运算以及统计得分等,最后成功运行程序.我把我的源代码放在github上,地址为https://github.com/xiaofancheng/helloworld.

四则运算题目生成程序

a.需求分析 看了大家对于本课程的目标和规划,很多同学都希望能提高自己的实践能力,没有捷径可走,就是练习.练习再练习!那么就从第一个个人项目开始吧,用一周的时间完成一个基于控制台的四则运算程序,实现一个自动生成小学四则运算题目的命令行程序 从<构建之法>第一章的 "程序" 例子出发,像阿超那样,花二十分钟写一个能自动生成小学四则运算题目的命令行 "软件",满足以下需求: 除了整数以外,还要支持真分数的四则运算,真分数的运算,例如:1/6 + 1/8 =

四则运算题目生成程序(基于控制台)

题目描述: 能自动生成小学四则运算题目的命令行 "软件",满足以下需求: 除了整数以外,还要支持真分数的四则运算,真分数的运算,例如:1/6 + 1/8 = 7/24 运算符为 +, ?, ×, ÷ 并且要求能处理用户的输入,并判断对错,打分统计正确率 要求能处理用户输入的真分数, 如 1/2, 5/12 等 使用 -n 参数控制生成题目的个数,例如执行下面命令将生成10个题目 功能设计: 1.  通过随机数的生成,实现+, ?, ×, ÷的确定 2.  +, ?, ×, ÷分别赋予整

第一周 结对编程四则运算

项目需求:程序随机生成四则运算计算题,并在用户填写答案后判断答案正误. 结对成员:李峤 任务分配:算法思想及采用的主要函数由李峤负责. 部分代码输入及结果测试由本人负责. 大体分成两个模块 :1.随机生成四则运算计算题 2.判断录入答案正误 主要代码如下: 1 #include<stdio.h> 2 #include<string.h> 3 #include<time.h> 4 #include<stdlib.h> 5 int main() 6 { 7 ch