C++记事本课程设计

合集下载

C语言程序设计课程设计-- 记事本

C语言程序设计课程设计-- 记事本

C#语言程序设计课程设计题目记事本指导老师专业班级学号姓名2012年 6月 21 日摘要:记事本是专为个体用户量身定制的记录数据的平台。

记事本,用来记录各类事情的小册子。

在windows操作系统中是一个简单的文本编辑器。

自从1985年发布的Windows 1.0开始,所有的Microsoft Windows 版本都内置这个软件。

记事本只能处理纯文本文件,但是,由于多种格式源代码都是纯文本的,所以记事本也就成为了使用最多的源代码编辑器。

它只具备最基本的编辑功能,所以体积小巧,启动快,占用内存低,容易使用。

关键词:Microsoft Visual Studio 2005。

目录引言 (2)1、问题描述 (3)1.1课题背景 (3)1.2研究意义 (3)2、总体设计 (4)2.1开发方法 (4)2.2总体目标 (4)3、界面设计 (5)3.1记事本的功能结构图: (5)3.2记事本的界面: (5)4、详细介绍 (9)4.1组成的模块 (9)5、代码设计 (10)6、结论 (30)参考资料 (32)引言随着信息化在全球的快速进展,世界对信息的需求快速增长,信息产品和信息服务对于各个国家、地区、企业、单位、家庭、个人都不可缺少。

信息技术已成为支撑当今经济活动和社会生活的基石。

在这种情况下,信息产业成为世界各国,特别是发达国家竞相投资、重点发展的战略性产业部门。

“记事本”的功能虽然连“写字板”都比不上,但它还是有它自己的独门绝技的。

下面我们就来看看记事本吧。

相对于微软的Word来说“记事本”的功能确实是太单薄了,只有:新建,保存,打印,查找,替换这几个功能。

但是“记事本”却拥有一个Word不可能拥有的优点:打开速度快,文件小。

我相信对于这一点大家一定是深有感触地,一点就打开;同样的文本文件用Word保存和用记事本保存的文件大小就大不相同,所以对于大小在64KB以下的纯文本的保存最好还是采用记事本。

1、问题描述1.1课题背景记事本是以txt后缀名的文件,在windows页面重点及鼠标右键-〉新建-〉在下拉子菜单中既有文本文档一项1.详细:txt文件是微软在操作系统上附带的一种文本格式,是最常见的一种文件格式,早在DOS时代应用就很多,主要存文本信息,即为文字信息,在微软在操作系统等于直接存,就是它了,现在多用的操作系统得使用记事本等程序保存,大多数软件可以查看如记事本,浏览器等等。

C#记事本设计

C#记事本设计

Windows记事本《C#课程设计》开发设计文档课题题目: Windows记事本学号姓名:SummonerWindows记事本一、记事本设计1.记事本开发目标文件操作功能:新建文件、打开文件、保存文件、另存文件、打印预览、打印文档、关闭文档和退出;文本编辑功能:1)剪切板:文本的剪切、复制、粘贴;2)文本编辑操作:撤销、重做、全选、删除;3)文本格式编辑:字体选择、字号选择、颜色选择;文本加粗、倾斜、下划线、列表符号、居中、左对齐、右对齐;4)自动保存:文本查找功能:视图:窗口视图:窗口排列、窗口列表;换肤状态栏查看:根据光标显示所在行列;帮助显示其它:实现与windows记事本及windows写字板兼容使用;实现多文档菜单、工具栏的合并;当无文档活动时,菜单、工具栏部分功能不可用;没有选中文本时,剪切、复制和删除不可用。

Windows记事本2.记事本界面预览3.记事本功能结构Windows记事本文件操作开始视图帮助和关于查找剪贴板窗口版式皮肤Windows记事本4.记事本流程图5.记事本运行环境记事本开发平台:Microsoft visual studio 2008。

记事本开发语言:C#。

运行平台:windows 2000、XP、Vista、Windows 7等。

