C#实现备忘录功能

一、简述

备忘录,相信大家生活中都使用过,比如记笔记、手机备忘录等等,这些都是记录自己灵感时所想、定期内想做的事情,好像跑题了,说说我的备忘录吧,我的备忘录功能上也就是增删改查的操作,另加到时提醒、语音播放内容,很简单吧,但是实用,好了,想看设计点吧。

二、设计

1、数据库设计

数据库用的是SQLite

数据库表:Sys_Kind、Memorandum

Sys_Kind是一个通用字典表,这个对初学者有帮助,如下图:

解析:ID不用说了,自增的标识,K_Name:字典名称,K_Parent:父类型标识,就是说如果K_Parent为0,那么它就是一个类型,然后子字典就以它作为父类,这个字段键入父类ID值即可,K_Sort排序就是单个类型的排序,或者你也可以将所有数据作为排序也行,K_AddTime添加时间,K_Desc字典描述,这样可以便于后来的人查看这个是用来干什么的,K_State字典状态,这个呢,可以灵活应用,用来是否显示某个字典或者其他多状态都可以,K_Code字典代码值,这个就很重要了,这个就用作字典的值,很多人或许会问,为什么不用自增ID呢,因为如果类型很多的情况下,这个ID值会越来越大,你定义的类型值本身没有几个,而它的值还这么大,何必呢,旁边这个表就是备忘录表,我就不解释了,自己慢慢体会。

2、程序设计(上图)

这个呢,大家都知道哈,就是普普通通的增删改查,没什么大的技术含量

三、核心技术

1、自动查询备忘录

这一块呢,相信大家都知道,可以用Timer这个控件,的确可以用Timer,当然这里,我用的不是Timer控件,而是System.Threading.Timer这个类,当然需要了解相关的用法,大家可以百度搜索,也可以去这儿https://msdn.microsoft.com/zh-cn/library/system.threading.timer(v=vs.110).aspx看看,当然我也贴出代码,让大家参考一下。

//声明一个委托
private delegate void SetTimerLogicCallback();

//声明一个定时器的类
private System.Threading.Timer threadTimer;

//执行委托的方法,ShowMemorandumInfo是查询数据库的方法
private void ThreadMethod(object obj)
    {
      SetTimerLogicCallback timerLogic = new SetTimerLogicCallback(ShowMemorandumInfo);
      this.Invoke(timerLogic);
    }

 /// <summary>
    /// 定时器设置,这个方法或者这段代码可以写在窗体加载的时候
    /// </summary>
    private void TimerSet()
    {
       threadTimer = new System.Threading.Timer(new System.Threading.TimerCallback(ThreadMethod), null, 0, 1000);
    }

2、语音播报内容

这块我用了两个方面的技术,一个就是微软自带的System.Speech.Synthesis.SpeechSynthesizer语音识别的类,第二个就是百度提供的语音识别接口,为什么用两个呢,如果我们用户机上面没网,那么就可以使用微软自带的语音识别功能,如果用户机没装微软的语音识别,那么就可以使用百度的语音识别接口,如果没网、机器也没装微软的语音识别,那么你可以打包程序自动装微软自带语音识别的安装包或者其他插件异或组件,当然,这个安装包肯定比你的程序大很多,估计现在除了用xp的,win7的没有几个没自动装语音识别的吧,好了,下面就是代码:

/// <summary>
    /// 微软语音识别
    /// </summary>
    /// <param name="content">提示内容</param>
    public static void SpeakAsync(string content)
    {
      try
      {
        if (synth != null)
          synth.Dispose();
        synth = new System.Speech.Synthesis.SpeechSynthesizer();
        synth.SpeakAsyncCancelAll();
        synth.SpeakAsync(content);
      }
      catch (Exception ex)
      {
        throw ex;
      }
    }

    /// <summary>
    /// 百度语音合成(文档网站:http://yuyin.baidu.com/docs/tts/197)
    /// </summary>
    private void BaiduTts(string audioText)
    {
      _ttsClient = new Baidu.Aip.Speech.Tts("API_KEY", "SECRET_KEY ");
      // 可选参数
      var option = new Dictionary<string, object>()
        {
          {"spd", 5}, // 语速
          {"vol", 7}, // 音量
          {"per", 4} // 发音人,4:情感度丫丫童声
        };
      var result = _ttsClient.Synthesis(audioText, option);
      if (result.ErrorCode == 0)
      {
        string fileName = Application.StartupPath + "\\" + Guid.NewGuid().ToString() + ".mp3";
        System.IO.File.WriteAllBytes(fileName, result.Data);
        axWindowsMediaPlayer1.URL = fileName;
        axWindowsMediaPlayer1.Ctlcontrols.play();
        System.IO.File.Delete(fileName);
      }
      else
      {
        Utils.LogMessage("百度语音合成异常", result.ErrorMsg);
      }
    }

 总结:这是一个简单的备忘录程序,欢迎初学者学习,大神就随便看看就行了,欢迎大家点赞转发

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

