• 软件工程--课堂练习之四则运算之续编


    一、设计思想

    在之前的基础上添加了如下功能:

    1.为使用户可定制数量以及打印方式,用户自己输入

    2.参数设置: 提示用户参与运算的数值范围;

                      提示用户输入出多少道题目;

                      提示用户输入题目输出列数;

                      提示用户是否有乘除法运算;

                      提示用户结果是否有负数;

      二、代码                                

      1 #include "stdio.h"
      2 #include "stdlib.h"
      3 #include "time.h"
      4 int main(){
      5     srand(time(NULL));
      6     int a,b,c,cheng,i,j,n,m,x,y,konghang;    //a,b为运算数,c为选择哪个运算符,i为循环次数
      7     printf("欢迎使用四则运算出题系统
    ");
      8     printf("我们提供一下功能:
    ");
      9     printf("    1.题目的数值范围(暂不支持小数)
    ");
     10     printf("    2.题目的数量                    
    ");
     11     printf("    3.打印时每行题的数量            
    ");
     12     printf("    4.答案中会不会出现负数的结果    
    ");
     13     printf("    5.题目中是否会出现乘除运算      
    ");
     14     printf("    6.打印时每行的间隔              
    ");
     15     printf("请输入数值范围:");
     16     scanf("%d",&x);
     17     printf("请选择出题数量:");
     18     scanf("%d",&j);   //j为题目数量
     19     printf("请输入每行题的数量:");
     20     scanf("%d",&n);    //n为每行题的数量
     21     printf("答案是否有负数(1为有,0为没有):");
     22     scanf("%d",&m);
     23     while(m!=0 && m!=1)                          //判断用户是否按要求输入
     24      {
     25          printf("sorry!输入错误,请按要求输入:");
     26          scanf("%d",&m);
     27      }
     28 
     29     printf("是否有乘除运算(1为有,0为没有):");
     30     scanf("%d",&cheng);
     31     while(cheng!=0 && cheng!=1)                          //判断用户是否按要求输入
     32      {
     33          printf("sorry!输入错误,请按要求输入:");
     34          scanf("%d",&cheng);
     35      }
     36     printf("中间有几个空行:");
     37     scanf("%d",&konghang);
     38     if(cheng==1)
     39     {
     40         if(m==0)
     41         {
     42             for(i=1;i<=j;i++)
     43             {
     44                 a=rand()%x;
     45                 b=rand()%x;
     46                 c=rand()%4;
     47                 printf("(%d)",i);
     48                 switch(c)
     49                 {
     50                 case 0:
     51                     printf("%d+%d=	",a,b);
     52                     break;
     53                 case 1:
     54                     if(a>=b)
     55                         printf("%d-%d=	",a,b);
     56                     else
     57                         printf("%d-%d=	",b,a);
     58                     break;
     59                 case 2:
     60                     printf("%d*%d=	",a,b);
     61                     break;    
     62                 case 3:
     63                     if(b==0)
     64                         printf("%d/%d=	",b,a);
     65                     else
     66                         printf("%d/%d=	",a,b);
     67                     break;
     68                 default:
     69                     {
     70                         printf("出错啦~~~");
     71                     }
     72                 }
     73                 if(i%n==0)
     74                 {
     75                     for(int p=1;p<konghang;p++)
     76                     {
     77                          printf("
    ");
     78                     }
     79                 }
     80             }
     81             
     82         }
     83     else
     84     {
     85         for(i=1;i<=j;i++)
     86         {
     87             a=rand()%x;
     88             b=rand()%x;
     89             c=rand()%4;
     90             printf("(%d)",i);
     91             switch(c)
     92             {
     93             case 0:
     94                 printf("%d+%d=	",a,b);
     95                 break;
     96             case 1:
     97                 printf("%d-%d=	",a,b);
     98                 break;
     99             case 2:
    100                 printf("%d*%d=	",a,b);
    101                 break;
    102             case 3:
    103                 if(b==0)
    104                     printf("%d/%d=	",b,a);
    105                 else
    106                     printf("%d/%d=	",a,b);
    107                 break;
    108             default:
    109                     {
    110                         printf("出错啦~~~");
    111                     }
    112             }
    113             if(i%n==0)
    114                 {
    115                     for(int p=1;p<konghang;p++)
    116                     {
    117                          printf("
    ");
    118                     }
    119                 }
    120         }
    121     }
    122     
    123     }
    124     else
    125     {
    126         if(m==0)
    127         {
    128         for(i=1;i<=j;i++)
    129         {
    130             a=rand()%x;
    131             b=rand()%x;
    132             c=rand()%2;
    133             printf("(%d)",i);
    134             switch(c)
    135             {
    136             case 0:
    137                 printf("%d+%d=	",a,b);
    138                 break;
    139             case 1:
    140                 if(a>=b)
    141                     printf("%d-%d=	",a,b);
    142                 else
    143                     printf("%d-%d=	",b,a);
    144                 break;
    145             default:
    146                     {
    147                         printf("出错啦~~~");
    148                     }
    149             }
    150             if(i%n==0)
    151                 {
    152                     for(int p=1;p<konghang;p++)
    153                     {
    154                          printf("
    ");
    155                     }
    156                 }
    157         }
    158         
    159     }
    160     else
    161     {
    162         for(i=1;i<=j;i++)
    163         {
    164             a=rand()%x;
    165             b=rand()%x;
    166             c=rand()%2;
    167             printf("(%d)",i);
    168             switch(c)
    169             {
    170             case 0:
    171                 printf("%d+%d=	",a,b);
    172                 break;
    173             case 1:
    174                 printf("%d-%d=	",a,b);
    175                 break;
    176             default:
    177                     {
    178                         printf("出错啦~~~");
    179                     }
    180             }
    181                 if(i%n==0)
    182                 {
    183                     for(int p=1;p<konghang;p++)
    184                     {
    185                          printf("
    ");
    186                     }
    187                 }
    188         }
    189     }
    190     
    191     }
    192     printf("
    ");
    193     
    194     return 0;
    195 }

    三、运行结果截图:

     四、PSP0表

    项目计划总结:

    周活动总结表

    姓名:袁亚姣                                          日期:

    日期       任务

    听课

    编写程序

    阅读课本

    准备考试

    日总计

    周日

    周一

    周二

     400

     20

     480

    周三

     100

     60

     40

     200

    周四

     200

     90

     260

    周五

     200

     60

     60

     330

    周六

     20

     20

     40

    周总结

     900

     230

     140

     1270

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

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

    总计

    平均

    最大

    最小

    以前各周的累计时间                                                                                    

    总计

     900

     230

     140

    1270 

    平均

     900

     230

     140

    1270

    最大

     900

     230

     140

    1270

    最小

     900

     230

    140 

    1270

    二、时间记录表:

    学生      袁亚姣                                              日期     2015.03.15    

    教师        王建民                                             课程           PSP       

    日期

    开始时间

    结束时间

    中断时间

    净时间

    活动

    备注

     15/3/11

     8:00

     9:50

     10

     100

     上课

     课间休息

     10:00

     10:40

     40

     阅读

     《梦断代码》

     20:00

     21:20

     20

     60

     编程

     与同学讨论

     15/3/12

     10:10

    12:00 

     10

     100

     上课

     课间休息

     14:00

     15:50

     10

     100

     上课

     课间休息

     20:00

     21:30

     90

     编程

    15/3/13

    8:00

    12:00

    40

    200

    上课

    课间休息

    20:00

    21:30

    30

    60

    编程

    与同学讨论

    22:00

    23:00

    60

    阅读

    15/3/14

    10:00

    10:20

    20

    优化代码

    11:00

    11:20

    20

    阅读

    三、缺陷记录日志:

    学生        袁亚姣   

    日期        15.3.15 

    教员       王建民   

    程序号                

    日期

    编号

    类型

    引入阶段

    排除阶段

    修复时间

    修复缺陷

     15/3/11

     1

     编码

     编译

     5min

     描述:%d,&不会使用,傻傻分不清

     15/3/12

     2

     编码

     编译

     1min

     描述:忘记写;

     15/3/13

     3

     编码

     编译

     1min

     描述:加了一个if语句,忘记右边的”}”了

     五、心得体会

    程序仅仅实现了几个功能,还不完善。而且,我把所有的程序都写到主函数里面了,维护起来相当困难,但是由于不太会使用函数调用,也就没有改进。

    刚刚拿到题目是,很头疼,不知道怎么去写,后来,真正去写的时候,从每个小问题开始实现,发现并没有我想象中的那么困难,所以以后要改正逃避的毛病,多练,多写,多看

    其他的功能,我日后也会慢慢的去实现。

  • 相关阅读:
    常用的输出方法
    使用Action()和ActionLink()生成链接
    "??"运算符
    使用路由数据
    路由匹配总结
    routes.MapRoute()定义路由的要求
    控制器和视图数据传递小结
    跨请求数据传递TempData
    Redis安装创建
    JAVA获取当前时间加一天
  • 原文地址:https://www.cnblogs.com/yuanyajiao/p/4339034.html
Copyright © 2020-2023  润新知