Windows记事本二、记事本窗体设计与功能分析1.父窗体1)使用的组件介绍:07版Office菜单applicationMenu、选项卡式页面xtraTabbedMdiManager、换肤defaultLookAndFeel、打开文件控件openFileDialog、保存文件控件saveFileDialog、打印文件控件printDialog、打印文档控件printDocument、打印预览printPreviewDialog、页面设置pageSetupDialog、菜单容器pmAppMain2)功能介绍及主要代码【新建文件】利用多文档窗体,实例化一个对象即可主要代码如下:// 新建文件void CreateNewDocument(){Textpad = new TextForm { MdiParent = this };Textpad.Show();Textpad.Tag = Textpad.Text;}Windows记事本【打开文件】利用RichTextBoxStreamType 枚举的PlainText和RichText成员,实现与windows记事本和windows写字板兼容打开主要代码如下:// 新建文件void CreateNewDocument(){Textpad = new TextForm { MdiParent = this };Textpad.Show();Textpad.Tag = Textpad.Text;}【保存文件】主要代码如下:void saveFile()// 保存文件{string MyFileName = Textpad.Text;if (MyFileName == Textpad.Text){saveFileDialog1.Filter = "RTF格式文件(*.rtf)|*.rtf|文本文件(*.txt)|*.txt";saveAs();return;}MyFileName = (Textpad.Tag.ToString()).ToUpper();try// 文件保存可能出错,需要错误捕获{if (MyFileName.EndsWith(".RTF")){ // 如果是*.rtf格式,则用RichText(RTF格式文件)方式保存Textpad.richTextBox1.SaveFile(MyFileName, RichTextBoxStreamType.RichText);}else{ // 如果是其它格式,则用PlainText(文本文件)方式保存Textpad.richTextBox1.SaveFile(MyFileName, RichTextBoxStreamType.PlainText);}Textpad.textChange = false; // 设置更新标志}catch (Exception Err){MessageBox.Show("写文本文件发生错误!\n" + Err.Message, "信息提示", MessageBoxButtons.OK, rmation);}}【窗体按钮“退出”及“关闭”】主要代码如下:// 退出程序private void barFileClose_ItemClick(object sender, ItemClickEventArgs e){this.ActiveMdiChild.Close();}private void barFileExit_Click(object sender, EventArgs e){Application.Exit();Windows记事本子窗体关闭判断代码如下:private void TextForm_FormClosing(object sender, FormClosingEventArgs e){if (textChange){DialogResult YNC = MessageBox.Show("文件已经改变,要保存吗?", "请保存文件", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Warning);if (YNC == DialogResult.Yes){}else if (YNC == DialogResult.No){}else{e.Cancel = true;}}}【另存为、打印与页面设计的代码详细于软件包中】【窗口视图及列表排列的功能】主要代码如下:private void barTabbedMDI_ItemClick(object sender, ItemClickEventArgs e){this.xtraTabbedMdiManager1.MdiParent = null;}private void barButtonItem1_ItemClick(object sender, ItemClickEventArgs e){this.xtraTabbedMdiManager1.MdiParent = this;}private void barWindowsCascade_ItemClick(object sender, ItemClickEventArgs e){youtMdi(MdiLayout.Cascade);}private void barWindowsHorizontal_ItemClick(object sender, ItemClickEventArgs e){youtMdi(MdiLayout.TileHorizontal);}private void barWindowsVertical_ItemClick(object sender, ItemClickEventArgs e){youtMdi(MdiLayout.TileVertical);}【软件换肤】主要代码如下:Windows记事本// 设置皮肤void InitializeSkin(){DevExpress.XtraEditors.SimpleButton imageButton = newDevExpress.XtraEditors.SimpleButton();//枚举皮肤foreach (DevExpress.Skins.SkinContainer cnt inDevExpress.Skins.SkinManager.Default.Skins){imageButton.LookAndFeel.SetSkinStyle(cnt.SkinName);DevExpress.XtraBars.Ribbon.GalleryItem gItem = newDevExpress.XtraBars.Ribbon.GalleryItem();int groupIndex = 0;if (cnt.SkinName.IndexOf("Office") > -1) groupIndex = 1;rgbiSkins.Gallery.Groups[groupIndex].Items.Add(gItem);gItem.Caption = cnt.SkinName;gItem.Image = GetSkinImage(imageButton, 132, 117, 2);gItem.HoverImage = GetSkinImage(imageButton, 170, 136, 2);gItem.Caption = cnt.SkinName;gItem.Hint = cnt.SkinName;}rgbiSkins.Gallery.ItemClick += newDevExpress.XtraBars.Ribbon.GalleryItemClickEventHandler(delegate(object sender,DevExpress.XtraBars.Ribbon.GalleryItemClickEventArgs e){string name = e.Item.Caption;erLookAndFeel.Default.SetSkinStyle(name);});rgbiSkins.Gallery.InitDropDownGallery += newDevExpress.XtraBars.Ribbon.InplaceGalleryEventHandler(delegate(object sender,DevExpress.XtraBars.Ribbon.InplaceGalleryEventArgs e){e.PopupGallery.CreateFrom(rgbiSkins.Gallery);e.PopupGallery.AllowFilter = false;e.PopupGallery.ShowItemText = true;e.PopupGallery.ShowGroupCaption = true;e.PopupGallery.AllowHoverImages = false;foreach (DevExpress.XtraBars.Ribbon.GalleryItemGroup galleryGroup ine.PopupGallery.Groups)foreach (DevExpress.XtraBars.Ribbon.GalleryItem item in galleryGroup.Items)item.Image = item.HoverImage;e.PopupGallery.ColumnCount = 2;e.PopupGallery.ImageSize = new System.Drawing.Size(70, 36);});}【帮助、关于和查找的触发代码详细于软件包中】Windows记事本2.子窗体1)使用的组件介绍:字体颜色容器gddFontColor、字体容器gddFont、鼠标右键弹出容器popupMenu、字体控件fontDialog、计时器控件timer、打印文件控件printDialog、文本控件richTextBox2)功能介绍及主要代码【剪切、复制及粘贴】剪切、复制与粘贴的功能分别可以用richTextBox1的方法Cut()、Copy()、Paste()实现。

