| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 600 人关注过本帖
标题:帮忙看一下几句C++程序,主要是编写一个类,好汉求助啊!
只看楼主 加入收藏
小情鸽00
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2015-10-19
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:8 
帮忙看一下几句C++程序,主要是编写一个类,好汉求助啊!
创建一个类,用它来管理100个箱子。箱子用来存放物品,通过箱号来获取箱子中物品数。当存放物品至指定箱号的箱子时,该箱子中的物品数加1.
我写的程序:
class box{
public:
    int a[100];//数组a[100]中的100个元素值分别代表100个箱子中存放的物品数
    void boxnum(int x);//判断箱子号码
};
void box::boxnum(int x)
{
    int i;
    for(i=1;i<=100;i++)
        if(i==x)
        a[i]++;//物品放到指定的箱子中
}
我写的程序有点简单,估计达不到问题要求,希望大家积极发言啊!

[此贴子已经被作者于2015-10-20 20:02编辑过]

2015-10-19 20:54
ITCD
Rank: 2
等 级:论坛游民
威 望:2
帖 子:16
专家分:18
注 册:2012-11-26
收藏
得分:2 
加个break;吧
2015-10-19 22:03
hjx1120
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:李掌柜
等 级:贵宾
威 望:41
帖 子:1314
专家分:6927
注 册:2008-1-3
收藏
得分:7 
//box.h
程序代码:
#ifndef BOX_H_
#define BOX_H_

class Box
{
private:
    std::string number;
    int n;
public:
    Box();
    Box(const std::string & co, int num = 0);
    ~Box();
    void buy(int num);
    void sell(int num);
    void update(int num);
    void show() const;
};
#endif
//box.cpp
程序代码:
#include <iostream>
#include <string>
#include "Box.h"

Box::Box()
{
    number = "error";
    n = 0;
}

Box::Box(const std::string & co,int num)
{
    number = co;
    n = num;
}

Box::~Box()
{

}

void Box::buy(int num)
{
    n += num;
}

void Box::sell(int num)
{
    n -= num;
}

void Box::show() const
{
    std::cout << "箱号: " << number << std::endl;
    std::cout << "数量: " << n << std::endl;
}
//usebox.cpp
程序代码:
#include <iostream>
#include <string>
#include "Box.h"

int main()
{
    std::cout << "1号箱,初值2" << std::endl;
    Box box_1("1",2);
    box_1.show();
    std::cout << "1号箱,加数值5" << std::endl;
    box_1.buy(5);
    box_1.show();
    std::cout << "55号箱" << std::endl;
    Box box_55("55");
    box_55.show();
    std::cout << "55号箱,加数值60" << std::endl;
    box_55.buy(60);
    box_55.show();
    std::cout << "55号箱,减数值15" << std::endl;
    box_55.sell(15);
    box_55.show();

    system("pause");
    return 0;
}
ps:弱类弱代码
2015-10-20 00:00
yangfrancis
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:141
帖 子:1510
专家分:7661
注 册:2014-5-19
收藏
得分:3 
void box::boxnum(int x)
{
    int i;
    for(i=1;i<=100;i++)
        if(i==x)
        a[i]++;
}
楼主应该是由于数组下标不匹配出现的问题,用循环条件for(i=0;i<100;i++)试试
2015-10-20 07:50
小情鸽00
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2015-10-19
收藏
得分:0 
回复 4楼 yangfrancis
你说的没错,应该是i<100,但主要问题是类的创建,我写的程序太简单了,估计缺少一些程序,帮忙想想!有劳了!
2015-10-20 19:51
小情鸽00
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2015-10-19
收藏
得分:0 
回复 2楼 ITCD
加个break解决不了主要问题啊,主要问题是类的创建,我的程序有点简单,感觉有点不符合要求。
2015-10-20 20:07
小情鸽00
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2015-10-19
收藏
得分:0 
回复 3楼 hjx1120
先说声谢谢!你写的程序,我有点没看明白,你好像是针对箱子的买进,卖出来写的,而且箱子数量也不是连续的。我这里要编写一个类,用来管理100箱子,100个箱子就对应100个箱号,问题应该可以把每个物品看做是贴了箱号的,然后对号入座,来了一个物品,直接加1,即更新一次数量。有劳您了,请多多指教!!!
2015-10-20 20:16
yangfrancis
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:141
帖 子:1510
专家分:7661
注 册:2014-5-19
收藏
得分:8 
class Storage
{
public:
   Storage()
   {
        short i;
        for(i=0;i<100;i++) box[i]=0;
    }
   bool Fill(short idx, short n)//向第idx个箱子加入n个物品
   {
    if(idx<0||idx>99) return false;
        else
        {
            if(n<-box[idx])         //若n输入负数,表明从中取走物品,其负值不允许小于已有物品的相反数
          return false;
            else
                {box[n]+=n;return true;}
        }
   }
private:
   int box[100];
}
2015-10-21 09:15
小情鸽00
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2015-10-19
收藏
得分:0 
回复 8楼 yangfrancis
谢谢,感觉比较接近问题的意思。
2015-10-21 16:11
快速回复:帮忙看一下几句C++程序,主要是编写一个类,好汉求助啊!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.042788 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved