【软件工程Ⅱ】作业四 |个人项目-小学四则运算 “软件”之初版(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语言来实现的,其代码以及可运行程序已经上传至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语言)的更多相关文章
- 作业四:个人项目-小学四则运算之JAVA版
作业的要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2186 代码所在的github远程仓库的地址:https://git ...
- 《软件工程》小组团队项目-小学生四则运算APP(First Sprint)
<软件工程>团队项目我们小组选择了小学生四则运算APP,在上学期原有的项目基础上进行更新升级.(自我感觉我们团队上学期的小学生四则运算APP是较为成功且实用的,不过这学期学习到了新的知识, ...
- 作业二:个人编程项目——编写一个能自动生成小学四则运算题目的程序
1. 编写一个能自动生成小学四则运算题目的程序.(10分) 基本要求: 除了整数以外,还能支持真分数的四则运算. 对实现的功能进行描述,并且对实现结果要求截图. 本题发一篇随笔,内容包括: 题 ...
- 小学四则运算结对项目报告(GUI)
小学四则运算结对项目报告(GUI) 一.Coding.Net项目地址: https://git.coding.net/wsshr/Calculation.git 二.PSP表格(完成前): PSP 任 ...
- 个人第四次作业:Alpha项目测试
个人第四次作业:Alpha项目测试 格式描述 详情 这个作业属于哪个课程 http://edu.cnblogs.com/campus/xnsy/GeographicInformationScience ...
- 小学四则运算APP 第二次冲刺 第四天
团队成员:陈淑筠.杨家安.陈曦 团队选题:小学四则运算APP 第二次冲刺阶段时间:11.29~12.09 本次发布的是合并后的选择题功能界面的设置: ChoiceSet.java: package c ...
- 小学四则运算APP 第一个冲刺阶段 第四天
团队成员:陈淑筠.杨家安.陈曦 团队选题:小学四则运算APP 第一次冲刺阶段时间:11.17~11.27 本次发布我们增加了CalculatorsActivity.java.YunsuanActivi ...
- 结对编程项目报告--四则运算CORE
<!doctype html> sw_lab2.mdhtml {overflow-x: initial !important;}#write, body { height: auto; } ...
- 【第二次个人作业】结对作业Core第一组:四则运算生成PB16061082+PB16120517
[整体概况] 1.描述最终的代码的实现思路以及关键代码. 2.结对作业两个人配合的过程和两个人分工. 3.API接口文档和两个组的对接. 4.效能分析,优化分析和心得体会. [代码实现] 一. 实现功 ...
随机推荐
- ArcEngine中加载ArcGIS Server地图服务
代码如下: private void addMapServerLayer(object sender, EventArgs e) { IActiveView pActiveV ...
- HDU3949 XOR
嘟嘟嘟 集训的时候发现自己不会线性基,就打算学一下. 这东西学了挺长时间,其实不是因为难,而是天天上午考试,下午讲题,结果晚上就开始颓了. 今天总算是有大块的时间好好学了一遍. 这里推荐menci大佬 ...
- 使用k8s cronjob ,清除应用生成的日志文件
目前应用日志,tomcat日志 统一输出到 /data/logs/pod名字/ 目录下,并且/data/logs 目录挂载到cephfs上, tomcat 日志使用 cronolog进行日志切割 使用 ...
- 1.9 Android程序签名打包
本节引言: 本节给大家介绍的是如何将我们的程序打包成Apk文件,并且为我们的Apk签名! 1.什么是签名,有什么用: Android APP都需要我们用一个证书对应用进行数字签名,不然的话是无法安装到 ...
- 20145203盖泽双 《网络对抗技术》实践八:Web基础
20145203盖泽双 <网络对抗技术>实践八:Web基础 1.实践目标 (1)编写Web前端--含有表单的HTML代码. (2)编写Web前端--javascipt验证用户名.密码的代码 ...
- MATLAB卷积运算(conv、conv2、convn)解释
1 conv(向量卷积运算) 所谓两个向量卷积,说白了就是多项式乘法.比如:p=[1 2 3],q=[1 1]是两个向量,p和q的卷积如下:把p的元素作为一个多项式的系数,多项式按升幂(或降幂)排列, ...
- 项目Alpha冲刺 2
作业描述 课程: 软件工程1916|W(福州大学) 作业要求: 项目Alpha冲刺(团队) 团队名称: 火鸡堂 作业目标: 进行github实战训练,锻炼团队合作能力 1.团队信息 队名:火鸡堂 队员 ...
- 在项目中,多个方法会调用相同的sql语句,怎么解决各个方法的不同sql查询,解决冲突。
公司的代码中sql语句,可能会被多个方法进行调用,但是有的方法会关联到别的表,这样的话,如果修改不当,那么同样调用该sql语句的方法,会出现报错. 最近做的公司的一个功能,就出现这样一个问题,虽然本功 ...
- 虚拟机vbox
https://www.virtualbox.org/wiki/Linux_Downloads 一直在报内核出错的问题,我尝试了各种方法还是无果,猜测是版本的问题,这里推荐各位安装virtualbox ...
- 11.11 开课二个月零七天(ajax和bootstrp做弹窗)
1.用ajax做弹窗显示信息详情 nation.php <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&qu ...