zoukankan      html  css  js  c++  java
  • 【软件工程Ⅱ】作业四 |个人项目-小学四则运算 “软件”之初版(C语言)

    本次作业的要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2186

    本次作业代码的github地址:https://github.com/Molly134/lianxi.git


     

    一、题目要求

    像《构建之法》的人物阿超那样,写一个能自动生成小学四则运算题目的命令行 “软件”。

    具体要求:

    任何编程语言都可以,命令行程序接受一个数字输入,然后输出相应数目的四则运算题目和答案。例如输入数字是 30, 那就输出 30 道题目和答案。 运算式子必须至少有两个运算符,运算数字是在 100 之内的正整数,答案不能是负数。 如:23 - 3 * 4 = 11

    二、小学四则运算 “软件”之初版

    1.需求分析

    1.1 四则运算需求分析

    2.系统流程图

    1.2 系统流程图

     3.代码实现

    本次作业是用C语言来实现的,其代码以及可运行程序已经上传至githubarithmetic(1)文件夹中。

     

    代码实现:

    #include<stdio.h>
    #include<math.h>
    #include<windows.h>
    int right=0;
    int wrong=0;
    void add() { //加法运算
        int a,b,c,d;
        a=rand()%100;
        b=rand()%100;
        c=rand()%100;
        printf("请回答:
    		 %d + %d + %d = ",a,b,c);
        scanf("%d",&d);
        if(a+b+c==d) {
            printf("回答正确!
    ");
            right++;
        } else {
            printf("回答错误!
    ");
            wrong++;
        }
    }
    
    void minus() { //减法运算
        int a,b,c,d;
        a=rand()%100;
        b=rand()%100;
        c=rand()%100;
        printf("请回答:
    		 %d - %d - %d = ",a,b,c);
        scanf("%d",&d);
        if(a-b-c==d) {
            printf("回答正确!
    ");
            right++;
        } else {
            printf("回答错误!
    ");
            wrong++;
        }
    }
    
    void multiply() { //乘法运算
        int a,b,c,d;
        a=rand()%100;
        b=rand()%100;
        c=rand()%100;
        printf("请回答:
    		 %d * %d * %d = ",a,b,c);
        scanf("%d",&d);
        if(a*b*c==d) {
            printf("回答正确!
    ");
            right++;
        } else {
            printf("回答错误!
    ");
            wrong++;
        }
    }
    
    void divide() { //除法运算
        int a,b,c,d;
        a=rand()%100;
        b=rand()%100;
        c=rand()%100;
        printf("请回答:
    		 %d / %d / %d = ",a,b,c);
        scanf("%d",&d);
        if(a/b/c==d) {
            printf("回答正确!
    ");
            right++;
        } else {
            printf("回答错误!
    ");
            wrong++;
        }
    }
    
    void main() {
        int choise;
        int con=0;
        int i=0,j=0;
        printf("
    			欢迎进入简易四则运算
    
    ");
        while(1) {
            printf("请选择:
    ");
            printf("			  加法运算(请输入1)
    ");
            printf("			  减法运算(请输入2)
    ");
            printf("			  乘法运算(请输入3)
    ");
            printf("			  除法运算(请输入4)
    ");
            printf("			  退出运算(请输入5)
    ");
            if(con==0)
                scanf("%d",&choise);
            switch(choise) {
                
                case 1://加法
                    printf("请输入题目数目:");
                    scanf("%d",&i);
                    if(i>0) {
                        for(j=0; j<i; j++) {
                            add();
                        }
                    } else
                        printf("输入错误,请重新输入!");
                    break;
    
                case 2://减法
                    printf("请输入题目数目:");
                    scanf("%d",&i);
                    if(i>0) {
                        for(j=0; j<i; j++) {
                            minus();
                        }
                    } else
                        printf("输入错误,请重新输入!");
                    break;
    
                case 3://乘法
                    printf("请输入题目数目:");
                    scanf("%d",&i);
                    if(i>0) {
                        for(j=0; j<i; j++) {
                            multiply();
                        }
                    } else
                        printf("输入错误,请重新输入!");
                    break;
    
                case 4://除法
                    printf("请输入题目数目:");
                    scanf("%d",&i);
                    if(i>0) {
                        for(j=0; j<i; j++) {
                            divide();
                        }
                    } else
                        printf("输入错误,请重新输入!");
                    break;
                case 5:
                    return;
            }
            printf("
    			继续运算?(请输入1)
    ");
            printf("
    			重新选择?(请输入2)
    ");
            printf("
    			退出运算?(请输入3)
    ");
            scanf("%d",&con);
            if(con==1)
                con=1;
            else if(con==2)
                con=0;
            else if(con==3)
                break;
            else
                printf("抱歉!,你输入的指令有误!请重新输入!
    ");
        }
        printf("您总共完成了 %d 道题
    正确 %d 道
    错误 %d 道
    ",right+wrong,right,wrong);
    }

    4.运行结果

    1.3 开始界面

    1.4 加法运算

    1.5 减法运算

    1.6 乘法运算

    1.7 除法运算

    1.8 结束界面

    三、个人软件过程耗时估计与统计表(注:因为此项目还未完成,所以此表暂空)

    PSP2.1 Personal Software Process Stages Time
    Planning 计划  
    ·Estimate 估计这个任务需要多少时间  
    Development 开发  
    ·Analysis 需求分析 (包括学习新技术)  
    ·Design Spec 生成设计文档  
    · Design Review 设计复审  
    · Coding Standard 代码规范  
    · Design 具体设计  
    · Coding 具体编码  
    · Code Review 代码复审  
    · Test 测试(自我测试,修改代码,提交修改)  
    ·Reporting 报告  
    · 测试报告  
    · 计算工作量  
    · 并提出过程改进计划  

     

     

     

     

     

     

     

     

     

     

  • 相关阅读:
    SQLSERVER中的sp_reset_connection存储过程的作用
    SQLSERVER数据库经常置疑的原因
    sqlserver2005数据库邮件
    SQLSERVER书签查找的通俗理解
    msdb数据库里的表究竟存储什么信息
    造成阻塞和死锁的3大原因:
    SQLSERVER中的锁资源类型RID KEY PAG EXT TAB DB FIL
    总结一下要影响SQLSERVER锁的申请和释放行为要考虑的因素
    Linux下getsockopt/setsockopt 函数说明
    HTTP协议详解(转)
  • 原文地址:https://www.cnblogs.com/bhuan/p/9789030.html
Copyright © 2011-2022 走看看