记忆英语单词小工具的开发(是时候为自己写一些东西了)
自己平时有睡前记录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 }
单词查询列表:查询显示你所记录的所有单词。这里有一个比较恶心的地方是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