作业要求来源: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实战环节,前边的 6 篇关于Vue基础文章我刚刚简单看了看,感觉写的还是不行呀,不是很系统,所以大家可能看上去比较累,还是得抽时间去润润色,修改修改语句和样式 ...

  2. 批量执行工具PSSH详解

    批量执行工具PSSH详解 pssh是一个python编写可以在多台服务器上执行命令的工具,同时支持拷贝文件,是同类工具中很出色的,使用必须在各个服务器上配置好密钥认证访问. 安装pssh包 yum 安 ...

  3. Kubernetes知识小普及

    大部分概念Kubernetes官网都有详细介绍,Kubernetes中文官网 https://kubernetes.io/zh/docs/tutorials/kubernetes-basics/ 官网 ...

  4. 微信小程序开发02-小程序基本介绍

    前言 前面我们研究了下微信小程序的执行流程,因为拿不到源码,只能算我们的猜想,我们需要更加了解小程序还需要做具体的项目,于是我们将原来那套还算复杂的业务拿出来: [组件化开发]前端进阶篇之如何编写可维 ...

  5. Chrome浏览器下自动填充的输入框背景

    记录下从张鑫旭老师的微博中看到关于input输入框的属性 1.autocomplete="off" autocomplete 属性规定输入字段是否应该启用自动完成功能 自动完成允许 ...

  6. Asp.Net Core 轻松学-在.Net Core 中使用钩子

    前言     Host startup hook,是2.2中提供的一项新的功能,通过使用主机启动钩子,允许开发人员在不修改代码的情况下,在服务启动之前注入代码:通过使用钩子,可以对已部署好的服务在服务 ...

  7. 【译】《C# Tips -- Write Better C#》

    [译]<C# Tips -- Write Better C#> <C# 奇淫巧技 -- 编写更优雅的 C#> 目录 介绍(Introduction) 第一部分:各种奇淫巧技(P ...

  8. 杭电ACM2019--数列有序!

    数列有序! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submi ...

  9. java--基本数据类型的转换(强制转换)

    强制类型的转换 规则: 1.执行算术运算时,低类型(短字节)可以转换为高类型(长字节):例如: int型转换成double型,char型转换成int型等等. 就是用强制类型来实现. 3.强制类型转换语 ...

  10. 人脸检测识别,人脸检测,人脸识别,离线检测,C#源码

    百度网盘地址 微云地址 使用虹软人工智能开放平台技术开发完成