代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
CSharp
】
面向对象Chatbot智能版
作者:
GongBiao
/ 发布于
2013/6/17
/
649
通过文件操着,机器人具有智能查找,学习功能。和大家分享一下,希望能得到高手指点进步。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; namespace ProjectC_sharp { class chatbot_61 { public static void Main(string[] args) { methot met = new methot(); //实例化方法过程 met.showUI(); //UI string chat; bool flag = false; //判断 string user; //定义用户名 string Robot; //定义机器人名字 start: { Console.WriteLine("**********************************************************"); Console.WriteLine("请选择机器人>>>>>>>[A :\"小屌丝\"]\t[B:\"小橘子\"]<<<<<<< "); //start set chat bot Console.WriteLine("* help>>>help *"); Console.WriteLine("**********************************************************"); } Console.WriteLine("请输入您的姓名:"); user = Console.ReadLine(); Console.WriteLine("请选择机器人:"); string set = Console.ReadLine(); //选择机器人 if (set == "A" || set == "小屌丝" || set == "a") { met.ASayhello(user); Robot = "小屌丝"; } else if (set == "B" || set == "小橘子" || set == "b") { met.BSayhello(user); Robot = "小橘子"; } else { Console.Clear(); Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("--------!waring:你的输入不正确,请重新输入----------\a\a\a\n"); met.help(); //调出帮助菜单 Console.WriteLine(); Console.ForegroundColor = ConsoleColor.White; //白色 goto start; //转到开始部分 } methot.mcname = Robot; //静态传值机器人名字 methot.user = user; //静态传用户姓名 do //机器人循环说话Main { Console.Write(user+">>说:"); chat = Console.ReadLine(); Console.WriteLine(); met.Speak(chat,flag); if (chat == "exit" || chat == "EXIT") break; } while (true); //结束程序 Console.Clear(); Console.WriteLine(); Console.WriteLine(); Console.WriteLine(); Console.WriteLine("\t\t>>>>系统已成功退出,按任意键结束程序!<<<<"); Console.ReadKey(); } } class propert { //机器人属性: 年龄、性别、姓名 private string name; private int age; private string sex; public string Name { set { this.name = value; } get { return name; } } public int Age { set { this.age = value; } get { return age; } } public string Sex { set { this.sex = value; } get { return sex; } } public propert(string N, int A, string S) { name = N; age = A; sex = S; } } class methot { //机器人的名字 public static string mcname; //用户的名字 public static string user; /* 以下函数是机器人的方法 */ //小屌丝Sayhello public string ASayhello(string user) { propert pr = new propert("小屌丝", 18, "男"); Console.WriteLine("{0}:你好,我叫<{1}>,我{2}岁了,我是{3}生\a", pr.Name = "小屌丝", pr.Name = "小屌丝", pr.Age, pr.Sex); //Console.WriteLine("请问你叫什么名字呀?\a"); //string user = Console.ReadLine(); Console.WriteLine("{0}:{1}很高兴和你聊天!\a", pr.Name, user); return user; } //小橘子Sayhello public void BSayhello(string user) { propert pg = new propert("小橘子", 16, "女"); Console.WriteLine("{0}:你好我叫<{1}>,我{2}岁了,我是{3}生\a", pg.Name = "小橘子", pg.Name = "小橘子", pg.Age, pg.Sex); Console.WriteLine("{0}:{1}很高兴和你聊天!\a", pg.Name, user); } //UI public void showUI() { Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine("\t\t*****************************************"); Console.WriteLine("\t\t* *"); Console.WriteLine("\t\t--------------wecomel chat bot---------- "); Console.WriteLine("\t\t* 聊天机器人 *"); Console.WriteLine("\t\t* *"); Console.WriteLine("\t\t* >> 项目五组:农夫三拳 *"); Console.WriteLine("\t\t*****************************************"); Console.ReadKey(); Console.ForegroundColor = ConsoleColor.White; Console.Clear(); } /*help帮助中心*/ public void help() { Console.WriteLine("**********************************************"); Console.WriteLine("* *"); Console.WriteLine("* CHAT BOT HELP CENTER *"); Console.WriteLine("* 1、select chat bot press \"A\" or \"B\" *"); Console.WriteLine("* 2、chat bot include weather、date、time *"); Console.WriteLine("* 3、Exit input \"exit\" or \"!e\" *"); Console.WriteLine("* 4、Calculator function, enter a formula *"); Console.WriteLine("* 5、the first number second number *"); Console.WriteLine("**********************************************"); Console.ReadKey(); Console.Clear(); } /*查询时间*/ public void datetime() { DateTime current = DateTime.Now; int year = current.Year; //获取年 int month = current.Month; //获取月 int day = current.Day;//获取日 int hours = current.Hour;//获取小时 int minute = current.Minute;// 获取分钟 int second = current.Second;//获取秒 if (hours <=6) { Console.WriteLine("现在是凌晨。\a"); } else if (hours <= 9) { Console.WriteLine("早上好!\a"); } else if (hours <=18) { Console.WriteLine("下午好!\a"); } else if(hours<=24) { Console.WriteLine("晚上好!"); } else { Console.WriteLine("__获得时间出错,请调试!"); } Console.WriteLine("现在是{0}年{1}月{2}日{3}时{4}分{5}秒\a", year, month, day, hours, minute, second); } /*计算器模块*/ public void Calculator() { double Number1, Number2; char option; double Result; bool flag = true; while(flag) { try { Console.WriteLine("Enter the Fist Number"); Number1 = double.Parse(Console.ReadLine()); Console.WriteLine("Enter the Second Number"); Number2 = double.Parse(Console.ReadLine()); Console.WriteLine("Mian Menum"); Console.WriteLine("1.Additon"); Console.WriteLine("2.Subtraction"); Console.WriteLine("3.Multiplication"); Console.WriteLine("4.Division"); Console.WriteLine("Enter the Operation you want to perform"); option = char.Parse(Console.ReadLine()); switch (option) { case '1': Result = Number1 + Number2; Console.WriteLine("The result of addition is :{0}", Result); break; case '2': Result = Number1 - Number2; Console.WriteLine("The result of subtraction is :{0}", Result); break; case '3': Result = Number1 * Number2; Console.WriteLine("The result of Multiplication if :{0}", Result); break; case '4': if (Number2 == 0) { Console.WriteLine("Divisor canot be zero"); } else { Result = Number1 / Number2; Console.WriteLine("The result of divison is :{0}", Result); } break; default: Console.WriteLine("Invalid Option"); break; } flag = false; } catch { flag = true; Console.WriteLine("你的输入正确,请重新输入!\a\a\a"); } } } /*test temp*/ public void FileRead() { string FILENAME = "J:\\C_sharp_Code\\Project\\Answer.txt"; FileStream fs = new FileStream(FILENAME, FileMode.Open, FileAccess.Read); StreamReader sr = new StreamReader(fs, Encoding.Default); string reder = sr.ReadLine(); while (reder != null) { Console.WriteLine(reder); reder = sr.ReadLine(); } sr.Close(); fs.Close(); } //机器人预定义内置库回复 public void Speak(string chat,bool flag) { //string weather="天气"; //string time="时间"; //string Calculate = "计算"; //string[] str = { "天气","长沙","今天" }; bool b; int count = 0; string FILENAME1 = "J:\\C_sharp_Code\\Project\\Question.txt"; FileStream fs1 = new FileStream(FILENAME1, FileMode.Open, FileAccess.Read); StreamReader sr1 = new StreamReader(fs1, Encoding.Default); string reader1; reader1 = sr1.ReadLine(); while (reader1 != null) { count++; if (b = reader1.Contains(chat) /*|| chat.Contains(reader1)*/)//reader1.Contains(chat) { // chat = reader1; //reder flag = true; break; } reader1 = sr1.ReadLine(); } // Console.WriteLine("判断:{0}", flag); Test 判断是否为真 fs1.Close(); sr1.Close(); /*小调试*/ // Console.WriteLine("count1={0}",count); //测试count1 // Console.WriteLine("chat={0}",chat); //测试chat // Console.WriteLine(flag); //测试真假 /*预定义内置库 weather 、计算器、简单回复*/ if (chat.Contains("weather") || chat.Contains("天气") || chat.Contains("长沙")) //关键字提取 天气 { Console.WriteLine("{0}说>>:长沙的天气多云转晴\a",mcname); } //b = chat.Contains(Calculate) else if (chat.Contains("时间") || chat.Contains("几点") || chat.Contains("钟")||chat.Contains("time")) //关键字提取 时间 { // Console.WriteLine("现在的时间我还真不知道!"); Console.Write("{0}说>>:",mcname); datetime(); //调用时间函数 } else if (chat.Contains("计算") || chat.Contains("数学")||chat.Contains("做题")) { Console.ForegroundColor = ConsoleColor.Yellow; //黄色 Console.WriteLine("{0}说>>:好的,正在为你启动计算器",mcname); Calculator(); Console.WriteLine(); Console.WriteLine(); Console.ForegroundColor = ConsoleColor.White; //白色 } else if (chat.Contains("....") || chat.Contains("...") || chat.Contains("..") || chat.Contains(".")) { Console.WriteLine("{0}说>>:这斑斑点点,不能彰显你的沉默,只会昭示你左右手的寂寞~",mcname); } else if(chat.Trim().Equals(string.Empty)) //判断用户输入的是否空格 { Console.WriteLine("{0}说>>:您什么也没有输入\a",mcname); } else if (chat=="") { Console.WriteLine("{0}说>>:你一句话也没有说啊,你在吐口水吗?\a",mcname); } else if (flag) { ReaderQuestion(chat,mcname); //question } else { // bool yn = true; Console.WriteLine("{0}说>>:~噢我没有听懂,你教我好吗?",mcname); while (yn) { Console.ForegroundColor = ConsoleColor.DarkCyan; Console.WriteLine("{0}说>>:教我学习吧(Y\\N)?\a",mcname); Console.Write("{0}>>说:",user); string repor = Console.ReadLine(); if (repor == "y" || repor == "Y") { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine(); Console.WriteLine(); Console.WriteLine(); Console.WriteLine("\t\t>>>>>>>>>机器人已进入学习模式<<<<<<<<<<<<"); Console.WriteLine(); Console.ForegroundColor = ConsoleColor.DarkCyan; WriteQuestion(); //调用学习方法 yn = false; } else if (repor == "n" || repor == "N") { Console.WriteLine("{0}说>>:您取消了学习,哼~居然不教我。\a",mcname); yn = false; } else { Console.WriteLine("{0}说>>:您的输入不正确\a",mcname); yn = true; } Console.WriteLine(); Console.ForegroundColor = ConsoleColor.White; //白色 } } } /*机器人学习*/ /*test Reader*/ public void ReadAnser() //读取Answer—A文件 { string FILENAME = "J:\\C_sharp_Code\\Project\\Answer.txt"; FileStream fs = new FileStream(FILENAME, FileMode.Open, FileAccess.Read); StreamReader sr = new StreamReader(fs, Encoding.Default); string reder = sr.ReadLine(); while (reder != null) { Console.WriteLine(reder); reder = sr.ReadLine(); } sr.Close(); fs.Close(); } /*机器人智能匹配模块*/ public void ReaderQuestion(string chat, string name ) //读取Questioin第二文件B { bool b; //flag int count = 0; string FILENAME1 = "J:\\C_sharp_Code\\Project\\Question.txt"; string FILENAME2 = "J:\\C_sharp_Code\\Project\\Answer.txt"; FileStream fs1 = new FileStream(FILENAME1, FileMode.Open, FileAccess.Read); FileStream fs2 = new FileStream(FILENAME2, FileMode.Open, FileAccess.Read); StreamReader sr1 = new StreamReader(fs1, Encoding.Default); StreamReader sr2 = new StreamReader(fs2, Encoding.Default); string reader1; reader1 = sr1.ReadLine(); while (reader1 != null) { count++; if (b = reader1.Contains(chat)/*||chat.Contains(reader1)*/) //1、核心关键捕获,智能匹配// { chat = reader1; //reder //Console.WriteLine(chat); break; //找到坐标位置跳出去 } reader1 = sr1.ReadLine(); // Console.WriteLine(chat); } //指针指向Anser //Console.WriteLine("count={0}",count); //坐标位置测试 string reder2 = "null没有读到"; for (int i = 1; i <= count; i++) { reder2 = sr2.ReadLine(); chat = reder2; } Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine("{0}说>>{1}\a", name, chat); //机器人的回答 Console.WriteLine(); sr1.Close(); fs1.Close(); sr2.Close(); fs2.Close(); } /*Write机器人学习过程*/ public void WriteAnwser() //WriterAnswer_ B文件 { string FILENAME = @"J:\C_sharp_Code\Project\Answer.txt"; FileStream feel = new FileStream(FILENAME, FileMode.Append, FileAccess.Write); StreamWriter sw = new StreamWriter(feel, Encoding.Default); Console.WriteLine("请输入答案:"); //写入文件 string str = Console.ReadLine(); sw.WriteLine(str + "\n"); sw.Flush(); sw.Close(); feel.Close(); Console.WriteLine(); Console.ForegroundColor = ConsoleColor.Blue; Console.WriteLine("{0}说>>:OK,我学会了!",mcname); Console.WriteLine("~亲咱们继续聊!"); Console.WriteLine(); Console.WriteLine(); Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("\t\t>>>>>>>>>机器人学习已成功<<<<<<<<<<<<"); Console.WriteLine(); Console.ForegroundColor = ConsoleColor.White; //白色 } public void WriteQuestion() //Write Question A文件 { string FILENAME = @"J:\C_sharp_Code\Project\Question.txt"; FileStream feel = new FileStream(FILENAME, FileMode.Append, FileAccess.Write); StreamWriter sw = new StreamWriter(feel, Encoding.Default); //写入文件 Console.ForegroundColor = ConsoleColor.Green; //绿色 Console.WriteLine("请输入问题:"); string str = Console.ReadLine(); sw.WriteLine(str + "\n"); sw.Flush(); sw.Close(); feel.Close(); WriteAnwser(); //调用回答方法 } } }
试试其它关键字
Chatbot
同语言下
.
文件IO 操作类库
.
Check图片类型[JPEG(.jpg 、.jpeg),TIF,GIF,BMP,PNG,P
.
机器名和IP取得(IPV4 IPV6)
.
Tiff转换Bitmap
.
linqHelper
.
MadieHelper.cs
.
RegHelper.cs
.
如果关闭一个窗体后激活另一个窗体的事件或方法
.
创建日志通用类
.
串口辅助开发类
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
GongBiao
贡献的其它代码
(
1
)
.
面向对象Chatbot智能版
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3