作业要求来源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2166

  1. 作业要求:

任何编程语言都可以,命令行程序接受一个数字输入,然后输出相应数目的四则运算题目和答案。例如输入数字是 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之简易四则运算程序开发的更多相关文章

  1. 菜鸟学IT之四则运算升级版

     菜鸟学IT之四则运算升级版 本次作业要求来自:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2213 团队代码github远程仓库的 ...

  2. 菜鸟学自动化测试(八)----selenium 2.0环境搭建(基于maven)

    菜鸟学自动化测试(八)----selenium 2.0环境搭建(基于maven) 2012-02-04 13:11 by 虫师, 11419 阅读, 5 评论, 收藏, 编辑 之前我就讲过一种方试来搭 ...

  3. 四则运算程序(java基于控制台)

    四则运算题目生成程序(基于控制台) 一.题目描述: 1. 使用 -n 参数控制生成题目的个数,例如 Myapp.exe -n 10 -o Exercise.txt 将生成10个题目. 2. 使用 -r ...

  4. 菜鸟学Java(十五)——Java反射机制(二)

    上一篇博文<菜鸟学编程(九)——Java反射机制(一)>里面,向大家介绍了什么是Java的反射机制,以及Java的反射机制有什么用.上一篇比较偏重理论,理论的东西给人讲出来总感觉虚无缥缈, ...

  5. 菜鸟学Java(十四)——Java反射机制(一)

    说到反射,相信有过编程经验的人都不会陌生.反射机制让Java变得更加的灵活.反射机制在Java的众多特性中是非常重要的一个.下面就让我们一点一点了解它是怎么一回事. 什么是反射 在运行状态中,对于任意 ...

  6. 学习spring2--跟我一起学Spring 3(3)–使用Spring开发第一个HelloWorld应用

    http://www.importnew.com/13246.html     首页 所有文章 资讯 Web 架构 基础技术 书籍 教程 我要投稿 更多频道 » - 导航条 - 首页 所有文章 资讯 ...

  7. django 简易博客开发 5 markdown支持、代码高亮、gravatar头像服务

    上一篇博客介绍了comments库使用及ajax支持,现在blog已经具备了基本的功能,但是只能发表文字,不支持富文本编辑.今天我们利用markdown添加富文本支持. markdown语法说明: h ...

  8. django 简易博客开发 4 comments库使用及ajax支持

    首先还是贴一下源代码地址  https://github.com/goodspeedcheng/sblog 上一篇文章我们介绍了静态文件使用以及如何使用from实现对blog的增删改,这篇将介绍如何给 ...

  9. django 简易博客开发 3 静态文件、from 应用与自定义

    首先还是贴一下源代码地址  https://github.com/goodspeedcheng/sblog 上一篇博客我们介绍了 django 如何在views中使用templates以及一些常用的数 ...

随机推荐

  1. 从壹开始前后端分离 [ Vue2.0+.NET Core2.1] 二十║Vue基础终篇:传值+组件+项目说明

    缘起 新的一天又开始啦,大家也应该看到我的标题了,是滴,Vue基础基本就到这里了,咱们回头看看这一路,如果你都看了,并且都会写了,那么现在你就可以自己写一个Demo了,如果再了解一点路由,ajax请求 ...

  2. Django rest framework源码分析(1)----认证

    目录 Django rest framework(1)----认证 Django rest framework(2)----权限 Django rest framework(3)----节流 Djan ...

  3. 内联汇编获取Kernaer32基址.

    DWORD GetKerner32ImageBase() { DWORD nIMageBase = 0; __asm { xor edx,edx mov ecx, fs:[0x30]; mov ecx ...

  4. RequireJS入门级_RequireJS能给我们带来什么帮助?

    前言:其实很早前就已经接触和了解到RequireJS了,当时只是大概明白它能用来控制JS的加载顺序,即:页面一定要先加载这个JS,再加载那个JS,对于RequireJS的好处还没有一个真正的体会和认识 ...

  5. Java 中的几种线程池,你之前用对了吗

    好久不发文章了,难道是因为忙,其实是因为懒.这是一篇关于线程池使用和基本原理的科普水文,如果你经常用到线程池,不知道你的用法标准不标准,是否有隐藏的 OOM 风险.不经常用线程池的同学,还有对几种线程 ...

  6. ADO.NET学习(一)

    一.ADO.NET简介 ADO.NET可以看作是C#语言访问数据库的一种方式.编程语言编写的程序需要数据库的支持,那么怎样才能让他们建立连接呢?当然是ADO.NET 二.ADO.NET 整体流程 1) ...

  7. iOS视频边下载边播放

    随着视频行业的发展,很多用户对于观看体验也有了更高的要求,以前的习惯是下载好了在观看,而现在是希望1分钟都不要等,ZUI好一边看着一边下载,等把这个视频看完也下载完了,也就是我们常说的“视频边下载边播 ...

  8. vue-cli3 中跨域解决方案

    此方案只能用于开发环境,线上最好设置同源策略(遇到个后端,装你妈批) 前后端不在同一服务器的情况下,前端要访问后端API,可通过在vue.config.js中配置代理服务器. 0:前提条件 1:安装v ...

  9. js对数组进行删除

    今天在项目中遇到一个问题  就是一个json对象里边是一个个数组,用户点击选中会把选中的数据从原来的数据里边删除 想了想写了一段代码,如下 let json={title:1212,reader:10 ...

  10. 第十一课 CSS介绍与font字体 css学习1

    一.CSS样式规则 1.基本结构 <html> <head> <style> h1{ color: orange; } </style> </he ...