zoukankan      html  css  js  c++  java
  • 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. 分数问题:随机数生成时,约束两次生成随机数的大小控制真假分数,组成类似 第一整数/第二整数 。

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

  • 相关阅读:
    小组自评、互评及反馈
    "一个程序员的生命周期"读后感
    阅读《构建之法》第10-12章
    阅读《构建之法》第8,9,10章
    冒泡算法程序分析树的评论
    1014 C语言文法定义与C程序的推导过程
    0917 实验一词法分析程序
    0909 我与编译原理不得不说的秘密
    复利计算器4
    复利及单利计算
  • 原文地址:https://www.cnblogs.com/apak/p/4334852.html
Copyright © 2011-2022 走看看