zoukankan      html  css  js  c++  java
  • 记忆英语单词小工具的开发(是时候为自己写一些东西了)

      自己平时有睡前记录10个英语单词的习惯,每天在本子上记录下来。有一天忽然感觉不对啊,我是个程序猿,怎么能用笔纸这么原始的方式来做呢?所以闲着无聊就开发了这个小工具,如果你也有每天记英语单词的习惯,那么这个小工具也应该很适合你。

      程序还是蛮简单的,大致上界面如下:

      记录单词:这个没什么好说的,add一条数据,都懂的。可以看一下验证处理,还有这里调用了百度翻译接口,输入英文的时候,词义自动会出来了,代码如下:

     1 /// <summary>
     2         /// 翻译方法
     3         /// </summary>
     4         /// <param name="textstr">需要翻译的内容</param>
     5         /// <param name="language">被翻译的语言</param>
     6         /// <param name="tolanguage">翻译成的语言</param>
     7         /// <returns></returns>
     8         public static string GetGoogtextStr(string textstr)
     9         {
    10             string url = string.Format("http://openapi.baidu.com/public/2.0/bmt/translate");
    11             string requestStr = string.Format("client_id=gRyhqRABKe1rvYr8Krcxik5B&q={0}&from=en&to=zh", textstr);
    12             AdmAccessToken token = HttpPost(url, requestStr);
    13             if (token.trans_result[0].dst.Equals(token.trans_result[0].src))
    14             {
    15                 return "";
    16             }
    17             else 
    18             {
    19                 return token.trans_result[0].dst;
    20             }
    21         }
    22 
    23         /// <summary>
    24         /// 采用Post方式提交数据
    25         /// </summary>
    26         /// <param name="DatamarketAccessUri">目标网址</param>
    27         /// <param name="requestDetails">参数字符串</param>
    28         /// <returns></returns>
    29         private static AdmAccessToken HttpPost(string DatamarketAccessUri, string requestDetails)
    30         {
    31             //Prepare OAuth request 
    32             WebRequest webRequest = WebRequest.Create(DatamarketAccessUri);
    33             webRequest.ContentType = "application/x-www-form-urlencoded";
    34             webRequest.Method = "POST";
    35             byte[] bytes = Encoding.ASCII.GetBytes(requestDetails);
    36             webRequest.ContentLength = bytes.Length;
    37             using (Stream outputStream = webRequest.GetRequestStream())
    38             {
    39                 outputStream.Write(bytes, 0, bytes.Length);
    40             }
    41             using (WebResponse webResponse = webRequest.GetResponse())
    42             {
    43                 DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(AdmAccessToken));
    44                 //Get deserialized object from JSON stream
    45                 AdmAccessToken token = (AdmAccessToken)serializer.ReadObject(webResponse.GetResponseStream());
    46                 return token;
    47             }
    48         }
    View Code

      

      单词查询列表:查询显示你所记录的所有单词。这里有一个比较恶心的地方是sqlite数据库的rowid取得的是逻辑行号索引,而grid分页处理的时候需要的是物理行号索引。http://www.16kan.com/question/detail/45711.html,我是用这种办法解决这个问题的,有兴趣的朋友可以看一下。

      单词测试:可以在记录下的单词中抽查你的掌握情况,根据中文词义,回答英语单词,也可以根据英语单词回答中文词义。

      学习情况:显示今天和总共记录单词的数量。

      做这个小程序用到了devExpress,所以想看源码的朋友可以先下载devExpress,又好看又好用,后期还会加上语音朗读,单词分类统计等功能。

      运行程序下载:http://files.cnblogs.com/ajdopteronmomo/%E8%BF%90%E8%A1%8C%E7%A8%8B%E5%BA%8F.rar

  • 相关阅读:
    用fnmatch函数进行字符通配
    activity和service之间的相互通信方法
    IGMP协议简介
    Android2.2快速入门
    Android开发之旅:HelloWorld项目的目录结构
    Android的五大基本组件
    Android Service 组件
    TCP交互数据流 成块数据流
    为什么要进行IP选路?
    embOS实时操作系统 任务通讯
  • 原文地址:https://www.cnblogs.com/ajdopteronmomo/p/3676534.html
Copyright © 2011-2022 走看看