当前位置:文档之家› C++记事本课程设计

C++记事本课程设计

课程设计本科生通用题目:编程类课程设计设计项目:记事本程序设计专业班级:学号:姓名:成绩:导师签字: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(); //关闭窗口}。

相关主题