Java 编程问题 (急)

可能实验室 forums Open Discussion Java 编程问题 (急)

This topic contains 5 replies, has 4 voices, and was last updated by Avatar of Fei Fei 1 year, 5 months ago.

Viewing 6 posts - 1 through 6 (of 6 total)
  • Author
    Posts
  • #241
    Avatar of wei liu
    wei liu
    Participant

    各位,有个Java的编程问题,有些不太清楚,希望大家提点建议,谢谢啦!

    Implement a coin jar (or piggy bank) as an object in Java with the following requirements:

    1) will only accept Canadian coins, all other currencies should be rejected;
    2) has a volume of 10cm3, any attempt to deposit more coins into the jar once it is full should fail;
    3) has the ability to report the total amount of money collected;
    4) has the ability to be emptied and reset back to $0.0;

    #242
    Avatar of Yang Li
    Yang Li
    Keymaster

    Is this really a java coding problem? It seems to be a hardware program

    #243
    Avatar of Z.SU
    Z.SU
    Participant

    针对第一点 首先是一个判断语句,加币硬币分了几种,应该都要判断,是,继续,假,拒绝硬币。
    第二点,要根据加币硬币的几种混合情况,计算出 如果都是 最小的1分或5分的最多可以放多少,如果都是2刀的最多可以放多少。根据不同的硬币种类,分别计数。
    判读即将满时,自动存入更大的jar 中 。自动存入的动作失败,就拒绝再接受硬币。 并再次触发将小盒子中的硬币放入jar的动作。
    第三点,小盒子中的硬币放入jar后,可以清零 ,重新累计。

    说的不对,大家原谅。 我起个抛砖的作用 !!

    #244
    Avatar of Yang Li
    Yang Li
    Keymaster

    这个题目应该属于典型的设计模式的考题,用Java来模拟一个硬件。不过具体啥模式我也记不清楚了。我们可以从需求开始,来分析这个问题。

    1) will only accept Canadian coins, all other currencies should be rejected;

    这应该是程序输入的入口,应该通过形状和重量来判断。注意加拿大的硬币有好几种规格,从扩展角度来说这些规格应该记录到程序的配置文件中去,输入可以设计成JSON或者XML风格的文本:

    {shape:round, diameter:15.5,weight:1.167, thickness:2}

    如上的文字格式代表一个硬币,通过和配置文件的匹配,获得具体金额

    2) has a volume of 10cm3, any attempt to deposit more coins into the jar once it is full should fail;

    应该是对已经存进去的硬币计算一个体积和volume的体积进行比较,但是注意硬币是圆形的,我觉得体积应该这么计算:diameter*diameter*thickness
    一般留一个threshold,就是不要超过总体积的N%,N是一个可以调整的参数

    3) has the ability to report the total amount of money collected;

    设计一个数据结构或者数据库,用sqlite实现,详细记录硬币规格,数量,面值信息

    4) has the ability to be emptied and reset back to $0.0;

    这个简单,就是reset函数,清空数据库哈。

    #245
    Avatar of wei liu
    wei liu
    Participant

    LS说的很好。
    这个程序看似简单,其实每个人都有不同的设计思想。我觉得出题者的主要目的是:设计灵活、可扩展、易于管理维护的软件。

    1)采用配置文件,确实很容易扩展,可以再加上国家、分值等信息;
    每个coin是一个对象,以每个对象作为输入。
    3)、4),我觉得简单计数或置零就OK了。如果想要统计面值信息、数量等,确实用数据库或一个数据结构比较合适。

    #246
    Avatar of Fei
    Fei
    Keymaster

    看不懂,也顶一个!

Viewing 6 posts - 1 through 6 (of 6 total)

You must be logged in to reply to this topic.