标题:求教一个面向对象的习题
只看楼主
sunxuan007
Rank: 1
等 级:新手上路
帖 子:17
专家分:1
注 册:2012-8-28
结帖率:100%
已结贴  问题点数:20 回复次数:6 
求教一个面向对象的习题
原题:利用接口做参数,写个计算器,能完成+-*/运算
1.定义一个接口ICompute含有一个方法int computer(int n,int m);
2.设计四个类分别实现次接口,完成+-*/运算;
3.设计一个类UseCompute含有方法:
public void useCom(ICompute com,int one,int two)
此方法要求能够
(1)用传递过来的对象调用computer方法完成运算
(2)输出运算的结果
测试调用UseCompute中的方法UseCom完成+-*/
==============================================
(以下命名空间为同一个,就不贴上来了)
interface ICompute
    {
        int Computer(int n,int m);
    }

class Plus : ICompute
    {
        public override int Computer(int n,int m)
        {
            int plus = n + m;
            return plus;
        }
    }

class Minus : ICompute
    {
        public override int Computer(int n, int m)
        {
            int minus = n - m;
            return minus;
        }
    }

class Times : ICompute
    {
        public override int Computer(int n, int m)
        {
            int times = n * m;
            return times;
        }
    }

class Devide : ICompute
    {
        public override int Computer(int n, int m)
        {
            int devide = n / m;
            return devide;
        }
    }
==问题出在设计UseComputer类这里,我不太理解题意(ICompute类型的参数要传什么)
==帮忙看看问题在哪,或应该怎样设置这个类
class UseComputer : ICompute
    {
        public void useCom(ICompute com, int one, int two)
        {

            Plus plus = new Plus();
            Minus minus = new Minus();
            Times times = new Times();
            Devide devide = new Devide();
            if (com == plus)
                (one, two);
            else if (com == minus)
                (one, two);
            else if (com == times)
                (one, two);
            else if (com == devide)
                (one,two);
        }
    }
//主程序
static void Main(string[] args)
        {
            UseComputer use = new UseComputer();
            use.useCom(plus, 5, 8);  //不知道题意是不是要这么应用,这里是报错
        }


搜索更多相关主题的帖子: 接口 public interface computer 
2012-09-23 11:21
青春无限
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江苏
等 级:贵宾
威 望:24
帖 子:3450
专家分:19340
注 册:2012-3-31
得分:5 
看看

学 会看代码…学习写程序…学会搞开发…我的目标!呵呵是不是说大话啊!!一切皆可能
2012-09-23 12:19
sunxuan007
Rank: 1
等 级:新手上路
帖 子:17
专家分:1
注 册:2012-8-28
得分:0 
报错的其中之一是我的语法
重写接口不用加override.
修改后相关错误解决
另外:

class UseComputer : ICompute
    {
        public void useCom(ICompute com, int one, int two)
        {
            Console.WriteLine((one,two));
        }
    }

static void Main(string[] args)
        {
            UseComputer use = new UseComputer();
            Plus plus = new Plus();
            Minus minus = new Minus();
            Times times = new Times();
            Devide devide = new Devide();
            use.useCom(plus, 5, 8);
         }

把声明对象步骤挪到Main中,程序能使用
请问有没有把声明对象步骤放入UseComputer中,程序还好使的方法!
2012-09-23 12:20
belin2000
Rank: 3Rank: 3
等 级:论坛游侠
威 望:5
帖 子:975
专家分:194
注 册:2004-6-2
得分:15 
你的思路错误了。

class UseComputer //不用继承接口
    {
        public static void useCom(ICompute com, int one, int two) //使用静态方法
        {
            (one,two);
        }
    }
//主程序
static void Main(string[] args)
        {
            ICompute  plus=(ICompute) new plus();
            UseComputer.useCom(plus, 5, 8);  
         }



[ 本帖最后由 belin2000 于 2012-9-23 15:12 编辑 ]

59ita点com(我就爱TA)
2012-09-23 15:02
icedkl
Rank: 2
等 级:论坛游民
威 望:1
帖 子:18
专家分:37
注 册:2012-9-20
得分:0 
接口是什么意思?

有兴趣的共同探讨C#的同鞋朋友们可以一起进群讨论:QQ:203291000
2012-09-24 12:22
sunxuan007
Rank: 1
等 级:新手上路
帖 子:17
专家分:1
注 册:2012-8-28
得分:0 
回复 4楼 belin2000
思路有些问题,形容的非常准呵呵
2012-09-25 22:57
暮色残阳
Rank: 2
来 自:河南
等 级:论坛游民
帖 子:15
专家分:64
注 册:2012-9-25
得分:0 
貌似是控制台应用程序。。。
2012-09-26 19:55



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-381925-1-1.html




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

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