150313 那个可怜的二柱子同学

今天的软件工程概论课,老师出了这么个问题:

可怜的二柱子同学,老师又对他的自动出题系统提出了新的要求:

  1. 题目避免重复
  2. 可定制(数量、打印方式);
  3. 可以控制下列参数:是否有乘除法、数值范围、加减有无负数、除法有无余数、是否支持分数(真分数、假分数);

我想了两种解决方法:

一.使用数据库:

  1. 避免重复:随机数及符号大量生成录入数据库,生成md5,数据库查询(Select Distinct MD5,第一整数,符号,第二整数 from 题目表)。
  2. 定制:输入框,输入题目数量。打印方式可以用[x++ if(x==?) cout<<endl;] 并可导出到word或excel或txt
  3. 从数据库查询时,查询加条件。例如:select * from 题目表 where 符号=‘*’     select * from 题目表 where 第二整数>0等。
  4. 分数问题:随机数生成时,约束两次生成随机数的大小控制真假分数,组成类似 第一整数/第二整数 。数据库数据类型可以为varchar用于保存整个分数。

二.不使用数据库:

  1. 避免重复:将生成题目作为字符串,保存到数组里。每生成一个题目,与数组里每个元素比对,重复即跳过本次循环。
  2. 定制:输入题目数量,和打印方式一样,利用[x++ if(x==?) cout<<endl;]
  3. 乘除法,打印时提取每个题目的符号,比对。其他类似。
  4. 分数问题:随机数生成时,约束两次生成随机数的大小控制真假分数,组成类似 第一整数/第二整数 。

个人偏向数据库解决,快下课时建了个表,可行。只是完全把算法实现抛之脑后,有点偷懒嫌疑...

时间: 2024-08-07 15:22:20

150313 那个可怜的二柱子同学的相关文章

二柱子的难题02

老师又向二柱子提出一些要求,二柱子很崩溃 具体要求如下: 题目避免重复 可定制(数量/打印方式) 可控制参数    1是否有乘除法    2是否有括号    3数值范围    4加减法有无负数    5除法有无余数 可怜的二柱子经过8h的奋战,终于在01版本的基础上改出了满足要求的02版本 1 #include <iostream> 2 #include <iomanip> 3 #include <fstream> 4 #include <ctime> 5

二柱子四则运算3

二柱子四则运算3 可怜的二柱子……又一次被坑了…… 老师又在上次的“二柱子四则运算2”的基础上增添了要求,如下: 1.学生写的程序必须能判定用户的输入答案是否正确.直到题目结束,告诉用户做对了几道题. 2.程序必须能处理四种运算的混合模式. 注意:连续的减法和除法,应该遵守左结合的规定. 连续除法要打括号,否则会引起歧义. 一.实验思路 二.实验源代码 三.实验总结和反思 最后,附上我和我的小伙伴的工作照……没有正脸.老师们不要介意啦啦啦~~~~ 小伙伴博客内容页:http://www.cnbl

RIGHT-BICEP单元测试——“二柱子四则运算升级版”

RIGHT-BICEP单元测试 ——“二柱子四则运算升级版” ”单元测试“这对于我们来说是一个全新的专业含义,在上了软件工程这门课,并当堂编写了简单的"求一组数中的最大值"函数的单元测试之后,我们对它有了全新的认识. 单元测试:即为, 老师让我们回去之后将“二柱子四则运算升级版”的程序进行单元测试(二柱子程序的源码我已经上传,这里不再重复,只列举单元测试的部分和分析),如下: PS.这里附上老师上课讲的关于RIGHT-BICEP测试的方法: 6个值得测试的具体部位,他们能够提高我们的测

二柱子四则运算定制版+升级版

题目:在上次程序的基础上,实现对连除的判断,并且实现多个数的混合运算,要求可以输入结果,并进行判断. 思路:基于上次程序,首先思考混合运算,这里运用两个数组,分别记录随机产生的运算数和运算符号.然后对连除进行判断,,检查运算符号数组里是否有连续的除号,有的话加上括号,避免歧义.最后对运算结果进行计算,并对用户输入的结果进行比较,给出相应提示,回答,计算方面,要优先对括号,乘除进行运算,然后再进行加减运算,每次运算完后都要记录下运算的结果. 代码: //吕广浩 3/19 #include<iost

二柱子问题扩充:1、题目避免重复; 2、可定制(数量/打印方式); 3、可以控制下列参数: 是否有乘除法、是否有括号、 数值范围、加减有无负数、除法有无余数、否支持分数 (真分数, 假分数, …)、是否支持小数 (精确到多少位)、打印中每行的间隔可调整;

程序设计思想 程序的主要设计思想为用字符串数组保存生成的运算题,将操作数采用单独算法处理,然后进行类型转换和操作符一起存入数组中,鉴于字符串的特性,可以对字符串的长度进行随意添加而不必考虑长度问题,最后进行字符串数组的输出产生客户要求的运算题; 源代码 #include<stdlib.h> #include<conio.h> #include<time.h> #include<iostream> #include<string> #include

二柱子的出题软件

二柱子的软件 支持真分数的四则运算 可定义出题数量 #define _CRT_SECURE_NO_DEPRECATE#include<stdio.h>#include<Windows.h>#include<time.h>int main(){ int a, b, c, d, e, f, g, k; float p, q; printf("请输入想要の数量"); scanf("%d",&k); srand(unsigned(

二柱子2.0编程总结

                                                                                时间记录表: 学生         王美仪                单位(分钟)         日期        2018.10.8             教师         王建民 日期 开始时间 结束时间 中断时间 净时间 活动 备注 2018.10.8 18:30 19:52 0 82 编程 基本完成 2018310.

二柱子升级版

一.实验思路二柱子的老师又提出了新的要求,要求能在线答题,保存错题.为了避免主函数代码过于重复,将"生成某一个范围内的随机数"."生成随机的分数"."生成一个运算符"."判断整数的正负并取相反数"."把int类型装换为string类型".以及"含有括号的运算"."含有真分数的运算"和"不含真分数的运算"等封装成函数.为了避免定义整型变量,计算时强制

苦逼的二柱子的四则运算问题

问题:二柱子将做好的项目交给了老师,几天后又得到新的需求:   1.实现在线答题:   2.答题结束后,可以判断对错:   3.并将错题的结果保存起来 #include<iostream>#include<stdarg.h>#include<stdlib.h>#include<time.h>#include<math.h>using namespace std;int main(){cout<<endl;cout<<&qu