zoukankan      html  css  js  c++  java
  • 30道四则运算题的第四次补充

    一、题目要求

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

    二、设计思想

      1.用一个数组存取正确的结果,用另一个数组存储用户输入的答案,把两个数组进行比较,输出正确和错误的结果数目。

    三、源代码

    /**
    作者:程鹏远
    题目:30道2年纪四则运算题目
    */
    #include <iostream.h>
    #include <stdlib.h>
    #include <conio.h>
    int main()
    {
    	//初始化
    	int zong=0;
    	int zong0=0;
        int a,b,c;	
    	int num1,num2;
    	int num;
    	int chufa;
    	int k,jiange;
    	int zhengchu;
    	int j=0;
    	int chengfa;
    	int con;
    	int q[1000],w[1000],e[1000],r[1000];
    	//请输入数的范围,中间用空格隔开:
    	cout<<"请输入数的范围,中间用空格隔开:";
    	cin>>num1>>num2;
    	if(num1>num2)
    	{
    		cout<<"第一个数应该小于第二个数,请重输:";
    		cin>>num1>>num2;
    	
    	}
    	//控制题目的个数,num
    	cout<<"其输入要出多少道题目:";
    	cin>>num;
    	
    	if(num>(4*(num2-num1)^2))
    	{
    		cout<<"您输入的题目数量太多,会造成重复,请重新输入数目:";
    		cin>>num;
    	}
    
    	//打印格式
    	cout<<"一行几道题,行间距是几,中间空格:";
    	cin>>k>>jiange;
    	if(jiange>=5||jiange<0)
    	{
    		cout<<"您输入的间距太大或为负数,请重输:";
    		cin>>jiange;
    	}
    	
    	//是否要除法
    	cout<<"是否要除法?是输入1,否输入0:";
    	cin>>chufa;
    	if(chufa==1)
    	{
    		cout<<"是否要有余数,是输入1,否输0:";
    		cin>>zhengchu;
    	}
    	
    	//是否要乘法
    	cout<<"是否要乘法,是输入1,否输入0:";
    	cin>>chengfa;
    
    	cout<<endl;
        for(int i=0;i<num;i++)
        {	
    		cout<<i+1<<"、";        
    		q[i]=(rand()%(num2-num1+1))+num1;
    	    
    		w[i]=(rand()%(num2-num1+1))+num1;
            
    		if(chufa==1)
    		{
    			if(chengfa==1)
    			{
    				c=rand()%4;//0-3
    			}
    			else
    			{
    				c=rand()%3;//0-2
    			}
    		}
    		else
    		{
    			if(chengfa==1)
    			{
    				c=rand()%3+1;//1-3
    			}
    			else
    			{
    				c=rand()%2+1;//1-2
    			}
    		}
    
            switch (c)
            {
    			case 1:
    				cout<<q[i]<<"+"<<w[i]<<"="<<"	";
    				e[i]=q[i]+w[i];
    				
    				break;
    			case 2:
    				if(q[i]>w[i])
    				{
    					cout<<q[i]<<"-"<<w[i]<<"="<<"	";
    					e[i]=q[i]-w[i];
    				}
    				else
    				{
    					cout<<w[i]<<"-"<<q[i]<<"="<<"	";
    					e[i]=w[i]-q[i];
    				}
    				break;
    			case 3:            
    				cout<<q[i]<<"*"<<w[i]<<"="<<"	";
    				e[i]=q[i]*w[i];
    				break;
    			case 0://除法
    				if(zhengchu==1)//有余数
    				{
    					if(w[i]==0)
    					{
    						cout<<w[i]<<"/"<<q[i]<<"="<<"	";
    						e[i]=w[i]/q[i];						
    					}
    					else
    					{
    						cout<<q[i]<<"/"<<w[i]<<"="<<"	";
    						e[i]=q[i]/w[i];
    					}
    
    					
    				}
    				else
    				{
    					while((j<100000)&&(q[i]!=0)&&(w[i]!=0)&&(q[i]%w[i]==0))
    					{
    						cout<<q[i]<<"/"<<w[i]<<"="<<"	";
    						e[i]=q[i]/w[i];																
    						j++;
    					}
    					if((q[i]!=0)&&(w[i]!=0)&&(q[i]%w[i]==0))
    					{
    						cout<<q[i]<<"/"<<w[i]<<"="<<"	";
    						e[i]=q[i]/w[i];	
    						//i++;
    					}
    					else
    					{
    						int j=0;
    						while(j<100000)
    						{
    							q[i]=(rand()%(num2-num1+1))+num1;
    							w[i]=(rand()%(num2-num1+1))+num1;
    							if((q[i]!=0)&&(w[i]!=0)&&(q[i]%w[i]==0))
    							{
    								cout<<q[i]<<"/"<<w[i]<<"="<<"	";
    								e[i]=q[i]/w[i];	
    								//i++;
    								j=100000;
    								j++;
    							}
    							else
    							{
    								j++;
    							}
    						}
    					}								
    				}
    				break;    
    		} 
    		
    		
    		if((i+1)%k==0)
    		{
    			cout<<endl;
    			for(int m=0;m<jiange;m++)
    			{
    				cout<<endl;
    			}
    		}
    				
        }
    	
    	cout<<"请答题:"<<endl;
    	for(i=0;i<num;i++)
    	{
    		cout<<"题目"<<i+1<<".";
    		cin>>r[i];
    		if(e[i]==r[i])
    		{
    			cout<<"正确!"<<endl;
    			zong++;
    		}
    		else
    		{
    			cout<<"错误!"<<endl;
    			zong0++;
    		}
    	}
    	cout<<endl<<"正确结果有"<<zong<<"个";
    	cout<<endl<<"错误结果有"<<zong0<<"个"<<endl;
    	//继续吗?
    	cout<<"继续吗?是输入1,否输入0:"<<endl;
    	cin>>con;
    	if(con==1)
    	{
    		cout<<endl;
    		main();
    	}
    	else
    	{
    		return 0;
    	}
    	getch();
        return 0;
    }
    

      

    四、结果截图

    五、心得体会

      程序中我一直没有用到指针及相关的知识。用数组的知识实现了内容,我认为指针跟数组有某种关系,指针可能就是不连续的数组。

    六、PSP0级日志

    一、项目计划总结:

    周活动总结表

    姓名:程鹏远                                                 日期:3月22日

    日期       任务

    听课

    编写程序

    阅读课本

    准备考试

    日总计

    周日

     

    105

     

     

     105

    周一

     

     

     

     

     

    周二

     

     

     

     

     

    周三

     

     

     

     

     

    周四

     

     

     

     

     

    周五

     

     

     

     

     

    周六

     

     

     

     

     

    周总结

     

     

     

     

     

    阶段时间和效率                                           第2 周数(上一次周活动表的周数+1):

    不包括上一周在内的累计时间                                                                         

    总计

     

     

     

     

     

     

     

    平均

     

     

     

     

     

     

     

    最大

     

     

     

     

     

     

     

    最小

     

     

     

     

     

     

     

    以前各周的累计时间                                                                                    

    总计

     105

     

     

     

     

     

     

    平均

     105

     

     

     

     

     

     

    最大

     105

     

     

     

     

     

     

    最小

     105

     

     

     

     

     

     

    二、时间记录表:

    学生        程鹏远                                              日期     322      

    教师        王建民                                              课程      软件工程       

    日期

    开始时间

    结束时间

    中断时间

    净时间

    活动

    备注

    3/22

    1:05

    2:55

    10min

    1小时40分钟

    编写30道四则运算题目

     

     

    三、缺陷记录日志:

    学生    程鹏远

    日期   3月22日 

    教员       王建民   

    程序号                

    日期

    编号

    类型

    引入阶段

    排除阶段

    修复时间

    修复缺陷

     3/22

     01

    20

     编码

     编码

     3分钟

     

     Ctrl+H整个文档的一个替换

  • 相关阅读:
    Android自定义控件之仿美团下拉刷新
    Android性能优化之Bitmap的内存优化
    基于openfire+smack即时通讯instant message开发
    Android各组件/控件间通信利器之EventBus
    android的task任务栈
    Activity的启动模式
    Android 自定义View (一)
    Android之Handler用法总结
    Android中轻松使用线程
    Android 中Activity,Window和View之间的关系
  • 原文地址:https://www.cnblogs.com/zhaixing/p/4357611.html
Copyright © 2011-2022 走看看