菜鸟学IT之简易四则运算程序开发
作业要求来源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2166
- 作业要求:
任何编程语言都可以,命令行程序接受一个数字输入,然后输出相应数目的四则运算题目和答案。例如输入数字是 30, 那就输出 30 道题目和答案。 运算式子必须至少有两个运算符,运算数字是在 100 之内的正整数,答案不能是负数。 如:
23 - 3 * 4 = 11
扩展要求:
1) 要求能出和真分数 (二分之一, 十二分之五,等)相关的练习题。
2) 并且要求能处理用户的输入,并判断对错,打分统计。 要求能处理用户输入的真分数, 如 1/2, 5/12 等。
2.个人软件过程耗时估计与统计表(时间以小时为单位)
| PSP2.1 | Personal Software Process Stages | Time Senior Student | Time |
| Planning | 计划 | 6 | 8 |
| · Estimate | 估计这个任务需要多少时间 | 12 | 8 |
| Development | 开发 | 8 | 6 |
| · Analysis | 需求分析 (包括学习新技术) | 0 | 0 |
| · Design Spec | 生成设计文档 | 0 | 0 |
| · Design Review | 设计复审 | 0 | 0 |
| · Coding Standard | 代码规范 | 1 | 0.5 |
| · Design | 具体设计 | 0 | 0 |
| · Coding | 具体编码 | 3 | 2 |
| · Code Review | 代码复审 | 0 | 0 |
| · Test | 测试(自我测试,修改代码,提交修改) | 1 | 0.5 |
| Reporting | 报告 | 0 | 0 |
在这次代码联系上没有规范性的按照统计表要求执行,没有效率可言(这需要提高)。四则运算的运算也没有使用高级的算法进行计算,代码也比较冗余重复。但基本内容都能够实现。
3.代码详解:
- 通过使用C语言自带的rand()函数产生随机数的一个随机整数与运算符,进行题目的打印:
/*函数功能:生成一个1-10的随机整数*/
int CreateRandomNumber()
{
return rand()%+;
}
/*函数功能:随机生成一个运算符号(+,-,*,/)*/
char CreateRandomOperator()
{
int op;
op=rand()%+;
switch(op)
{
case :
return '+';
case :
return '-';
case :
return '*';
case :
return '/';
}
return ;
}
- 通过goto语句删除答案为负数的题目:当userAnswer答案小于零时,重新随机生成数据。
loop: a=CreateRandomNumber();
/*产生一个随机数赋值给整型变量a*/
b=CreateRandomNumber();
c=CreateRandomNumber();
/*产生一个随机运算符赋值给字符变量opChar*/
opChar=CreateRandomOperator();
opChar2=CreateRandomOperator(); userAnswer=Calculate(a,opChar,b,opChar2,c);
if(userAnswer<)
goto loop;
- 通过比较abc的值进行真分数的输出:
if(opChar2=='/'&& b<c){
q = b;
b = c;
c = q;
}
if(opChar=='/'&& a<b){
q = a;
a = b;
b = q;
}
if(opChar2=='/'&& b<c){
q = b;
b = c;
c = q;
}
3.运行截图

