计算器——工程文档

一.输入与格式

1.数据规模

本文档的输入基于如下的要求:

(1)既然是小学生,我们假设他们不会计算超过10亿的数字。

(2)既然是出考试题,那么也不会出超过10亿道题目。

也就是说 n , r ∈ int;

2.格式要求:

本文档的输出格式为:

(1)       当制造试题时,输出为n行,每行是算式编号、一个句号和一个空格,后面是一个算式。算式包含等号。四则运算符号和等号前后各有一个空格。其余符号则没有。答案输出为n行,每行是算式编号、一个句号和一个空格,后面是一个答案。

(2)       试题的输出文件夹为Exercises.txt,答案的输出是Answer.txt。

(3)       当对比答案时,接收控制台指令 –e xxx –a xxx 。xxx为试题文件和对比的答案文件。读入试题时读入至文件结束,每行读入格式为算式编号、一个句号和一个空格,后面是一个算式。算式包含等号。四则运算符号和等号前后各有一个空格。其余符号则没有。读入答案时每行是算式编号、一个句号和一个空格,后面是一个答案。

(4)       输出一个文件,为正误信息。文件是Grade.txt,内容是正确的试题编号和错误的试题编号,每两个编号之间由一个逗号和一个空格隔开。

二.程序结构

程序的大体关系如图所示,由于没有相关软件,先拿画图画了一个。

三.具体实现方法

  1. 程序的括号

括号随机的生成,保证不造成违法的输入。可能括号内算式的优先级本来就高,加了括号不改变次序,也可能改变计算次序和计算结果。

  1. 算式的生成

算式生成的方法是,先生成所有互为素数的分子和分母。范围在Range之内,当range过大时,将range缩小为20000。

  1. 算式的计算

生成中缀表达式,Compute类中的work方法把中缀表达式变为后缀表达式,然后压栈进行计算。

  1. 答案输出

以字符串格式读入,处理字符串,得到数字栈和符号,依据后缀表达式来计算,最后在栈里的第一个数就是结果。

  1. 答案格式

答案转成字符串 以字符串格式输出。

Week 1 工程文档的更多相关文章

  1. Go Doc文档

    Go为我们提供了快速生成文档和查看文档的工具,很容易编写查看代码文档.在项目协作过程中,可以帮助我们快速理解代码. 查看文档方式有两种:一种是通过终端查看,使用go doc命令,一种是通过网页查看,使 ...

  2. apidoc接口文档的快速生成

    官方文档连接:http://apidocjs.com/#demo apidoc是一个轻量级的在线REST接口文档生成系统,支持多种主流语言,包括Java.C.C#.PHP和Javascript等.使用 ...

  3. .NET项目工程生成一份项目帮助文档chm--Sandcastle工具

    Sandcastle的,由Microsoft创建的,是从创建MSDN风格的文档中使用的工具.NET程序集和关联的XML注释文件.目前的版本是 2010年6月发布.这是命令行并没有GUI前端,项目管理功 ...

  4. 使用Sandcastle工具为.NET项目工程生成一份项目帮助文档chm

    Sandcastle的,由Microsoft创建的,是从创建MSDN风格的文档中使用的工具.NET程序集和关联的XML注释文件.目前的版本是2010年6月发布.这是命令行并没有GUI前端,项目管理功能 ...

  5. net core Webapi基础工程搭建(三)——在线接口文档Swagger

    目录 前言 Swagger NuGet引用第三方类库 别急,还有 没错,注释 小结 前言 前后分离的好处,就是后端埋头做业务逻辑功能,不需要过多考虑用户体验,只专注于数据.性能开发,对于前端需要的数据 ...

  6. LDP - Linux文档工程的简介,包括帮助,向导和文档

    总览 SYNOPSIS Linux文档工程(LDP)为Linux社区提供多种自由文档资源,包括向导 (guide),常见问答 (FAQ),入门 (HOWTO) 以及手册页 (man-pages). 作 ...

  7. 利用Java动态生成 PDF 文档

    利用Java动态生成 PDF 文档,则需要开源的API.首先我们先想象需求,在企业应用中,客户会提出一些复杂的需求,比如会针对具体的业务,构建比较典型的具备文档性质的内容,一般会导出PDF进行存档.那 ...

  8. 拯救你的文档 – 【DevOps敏捷开发动手实验】开源文档发布

    今天上海的天气真是不错,风和日丽.再次来到微软上海紫竹研发中心,心情很是愉快,喜欢这里的大草坪,喜欢这里的工程气氛,更喜欢今天来陪我的小伙伴们. 这次动手实验培训与以往最大的不同就是采用了开源文档的方 ...

  9. 使用Xcode HeaderDoc和Doxygen文档化你的Objective-C和Swift代码

    在一个应用的整个开发过程中涉及到了无数的步骤.其中一些是应用的说明,图片的创作,应用的实现,和实现过后的测试阶段.写代码可能组成了这个过程的绝大部分,因为正是它给了应用生命,但是这样还不够,与它同等重 ...

随机推荐

  1. 遇到电脑IP地址冲突了怎么解决

    由于路由器是自动分配IP地址的,如果多个设备设置的是IP地址自动获取,就会出现IP地址冲突的情况当局域网内有相同IP,并且该机器启动了防火墙,那就没办法自动更新到下一个IP的地址了,所以此时发生了冲突 ...

  2. D-Link DIR-600 - Authentication Bypass

    #Exploit Title: D-Link DIR-600 - Authentication Bypass (Absolute Path Traversal Attack) # CVE - http ...

  3. Deepin中设置文件或文件夹权限

    Deepin中设置文件或文件夹权限 -R 递归进行某项操作,不论是删除文件夹或者修改文件夹下所有文件权限   权限更改,777相当于完全控制权限: 更改一个文件夹或文件的权限:chmod 777 文件 ...

  4. hadoop系列 第三坑: Task process exit with nonzero status of 137

    跑MR的时候抛出异常: java.lang.Throwable: Child Error at org.apache.hadoop.mapred.TaskRunner.run(TaskRunner.j ...

  5. MyBatis Generator使用示例

    一.MBG介绍 MyBatis Generator(MBG)是一个Mybatis的代码生成器,它可以用来生成可以访问(多个)表的基础对象.MBG解决了对数据库操作有最大影响的一些简单的CRUD(插入, ...

  6. 解决 docker ulimit open file 过少的问题

    解决方法: ExecStart=/usr/bin/dockerd -- -- -- -- --insecure-registry= --dns --dns-opt timeout: --dns-opt ...

  7. Arduino IDE for ESP8266 项目(1) 点亮灯+按键LED+pwm

    官方文档 http://esp8266.github.io/Arduino/versions/2.1.0/doc/libraries.html 引脚口说明 http://yfrobot.com/thr ...

  8. the security of smart contract- 2

    出处:https://cloud.tencent.com/developer/article/1192548 深度解析Solidity的17个坑及超详细避坑指南 写的很好,好好学习 1. Re-Ent ...

  9. Android学习之六种事件响应方法汇总

    java源码如下: 1.MainActivity.java源码 package com.example.responsetest; import android.app.Activity; impor ...

  10. 加解密工具类(含keystore导出pfx)

    java代码如下: package sign; import java.io.FileInputStream; import java.io.FileOutputStream; import java ...