C课程设计报告--简单记事本的设计

C课程设计报告--简单记事本的设计

c课程设计报告一简单记事本的设计《C#语言程序设计》课程设计报告题目简单记事本的设计院、系(部)计算机学院网络工程系专业及班级计网1002班 ____________姓名张婷_________________学号1008040210 _____________日期2013.1・17 ______________1题目要求使用C#语言设计一个Windows自带记事本,实现记事本软件的基本功能,具有文本文件的新建、打开、保存功能,文字的全选、剪切、复制、粘贴、删除、撤销、査找、替换功能,字体类型、格式的设置、显示当前日期与时间的功能,并在此记事本程序基础上增加设置字体颜色,添加状态栏功能。

软件界面美观大方,操作简洁易用,功能完备可靠,必须上机调试通过。

程序中应有不少于100^300行的自行编写的代码,代码需书写详细注释。

2功能需求1.文件操作:包括文件的新建、打开、保存、另存为、打印及退出。

通过主窗体文件菜单中的新建、打开、保存及退出菜单项实现上述功能。

执行操作前,应检査当前文本框中内容是否已经保存,若还没有保存,弹出消息提示存盘。

2.编辑功能:包括剪切、复制、粘贴、删除、全选、插入时间和日期、自动换行。

上述功能通过主窗体编辑菜单中的剪切、复制、粘贴、删除、全选、插入时间和日期、工具栏、自动换行等菜单项来实现。

其中,剪切、复制、粘贴、删除等操作是利用剪贴板对象来完成的,没有选中文本时,剪切和复制命令不可用;同样若剪贴板中没有内容时,粘贴命令也应不可用。

插入时间和日期菜单项是将系统的时间和日期插入到光标所在的位置。

选中自动换行菜单项将使文本框具有自动换行功能。

另外,可以点击日期、时间,可以査看当前日期、时间。

当文档的一行输满以后,可以自动换行。

主窗体字体菜单中包含字体、字体颜色及字体大小菜单项。

以方便字体、字号的选择以及粗体、斜体、下划线的设置,可以实现字体的编辑与设计。

4.査找替换功能主窗体査找菜单中包含査找、替换菜单项。

C记事本程序课程设计

C记事本程序课程设计

C 记事本程序课程设计一、课程目标知识目标:1. 让学生理解C语言编程中文件操作的基本概念,掌握记事本程序的基本结构。

2. 学会使用C语言标准库函数进行文件的读写操作,理解文件指针的作用和文件状态的概念。

3. 掌握基本的错误处理机制,如文件打开失败时的异常处理。

技能目标:1. 能够独立编写一个具备基本功能的C语言记事本程序,包括创建、打开、编辑和保存文本文件。

2. 能够运用所学知识,对记事本程序进行调试和优化,提高程序的稳定性和用户体验。

3. 培养学生解决问题的能力,使他们能够在遇到编程难题时,通过查阅资料和自主思考找到解决方案。

情感态度价值观目标:1. 培养学生对编程的兴趣和热情,激发他们主动探索计算机科学的欲望。

2. 培养学生的团队协作精神,使他们学会在编程过程中互相帮助、共同进步。

3. 培养学生具备良好的编程习惯,注重代码规范,提高代码的可读性和可维护性。

本课程针对高年级学生,在学生已掌握C语言基础知识的前提下,进一步深化对C语言编程实践的理解。

课程注重理论与实践相结合,鼓励学生动手实践,培养实际编程能力。

通过本课程的学习,学生将能够独立完成一个具有实际应用价值的C语言记事本程序,提高编程技能,并为后续学习打下坚实基础。

二、教学内容1. 文件操作基本概念:介绍文件类型、文件指针、文件打开关闭等基本操作。

- 文件类型与文件指针- 文件打开、关闭与读写操作函数2. 记事本程序结构设计:分析记事本程序的基本功能模块,设计程序框架。

- 功能模块划分- 程序框架设计3. 文件读写实现:学习使用fputs、fgets等函数进行文件读写操作。

- 文件写入与读取函数- 字符串处理函数4. 异常处理与调试:学习错误处理机制,提高程序稳定性。

- 错误处理函数- 程序调试技巧5. 程序优化与扩展:对记事本程序进行性能优化与功能扩展。

- 代码优化- 功能扩展6. 编程规范与团队协作:强调代码规范,培养学生团队协作能力。

c编写记事本课程设计

c编写记事本课程设计

c 编写记事本课程设计一、课程目标知识目标:1. 学生能理解C语言的基本语法和结构,掌握记事本程序的基本框架。

2. 学生能运用C语言标准库函数进行文件操作,实现对记事本文件的读取、写入和保存功能。

3. 学生了解数据类型、变量、运算符等基本概念,并能运用到记事本程序编写中。

技能目标:1. 学生能运用所学知识,独立编写、调试和运行一个简单的C语言记事本程序。

2. 学生掌握基本的编程技巧,如代码规范、注释和错误处理,提高编程能力和代码质量。

3. 学生通过实际操作,学会使用C语言进行问题分析和解决,提高逻辑思维和动手实践能力。

情感态度价值观目标:1. 学生在编程过程中,培养耐心、细致和精益求精的工作态度,树立良好的编程习惯。

2. 学生通过编写记事本程序,激发对计算机科学的兴趣,增强学习动力。

3. 学生在合作交流中,学会倾听、尊重他人意见,培养团队协作精神。

本课程针对高年级学生,结合C语言学科特点和教学要求,以实用性为导向,旨在帮助学生掌握C语言编程基础,培养实际编程能力。

课程目标具体、可衡量,便于学生和教师在教学过程中明确预期成果,为后续教学设计和评估提供依据。

二、教学内容1. C语言基础语法回顾:变量定义、数据类型、运算符、控制语句(条件语句、循环语句)。

2. 文件操作:文件打开、读取、写入和关闭,文件指针操作,标准库函数(fopen、fprintf、fscanf、fclose等)。

3. 字符串处理:字符串概念,字符串操作函数(strlen、strcpy、strcat、strcmp等)。

4. 编程规范与技巧:代码结构、命名规则、注释、错误处理和调试。

5. 记事本程序设计:需求分析,功能模块划分,界面设计,核心功能实现(打开、新建、保存、编辑等)。

教学内容依据课程目标,结合教材章节进行选择和组织,确保科学性和系统性。

教学大纲安排如下:第一课时:C语言基础语法回顾,介绍文件操作概念。

第二课时:详细讲解文件操作函数,演示文件读写示例。

c记事本实现课程设计

c记事本实现课程设计

c 记事本实现课程设计一、课程目标知识目标:1. 让学生掌握C语言基础,包括数据类型、变量、运算符等;2. 学习使用C语言控制结构,如条件语句和循环语句;3. 理解记事本程序的功能需求,学会使用C语言实现记事本的基本功能。

