第一次作业-四则运算题目生成程序

代码地址:https://git.coding.net/luckydelbert/program.git

需求分析:

1.控制题目的个数

2.控制生成数的范围

3.运算符不超过三个(括号也是运算符),括号的位置随机出现

4.能够处理真假分数,并且查重

功能设计:

1.在控制台输入题目的个数及生成数的范围

2.在文本中写出答案并与标准答案进行对比

3.给出题目错对个数等详细情况

设计实现:

1.char getSignal();//随机产生运算符

2.string getNum(int);//随机产生运算数

3.string change(string);//将中缀表达式转化为逆波兰式

4.float getResult(string);//后缀表达式求值

5.string product(int);//产生四则运算式子

6.int getRand();//生成随机数

对于查重我的算法思路是根据逆波兰式将输出的字符串遍历,分别压入两个栈中,一个符号栈,一个数字栈,只有符号栈的符号相同且顺序一致,并且数字栈中数字相同且至少有一个数字的顺序相同,这时可以判定这两个逆波兰式是相同的,即该四则运算是相同的。

测试运行:

控制台:

Exercises文件:

Answers文件:

myAnswers文件:

Grade文件:

个人软件过程:

小结:

这次作业真的做的很累,我是考研的,然后这个作业要求需要1周时间来完成,但这一周前六天我都在看考研的书,做数学,看政治,练英语什么的,不是说懈怠这门课的作业,而是原本都规划好考研期间每天必须完成的硬性任务是什么,然后一周的考研任务提前在六天内做完,然后挤出一天时间来做作业,从中午一直做到了第二天早上六点,一夜没合眼,在中途出了很多麻烦,比如将中缀表达式转换成逆波兰式的算法出现了内存泄漏,我暂时无法尽快排错,于是马不停蹄立刻换了算法。在项目伊始,我先是打算用纯C编写程序的,谁知道编到一半,出现了字符串导致的程序中断,由于C没有直接给出string类型,导致字符串会出现很多关于指针方面的错误,因为时间紧迫,我又一时无法立刻找到BUG,于是我又推倒了重来,改用C++编写,最后砍掉了需求中要求对分数的处理问题,最后差不多搞到凌晨四点左右,查重的算法我没有参考什么书本,只是单纯在草稿纸上推演了下,觉得可以通过逆波兰式和栈来解决,但是实在是脑子都疼了,真的编不下去了,然后在博文中的功能设计模块写了自己算法的思路。最后四点多到早上六点多都在看git的用法以及撰写博文。

这次的项目,可以说是让我大体重新学习了C,然后还稍稍涉及了一些C++的编程,但是由于C++也是有指针的关系,出现BUG真的让人崩溃。主要是怪自己没好好听过一节java课,感觉用java更简单一些,它的很多方法都封装好了,拿出来用就好了,而且没有指针,写起来可能不需要像C++,C那么的顾虑。得补觉了,不然20多岁要掉头发了。。。。

时间: 2024-11-11 03:11:09

第一次作业-四则运算题目生成程序的相关文章

第1次作业------四则运算题目生成程序(基于控制台)

https://git.coding.net/YelCong/Soft.git 需求分析 1. 使用 -n 参数控制生成题目的个数,例如 Myapp.exe -n 10 -o Exercise.txt 将生成10个题目. 2. 使用 -r 参数控制题目中数值(自然数.真分数和真分数分母)的范围,例如 Myapp.exe -r 10 将生成10以内(不包括10)的四则运算题目.该参数可以设置为1或其他自然数.该参数必须给定,否则程序报错并给出帮助信息. 3. 生成的题目中如果存在形如e1 ÷ e2

个人作业-四则运算题目生成程序(基于控制台)

代码:四则运算 一.题目描述: 1. 使用 -n 参数控制生成题目的个数,例如 Myapp.exe -n 10 -o Exercise.txt 将生成10个题目. 2. 使用 -r 参数控制题目中数值(自然数.真分数和真分数分母)的范围,例如 Myapp.exe -r 10 将生成10以内(不包括10)的四则运算题目.该参数可以设置为1或其他自然数.该参数必须给定,否则程序报错并给出帮助信息. 3. 生成的题目中如果存在形如e1 ÷ e2的子表达式,那么其结果应是真分数. 4. 每道题目中出现的

