菜鸟学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以及一些常用的数 ...
随机推荐
- 从一张图开始,谈一谈.NET Core和前后端技术的演进之路
从一张图开始,谈一谈.NET Core和前后端技术的演进之路 邹溪源,李文强,来自长沙.NET技术社区 一张图 2019年3月10日,在长沙.NET 技术社区组织的技术沙龙<.NET Core和 ...
- 使用 Moq 测试.NET Core 应用 -- Mock 方法
第一篇文章, 关于Mock的概念介绍: https://www.cnblogs.com/cgzl/p/9294431.html 本文介绍使用Moq来Mock方法. 使用的代码: https://git ...
- .NetCore 使用Cookie
1.首先我们在Startup下面的ConfigureServices中注册授权认证服务以及AddCookie services.AddAuthentication(CookieAuthenticati ...
- NormalDialogFragmentDemo【普通页面的DialogFragment】
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 该Demo主要演示DialogFragment作为普通页面,显示全屏和状态栏下方的效果以及动画效果. 效果图 代码分析 @Overr ...
- docker~swarm搭建docker高可用集群
回到目录 Swarm概念 Swarm是Docker公司推出的用来管理docker集群,它将一群Docker宿主机变成一个单一的,虚拟的主机.Swarm使用标准的Docker API接口作为其前端访问入 ...
- json格式处理及扩展
<script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.js"></script> < ...
- Java并发编程实战 之 对象的共享
上一篇介绍了如何通过同步多个线程避免同一时刻访问相同数据,本篇介绍如何共享和发布对象,使它们被安全地由多个进程访问. 1.可见性 通常,我们无法保证执行读操作的线程能看到其他线程写入的值,因为每个线程 ...
- nginx系列10:通过upstream模块选择上游服务器和负载均衡策略round-robin
upstream模块的使用方法 1,使用upstream和server指令来选择上游服务器 这两个指令的语法如下图: 示例: 2,对上游服务使用keepalive长连接 负载均衡策略round-rob ...
- Django 使用 locals() 函数
locals() 函数会以字典类型返回当前位置的全部局部变量. 在 views.py 中添加 from django.shortcuts import render,HttpResponse,rend ...
- Nginx支持 React browser router
修改nginx配置文件,添加try_file配置如下,即可实现对 React browser router 的支持. location / { root /var/www/mysite; try_fi ...