技能目标:1. 培养学生运用C语言解决问题的能力,学会编写、调试和运行简单的C程序;2. 提高学生的逻辑思维能力,能够分析记事本程序的需求,进行模块化设计;3. 学会使用C语言编写文本处理功能,如读取、写入和保存文本文件。

情感态度价值观目标:1. 培养学生主动探索、积极思考的学习态度,增强学习C语言的兴趣;2. 培养学生的团队协作意识,学会在编程过程中与他人分享、讨论和解决问题;3. 引导学生认识到编程在生活中的应用价值,激发他们将编程应用于实际问题的热情。

分析课程性质、学生特点和教学要求,本课程目标将记事本实现分解为以下具体学习成果:1. 独立编写C程序,实现记事本的基本功能;2. 学会对记事本程序进行测试和优化,提高程序性能;3. 通过小组合作,共同完成一个具有附加功能的记事本程序。

二、教学内容1. C语言基础回顾:数据类型、变量、常量、运算符、表达式;2. 控制结构:条件语句(if-else、switch)、循环语句(for、while、do-while);3. 函数:函数定义、函数调用、参数传递、返回值;4. 文件操作:文件打开、读取、写入、关闭;5. 记事本功能分析:需求分析、功能模块划分;6. 编程实现记事本:文本编辑、文件保存与打开、撤销与重做功能;7. 程序测试与优化:调试技巧、性能优化;8. 附加功能扩展:格式化文本、查找与替换、字体设置等。

教学内容安排与进度:1. 第一周:C语言基础回顾,控制结构学习;2. 第二周:函数学习,文件操作介绍;3. 第三周:记事本功能分析,编写实现基础功能;4. 第四周:完善记事本程序,进行测试与优化;5. 第五周:小组合作,讨论实现附加功能,展示与评价。

c课程设计记事本

c课程设计记事本

c 课程设计记事本一、教学目标本课程的教学目标是使学生掌握C语言的基本语法、数据结构、算法和编程思想,培养学生独立思考、解决问题和编程实践的能力。

具体目标如下:1.知识目标:–掌握C语言的基本语法和关键字。

–理解数据类型、变量、常量的概念及使用方法。

–熟悉运算符、表达式、语句的用法。

–掌握函数的定义、声明和调用。

–了解数组、字符串、指针的概念和应用。

–理解结构体、共用体、位字段的概念和用法。

–掌握基本的数据结构和算法。

2.技能目标:–能够使用C语言编写简单的程序,进行基本的输入输出、运算、控制流程等操作。

–能够运用数组、字符串、指针等数据结构解决实际问题。

–能够使用结构体、共用体、位字段等概念描述复杂的数据结构。

–能够运用基本的算法解决问题的能力。

3.情感态度价值观目标:–培养学生对计算机科学的兴趣和热情,提高学生主动学习的积极性。

–培养学生独立思考、解决问题的能力,增强学生的自信心。

–培养学生团队协作、互相帮助的精神,提高学生的沟通能力。

二、教学内容本课程的教学内容主要包括C语言的基本语法、数据结构、算法和编程思想。

具体安排如下:1.C语言的基本语法:–数据类型、变量、常量–运算符、表达式、语句–函数的定义、声明和调用2.数据结构:–数组、字符串、指针–结构体、共用体、位字段3.算法和编程思想:–基本算法(排序、查找等)–编程技巧和风格三、教学方法本课程采用讲授法、案例分析法和实验法相结合的教学方法。

具体安排如下:1.讲授法:通过讲解C语言的基本语法、数据结构和算法,使学生掌握相关知识。

2.案例分析法:通过分析实际案例,使学生了解C语言在实际应用中的作用和价值。

3.实验法:通过编写和调试程序,使学生掌握C语言的编程技巧和风格。

四、教学资源本课程的教学资源包括教材、参考书、多媒体资料和实验设备。

具体安排如下:1.教材:选用《C程序设计语言》作为主教材,辅助以《C语言编程实践》等参考书。

2.多媒体资料:提供课件、教学视频等资料,帮助学生更好地理解课程内容。

c记事本实现课程设计

c记事本实现课程设计