个人作业1——四则运算题目生成程序(基于控制台)

No.1 四则运算题目生成程序(基于控制台) 程序代码 需求分析: 能够根据用户自身对题目数量的需求自动生成一定数量的包含分数的四则运算题目的命令行程序. 功能设计: 除了整数以外,还要支持真分数的四则运算,真分数的运算 并且要求能处理用户的输入,并判断对错,打分统计正确率 要求能处理用户输入的真分数 使用 -n 参数控制生成题目的个数 设计实现: 程序是用c++实现的,主要有四个函数,主函数随机生成整数或者分数算法,divisor(int i, int j)计算最大公约数,zs为计算整数算法,

个人项目终极博客——四则运算题目生成程序分析

四则运算题目生成程序分析 13061184 马腾跃 一.时间分析 PSP2.1 Personal Software Process Stages Time Planning 计划   · Estimate ·估计这个任务需要多少时间 15h Development 开发 · Analysis ·需求分析(包括学习新技术) 2h · Design Spec ·生成设计文档 1h · Design Review ·设计复审(和同事审核设计文档) 0.5h · Coding Standard ·代码规

个人作业1——四则运算题目生成程序

一.题目描述: 实践能力的提高当然就是得多动手了,那么就从第一个个人项目开始吧,用一周的时间完成一个基于控制台的四则运算程序,实现一个自动生成小学四则运算题目的命令行程序. 从<构建之法>第一章的 "程序" 例子出发,像阿超那样,花二十分钟写一个能自动生成小学四则运算题目的命令行 "软件",满足以下需求: (以下参考博客链接:http://www.cnblogs.com/jiel/p/4810756.html 1. 使用 -n 参数控制生成题目的个数,例

个人作业1——四则运算题目生成程序(基于安卓)

一.题目描述: 实践能力的提高当然就是得多动手了,那么就从第一个个人项目开始吧,用一周的时间完成一个基于控制台的四则运算程序,实现一个自动生成小学四则运算题目的命令行程序. 从<构建之法>第一章的 "程序" 例子出发,像阿超那样,花二十分钟写一个能自动生成小学四则运算题目的命令行 "软件",满足以下需求: 1. 使用intent传参数控制生成题目的个数 2. 使用 intent传递 参数控制题目中数值(自然数.真分数和真分数分母)的范围 3. 生成的题目

第一次作业——四则运算小程序

这是第一次作业,而且是个人项目,说实话一开始得到作业还是很紧张的.虽然题目比较简单,但是由于自身动手能力很差,所以还是慌得要死. 经过思考和审题,我渐渐有了思路.四则运算主要的难点在于选取数是否是随机数而且是否能保证整数相除能否除尽. 一开始关于选取数是否随机我很苦恼,因为从前写程序变量基本都是自己赋值,没想到怎么随机取数.后来经过同学的点拨,我想到了随机选取函数.比如十以内的四则运算就将0-9赋给a1 再加1就变成1-10了.而保证除尽的问题也很快想到了解决方案,只需要添加一个判断两数相除记过

01:JAVA_四则运算题目生成程序(基于控制台)

一.题目要求 1. 使用 -n 参数控制生成题目的个数,例如 Myapp.exe -n 10 -o Exercise.txt 将生成10个题目. 2. 使用 -r 参数控制题目中数值(自然数.真分数和真分数分母)的范围,例如 Myapp.exe -r 10 将生成10以内(不包括10)的四则运算题目.该参数可以设置为1或其他自然数.该参数必须给定,否则程序报错并给出帮助信息. 3. 生成的题目中如果存在形如e1 ÷ e2的子表达式,那么其结果应是真分数. 4. 每道题目中出现的运算符个数不超过3

四则运算题目生成程序

a.需求分析 看了大家对于本课程的目标和规划,很多同学都希望能提高自己的实践能力,没有捷径可走,就是练习.练习再练习!那么就从第一个个人项目开始吧,用一周的时间完成一个基于控制台的四则运算程序,实现一个自动生成小学四则运算题目的命令行程序 从<构建之法>第一章的 "程序" 例子出发,像阿超那样,花二十分钟写一个能自动生成小学四则运算题目的命令行 "软件",满足以下需求: 除了整数以外,还要支持真分数的四则运算,真分数的运算,例如:1/6 + 1/8 =