电子备忘录系统设计与实现
更新时间:2023-11-01 20:50:02 阅读量: 综合文库 文档下载
- 电子系统设计心得体会推荐度:
- 相关推荐
第1章 绪论
当今社会,随着计算机的发展及网络技术的应用,Internet应用在全球范围内的普及。当今社会正快速向信息化社会前进,信息自动化的作用也越来越大。信息技术不断融入人们的日常生活。在科学技术越来越先进的信息时代,人们应该从以前繁琐的事务中解放出来,提高工作效率。
为了提高人们的办事效率,开发实现一款能减少人们重复劳动力,节省不必要的时间开销的软件显的十分必要。个人通讯备忘录在人们日常生活中起着重要的角色,它协助完成一些日常琐事,它保存用户的一些好友的通讯资料,方便人与人的沟通。从以前的纸上记录通讯资料进化到用电子记事本记录这些资料,大大提高了保存的可靠性,并且方便了用户的使用。如记事本可以把近期需要完成的一些事件保存到数据库中,不会再因为找不到记录本而耽误了安排,这样就减少了不必要的时间开销,提高人们的办事效率;对一些容易忘记的事件,还可以在闹钟设置项中设置响铃时间来提醒用户,为用户提供了便利。因此,个人工作备忘录软件在日常通讯录管理,以及日常事务安排上起着重要作用。
目前,电子备忘录在实现语音名片,记事录音和声控回放等功能已有成功案例,比一般的记事本有先进之处。通过专家分析,电子备忘录设计中最有研究价值的是如何把烦琐地从键盘输入信息转化为语音录入信息,以及解决存储语音信息所需的高容量问题。这两大问题的解决将会对电子备忘录中信息的录入以及对信息保存空间进行改进。同时,为用户的操作使用提供了更多方便。
中国最大的论文知识平台www.lwxiezuo.com
第2章 系统开发工具及配置概述
本系统开发语言为C++语言,C++语言是一种应用较广的面向对象的程序设计语言,使用该语言可以实现面向对象的程序设计。面向对象的设计与面向过程的设计有很大区别,面向对象的程序设计是在面向过程的基础上一个质的飞跃。在本系统中该语言的这个特点得到了很好的证明。编程工具有VS2005,本系统是建立在C#的Win Form平台进行开发,用C#可以方便地进行界面开发。系统所用数据库是SQL2005,它是建立在SQL2000的基础上发展的,功能上与SQL2000相比更加完善,使得数据库的管理和程序编写更为安全,且更有弹性。
2.1 C#概述
C#是为微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言,它将作为Visual Studio中之一部分推出[1]。C#既保持了C++中熟悉的语法,并且还包含了大量的高效代码和面向对象特性,C#语言凭借它的许多创新,在保持C样式语言的表示形式和优美的同时,实现了应用程序的开发,作为最新版本,Microsoft Visual C# 2005 提供高级代码编辑器,方便的界面设计器,继承调试器和许多其他工具,以在C#语言版本 2.0和.NET Framework基础上加快应用程序的开发。
2.2 SQL2005概述
SQL Sever 2005是在SQL Sever 2000的基础上开发出来的。它相对于SQL Sever 2000来说有了很大变化。它将以往的工具大幅度集成,提供了一个集成的开发环境。它在安全性问题上有了相当大的改变,它让数据库的管理和程序编写更为安全,且更有弹性。为了管理SQL Sever 2005的一些新增功能和提供程序开发的能力,T-SQL将原有的语法加以翻新,提供了更丰富的内容,同时也使得T-SQL的语法更一致化。
SQL Sever 2005新增了原有的XML数据类型,能大幅度增强XML数据访问的能力,可以一致性地管理各种类型的数据。它还新增了Sever Broker Services服务和通过Web Services访问机制,提供了SOA对数据库平台的支持和前端应用程序
中国最大的论文知识平台www.lwxiezuo.com
访问的方便性。
SQL Sever 2005为开发人员提供了较SQL Sever 2000版本更丰富且易于维护的报表功能,加强了Analysis Services制作报表的能力。它放弃了在SQL Sever 2000中相当成功的DTS,改以.NET的完全重新改写,推出了SQL Sever Integration Services(SSIS),务求提升性能和增添更丰富的功能。值得注意的是,SQL Sever 2005在核心引擎中加入了.NET的公共语言执行环境(CLR),让.NET自身强大的功能融入到SQL Sever 2005中。同时,用来访问数据库ADO.NET 2.0版,除了增强旧功能外还提供了相当多的新功能。除此之外,SQL Sever 2005还提供了可以将管理功能集成在自己开发的程序中的管理对象SMO。
2.3 Visual C++ .Net概述
Visual C++ .NET 是微软下一代Visual C++,是微软.NET战略的重要组成部分,Microsoft .NET 是 Microsoft XML Web services 平台。XML Web services 允许应用程序通过 Internet 进行通讯和共享数据,而不管所采用的是哪种操作系统、设备或编程语言。Microsoft .NET 平台[3]提供创建 XML Web services 并将这些服务集成在一起之所需。对个人用户的好处是无缝的、吸引人的体验。
与Visual C++6.0相比,Visual C++.NET包含许许多多新的特性,主要有: (1)不再使用MFC42.DLL,而是采用和Visual C++版本号相同的MFC70.DLL。 (2)集成MFC和ATL,使它们能够共用一些常用的类,如CString。 (3)提供最新开发平台的SDK,并支持最新Windows的用户界面特性,如Windows XP的界面主题、GDI+、CLinkCtrl等。
(4)增加了许多新的MFC用户界面类,如DHTML对话框、增强图像类CImage。 (5)在MFC应用程序中支持Web Services的客户端开发,以及用ATL Server编写Web Services应用程序。
(6)增加了新的OLE DB属性和类,这使得用户更加能够快速地进行数据访问。 (7)增加属性化编程和ATL更新。
所谓属性化编程,是指能够使用少量的代码迅速地建立COM组件,在最新Visual C++.NET开发环境中,还新增了一些属性,这些属性可以改变代码的行为,甚至可以通过插入一些额外的代码来完成一些基本的工作,例如ActiveX控件的执行、类厂的创建以及数据库命令的格式化处理等。
中国最大的论文知识平台www.lwxiezuo.com
Visual C++ .NET 中的新功能还包括 C++ 属性、托管扩展、ATL Server,以及大量的新库、IDE 和编译器优化与增强功能。
Visual C++ .NET 开发人员还可以使用 Microsoft .NET 框架类库并利用强大的内置功能 — 包括一组丰富的集合类、网络支持、多线程支持、字符串和正则表达式类,以及对 XML、XML 架构、XML 命名空间、XSLT、Xpath 和 SOAP 的广泛支持。
Visual C++ .NET 为开发人员提供了许多专业级功能,让他们能够为 Windows 和 Web 创建功能非常强大的应用程序和组件。自始至终,该工具都提供了帮助简化 C++ 软件开发过程的功能。
应用程序向导为快速启动项目提供了强大的模板。其中包括的 MFC 和 ATL 应用程序框架库是最强劲、最有效和最流行的用于开发基于 Windows 应用程序的库,现在又针对 Windows XP 得到了增强。这些功能与专业级编译器和高级调试器集成在一起,共同提供了一致和有效的开发体验。C++ 是全世界最流行的语言之一,通过 Visual C++ .NET,开发人员能够享用世界级的 C++ 开发工具。C++ 是一种可互操作的基于标准的语言,而 C++ 技能也可以在多个计算环境和社区间利用。
2.4 SQL2005数据库配置
在配置该系统的数据库[2]的实现过程中,SQL2005的服务器类型设置为数据库引擎;服务器名称为KANGWL-150799E2\\SQLEXPRESS;身份验证为Windows 身份验证。如图2-1中,单击“连接”按钮,数据库将自动进行连接。
中国最大的论文知识平台www.lwxiezuo.com
图2-1 连接到服务器图
点击连接如图2-1,点击打开数据库项,进入到对象资源管理器页面,如图2-2所示。
在该资源管理器中显示着系统设计需要的CommunTable以及NotebookTable表,这两张表分别保存着通讯录中好友的资料和记事本的记录内容。
图2-2 对象资源管理器
图2-2 对象资源管理器图
2.5 本章小结
本章结合个人通讯录软件设计开发,系统地对开发本系统所用到的开发语言、开发工具、开发平台进行详细地介绍,该系统所用开发语言为C++语言,编程工具为Visual Studio 2005,建立在C#平台下的Win Form进行设计开发,该平台开发应用程序界面具有许多优点,设计界面显的非常方便,系统用到的数据库是SQL2005,SQL Sever 2005是在SQL Sever 2000的基础上开发出来的。它相对于SQL Sever 2000来说有了很大的变化,在安全性问题上有了相当大的改变,它让数据库的管理和程序编写更为安全,且更有弹性。
中国最大的论文知识平台www.lwxiezuo.com
第3章 备忘录系统模型
系统模型形象地描述系统的运作模式,清晰地表示着各个模块之间实现的联系,设计系统模型同样是实现系统功能的前提,系统模型也对系统实现起着指导性作用。
个人工作备忘录主要涉及记事本、通讯录、数字闹钟三大模块,如图2-1所示。数据库和软件界面的交互性在图3-1中清晰可见,即对数据库中的资料的修改可以体现到记事本、通讯录界面上;同时也可以通过软件中的管理界面,修改数据库中的内容,保存新数据到数据库中。记事本和通讯录还与数字闹铃有交互,即通过数字闹铃可以设置时间,用于对记事本中需要闹铃提示的事件进行响铃提醒,由于该数字闹铃是通过Windows Media Player选择闹铃音乐,同时可以选择优美的音乐用作欣赏。
NoteBook Table 数字闹钟 记事本 DB 通讯录 Commun Table 图3-1 个人备忘录系统模型
中国最大的论文知识平台www.lwxiezuo.com
3.1模型分析
该系统的实现是通过在数据库中建立NoteBook Table表和Commun Table表,在表NoteBook Table中保存着需要记录的事件的主题、时间、地点、事件概要等内容,在表Commun Table中保存好友的一些通讯资料,如好友姓名、性别、电话、公司地址、住址等一系列内容。记事本模块通过连接数据库,可以提取数据库表中的相应信息资料,显示资料到界面上,同时,也可以通过在界面输入数据资料,把需要记录的事件的相应资料保存到数据库中对应字段中。通讯录模块也可以通过连接数据库,提取数据库表中的相应信息资料,显示资料到界面上,同时,也可以通过在界面输入数据资料,把需要保存的好友的相应资料保存到数据库中对应字段中。最后,数字闹钟连接着记事本和通讯录模块,通过设置数字闹钟时间,可以对需要提醒的事件进行提示,闹钟是根据预先设置的时间与系统当前时间进行匹配,如果时间一致,闹钟将调用Windows Media Player插件播放闹钟音乐,实现闹钟功能。
3.2 本章小结
本章着重强调了系统模型在系统开发实现中的重要性,一个完整的系统模型能清晰地描述出系统各模块之间的联系,能充分体现了软件工程过程,生产一个最终能满足需求且达到工程目的的软件产品所需要的步骤。从系统模型可以分析该系统具体能实现的功能,以及对一些问题的分析获取需求定义,确认活动贯穿于整个开发过程,实现完成后的确认,保证最终产品满足用户的要求。维护活动包罗使用过程中的补充、修改与完善。伴随以上过程,还有管理过程、支持古成、培训过程等。
中国最大的论文知识平台www.lwxiezuo.com
第4章 系统设计分析
个人工作备忘录主要包括通讯录、记事本、数字闹铃三大模块。通讯录是对日常生活中一些经常需要联系的好友的资料进行保存,修改,删除,在这个模块中主要考虑是否会从数据库中读脏数据,数据字段大小的是否合适等一系列问题。在设计记事本模块时要考虑的问题也类似,但设计闹钟设计时,由于所用到的界面需要VS2005插件——National Instruments,首先安装该插件,再对闹钟的设计,因为闹铃音乐是可以选择一些歌曲,所以有添加工具播放器,该模块主要是提取系统时间与设定时间的匹配,如果一致,闹铃自动播放预先设定的音乐进行提醒。
4.1 通讯录模块需求
通讯录模块用于完成通讯表信息的输入与保存,具体包括在该页面中把相应的字段填写完整,按下按钮“提交”后通过数据库连接,把所填写的字段保存到数据库中CommunTable表中;按下“重新编辑”按钮时,清理页面上所有填写的字段,提供空白字段表;按“退出”按钮,系统将关闭该页面。同时,为方便用户输入可做些特殊处理,如在Email字段中为了方便用户选择邮箱类型,在界面上可以选择不同的邮箱类型,如 @sina.com ,@163.com等等。
4.1.1 通讯录表设计
在通讯录模块中主要涉及到通讯表信息包括姓名,性别,职业,电话,公司名称,住址,电子邮件等内容,设计数据库表如表4-1所示。
表4-1 好友信息表 字段名 姓 名 性 别 职 业 电 话 公司名称 住 址 电子邮件
字 段 Name Sex Profession TEL Company Address Email 字段类型 verchar(10) char(2) verchar(10) verchar(20) verchar(30) verchar(30) verchar(30) 是/否为关键字 是 否 否 否 否 否 否 是/否为空 不允许 允许 允许 不允许 不允许 不允许 允许 中国最大的论文知识平台www.lwxiezuo.com
其中:
(1)姓名字段指的是该好友在通讯录中所存储的姓名,该属性作为关键字处理。
(2) 性别字段指的是该好友是男的还是女的,必要时也可以协助区分同名好友,尽量依靠姓名识别。
(3) 职业字段指的是该好友所从事的工作,同时可以用职称等代替。 (4) 电话字段指的是该好友的通讯方式,可以是家庭电话或移动电话等。 (5) 公司名称字段指的是该好友所在的公司名称,如果是经商的也可以填写适当字段来标识。
(6) 住址字段指的是该好友现在住址,为方便通讯尽量填写完整。 (7) 电子邮件字段指的是该好友在Internet上的电子邮箱地址。
4.2 记事本模块需求
记事本模块用于记录近期将要发生的一些事件、会议、行程等的安排,工作小结等内容,并将其存入数据库以便今后查看。具体包括通过页面输入要记录的事件,连接数据库,按“提交”按钮将信息保存到数据库中;按“取消”按钮关闭该页面。
4.2.1 记事本表设计
记事本模型的内容包括需要提醒或保存的事件的主题、时间、地点等,设计数据表如表4-2所示
表4-2 记事本信息表 字段名 事件主题 日 期 时 间 地 址 记 录 其中:
字 段 Theme Date Time Address Remark 字段类型 verchar(20) verchar(10) Datetime verchar(30) verchar(500) 是/否为关键字 是/否为空 是 否 否 否 否 不允许 不允许 不允许 不允许 不允许 (1) 事件主题字段指的是该事件的主题,主题能鲜明的点出事件的中心内容。
中国最大的论文知识平台www.lwxiezuo.com
(2) 日期字段指的是事件发生的日期,所设定日期格式可以根据用户需要设置,特地设置为verchar类型。
(3) 时间字段指的是事件发生的时间。
(4) 地址字段指的是事件发生的具体地址,设置时要简洁清楚。
(5) 记录字段该属性是该记事模块最核心的内容,主要把要处理的事件或需要保存的总结等有关资料的记录,相关信息将会保存到数据库中。
4.3数字闹铃模块需求
数字闹钟部分包括:显示当前时间,记时器,闹钟三个小部分。当前时间是调用系统时间在指定栏目显示,能记录每一毫秒。计时器是用来记时,该记时功能可以对时间精确到1ms,通过前后两次获取系统的时间,然后把时间减一下,完成记时功能。记时精度完全能满足人们日常生活需要,记时的同时,页面上的时钟指针同样在相应地旋转;闹铃部分可以在设置时间栏输入响铃时间,输入完毕后点击选择闹钟铃声可以打开文件夹,选择优美的音乐作为闹铃音乐,等时间一到,所选择的音乐就响起来,提醒该做的事情。
数字闹钟可通过在VS 2005编程工具中加入National Instruments插件实现界面设计开发,该插件作为工具栏中的一员,如图4-1所示
中国最大的论文知识平台www.lwxiezuo.com
图4-1 Measurement Studio插件显示图
但需要完善界面功能,并加入公共控件Windows Media Player,该插件添加后在工具栏中的显示如图4-2所示。
图4-2 播放软件插入图
加入了该播放器插件可用于选择闹铃的声音,即实现了可以用自己选择的歌曲来替代系统自带的“嘟嘟嘟”的声音。
4.4 本章小结
本章主要分析了系统中通讯录、记事本、数字闹钟三大模块的功能,数据库字段设计时的注意点,分析了字段属性的合适性,在实现该系统的数字闹钟界面时需要插入VS2005插件——National Instruments,本章说明了每一模块在界面上的操作步骤,以及定义了数据库表中的所有数据字段,在数据表下方解释了每个字段名。最后,在数字闹钟设计中对该模块实现的功能作了详细的分析,包括功能实现的方法。
中国最大的论文知识平台www.lwxiezuo.com
第5章 系统实现与分析
系统实现包括数据库的设计,数据库连接,界面的设计开发以及代码的编写、调试等。在主界面上点击“通讯录”选项,系统转到通讯录添加人员信息的界面,增加人员信息;点击“记事本”选项,系统将转到记事本界面,可以添加需要记录的事件;点击“管理”选项,下拉菜单中出现管理通讯录和管理记事本两个选项,选择管理记事本,系统进入记事本操作界面,选择管理通讯录,系统进入通讯录界面;在页首输入需要打开的数据库表名,输入完毕后界面上会显示该表在数据库中保存的数据,根据页面底下的按键可以对数据进行插入,更新,删除等功能;点击“闹铃”选项,系统转到闹钟设置页面,该页面中可以对闹铃时间,闹铃音乐设置,也可以进行记时设置。
5.1主界面设计与分析
个人备忘录首页设计,设计该界面是通过在工具栏中拖动菜单添加项,添加“通讯录”,“记事本”,“管理”,“闹铃”,“退出”菜单在界面首行,并且在每个菜单的属性中设置菜单隐性显示,主要为了防止非法登录,只有在UserName和PassWord栏中输入了正确的字段后,页首的“通讯录”,“记事本”,“管理”,“闹铃”,“退出”菜单才会显示。即,可以实现对这些菜单的操作,当输入的用户名或密码不正确,用户就不允许登录到该系统中,并且系统会显示对话框提示改正。首页界面如图4-1。
中国最大的论文知识平台www.lwxiezuo.com
图 5-1 登录界面图 该界面设计部分代码:
应用程序的主入口点. [STAThread]
static void Main()
{ Application.Run(new Form1()); }
系统运行时,首先运行应用程序的第一个窗口。
private void button1_Click(object sender, System.EventArgs e) { if (this.textBox1.Text== \ {
MessageBox.Show(\帐号或密码不能为空!\ return;
}
这段代码用于判断输入的用户名和密码是否正确,如果在textbox1中或textbox2中输入的信息为空,系统调用messagebox显示帐号或密码不能为空。
if (this.textBox1.Text.Equals(\
如果在textbox1中或textbox2中输入的信息分别为“kang”和“123”, {
this.panel1.Visible = false;
该段代码是为了把用户名和密码块设置为隐式登录用户块。
this.menuItem2.Visible = true; this.menuItem3.Visible = true; this.menuItem4.Visible = true;
中国最大的论文知识平台www.lwxiezuo.com
this.menuItem6.Visible = true; this.menuItem11.Visible = true;
该段代码实现当输入的用户名和密码正确后,把登录界面上的菜单字设置为显式字符,可以实现菜单项的功能。 } else {
MessageBox.Show(\你输入的帐号或密码有误!\
对输入的信息不是预先设定的用户名和密码,系统调用messagebox显示“你输入的帐号或密码有误!”。
this.textBox1.Clear();
this.textBox2.Clear();
清除用户名输入框和密码输入框中的信息。 return; } }
private void timer1_Tick(object sender, System.EventArgs e)
{ this.statusBarPanel3.Text=System.DateTime.Now.ToString(); }
该代码获取系统时间,调用系统时间并在右下角显示当前时间。
private void Form1_MouseMove(object sender,
System.Windows.Forms.MouseEventArgs e)
{ this.statusBarPanel1.Text=\当前坐标为:\
}
该代码用于获取鼠标位置,是通过窗口鼠标事件e得到e的横坐标和纵坐标。
private void menuItem2_Click(object sender, System.EventArgs e) {
Form2 f2=new Form2(); f2.Show(); }
该代码用于创建新窗口,并调用窗口的显示函数。
首先,当用户在用户名和密码栏中输入完整信息后,按下“确定”按钮时,程序首先判断在用户名或密码栏中是否为空,如果有一者为空,系统显示对话框,并且提示:“帐号或密码不能为空!”。然后,继续把输入的用户名字段和密码与系统所设置的是否一致。如果一致,把界面上方的菜单项显示,是通过 menuItem.Visible = true;完成,因为在输入用户名和密码之前设置 menuItem.Visible = false。如果所
中国最大的论文知识平台www.lwxiezuo.com
输入密码不正确系统再次提醒“你输入的帐号或密码有误!”并把之前输入的信息都清理干净。
然后,界面右下角显示的时间通过函数 timer1_Tick(object sender,
System.EventArgs e)获取系统当前时间,并在右下角显示。随着界面上鼠标的移动,系统通过函数 Form1_MouseMove(objectsender,System.Windows.Forms. MouseEventArgs e)获取当前鼠标位置,并在左下角显示鼠标位置。
最后,新建窗口是通过代码Form2 f2=new Form2(); f2.Show();实现。
5.2 通讯录界面设计与分析
如图5-2所示是通讯录界面,在该界面上输入合法的数据之后,按下“提交”按钮,系统将所输入的资料保存到数据库中对应的字段中,数据保存完毕后系统会回显“保存成功”字样;然而,如果在输入数据时填写有误需要重新填写,只要按下按钮“重新编辑”按键,将会把之前所输入的数据全部清除。该界面涉及邮箱地址的填写,目前把一些常用的邮箱后缀设置在下拉菜单中,填写时可以方便地选择输入,当然也可以根据自己需要填写后缀。如果想退出对该页面的操作,按下“退出”按键,系统将调用页面函数close,实现关闭页面的功能。
中国最大的论文知识平台www.lwxiezuo.com
图 5-2 通讯录界面图
该界面设计部分代码分析: private void button1_Click(object sender, System.EventArgs e) { try {
string ConnectionString = @\
Source=KANGWL-150799E2\\SQLEXPRESS;Initial Catalog=PersonNote;Integrated Security=True\
该段代码完成连接到本机服务器中,获取服务器名用于连接数据库。
string Sql = \
CommunTable(Name,Sex,TEL,Address,Email)values('\+ this.textBox3.Text + \+ this.textBox5.Text + this.comboBox1.Text+\
该代码实现添加字段Name, Sex, TEL, Address, Email插入到textbox中,系统 将把这些字段分别添加到数据库表中对应字段。 conn = new SqlConnection(ConnectionString); comm = conn.CreateCommand(); comm.CommandText = Sql; conn.Open();
int i = comm.ExecuteNonQuery(); } }
中国最大的论文知识平台www.lwxiezuo.com
该段代码实现数据库的连接,把服务器名赋给commandtext,打开数据库表,并且获取i值,用于判断是否成功添加i行,如果i值小于0系统将自动关闭数据库的连接。
private void button2_Click(object sender, System.EventArgs e) {
this.textBox1.Clear(); this.textBox2.Clear(); this.textBox3.Clear(); this.textBox4.Clear(); this.textBox5.Clear(); this.comboBox1.Text =\}
该段代码用于清除textbox中的内容,实现重新编辑输入的内容。
private void button3_Click(object sender, EventArgs e) {
this.Close(); }
该语句实现关闭当前界面,完成退出功能。
该页面代码主要实现连接数据库,把服务器名作为数据库连接字串。如果连接成功,系统把姓名,性别,住址,公司名称等一系列字段信息添加到数据库中,如果添加成功,系统提示“已经成功添加第x行”。“重新编辑”按钮对应的代码是this.textBox1.Clear(); 该语句实现清除textbox中的内容,实现数据库的连接主要代码如下:
conn = new SqlConnection(ConnectionString); comm = conn.CreateCommand(); comm.CommandText = Sql;
conn.Open();
5.3 记事本界面设计与分析
如图5-3是记事本界面,在该界面上可以输入需要记录事件的主题,该主题最好能反映事件的中心,方便今后对事件的查找;接着完整、清楚地输入时间,地点等数据;然后,Remarks输入框用于输入日程安排、会议安排或对某一时间段的工作总结的记录保存,该输入框设计的允许最大输入汉字可能不够大,但根据用户需要可以在数据库中作相应的扩大容量处理;最后,按下“提交”按钮,系统
中国最大的论文知识平台www.lwxiezuo.com
将所输入的资料信息保存到数据库表中,数据保存完毕系统会回显“保存成功”字样,如果想退出该页面的操作,按下“取消”按键,将关闭该页面。
图 5-3 记事本界面设计图
该页面设计代码:
private void button1_Click(object sender, System.EventArgs e) {
try {
string ConnectionString=@\
Source=KANGWL-150799E2\\SQLEXPRESS;Initial Catalog=PersonNote;Integrated Security=True\
该段代码完成连接到本机服务器中,获取服务器名用于连接数据库。 string Sql = \
NotebookTable(Theme,Date,Time,Address,Remarks)values('\this.textBox1.Text +
\this.textBox5.Text + \
该代码实现添加字段Theme, Date, Time, Address, Remarks 等字段添加到textbox中,系统将把这些字段分别添加到数据库表中对应字段。
conn=new SqlConnection(ConnectionString); comm=conn.CreateCommand();
中国最大的论文知识平台www.lwxiezuo.com
}
comm.CommandText=Sql; conn.Open();
int i=comm.ExecuteNonQuery(); }
该段代码实现数据库的连接,把服务器名赋给commandtext,打开数据库表,并且获取i值,用于判断是否成功添加i行,如果i值小于0系统将自动关闭数据库的连接。
catch(Exception ex) {
MessageBox.Show(ex.Message); }
该语句主要捕捉异常现象,如果出现异常,系统通过messagebox显示异常。
该界面代码主要实现连接数据库,首先连接本计算机作为服务器,如果连接成功,系统将把主题,时间,地点,记录等一系列字段信息添加到数据库中,如果添加成功,系统提示“已经成功添加第x行”。因为在编辑框的属性中设置了允许多行输入,如果在记录框中输入的文字字数超过一行,编辑框将自动换行。实现数据库的连接主要代码如下:
conn = new SqlConnection(ConnectionString); comm = conn.CreateCommand(); comm.CommandText = Sql; conn.Open();
5.4 管理记事本界面设计与分析
登录页面的下拉菜单中的的管理记事本选项的界面如下图5-4,该页面可以对输入的表名进行查询,调出系统中的事件主题,事件时间,地点,以及事件记录等内容,该界面具有对数据进行插入,更新,删除等功能,
中国最大的论文知识平台www.lwxiezuo.com
图 5-4 管理记事本界面
首先,必须把记事本在数据库中定义的表名输入到页面上方的空白区,只有输入了合法的表名才能将该记事本管理界面打开;然后按下“查询”按钮,界面中会把数据库中的数据显示出来,如图5-4所示。
如图5-5界面中可以对有关数据进行插入、更新、删除等一系列操作,插入是指直接将用户在界面上输入的事件的主题、日期、时间、地点、记录的内容等数据填写到“*”一栏中,这将完成数据库中数据的增加。如果想把数据库库中的某些数据做修改,可以对需要修改的数据修改完后按下“更新”按钮,系统自动把数据替换为当前修改的数据。然后,如果要把某个主题的数据删除,只需在行首点击一下,再按下“删除”按钮,系统将数据行删除。所以在这个管理记事本界面中可以完成对记事本的一些基本操作,不需要在数据库中做修改即可完成,方便用户的使用和管理。
中国最大的论文知识平台www.lwxiezuo.com
参考文献
[1] John Sharp,周靖译. Visual C#2005 从入门到精通. 北京:清华大学出版社, 2006,11(6):20-180
[2] 李律松,马传宝,李婷. 数据库开发与实例. 北京:清华大学出版社. 2006:1-200
[3] Mickey Williams . Visual C#.NET技术内幕. 北京: 清华大学出版社. 2004:136-227
[4] Simon Robinson ,Christian Nagel等. C#高级编. 第3版. 北京:清华大学出版社. 2005,7(2) : 33-435
[5] 陈峰,贺德华. 基于检索功能的PDA信息管理系统的研究与实现. 计算机时代. 2006:2-12
[6] 王媛媛, 金连甫. 基于Windows平台的通讯录访问机制及改进. 计算机应用研究. 2002(04)5 : 131-132.
[7] 杨燕,王德江. 软件工程的发展动态[J] . 2001(2) : 46-47.
[8] 刘胜永,窦鹏. 基于PDA的Web-Office系统的研究与实现. 广西工学院电控系. 2006(5)7 :1-11
[9] Draft Recommendation G.723:Dual Rate Speech Code for Multimedia Communication Transmitting at 5.3&6.3kbi/s.ITU-T Recommendation, 1995.
[10] User Manual KS57C2308/P2308/P2316.Samsung Electronic,1998.
[11] SAM GUCKENHEIMER,JUAN J.PEREZ.SOFTWARE ENGINEERING WITH MICROSOFT VISUAL STUDIO TEAM SYSTEM.美国.ADDISON-WESLEY.2007.3.P1-226
中国最大的论文知识平台www.lwxiezuo.com
图 5-5 管理记事本界面
该界面的相关代码分析:
private void button2_Click(object sender, System.EventArgs e) {
string insertSql = \
NotebookTable(Theme,Date,Time,Address,Remarks) values(@th,@da,@time,@ad,@rem)\
插入Theme, Date, Time, Address, Remarks等字段插入到NotebookTable表的相应字段中,它们的值分别赋值为@th, @da, @time, @ad, @rem
da.InsertCommand = this.sqlConnection1.CreateCommand(); 该代码把创建的Command传值到InsertCommand。
da.InsertCommand.CommandText = insertSql;
;
该代码实现设置commandtext值。
SqlParameter p = new SqlParameter(\ p.SourceColumn = \
p.SourceVersion = DataRowVersion.Current; da.InsertCommand.Parameters.Add(p);
该代码用于传入参数,先创建sql参数@th,该值类型设置为可变字符,开辟的
空间为50个字符,把其他属性相应地传值到变量相应的值域,最后插入添加变量p。
中国最大的论文知识平台www.lwxiezuo.com
if(dataSet1.HasChanges()) {
该代码用于判断dataset是否发生更改。 try
{ da.Update(dataSet1);
MessageBox.Show(\添加成功^ . ^\}
该代码用于实现同步数据库中的数据,时刻保持与数据库中数据一致。
} }
catch(SqlException ex) {
MessageBox.Show(ex.Message); }
该语句主要捕捉异常现象,如果出现异常,系统通过messagebox显示异常。 else {
MessageBox.Show(\请您提供详细的数据- . -||\}
如果没有在相应栏中输入的信息,系统没有新的数据村如数据库中,系统通
过函数messagebox显示信息“请您提供详细的数据”。
该页面代码实现过程中,首先验证所输入的表名是否正确,如果输入不正确,系统会提示“请输入正确的表名”,只有输入了合法的表名之后,才可以显示表中的数据,以及对数据的修改等一系列的操作。接着显示表中的数据,显示完后,把相关字段添加到数据库中,然后判断下数据库中数据修改没有,如有改动,显示添加成功,在没有对记事本表做修改就按下“插入”按钮,系统将提示“请您提供详细信息”接着又是连接数据库,连接成功后把数据字段添加到数据库中,更新数据库,更新完毕后系统提示“恭喜你更新成功!”,如果没有选择更新数据,将会提示“无更新数据”,在删除按钮中,是选择要删除的行,系统提示“确认要删除”,当按下“是”,系统自动清空数据,并及时修改数据库中的所有数据。
中国最大的论文知识平台www.lwxiezuo.com
5.5 管理通讯录界面设计与分析
图5-6是管理通讯录界面,在该界面中可以对有关数据进行插入、更新、删除等一系列操作,插入是指直接将用户在界面上输入好友的姓名、性别、电话、地址等数据填写到“*”一栏中,这将完成数据库中数据的增加。如果想把数据库库中的某些数据做修改,可以对需要修改的数据修改完后按下“更新”按钮,系统自动把数据替换为当前修改的数据。然后,如果要把某个主题的数据删除,只需在行首点击一下,再按下“删除”按钮,系统将数据行删除。所以在这个管理记事本界面中可以完成对记事本的一些基本操作,不需要在数据库中做修改即可完成,方便用户的使用和管理。
图 5-6 管理通讯录界面 该界面的具体实现代码:
private void button1_Click(object sender, EventArgs e) {
if (!this.textBox1.Text.Equals(\ {
MessageBox.Show(\请输入正确的表名!\ return; }
该代码主要实现通过在“填写表名”栏目中输入表名,验证预先设置的表名
中国最大的论文知识平台www.lwxiezuo.com
是否与目前输入的表名一致,如果输入的表名不一致,系统通过调用函数messagebox显示信息“请输入正确的表名!”。 try {
da = new SqlDataAdapter(\ dataSet1 = new DataSet(); da.Fill(dataSet1);
this.dataGrid1.DataSource = dataSet1.Tables[0]; }
该代码试着获取表中所有数据,并把获得的数据添加到变量da中,通过dataGrid的datasource显示该数据。
catch (Exception ex)
{ MessageBox.Show(ex.Message);} }
该语句主要捕捉异常现象,如果出现异常,系统通过messagebox显示异常。
private void button2_Click(object sender, EventArgs e) {
string insertSql = \
values(@name,@sex,@tel,@address,@email)\
该代码用于插入Name,Sex,TEL,Address,Email等字段插入到NotebookTable表的相应字段中,它们的值分别赋值为@name,@sex,@tel,@address,@email ;
da.InsertCommand = this.sqlConnection1.CreateCommand();
该代码把创建的Command传值到InsertCommand。
da.InsertCommand.CommandText = insertSql;
该代码实现设置commandtext值。
SqlParameter p = new SqlParameter(\ p.SourceColumn = \
p.SourceVersion = DataRowVersion.Current; da.InsertCommand.Parameters.Add(p);
该代码用于传入参数,先创建sql参数@th,该值类型设置为可变字符,开辟的空间为50个字符,把其他属性相应地传值到变量相应的值域,最后插入添加变量p。
if (dataSet1.HasChanges())
中国最大的论文知识平台www.lwxiezuo.com
{
该代码用于判断dataset是否发生更改。 try {
da.Update(dataSet1);
MessageBox.Show(\添加成功^ . ^\ }
该代码用于实现同步数据库中的数据,时刻保持与数据库中数据一致。
catch (SqlException ex) {
MessageBox.Show(ex.Message); } }
该语句主要捕捉异常现象,如果出现异常,系统通过messagebox显示异常。 else {
MessageBox.Show(\请您提供详细的数据- . -||\ } }
如果没有在相应栏中输入的信息,系统没有新的数据村如数据库中,系统通过函数messagebox显示信息“请您提供详细的数据”。
该系统运行时,首先验证所输入的表名是否正确,如果输入不正确,系统会提示“请输入正确的表名”,只有输入了合法的表名之后,才可以显示表中的数据,以及对数据的修改等一系列的操作。接着显示表中的数据,显示完后,把相关字段添加到数据库中,然后判断下数据库中数据修改没有,如有改动,显示添加成功,在没有对记事本表做修改就按下“插入”按钮,系统将提示“请您提供详细信息”接着又是连接数据库,连接成功后把数据字段添加到数据库中,更新数据库,更新完毕后系统提示“恭喜你更新成功!”,如果没有选择更新数据,将会提示“无更新数据”,在删除按钮中,是选择要删除的行,系统提示“确认要删除”,当按下“是”,系统自动清空数据,并及时修改数据库中的所有数据。
中国最大的论文知识平台www.lwxiezuo.com
5.6 闹铃界面设计与分析
如图5-7所示界面主要功能包括显示当前北京时间,记时器以及闹铃。显示时间是通过调用系统时间,获取到每一毫秒,同时安装的VS2005插件能同时转动时钟指针,这样能够清晰地看到当前时间;在记时器部分可以对时间精确到1ms,该功能是利用两次调用系统时间,然后进行时间相减,差值作为记时时间;最后,闹钟部分可以实现对需要闹铃的事件进行闹钟提示,闹铃是对某一时刻做的设置,预设时间与系统实际时间一致时,开始调用Windows Media Player,播放选定的文件,闹钟的铃声可以选择自己喜欢的音乐做闹钟铃声。
图 5-7 闹铃界面设计图 该界面主要的实现代码: public partial class Form6 : Form {
private double tt1;
中国最大的论文知识平台www.lwxiezuo.com
private bool started; private int a, b, c, d;
private int Ghour, Gminute, Gsecond; private string Gmillisecond; HighResolutionTimer timer;
上述代码定义了获取时间小时,分,秒,毫秒等一系列私有变量。
private string Filename = \; [DllImport(\
private static extern bool QueryPerformanceCounter(ref long lpPerformanceCount); [DllImport(\
该代码通过加入动态链接库kernel32.dll,初始化播放音乐文件名为空,可以象下面所写的文件定义音乐文件名“private string Filename= \音乐/10-菊花台(满城尽戴黄金甲片尾曲).mp3\”;
private static extern bool QueryPerformanceFrequency(ref long frequency); private void button4_Click(object sender, EventArgs e) {
if (openFileDialog1.ShowDialog() == DialogResult.OK) {
Filename = openFileDialog1.FileName; }
}
该代码通过判断对话框是否确认打开,如果判断是确认,系统将打开音乐文件,并把打开的文件夹中的文件名赋值给播放的音乐文件名。
private void timer1_Tick(object sender, EventArgs e) {
DateTime sy = new System.DateTime(); sy = System.DateTime.Now;
label1.Text = Convert.ToString(sy + \ gauge4.Value = sy.Second;
label16.Text = Convert.ToString(sy.Second) + \秒\
该代码获取系统时间,并把目前的系统时间传递给新建的时间变量,并把该变量转换为以毫秒为单位,把该变量的秒的数值赋值给gauge4,并把该数值显示在label16.Text中并以秒单位显示。
int GHour = Convert.ToInt32(sy.Hour); if (GHour >= 12)
中国最大的论文知识平台www.lwxiezuo.com
{
GHour = GHour - 12; }
该代码实现把系统时间的小时部分转换为int值,并把该32位整数传给变量GHour,代码判断变量GHour是否大于12,如果大于12,变量GHour自减12,因为该系统设计时,考虑的时间是12小时制。
gauge6.Value = sy.Minute; gauge5.Value = GHour;
label12.Text = Convert.ToString(sy.Hour) + \点\ label13.Text = Convert.ToString(sy.Minute) + \分\ }
该代码主要实现把系统时间的分钟数值赋给gauge6.Value,而把小时的数值赋给gauge5.Value,转换系统时间为字符串,并显示小时在label12.Text中,同样地显示系统分钟在label13.Text中。
private void timer3_Tick(object sender, EventArgs e) {
if (System.DateTime.Now.ToString(\textBox2.Text + \
该代码实现的功能判断系统时间与3个textBox中的数值是否一致。 {
axWindowsMediaPlayer1.URL = Filename; axWindowsMediaPlayer1.Ctlcontrols.play(); timer4.Enabled = true; }
label4.Text = \ }
该代码把音乐文件名传值给axWindowsMediaPlayer1的URL,并实现播放工具的功能,这功能是通过axWindowsMediaPlayer1.Ctlcontrols.play();实现,并设置timer4.Enabled值为正,即激活timer4,并把label4.Text的值变为0。
private void timer4_Tick(object sender, EventArgs e) {
label4.Text = \闹钟时间到了!!!\ }
该代码是在系统设置时间与系统当时时间一致,在label4.Text中显示文字“闹
中国最大的论文知识平台www.lwxiezuo.com
钟时间到了!!!”。
该界面的代码的核心在于timer1_Tick(object sender, EventArgs e)一系列函数,在timer_Tick中先取得系统时间赋给相关字段,并且转换时间表示形式,再判断时间,秒是否向分钟进位,分钟是否向小时进位。设置的时间如果与系统时间一致,则axWindowsMediaPlayer1.URL = Filename;把音乐文件名赋值给播放器的URL,代码:axWindowsMediaPlayer1.Ctlcontrols.play();实现闹铃音乐播放。
5.7 本章小结
本章主要对系统各模块的具体实现作了详细地分析,对界面中能实现功能的代码进行了分析,在设计系统的过程中,对数字闹钟模块的实现需要加入VS界面插件以及加入播放软件插件, 在记事本,通讯录界面设计开发中实现界面上与数据库进行数据的传输,可以在界面上对数据的保存,修改,删除,更新,也可以通过数据库修改数据等系列操作。
中国最大的论文知识平台www.lwxiezuo.com
第6章 结论
经过这几个月的毕业设计,我对软件设计实现有了进一步的认识,对软件工程有更深的理解。软件设计的基本步骤完全根据软件工程安排的次序,先对系统做需求分析,这一步在整个设计过程中相当重要,以前软件工程课堂上讲到,需求如果在设计开发已经开始后再作修改,系统不必要开销会增加很多,而且,会影响到系统完成的进度,因为很多地方会涉及到新的变化,需要重新设计或修改,这次通过对软件开发实现充分体现到这一点,这对我以后对软件开发有很大的帮助,做需求需要花费很多时间,但值得,就象“磨刀不误砍柴功”。在软件设计中遇到的问题真的很多,之前也没做个系统,只是些不用数据库的一些小程序。这次,我把VS2005与SQL2005连接终于实现,虽然数据库建设得不是很大,但至少能把开发平台和数据库联系到一起,我开始连接SQL2005连不上,后来在同学的帮助下,先在VS2003与数据库的建立,然后在VS2005上打开该软件,我不清楚为什么会出现这样的问题,连接的方式一样,所以很难找错误。
毕业设计的实现是建立在大学四年所学理论知识的基础上,之前学的理论知识一直没有联系到实际中,所以以前也没感觉知识的重要,经过这一次,感觉完全不一样,我发现C++语言、数据库原理、软件工程、数据结构等系列课程对软件的实现起着举足轻重的作用。完成这个个人工作备忘录软件,我把这些课程全部结合起来了,同时也对一些以前理解不了的理论知识有了很好的理解,通过毕业设计真正做到理论联系实际。感谢学校给我这次毕业设计的机会,毕业设计对学习知识有很重要的作用。
中国最大的论文知识平台www.lwxiezuo.com
参考文献
[1] John Sharp,周靖译. Visual C#2005 从入门到精通. 北京:清华大学出版社, 2006,11(6):20-180
[2] 李律松,马传宝,李婷. 数据库开发与实例. 北京:清华大学出版社. 2006:1-200
[3] Mickey Williams . Visual C#.NET技术内幕. 北京: 清华大学出版社. 2004:136-227
[4] Simon Robinson ,Christian Nagel等. C#高级编. 第3版. 北京:清华大学出版社. 2005,7(2) : 33-435
[5] 陈峰,贺德华. 基于检索功能的PDA信息管理系统的研究与实现. 计算机时代. 2006:2-12
[6] 王媛媛, 金连甫. 基于Windows平台的通讯录访问机制及改进. 计算机应用研究. 2002(04)5 : 131-132.
[7] 杨燕,王德江. 软件工程的发展动态[J] . 2001(2) : 46-47.
[8] 刘胜永,窦鹏. 基于PDA的Web-Office系统的研究与实现. 广西工学院电控系. 2006(5)7 :1-11
[9] Draft Recommendation G.723:Dual Rate Speech Code for Multimedia Communication Transmitting at 5.3&6.3kbi/s.ITU-T Recommendation, 1995.
[10] User Manual KS57C2308/P2308/P2316.Samsung Electronic,1998.
[11] SAM GUCKENHEIMER,JUAN J.PEREZ.SOFTWARE ENGINEERING WITH MICROSOFT VISUAL STUDIO TEAM SYSTEM.美国.ADDISON-WESLEY.2007.3.P1-226
中国最大的论文知识平台www.lwxiezuo.com
正在阅读:
电子备忘录系统设计与实现11-01
北师大八年级下《第五章分式与分式方程》单元检测试题含答案11-25
《中国铁路总公司工程管理中心关于西成客专接入大西客专引入西安北站相关工程施组推进会议纪要》的通知11-25
小学六年级数学上册第二单元《分数混合运算》试卷北师大版301-17
于丹讲座观后感12-11
2017年电大经济数学基础形成性考核册答案 带题目05-16
血液内科试卷及答案六05-21
中毒和窒息事故应急救援预案09-30
小学家长学校优秀教案06-06
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 备忘录
- 实现
- 设计
- 系统
- 电子
- 加强家校沟通 形成教育合力
- 97490449 - 15 - 跟我学C练习题九
- 证券投资主观题
- 疫点疫区处理方法
- 2016年游泳复习材料
- 第一章 证件管理(专卖师技能考点)
- 建筑装饰工程施工合同(GF-1999-0206)工商局住建部发布
- pclint简介
- 研究性学习活动手册
- 2018届高考语文总知识点总结汇总版(史上最全共350页)
- 乡村好教师事迹材料
- 虚拟机安装Linux和IP配置
- 加强机关思想纪律作风建设,提高党的执政能力
- 06 外国学前教育史一:古代、文艺复兴(复习资料-03.31)
- 青岛市无线电A类考试题库-青岛无委提供
- 爱婴医院母乳喂养试题
- 党员个人剖析材料2017
- 高一下学期三角函数综合测试题(含答案详解)
- 福建省霞浦第一中学2019届高三上学期第三次月考政治试题
- 2013年临安市第二届少儿象棋赛