c 记事本实现课程设计一、教学目标本课程旨在通过C记事本的学习,让学生掌握记事本的基本使用方法,包括文本的录入、编辑、保存和打印等功能,培养学生高效记录和整理信息的能力。

1.了解记事本的界面布局和功能按钮。

2.掌握文本的录入、编辑、复制、粘贴等基本操作。

3.学会使用记事本进行简单的排版和格式设置。

4.掌握记事本的保存、打开、关闭等基本操作。

5.了解记事本的打印设置和使用方法。

6.能够熟练使用记事本进行文本的录入和编辑。

7.能够进行简单的排版和格式设置,使文本更具可读性。

8.能够熟练保存、打开和关闭记事本文件。

9.能够进行记事本的打印设置,并掌握打印文本的方法。

情感态度价值观目标:1.培养学生的信息记录和整理意识,提高学生的工作效率。

2.培养学生对计算机操作的兴趣,增强学生的信息素养。

3.培养学生团队协作精神,通过小组合作完成任务。

二、教学内容本课程的教学内容主要包括记事本的基本功能和使用方法。

1.记事本的界面布局和功能按钮:介绍记事本的各个部分,如菜单栏、工具栏、文本区域等,并解释各功能按钮的作用。

2.文本的录入和编辑:讲解如何录入新文本、编辑现有文本、复制、粘贴文本等操作。

3.排版和格式设置:介绍如何设置字体、字号、颜色、对齐方式等格式。

4.文件的保存、打开和关闭:讲解如何保存、打开和关闭记事本文件。

5.打印设置和使用方法:介绍如何进行打印设置,并演示打印文本的方法。

三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法相结合的方式。

1.讲授法:讲解记事本的基本功能和使用方法,让学生了解并掌握记事本的相关知识。

2.案例分析法:通过分析实际案例,让学生学会记事本在不同场景下的应用。

3.实验法:让学生动手实践,实际操作记事本进行文本处理,巩固所学知识。

4.小组讨论法:分组进行讨论,培养学生的团队协作能力和问题解决能力。

四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将准备以下教学资源:1.教材:《C记事本使用手册》2.参考书:《计算机应用基础》3.多媒体资料:PPT课件、视频教程4.实验设备:计算机、打印机五、教学评估为了全面、客观、公正地评估学生的学习成果,本课程将采用多种评估方式相结合。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计本科生通用题目:编程类课程设计设计项目:记事本程序设计专业班级:学号:姓名:成绩:导师签字:2014 年12月11日任务书设计题目:记事本程序设计要求:设计一个软件记事本,能够记录用户输入的信息,并能实现保存输入信息,查看备忘信息。

该记事本具有输入、修改、删除、查看信息的功能。

具有日历功能,可以根据时间,标记备忘信息,方便用户使用。

日程安排:12月8日:确定设计题目,查阅相关资料12月9日:根据功能设计整体方案,划分系统各个模块功能12月10日:建立工程,编写程序实现设计方案的功能12月11日:调试程序,完善界面设计,书写设计报告目录第一章概述 (3)1.1 设计目的 (3)1.2 设计背景 (3)第二章设计过程 (4)2.1 设计框图 (4)2.2 设计步骤 (4)2.2.1 建立工程 (4)2.2.2 向对话框添加控件 (4)2.2.3 添加变量 (5)2.2.4 编程 (5)2.2.5 调试运行 (5)设计结论 (7)参考文献 (7)附件(程序) (8)第一章概述1.1设计目的使学生熟悉VC++6.0编译环境,了解面向对象的编程策略。

深入了解和掌握MFC原理与方法。

提升学生的编程技巧及编程能力。

以实际问题为切入点,锻炼学生运用VC++编程解决实际问题的能力。

培养学生的设计创新意识。

1.2设计背景1.2.1 软件记事本简介记事本是一个很有用的程序,主要操作包括对文件的储存,修改等,有编辑功能:包括剪贴、复制等,有对字体修改等。

记事本可以提醒用户一些重要的事项,可以方便用户的生活。

1.2.2 VC++ 6.0简介Visual C++6.0由Microsoft开发, 它不仅是一个VC++编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrated development environment,IDE)。

Visual C++6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导Class Wizard等开发工具。

