本帖最后由 slash_1314 于 2012-07-26 20:21:55 编辑

解决方案 »

  1.   

    可以使用数据库把各种应答存起来。
    查询的时候,对于同一个问题,随机取一个回答。
    没有查询到,就提示听不懂。
    可以使用ado.net哦。
      

  2.   

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Data.SqlClient;namespace 面向对象机器人
    {
        public class TalkMessageEventArgs : EventArgs//存放事件的类
        {
            public readonly string Talking;
            public TalkMessageEventArgs(string talking)
            {
                this.Talking = talking;
            }
        }
        public class SendMessage//事件发送
        {        
            public string talking;
            public delegate void SendChangeHandler(object send, TalkMessageEventArgs talkmessage);//声明一个委托
            public event SendChangeHandler SendChange;//声明一个事件
            protected virtual void onSendChanged(TalkMessageEventArgs e)
            {            SendChangeHandler handler = SendChange;
                if (handler != null)
                {
                    SendChange(handler,e);
                }
            }
            public void Run()
            {
                if(talking=="别理我")
                {
                    return;
                }
                if (talking == "理我嘛")
                {
                    Console.WriteLine("%>_<%,您好,需要什么帮助嘛");
                }
            }
        }    public class SubScribe//声明一个订阅者
        {
            public void MessageHasChanged(object theSendMessqge, TalkMessageEventArgs ti)
            {
                Console.WriteLine();
            }
            public void Subscribe(SendMessage theSendMessage)//实现委托功能
            {
                theSendMessage.SendChange += new SendMessage.SendChangeHandler(MessageHasChanged);            
            }
        }
        class Robert
        {
            private string Name;         
            public Robert(string name)
            {
                this.Name=name;
                
            }       
            public void Greetgood()
            {
                Console.WriteLine("您好,请问需要什么帮助?");
            }
            public void Myself()
            {
                Console.WriteLine("我是联想小助手{0}",this.Name);
            }
            public void Talk(string str)
            {
                if(str.Contains("名字")||str.Contains("叫什么")||str.Contains("谁"))
                {
                    Myself();
                }
            }
        }
        class Program
        {
            static void Main(string[] args)
            {
                string dataDir = AppDomain.CurrentDomain.BaseDirectory;
                if (dataDir.EndsWith(@"\bin\Debug\")
                    || dataDir.EndsWith(@"\bin\Release\"))
                {
                    dataDir = System.IO.Directory.GetParent(dataDir).Parent.Parent.FullName;
                    AppDomain.CurrentDomain.SetData("DataDirectory", dataDir);
                }            string name = "robert";
                Robert robert = new Robert(name);
                robert.Myself();
                robert.Greetgood();
                Console.WriteLine("");
                string str = Console.ReadLine();
                using (SqlConnection sqlconnection = new SqlConnection(@"Data Source=.\SQLEXPRESS;database=Robert;uid=sa;pwd=password"))
                {
                    sqlconnection.Open();
                    //Console.WriteLine("连接成功");
                    using (SqlCommand sqlcommand = sqlconnection.CreateCommand())
                    {
                        sqlcommand.CommandText = "select * from table where str=@str ";
                        using (SqlDataReader sqldatareader = sqlcommand.ExecuteReader())
                        {
                            while (sqldatareader.Read())
                            {
                                
                            }
                        }
                    }
                                               
                }                      
                Console.ReadKey();
            }
        }
    }
    各位高手帮忙看看,我写到这里然后就根本写不出来了