记忆英语单词小工具的开发(是时候为自己写一些东西了)

  自己平时有睡前记录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,又好看又好用,后期还会加上语音朗读,单词分类统计等功能。

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

posted @ 2014-04-20 15:34  o漆黑之牙o  阅读(405)  评论(0编辑  收藏  举报