这些组件通过一个名为Developer Studio的组件集成为和谐的开发环境。

Microsoft的主力软件产品。

Visual C++是一个功能强大的可视化软件开发工具。

1.2.3 C++语言简介C++是在C语言的基础上开发的一种集面向对象编程、泛型编程和过程化编程于一体的编程语言。

应用较为广泛,是一种静态数据类型检查的,支持多重编程的通用程序设计语言。

它支持过程化程序设计,数据抽象,面向对象设计,制作图标等多种程序设计风格。

第二章 设计过程2.1设计框图图2-1设计框图2.2设计步骤2.2.1、首先在VC++6.0编译环境下建立一个MFC 工程文件 ,使用MFC AppWizard 的工程向导创建基于对话框的应用程序,工程名设置为02如图2-2、图2-3。

图2-2 新建工程 图2-3 建立基本对话框2.2.2、设置对话框,添加基本控件,如图2-4. 建立工程添加控件 定义变量 编写函数 调试 添加功能建立应用程序及 快捷方式图2-4 添加基本控件3、添加变量,如图2-5.图2-5 添加变量4、编写程序程序见附录。

5、调试程序,运行结果如图2-6、图2-7、图2-8.图2-6 快捷方式图2-7 程序运行界面图2-8 输入信息设计结论:点击快捷方式打开应用程序,按日期按钮,显示当前日期。

在记事编辑框里输入需要备忘的信息,按下保存按钮,选择保存路径,保存备忘信息。

按下查看按钮,可以查看已经备忘过的信息。

按下退出按钮,可以退出程序。

本设计符合设计要求,方便用户使用。

心得体会:通过本记事本的设计,我熟悉了VC++6.0的开发环境,感觉到在VC中面向对象编程体现在C++语言的语义语法和几个基本概念诸如:类,继承,重载,多态性等。

利用MFC AppWizard进行设计,要熟练掌握一些常用的控件,学会设置这些控件的ID及类型,这是基础。

编程之前要设计好算法,明确编程目的,养成良好的编程习惯,熟悉各个函数并合理地添加语句。

最好添加一部分代码就编译一次,以便及早的发现错误并改正,避免错误越积越多。

要跟据功能添加适当的控件或函数,遇到不会或不懂得知识可以及时上网查阅相关资料或询问教师,总之要合理利用身边的资源学习。

使得程序开发好像并不是离自己很远,我们也可以动手编一编,从而提高自己变成技能。

