| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 909 人关注过本帖
标题:求帮助对C++的类的概念不是很理解 不会用(有一家饭馆,来了一个人吃肉
只看楼主 加入收藏
编程小郭
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2012-5-23
结帖率:0
收藏
已结贴  问题点数:20 回复次数:13 
求帮助对C++的类的概念不是很理解 不会用(有一家饭馆,来了一个人吃肉
有一家饭馆,来了一个人吃肉(这个人又可能是汉族人,满族人,回族人等),肉(猪肉,牛肉,狗肉,腊狗肉,扣肉等),因为风俗习惯的不同,

汉族人什么都吃
满族人不吃狗肉,其他都吃
回族人不吃猪肉,狗肉。其他都吃

这个人(如果是满族人)就想判断这个肉是否是他们符合他们的习惯。


肉;里加一个  湖南腊狗肉
湖南人    只吃 湖南腊狗肉
搜索更多相关主题的帖子: 回族 一个人 湖南人 
2012-09-01 09:46
编程小郭
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2012-5-23
收藏
得分:0 
帮助顶顶
2012-09-01 09:50
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:0 
没太看懂题,什么意思呀?

是要写一个程序判断一下一个湖南的满族人能吃什么肉吗?
2012-09-01 13:51
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
创建一个“人”类,包含“吃肉习惯”属性,然后继承若干“种族人”类,分别具体实现吃肉习惯属性。最后,面向一个具体的种族人,供给一份特定的肉,判断此肉是否属于此人的禁忌。

授人以渔,不授人以鱼。
2012-09-01 13:59
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册

授人以渔,不授人以鱼。
2012-09-01 16:37
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:5 
回复 5楼 TonyDeng
T版V5。
2012-09-01 16:45
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
啥意思?

授人以渔,不授人以鱼。
2012-09-01 16:50
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
C++的语法忘得差不多了,只能用C#写:

程序代码:
/*----------------------------
有一家饭馆,来了一个人吃肉(这个人又可能是汉族人,满族人,回族人等),肉(猪肉,牛肉,狗肉,腊狗肉,扣肉等),因为风俗习惯的不同,

汉族人什么都吃
满族人不吃狗肉,其他都吃
回族人不吃猪肉,狗肉。其他都吃

这个人(如果是满族人)就想判断这个肉是否是他们符合他们的习惯。

肉里加一个  湖南腊狗肉
湖南人    只吃 湖南腊狗肉
----------------------------*/

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace test1
{
    class Program
    {
        // 肉类字典
        protected static Dictionary<Int32, String> Meats = new Dictionary<Int32, String>()
        {
            { 1, "猪肉" },
            { 2, "牛肉" },
            { 3, "狗肉" },
            { 4, "腊狗肉" },
            { 5, "扣肉" }
        };

        // 人类(抽象类)
        protected abstract class Person
        {
            // 种族属性
            private String _ethnicity = "";
            public virtual String Ethnicity
            {
                get { return _ethnicity; }
            }

            // 地域属性
            public String Province { get; set; }

            // 禁忌
            public abstract Boolean is_taboo(Int32 meatID);
        };

        // 汉族
        protected class Han_Chinese : Person
        {
            public override String Ethnicity
            {
                get { return "汉族"; }
            }

            public override Boolean is_taboo(Int32 meatID)
            {
                return (Province != "湖南人") ? false : (meatID != 4);
            }
        }

        // 满族
        protected class ManChu_Chinese : Person
        {
            public override String Ethnicity
            {
                get { return "满族"; }
            }

            // 肉类禁忌:狗肉
            private static Int32[] meat_taboo = { 3 };

            public override Boolean is_taboo(Int32 meatID)
            {
                return meat_taboo.Contains(meatID);
            }
        }

        // 回族
        protected class Hui_Chinese : Person
        {
            public override String Ethnicity
            {
                get { return "回族"; }
            }

            // 肉类禁忌:猪肉、狗肉
            private static Int32[] meat_taboo = { 1, 3 };

            public override Boolean is_taboo(Int32 meatID)
            {
                return meat_taboo.Contains(meatID);
            }
        }

        static void Main(string[] args)
        {
            Person[] persons = new Person[4]
            {
                new Hui_Chinese(),
                new ManChu_Chinese(),
                new Han_Chinese(),
                new Han_Chinese() { Province = "湖南人" }
            };

            Int32 meatID = 1;
            Console.WriteLine("提供{0}\n", Meats[meatID]);

            foreach (Person p in persons)
            {
                Console.Write("[{0}] ", p.Ethnicity);
                if (p.is_taboo(meatID))
                {
                    Console.WriteLine("对不起,我是{0},不吃{1}。", String.IsNullOrEmpty(p.Province) ? p.Ethnicity : p.Province, Meats[meatID]);
                }
                else
                {
                    Console.WriteLine("谢谢!");
                }
            }

            Console.WriteLine("\n按Enter键结束程序...");
            Console.ReadLine();
        }
    }
}


[ 本帖最后由 TonyDeng 于 2012-9-1 16:54 编辑 ]

授人以渔,不授人以鱼。
2012-09-01 16:52
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 8楼 TonyDeng
老大就为了一盘肉兴师动众啊

梅尚程荀
马谭杨奚







                                                       
2012-09-02 09:14
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
以下是引用有容就大在2012-9-2 09:14:33的发言:

老大就为了一盘肉兴师动众啊

你倒是做C++版啊

授人以渔,不授人以鱼。
2012-09-02 09:20
快速回复:求帮助对C++的类的概念不是很理解 不会用(有一家饭馆,来了一个人吃肉 ...
数据加载中...
 
   



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

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