• 软件工程第三次作业-------(李利思 岳庆)


    小组成员:李利思  岳庆

    题目:

    请编写一个能自动生成小学四则运算题目的 “软件”;

    让程序能接受用户输入答案,并判定对错;

    最后给出总共 对/错 的数量。

    需求分析:

    • 基本功能

      基本功能点1:实现小学四则运算;

      基本功能点2:该程序能接受用户输入答案,并判断对错;

            基本功能点3:给出总共对/错的数量。

    设计

    • 设计点1:用C语言编程环境实现程序代码的编写;
    • 设计点2:随机产生两个数,分别用1,2,3,4表示计算加法,减法,乘法,除法,通过计算判断出计算的正确与否,并统计出正确与错误的个数。
     1 #include<stdio.h>
     2 #include <stdlib.h>                                                    
     3 #include <time.h>                                                    
     4 int main()
     5 {
     6     int x,y,all=0,r=0,e=0,result;
     7     char z;
     8     int m,n;
     9     printf("欢迎来到小学计算器测试!
    ");
    10     printf("请输入1到4其中一个数字(1表示加法,2表示减法,3表示乘法,4表示除法),当输入为q时,结束测试:
    ");             
    11     scanf("%d",&m);
    12     srand( (unsigned)time( NULL ) );            
    13     while ((z=getchar())!='q')               
    14     {
    15         all++;
    16         x=rand()%50;y=rand()%50;
    17         if(m==1)
    18         {
    19             printf("%d+%d=",x,y);            
    20             scanf("%d",&z);
    21             printf("
    ");
    22             if (x+y==z) 
    23                 r++;
    24             else
    25                 e++;
    26         }
    27         else if(m==2)
    28         {                                      
    29             printf("%d-%d=",x,y);
    30             scanf("%d",&z);
    31             if (x-y==z) 
    32                 r++;
    33             else
    34                 e++;  
    35         }
    36         else if(m==3)
    37         {                                    
    38             printf("%d*%d=",x,y);
    39             scanf("%d",&z);
    40             if (x*y==z) 
    41                 r++;
    42             else
    43                 e++;
    44         }
    45         else if(m==4)
    46         {                             
    47             printf("%d/%d=",x,y);
    48             scanf("%d",&z);
    49             if (x/y==z) 
    50                 r++;
    51             else
    52                 e++;   
    53         }
    54         else                                                        
    55             printf("输入有误!
    ");
    56         result=100*r/all;                                          
    57     }
    58     printf("您的成绩为:%d
    ",result);
    59     printf("您一共完了%d道题目,正确的有%d题,错误的有%d题
    ",all,r,e);
    60     if(result>=60)
    61     {
    62         printf("成绩还不错,别骄傲哦!
    ");
    63     }
    64     else
    65     {
    66         printf("成绩有待提高,加油,别灰心哦!
    ");
    67     }
    68     return 0;     
    69 }

    计算加、减、乘、除法:

    #include<stdio.h>
    void main()
    {
    	/*加法计算*/
    	int Jiafa(int a,int b,int c)
    	{
    		int c = a + b;
    		return c;
    	}
    	/*减法计算*/
    	int Jianfa(int a,int b,int c)
    	{
    		int c = a - b;
    		return c;
    	}
    	/*乘法计算*/
    	int Chengfa(int a,int b,int c)
    	{
    		float c = a * b;
    		return c;
    	}
    	/*除法计算*/
    	float Chufa(int a,int b,int c)
    	{
    		if(b==0)
    		{
    			b=1;
    		}
    		float c =(float) a /(float)b;
    		return c;
    	}
    }
    

    把函数声明放在头文件中:

    1 #include<stdio.h>
    2 #include<stdio.h>
    3 #include<stdio.h>
    4 
    5 int Jiafa(int a,int b,int c);
    6 int Jianfa(int a,int b,int c);
    7 int Chengfa(int a,int b,int c);
    8 float Chufa(int a,int b,int c);

    调试结果:

    两人合作步骤:

    1.修改原程序,使之符合代码风格和设计规范的基本要求;

    2.两人对原程序进行认真分析,得出解决问题的基本思路,拟定做题计划;

    3.采用模块化的设计思想,修改之前的code,将计算功能封装起来;

    4.测试加法功能。

    总结:

    1.编程是一个积累的过程,只要认真去思考,总会有解决问题的方法;

    2.该程序的设计需要符合题目的要求,满足小学四则运算。

    3.规范了代码的格式,使得代码更容易读,也便于检查和修改程序。

    4.学会了一些简单的测试程序中基本功能的方法。

    PSP耗时:

    PSP Personal Software Process Stage Time(h) Time(%)
    ●Design ●具体设计 10 25
    ●Coding ●具体编码 12 30
    ●Code Review ●代码复审 5 12.5
    ●Test ●测试(自测,修改代码) 8 20

    ●Postmortem & Process

    Improvement Plan

    ●事后总结,并提出过程改进计划 5 12.5
  • 相关阅读:
    GOIP connects with Elastix through “config by line”
    Asterisk 的安全性
    sql2005性能优化(在32位系统上突破2G内存使用量的方法) .
    Asterisk的type类型和身份认证
    Elastix GOIP 网关配合
    Elastix 安装G729 G723语音编码
    Delegate,Action,Func,匿名方法,匿名委托,事件 (转载)
    Proxmox Reset Root Password
    volatile适用场景
    ANT教程经典
  • 原文地址:https://www.cnblogs.com/hy1314520/p/4448758.html
Copyright © 2020-2023  润新知