参考文献:[1]黄维通Visual C++面向对象与可视化程序设计(第二版).北京:清华大学出版社2003[2]王华等.Visual C++编程实例与技巧.北京:机械工业出版社,1999[3]胡哲源.掌握Visual C++ ——MFC程序设计与剖析.北京:清华大学出版社,2001[4]陈国建等.Visual C++ 范例开发大全.北京:清华大学出版社,2010附件:// 02Dlg.cpp : implementation file#include "stdafx.h"#include "02.h"#include "02Dlg.h"#include <mmsystem.h>#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = __FILE__;#endifclass CAboutDlg : public CDialog{public:CAboutDlg();enum { IDD = IDD_ABOUTBOX };protected:virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support protected:DECLARE_MESSAGE_MAP()};void CAboutDlg::DoDataExchange(CDataExchange* pDX){CDialog::DoDataExchange(pDX);}BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)END_MESSAGE_MAP()CMy02Dlg::CMy02Dlg(CWnd* pParent /*=NULL*/): CDialog(CMy02Dlg::IDD, pParent){m_xsrq = FALSE;sndPlaySound("SystemStart",SND_ASYNC);m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME1);}void CMy02Dlg::DoDataExchange(CDataExchange* pDX){CDialog::DoDataExchange(pDX);DDX_Control(pDX, IDC_EDIT1, m_rq);DDX_Check(pDX, IDC_CHECK_XSRQ, m_xsrq);}BEGIN_MESSAGE_MAP(CMy02Dlg, CDialog)ON_WM_SYSCOMMAND()ON_WM_PAINT()ON_WM_QUERYDRAGICON()ON_BN_CLICKED(IDC_CHECK_XSRQ, OnCheckXsrq)ON_BN_CLICKED(IDC_BUTTON_SA VE, OnButtonSave)ON_BN_CLICKED(IDC_BUTTON_OPEN, OnButtonOpen)ON_BN_CLICKED(IDC_BUTTON_EITI, OnButtonEiti)ON_EN_CHANGE(IDC_EDIT1, OnChangeEdit1)END_MESSAGE_MAP()BOOL CMy02Dlg::OnInitDialog(){CDialog::OnInitDialog();ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX < 0xF000);CMenu* pSysMenu = GetSystemMenu(FALSE);if (pSysMenu != NULL){CString strAboutMenu;strAboutMenu.LoadString(IDS_ABOUTBOX);if (!strAboutMenu.IsEmpty()){pSysMenu->AppendMenu(MF_SEPARATOR);pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);}}SetIcon(m_hIcon, TRUE); // Set big iconSetIcon(m_hIcon, FALSE); // Set small iconreturn TRUE; // return TRUE unless you set the focus to a control}void CMy02Dlg::OnSysCommand(UINT nID, LPARAM lParam){if ((nID & 0xFFF0) == IDM_ABOUTBOX){CAboutDlg dlgAbout;dlgAbout.DoModal();}else{CDialog::OnSysCommand(nID, lParam);}}void CMy02Dlg::OnPaint(){if (IsIconic()){CPaintDC dc(this); // device context for paintingSendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);int cxIcon = GetSystemMetrics(SM_CXICON);int cyIcon = GetSystemMetrics(SM_CYICON);CRect rect;GetClientRect(&rect);int x = (rect.Width() - cxIcon + 1) / 2;int y = (rect.Height() - cyIcon + 1) / 2;dc.DrawIcon(x, y, m_hIcon);}else{CPaintDC dc(this); // device context for paintingCRect rect;GetClientRect(&rect);CDC dcMem;dcMem.CreateCompatibleDC(&dc);CBitmap bmpBackground;bmpBackground.LoadBitmap(IDB_BITMAP1);BITMAP bitmap;bmpBackground.GetBitmap(&bitmap);CBitmap *pbmpOld=dcMem.SelectObject(&bmpBackground);dc.StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,bitmap.bmWidth,bitmap.bmHeight,SRC COPY);}}HCURSOR CMy02Dlg::OnQueryDragIcon(){return (HCURSOR) m_hIcon;}void CMy02Dlg::OnCheckXsrq(){UpdateData(TRUE);if(m_xsrq==TRUE){ CTime tNow ;tNow=CTime::GetCurrentTime();CString sNow=tNow.Format("%y.%m.%d");m_rq.SetSel(0,-1);m_rq.ReplaceSel(sNow);}else{ m_rq.SetSel(0,-1);m_rq.ReplaceSel("");}UpdateData(FALSE);}void CMy02Dlg::OnButtonSave(){ShellExecute(NULL,"open","C:\Users\张振\Desktop\记事本",NULL,NULL,SW_SHOWNORMAL);CFileDialogdlg(FALSE,NULL,NULL,OFN_HIDEREADONL Y|OFN_OVERWRITEPROMPT,"AllFiles(*.TXT)|*.TXT||",AfxGetMainWnd());CString strPath,strText="";char write[10000];if(dlg.DoModal() == IDOK){strPath =dlg.GetPathName();if(strPath.Right(4) != ".txt")strPath+= ".txt";CFile file(_T(strPath),CFile::modeCreate|CFile::modeWrite);m_rq.GetWindowText(strText);strcpy(write,strText);file.Write(write,strText.GetLength());file.Close();}}void CMy02Dlg::OnButtonOpen(){ShellExecute(NULL,"open","C:\Users\张振\Desktop\记事本",NULL,NULL,SW_SHOWNORMAL);CString filename; //定义CString类的filename用来存储文件名CString fileext; //定义CString类的fileext用来存储文件扩展名CFileDialog fileDlg(TRUE);if(fileDlg.DoModal() == IDOK){CString str;CFile f;f.Open(fileDlg.GetFileName(),CFile::modeReadWrite);f.Read(str.GetBuffer(f.GetLength()),f.GetLength());GetDlgItem( IDC_EDIT1 )->SetWindowText( str);}}void CMy02Dlg::OnButtonEiti(){CDialog::OnOK(); //关闭窗口}。

相关文档
最新文档