您可能感兴趣的文章:

  • C#与js实现去除textbox文本框里面重复记录的方法
  • C# 字符串多行显示/文本换行以textbox为例讲解
  • C# 创建文本文件写入读取实现代码
  • c# 以二进制读取文本文件
  • C#实现将日志写入文本文件的方法
  • C#导出文本内容到word文档的方法
  • C#实现把txt文本数据快速读取到excel中
  • c#实现将pdf转文本的示例分享
(0)

相关推荐

  • C# 创建文本文件写入读取实现代码

    第一次运行时: 第二次运行时: 复制代码 代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; namespace 文件操作 { class Program { static void Main(string[] args) { //创建一个文本文件,最好先判断一下 StreamWriter sw; if (!File.Exists(

  • c#实现将pdf转文本的示例分享

    如何解析PDF文件 在.NET中从PDF文件里提取文本的几种主要方法有: 1.Microsoft 的 IFilter 接口 和 Adobe 的 IFilter 实现: 2.iTextSharp: 3.PDFBox. 不幸的是这些 PDF 解析方案都不完美.我们将在下面讨论这些方法. Adobe PDF IFilter 为了使用 IFilter 接口来解析 PDF 文件,你需要: Windows 2000 或者后续版本 Adobe Acrobat 或 Reader 7.0.5+ (或单独的 Ado

  • c# 以二进制读取文本文件

    复制代码 代码如下: using System; using System.IO; public class FileApp {     public static void Main()     {         // 在当前目录创建一个文件myfile.txt,对该文件具有读写权限         FileStream fsMyfile = new FileStream("myfile.txt" , FileMode.Create, FileAccess.ReadWrite);

  • C#与js实现去除textbox文本框里面重复记录的方法

    本文以实例形式展示了C#与js实现去除textbox文本框里面重复记录的方法!具体方法如下: 现有如下问题:页面有一个textbox文本框(是多行的),比如我在文本框里面输入:111,222,333,555当再输入111的时候会自动清除掉这个111,或者是在提交一个按钮前清除掉这个相同记录! 解决方案如下: 以逗号分割成一个数组 有一个Split()方法 然后比较 里面相等的就删除掉后面的那个 形成新的实例 再把新实例按格式输进来~ C#代码如下: string temp_str = "111,

  • C#实现把txt文本数据快速读取到excel中

    今天预实现一功能,将txt中的数据转到excel表中,做为matlab的数据源.搜集一些c#操作excel的程序.步骤如下: 下载一个Microsoft.Office.Interop.Excel.dll   在项目中引用. 编写代码如下: string path = "c://date//xyu.txt"; StreamReader sr = new StreamReader(path); string strLine = sr.ReadLine(); int rowNum = 1;

  • C#实现将日志写入文本文件的方法

    本文实例讲述了C#实现将日志写入文本文件的方法.分享给大家供大家参考.具体如下: 这里传入的参数是 要写的内容 using System.IO; public static void WriteLog(string strLog) { string sFilePath="d:\\"+DateTime.Now.ToString("yyyyMM"); string sFileName = "rizhi" + DateTime.Now.ToString

  • C# 字符串多行显示/文本换行以textbox为例讲解

    方法1:以textbox为例 ①:先设置textbox的属性Multiline为true ②:组织好显示字符串:FistLine(第一行要显示的字符).SecondLine(第二行要显示的字符).........第n行字符 ③textbox.text="FistLine"+System.Environment.NewLine+"SecondLine"+System.Environment.NewLine+....+"第N 行"+System.En

  • C#导出文本内容到word文档的方法

    本文实例讲述了C#导出文本内容到word文档的方法.分享给大家供大家参考.具体实现方法如下: <%@ Page Language="C#" AutoEventWireup="true" %> <script runat="server"> protected void Page_Load(object sender, EventArgs e) { Repeater1.DataSource = new String[] {

  • vue.js实现备忘录功能的方法

    这个vue实现备忘录的功能demo是K在github上找到的,K觉得这是一个用来对vue.js入门的一个非常简单的demo,所以拿在这里共享一下. (尊重他人劳动成果,从小事做起~  demo原github地址:https://github.com/vuejs/vue) 一.实现效果 二.代码展示 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>备忘录&l

  • C#实现备忘录功能

    一.简述 备忘录,相信大家生活中都使用过,比如记笔记.手机备忘录等等,这些都是记录自己灵感时所想.定期内想做的事情,好像跑题了,说说我的备忘录吧,我的备忘录功能上也就是增删改查的操作,另加到时提醒.语音播放内容,很简单吧,但是实用,好了,想看设计点吧. 二.设计 1.数据库设计 数据库用的是SQLite 数据库表:Sys_Kind.Memorandum Sys_Kind是一个通用字典表,这个对初学者有帮助,如下图: 解析:ID不用说了,自增的标识,K_Name:字典名称,K_Parent:父类型

  • 使用Python实现微信提醒备忘录功能

    最近工作比较繁杂,经常忘事,有时候记了备忘录结果却忘记看备忘录,但是微信是每天都会看的,于是就想到写 一个基于微信的提醒系统.总体思路是将待办事项记录到在线记事本,通过建立定时任务,每天早上爬取文档中记 录的待办事项,筛选出当日需要处理的事项,并通过server酱发送到自己微信. 1任何的记录与提取 1).任务记录 为了便于爬取,推荐使用网页版的在线记事本,现在这种工具很多,我选择"石墨文档"进行操作演示.记录内容的 格式可以根据自己的需求和爬虫自行确定,例如我在11月20日之前记录了

  • vue实现日历备忘录功能

    用vue写了个日历备忘录的功能,省略了备忘录的增删改查功能. 直接上代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>备忘录</title> <style type="text/css"> #box{ width: 469px; } /*日历*/ *{ padding:

  • 使用Python制作自动推送微信消息提醒的备忘录功能

    日常工作生活中,事情一多,就会忘记一些该做未做的事情.即使有时候把事情记录在了小本本上或者手机.电脑端备忘录上,也总会有查看不及时,导致错过的尴尬.如果有一款小工具,可以及时提醒,而不用再主动去查备忘录,化被动为主动,那就再合适不过了.因此,在这里我们就利用Python,实现这样的一款"小工具". 初步设想 毫无疑问,手机是当前使用最频繁的工具,没有之一.饭可以不吃,手机不可以不带.如果能在某些特定的时点,将备忘记录事项通过某种形式发送到手机端,通过查看手机端消息实现事项提醒,那将是再

  • Vue.js实现备忘录功能

    本文实例为大家分享了Vue.js实现备忘录的具体代码,供大家参考,具体内容如下 效果展示: html代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <!-- 移动设备设置 --> <meta name="viewport" content="width=device-width,initial-scale=1,minimum-

  • 动态规划之使用备忘录来改进Javascript函数

    目录 什么是备忘录? 备忘录的概念 1.引用透明 2.查找表 比较函数使用备忘录和不用备忘录 解决方法是记录调用函数的返回结果 备忘录的意义 结论:什么是备忘录? 前言; 动态规划已出现了十多年.根据维基百科,它既是一种数学优化方法,也是一种计算机编程方法.一个问题要真正应用动态规划,必须具有两个关键属性:最优结构和重叠子结构.本文不会细讲动态规划,而是将关注重叠子结构如何成为动态规划的关键属性之一.由于这关系到接下来的存储解决方案问题,所以对它的讨论非常重要. 本文将介绍什么是备忘录,备忘录对

  • Vuex2.0+Vue2.0构建备忘录应用实践

    一.介绍Vuex Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化,适合于构建中大型单页应用. 1.什么是状态管理模式? 看个简单的例子: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content=&q

  • 详解Objective-C设计模式编程中对备忘录模式的运用

    基本理解 这个模式有三个关键角色:原发器(Originator).备忘录(Memento).看管人(caretaker).三者的基本关系是:原发器创建一个包含其状态的备忘录,并传给看管人.看管人不知道如何与备忘录交互,但会把备忘录放在一个安全之处保管好. 备忘录(Memento):在 不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态.这样以后就可以将该对象回复到原先保存的状态. Originator(发起人):负责创建一个备忘录,用以记录当前时刻它的内部状态,并且可使用恢

  • Python中利用函数装饰器实现备忘功能

    "备忘"的定义 "memoization"(备忘)这个词是由Donald Michie在1968年提出的,它基于拉丁语单词"memorandum"(备忘录),意思是"被记住".虽然它和单词"memorization"在某种程度上有些相似,但它并不是该单词的错误拼写.实际上,Memoisation是一种用于通过计算来加速程序的技术,它通过记住输入量的计算结果,例如函数调用结果,来实现其加速目的.如果遇到相同的

随机推荐