4.总结
这次的代码撰写比较简单,但随着扩展要求的增加代码的复杂度与代码量也逐渐增加,难度也大大加强。但是经过舍友的解答后,运算思路也逐渐清晰起来也完成了老师的题目的要求,但这次的代码还是不够完美,运算规则也不够完善需要后期继续优化。通过这次的实验我了解到每一个项目的开发初始时可能是一个小小的要求几行代码就可以解决了,但随着扩展要求的增多就变成了一个大项目、大工程。
源码GitHub地址:https://github.com/JGaoLin/MyWork
菜鸟学IT之简易四则运算程序开发的更多相关文章
- 菜鸟学IT之四则运算升级版
菜鸟学IT之四则运算升级版 本次作业要求来自:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2213 团队代码github远程仓库的 ...
- 菜鸟学自动化测试(八)----selenium 2.0环境搭建(基于maven)
菜鸟学自动化测试(八)----selenium 2.0环境搭建(基于maven) 2012-02-04 13:11 by 虫师, 11419 阅读, 5 评论, 收藏, 编辑 之前我就讲过一种方试来搭 ...
- 四则运算程序(java基于控制台)
四则运算题目生成程序(基于控制台) 一.题目描述: 1. 使用 -n 参数控制生成题目的个数,例如 Myapp.exe -n 10 -o Exercise.txt 将生成10个题目. 2. 使用 -r ...
- 菜鸟学Java(十五)——Java反射机制(二)
上一篇博文<菜鸟学编程(九)——Java反射机制(一)>里面,向大家介绍了什么是Java的反射机制,以及Java的反射机制有什么用.上一篇比较偏重理论,理论的东西给人讲出来总感觉虚无缥缈, ...
- 菜鸟学Java(十四)——Java反射机制(一)
说到反射,相信有过编程经验的人都不会陌生.反射机制让Java变得更加的灵活.反射机制在Java的众多特性中是非常重要的一个.下面就让我们一点一点了解它是怎么一回事. 什么是反射 在运行状态中,对于任意 ...
- 学习spring2--跟我一起学Spring 3(3)–使用Spring开发第一个HelloWorld应用
http://www.importnew.com/13246.html 首页 所有文章 资讯 Web 架构 基础技术 书籍 教程 我要投稿 更多频道 » - 导航条 - 首页 所有文章 资讯 ...
- django 简易博客开发 5 markdown支持、代码高亮、gravatar头像服务
上一篇博客介绍了comments库使用及ajax支持,现在blog已经具备了基本的功能,但是只能发表文字,不支持富文本编辑.今天我们利用markdown添加富文本支持. markdown语法说明: h ...
- django 简易博客开发 4 comments库使用及ajax支持
首先还是贴一下源代码地址 https://github.com/goodspeedcheng/sblog 上一篇文章我们介绍了静态文件使用以及如何使用from实现对blog的增删改,这篇将介绍如何给 ...
- django 简易博客开发 3 静态文件、from 应用与自定义
首先还是贴一下源代码地址 https://github.com/goodspeedcheng/sblog 上一篇博客我们介绍了 django 如何在views中使用templates以及一些常用的数 ...
随机推荐
- Docker 上传镜像
文章首发自个人网站:https://www.exception.site/docker/docker-push-image 本文中,您将学习如何上传 Docker 镜像至 Docker Hub 上. ...
- SQLI LABS Basic Part(1-22) WriteUp
好久没有专门练SQL注入了,正好刷一遍SQLI LABS,复习巩固一波~ 环境: phpStudy(之前一直用自己搭的AMP,下了这个之后才发现这个更方便,可以切换不同版本的PHP,没装的小伙伴赶紧试 ...
- WebApi生成在线API文档--Swagger
1.前言 1.1 SwaggerUI SwaggerUI 是一个简单的Restful API 测试和文档工具.简单.漂亮.易用(官方demo).通过读取JSON 配置显示API. 项目本身仅仅也只依赖 ...
- 如何在ASP.NET Core程序启动时运行异步任务(3)
原文:Running async tasks on app startup in ASP.NET Core (Part 3) 作者:Andrew Lock 译者:Lamond Lu 之前我写了两篇有关 ...
- okhttputils【 Android 一个改善的okHttp封装库】使用(一)
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 本文使用的OKHttp封装库是张鸿洋(鸿神)写的,因为在项目中一直使用这个库,所以对于一些常用的请求方式都验证过,所以特此整理下. ...
- Flink从入门到放弃(入门篇4) DataStreamAPI
戳更多文章: 1-Flink入门 2-本地环境搭建&构建第一个Flink应用 3-DataSet API 4-DataSteam API 5-集群部署 6-分布式缓存 7-重启策略 8-Fli ...
- 微服务之consul(一)
一.概述 consul是google开源的一个使用go语言开发的服务发现.配置管理中心服务.内置了服务注册与发现框 架.分布一致性协议实现.健康检查.Key/Value存储.多数据中心方案,不再需要依 ...
- java并发多线程显式锁Condition条件简介分析与监视器 多线程下篇(四)
Lock接口提供了方法Condition newCondition();用于获取对应锁的条件,可以在这个条件对象上调用监视器方法 可以理解为,原本借助于synchronized关键字以及锁对象,配备了 ...
- Apache web服务器(LAMP架构)(week3_day4)--技术流ken
apache介绍 1).世界上使用率最高的网站服务器,最高时可达70%:官方网站:apache.org 2).http 超文本协议 HTML 超文本标记语言 3).URL 统一资源定位符 http:/ ...
- 第三章 CLR如何解析引用类型
C#编译器将代码打包成托管模块后,接着会将这些模块合并成程序集,然后统一加载到一个具体的目录,CLR在这个目录查找并且加载所需要的DLL或者exe. 程序集分类:弱命名程序集和强命名程序集,强命名程序 ...