本次作业的要求来自于: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语言来实现的,其代码以及可运行程序已经上传至github的arithmetic(1)文件夹中。

代码实现:

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

【软件工程Ⅱ】作业四 |个人项目-小学四则运算 “软件”之初版(C语言)的更多相关文章

  1. 作业四:个人项目-小学四则运算之JAVA版

    作业的要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2186 代码所在的github远程仓库的地址:https://git ...

  2. 《软件工程》小组团队项目-小学生四则运算APP(First Sprint)

    <软件工程>团队项目我们小组选择了小学生四则运算APP,在上学期原有的项目基础上进行更新升级.(自我感觉我们团队上学期的小学生四则运算APP是较为成功且实用的,不过这学期学习到了新的知识, ...

  3. 作业二:个人编程项目——编写一个能自动生成小学四则运算题目的程序

    1. 编写一个能自动生成小学四则运算题目的程序.(10分)   基本要求: 除了整数以外,还能支持真分数的四则运算. 对实现的功能进行描述,并且对实现结果要求截图.   本题发一篇随笔,内容包括: 题 ...

  4. 小学四则运算结对项目报告(GUI)

    小学四则运算结对项目报告(GUI) 一.Coding.Net项目地址: https://git.coding.net/wsshr/Calculation.git 二.PSP表格(完成前): PSP 任 ...

  5. 个人第四次作业:Alpha项目测试

    个人第四次作业:Alpha项目测试 格式描述 详情 这个作业属于哪个课程 http://edu.cnblogs.com/campus/xnsy/GeographicInformationScience ...

  6. 小学四则运算APP 第二次冲刺 第四天

    团队成员:陈淑筠.杨家安.陈曦 团队选题:小学四则运算APP 第二次冲刺阶段时间:11.29~12.09 本次发布的是合并后的选择题功能界面的设置: ChoiceSet.java: package c ...

  7. 小学四则运算APP 第一个冲刺阶段 第四天

    团队成员:陈淑筠.杨家安.陈曦 团队选题:小学四则运算APP 第一次冲刺阶段时间:11.17~11.27 本次发布我们增加了CalculatorsActivity.java.YunsuanActivi ...

  8. 结对编程项目报告--四则运算CORE

    <!doctype html> sw_lab2.mdhtml {overflow-x: initial !important;}#write, body { height: auto; } ...

  9. 【第二次个人作业】结对作业Core第一组:四则运算生成PB16061082+PB16120517

    [整体概况] 1.描述最终的代码的实现思路以及关键代码. 2.结对作业两个人配合的过程和两个人分工. 3.API接口文档和两个组的对接. 4.效能分析,优化分析和心得体会. [代码实现] 一. 实现功 ...

随机推荐

  1. [Jenkins] 如何修改jenkins上的环境变量

    现象 当本地的环境变量发生变化时,在jenkins 构建时里面访问的环境变量仍是之前旧的(未更新的)导致构建出现错误,比如我以我所遇到的问题进行简单写下,下面例子中我是涉及到修改 PYTHONPATH ...

  2. R环境搭建

    R下载安装 https://mirrors.tuna.tsinghua.edu.cn/CRAN/ RStudio下载安装 https://www.rstudio.com/products/rstudi ...

  3. 键值对的算子讲解 PairRDDFunctions

    1:groupByKey def groupByKey(): RDD[(K, Iterable[V])] 根据key进行聚集,value组成一个列表,没有进行聚集,所以在有shuffle操作时候避免使 ...

  4. eclipse打断点调试进入到class文件中,不显示变量值的解决办法汇总

    每天学习一点点 编程PDF电子书免费下载: http://www.shitanlife.com/code 问题描述:eclipse打断点调试进入到class文件中,而且监视区不显示变量结果 是由于对应 ...

  5. 路由器不重启,是否ip就永远不变

    今天发现公司的公网ip突然变了,没有人去动过路由器怎么会这样呢?经查原因如下:1.不一定,IP变化是每一次拨号重新获取的.2.路由器重启了,会自动拨号,获得IP3.但如果说因各种原因,掉线,路由器也会 ...

  6. webstorm 设置 sass自动编译问题

    sass语法.使用它带来的好处,就不再这里做介绍了,主要看怎么在webstorm里配置自动编译. sass编译是需要Ruby环境的,可以到这里去下载  :  https://rubyinstaller ...

  7. go标准库的学习-crypto/des

    参考:https://studygolang.com/pkgdoc 导入方式: import "crypto/des" des包实现了DES标准和TDEA算法,参见U.S. Fed ...

  8. JavaScript高级程序设计学习(二)之基本概念

    任何语言的核心都必然会描述这门语言基本的工作原理.而描述的内容通常都要涉及这门语 言的语法.操作符.数据类型.内置功能等用于构建复杂解决方案的基本概念.如前所述, ECMA-262通过叫做 ECMAS ...

  9. 在CentOS7服务器端启动jupyter notebook服务,在windows端使用jupyter notebook,服务器充当后台计算云端

    在CentOS7服务器端启动jupyter notebook服务,在windows端使用jupyter notebook,服务器充当后台计算云端 在服务器端启动jupyter notebook服务,在 ...

  10. 专业语音芯片MT8516 华为AM08蓝牙音箱

    天猫精灵和亚马逊专用的语音芯片哦!联发科! 华为AM08蓝牙音箱 WT51F5161T的8052 微处理器,RC内振12MHz,具有16Kx8 的flash,硬件IIC,SPI,CEC,IR,RTC, ...