课程设计屏幕保护.docx

上传人:b****4 文档编号:3595958 上传时间:2022-11-24 格式:DOCX 页数:40 大小:672.89KB
下载 相关 举报
课程设计屏幕保护.docx_第1页
第1页 / 共40页
课程设计屏幕保护.docx_第2页
第2页 / 共40页
课程设计屏幕保护.docx_第3页
第3页 / 共40页
课程设计屏幕保护.docx_第4页
第4页 / 共40页
课程设计屏幕保护.docx_第5页
第5页 / 共40页
点击查看更多>>
下载资源
资源描述

课程设计屏幕保护.docx

《课程设计屏幕保护.docx》由会员分享,可在线阅读,更多相关《课程设计屏幕保护.docx(40页珍藏版)》请在冰豆网上搜索。

课程设计屏幕保护.docx

课程设计屏幕保护

XX大学

课程设计说明书

 

学生姓名:

学号:

学院:

专业:

题目:

指导教师:

 

 

2013年1月11日

 

1.设计目的:

通过设计,明确通讯录的设计思想和设计过程,扎实掌握VC、C++或C语言编程的整体框架和步骤,使学生具有一定综合分析问题和解决问题的能力。

2.设计内容和要求(包括原始数据、技术参数、条件、设计要求等):

功能说明:

(1)该应用程序能管理通讯录数据库。

(2)可能通过单击工具条上箭头形状的按钮移动当前记录。

(3)可以通过单击相应的按钮实现记录的浏览、更新、添加和删除。

设计要求:

课程设计的目的在于培养学生的综合素质,要求学生做到:

(1)根据题目要求查阅有关资料,确定方案,写出设计方案;

(2)根据对选题的理解,消化查阅资料,给出相关设计的流程图;

(3)在C语言、C++或VC环境下,实现各项功能;

(4)对结果进行分析总结。

3.设计工作任务及工作量的要求〔包括课程设计计算说明书(论文)、图纸、实物样品等〕:

4.设计工作任务:

(1)了解课题背景,掌握基本技术,制定程序设计框架。

(2)完成设计内容:

包括程序流程图和完成实现功能的程序代码,写出设计说明书。

(3)设计答辩。

工作量的要求:

(1)通过查阅资料了解与通讯录相关的知识,理解选题意义;

(2)掌握与通讯录相关的设计思想、原理、设计框架和步骤;

(3)完成通讯录的功能和程序代码的实现;

(4)通过实验验证程序代码的可行性;

(5)给出设计总结。

4.主要参考文献:

严华峰等.VisualC++课程设计案例精编(第一版).北京:

中国水利水电出版社。

中北大学教材:

《c程序设计》,《大学计算机应用基础》。

5.设计成果形式及要求:

程序运行结果;课程设计说明书。

一:

设计目的

通过设计,明确通讯录的设计思想和设计过程,扎实掌握VC、C++或C语言编程的整体框架和步骤,使学生具有一定综合分析问题和解决问题的能力。

二:

设计方案

建立设计流程图

通讯录的设计

建立需求分析

建立数据库系统

添加记录

删除记录

更新记录

浏览记录

信息修改

信息查询功能

退出通讯录数据库

编写程序并编译,建立可行性分析,得出结论

对此次程序进行分析和总结

结束

1:

建立通讯录数据库,利用officeaccess软件建立数据库作为数据源,并命名为accessbook,导入数据。

2:

作好记录,在控制面板上配置ODBC数据源,打开面板中的ODBCdatasource(32bit),

:

在用户DSN建数据源为AccessBook配置作为AccessBook.mdb,则相应数据源配置完毕,如图1-1所示。

1-1图

3:

创立数据源,点击“关于”选项,验证ODBC程序是否更新到罪行版本。

如图1-1所示。

4:

安装数据源,如1-2所示。

并命名为testdatabase,如图1-3.

1-2图

1-3图

5:

选择数据库,如1-4图所示,并选择已有的数据库系统AccessBook,确定好数据库名,点击确定,如1-4图所示。

6:

打开VisualC++6.0环境,并创建工程MFCAppWizard(exe),工程名为C02,如图1-5所示。

点击确定后,选择单个文档,如1-6,选择数据库查看文件支持如图1-7所示。

1-4图

1-5图

1-6图

1-7图

7:

取消选择“ActiveX’’复选框。

取消选择“打印和打印预览”复选框,单击完成按钮。

8:

打开对话框编辑器对话框IDD_C02_FORM,各控件如图1-8所示.

9:

设置如图所示1-9图。

1-8图

1-9图

10:

打开ClassWizard窗口,选择MessageMaps,在classname复选框选择CC02View,在ObjectsIds选择ID_RECORD_FIRST,选择COMMAND选项,单机Addfunction,添加响应函数OnRecordFirst,用同样的方式ID_RECORD_LAST,ID_RECORD_NEXT,ID_RECORD_PREV分别添加响应函数OnRecordLast,OnRecordNext,OnRecordPrev,如图1-10,单击确定。

二:

程序代码分析。

1-10图

定义类CC02的接口,定义有基类Crecordset派生的CC02Set类,并定义函数。

//C02Set.cpp:

implementationoftheCC02Setclass

#include"stdafx.h"

#include"C02.h"

#include"C02Set.h"

#ifdef_DEBUG

#definenewDEBUG_NEW

#undefTHIS_FILE

staticcharTHIS_FILE[]=__FILE__;

#endif

/////////////////////////////////////////////////////////////////////////////

//CC02Setimplementation

IMPLEMENT_DYNAMIC(CC02Set,CRecordset)

CC02Set:

:

CC02Set(CDatabase*pdb)

:

CRecordset(pdb)

{

//{{AFX_FIELD_INIT(CC02Set)

m____ID=0;

m_column1=_T("");

m_column2=_T("");

m_column3=_T("");

m_column4=_T("");

m_nFields=5;

//}}AFX_FIELD_INIT

m_nDefaultType=dynaset;

}

CStringCC02Set:

:

GetDefaultConnect()

{

return_T("ODBC;DSN=AddressBook");

}

CStringCC02Set:

:

GetDefaultSQL()

{

return_T("select*from[通讯录]");

}

voidCC02Set:

:

DoFieldExchange(CFieldExchange*pFX)

{

//{{AFX_FIELD_MAP(CC02Set)

pFX->SetFieldType(CFieldExchange:

:

outputColumn);

RFX_Long(pFX,_T("[通讯录ID]"),m____ID);

RFX_Text(pFX,_T("[姓名]"),m_column1);

RFX_Text(pFX,_T("[分类]"),m_column2);

RFX_Text(pFX,_T("[电子邮件地址]"),m_column3);

RFX_Text(pFX,_T("[联系方式]"),m_column4);

//}}AFX_FIELD_MAP

}

/////////////////////////////////////////////////////////////////////////////

//CC02Setdiagnostics

#ifdef_DEBUG

voidCC02Set:

:

AssertValid()const

{

CRecordset:

:

AssertValid();

}

voidCC02Set:

:

Dump(CDumpContext&dc)const

{

CRecordset:

:

Dump(dc);

}

#endif//_DEBUG

(2)源文件CC02Set.cpp,实现CC02Set类的功能,初始化成员变量和数据库默认连接。

//C02Doc.cpp:

implementationoftheCC02Docclass

#include"stdafx.h"

#include"C02.h"

#include"C02Set.h"

#include"C02Doc.h"

#ifdef_DEBUG

#definenewDEBUG_NEW

#undefTHIS_FILE

staticcharTHIS_FILE[]=__FILE__;

#endif

/////////////////////////////////////////////////////////////////////////////

//CC02Doc

IMPLEMENT_DYNCREATE(CC02Doc,CDocument)

BEGIN_MESSAGE_MAP(CC02Doc,CDocument)

//{{AFX_MSG_MAP(CC02Doc)

//NOTE-theClassWizardwilladdandremovemappingmacroshere.

//DONOTEDITwhatyouseeintheseblocksofgeneratedcode!

//}}AFX_MSG_MAP

END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////

//CC02Docconstruction/destruction

CC02Doc:

:

CC02Doc()

{

//TODO:

addone-timeconstructioncodehere

}

CC02Doc:

:

~CC02Doc()

{

}

BOOLCC02Doc:

:

OnNewDocument()

{

if(!

CDocument:

:

OnNewDocument())

returnFALSE;

//TODO:

addreinitializationcodehere

//(SDIdocumentswillreusethisdocument)

returnTRUE;

}

/////////////////////////////////////////////////////////////////////////////

//CC02Docserialization

voidCC02Doc:

:

Serialize(CArchive&ar)

{

if(ar.IsStoring())

{

//TODO:

addstoringcodehere

}

else

{

//TODO:

addloadingcodehere

}}

/////////////////////////////////////////////////////////////////////////////

//CC02Docdiagnostics

#ifdef_DEBUG

voidCC02Doc:

:

AssertValid()const

{

CDocument:

:

AssertValid();

}

voidCC02Doc:

:

Dump(CDumpContext&dc)const

{

CDocument:

:

Dump(dc);

}

#endif//_DEBUG

/////////////////////////////////////////////////////////////////////////////

//CC02Doccommands

(3)定义CC0View类。

在C02Wiew.h头文件CC0View类的接口,定义由基类CrecordView派生的类CC02View。

//C02View.cpp:

implementationoftheCC02Viewclass

#include"stdafx.h"

#include"C02.h"

#include"C02Set.h"

#include"C02Doc.h"

#include"C02View.h"

#ifdef_DEBUG

#definenewDEBUG_NEW

#undefTHIS_FILE

staticcharTHIS_FILE[]=__FILE__;

#endif

/////////////////////////////////////////////////////////////////////////////

//CC02View

IMPLEMENT_DYNCREATE(CC02View,CRecordView)

BEGIN_MESSAGE_MAP(CC02View,CRecordView)

//{{AFX_MSG_MAP(CC02View)

ON_COMMAND(ID_RECORD_FIRST,OnRecordFirst)

ON_COMMAND(ID_RECORD_LAST,OnRecordLast)

ON_COMMAND(ID_RECORD_NEXT,OnRecordNext)

ON_COMMAND(ID_RECORD_PREV,OnRecordPrev)

ON_BN_CLICKED(IDC_BUTTON_ADD,OnButtonAdd)

ON_BN_CLICKED(IDC_BUTTON_DELETE,OnButtonDelete)

ON_BN_CLICKED(IDC_BUTTON_MODIFY,OnButtonModify)

//}}AFX_MSG_MAP

END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////

//CC02Viewconstruction/destruction

CC02View:

:

CC02View()

:

CRecordView(CC02View:

:

IDD)

{

//{{AFX_DATA_INIT(CC02View)

m_pSet=NULL;

m_address=_T("");

m_mail=_T("");

m_name=_T("");

m_type=_T("");

//}}AFX_DATA_INIT

//TODO:

addconstructioncodehere

}

CC02View:

:

~CC02View()

{

}

voidCC02View:

:

DoDataExchange(CDataExchange*pDX)

{

CRecordView:

:

DoDataExchange(pDX);

//{{AFX_DATA_MAP(CC02View)

DDX_Text(pDX,IDC_EDIT_ADDRESS,m_address);

DDX_Text(pDX,IDC_EDIT_MAIL,m_mail);

DDX_Text(pDX,IDC_EDIT_NAME,m_name);

DDX_Text(pDX,IDC_EDIT_TYPE,m_type);

//}}AFX_DATA_MAP

}

BOOLCC02View:

:

PreCreateWindow(CREATESTRUCT&cs)

{

//TODO:

ModifytheWindowclassorstylesherebymodifying

//theCREATESTRUCTcs

returnCRecordView:

:

PreCreateWindow(cs);

}

voidCC02View:

:

OnInitialUpdate()

{

m_pSet=&GetDocument()->m_c02Set;

CRecordView:

:

OnInitialUpdate();

GetParentFrame()->RecalcLayout();

ResizeParentToFit();

try

{

m_pSet=newCC02Set();

m_pSet->Open();

RefreshData();

}

catch(CDBException*pe)

{

AfxMessageBox(pe->m_strError);

pe->Delete();

}}

/////////////////////////////////////////////////////////////////////////////

//CC02Viewdiagnostics

#ifdef_DEBUG

voidCC02View:

:

AssertValid()const

{

CRecordView:

:

AssertValid();

}

voidCC02View:

:

Dump(CDumpContext&dc)const

{

CRecordView:

:

Dump(dc);

}

CC02Doc*CC02View:

:

GetDocument()//non-debugversionisinline

{

ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CC02Doc)));

return(CC02Doc*)m_pDocument;

}

#endif//_DEBUG

/////////////////////////////////////////////////////////////////////////////

//CC02Viewdatabasesupport

CRecordset*CC02View:

:

OnGetRecordset()

{

returnm_pSet;

}

/////////////////////////////////////////////////////////////////////////////

//CC02Viewmessagehandlers

voidCC02View:

:

OnRecordFirst()

{

//TODO:

Addyourcommandhandlercodehere

m_pSet->MoveFirst();

RefreshData();

}

voidCC02View:

:

OnRecordLast()

{

//TODO:

Addyourcommandhandlercodehere

m_pSet->MoveLast();

RefreshData();

}

voidCC02View:

:

OnRecordNext()

{

//TODO:

Addyourcommandhandlercodehere

m_pSet->MoveNext();

RefreshData();

}

voidCC02View:

:

OnRecordPrev()

{

//TODO:

Addyourcommandhandlercodehere

m_pSet->MovePrev();

RefreshData();

}

voidCC02View:

:

OnButtonAdd()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

try

{

m_pSet->AddNew();

UpdateData(TRUE);

m_pSet->m_column1=m_name;

m_pSet->m_column2=m_type;

m_pSet->m_column3=m_address;

m_pSet->m_column4=m_mail;

m_pSet->Update();

m_pSet->Requery();

}

catch(CDBException*pe)

{

AfxMessageBox(pe->m_strError);

pe->Delete();

}}

voidCC02View:

:

OnButtonDelete()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

try

{

m_pSet->Delete();

m_pSet->Requery();

RefreshData();

}

catch(CDBException*pe)

{

AfxMessageBox(pe->m_strError);

pe->Delete();

}}

voidCC02View:

:

OnButtonModify()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

try

{

m_pSet->Edit();

UpdateData(TRUE);

m_pSet->m_column1=m_name;

m_pSet->m_column2=m_type;

m_pSet->m_column3=m_address;

m_pSet->m_column4=m_mail;

m_pSet->Update();

}

catch(CDBException*pe)

{

AfxMessageBox(pe->m_strError);

pe->Delete();

}}

voidCC02View:

:

RefreshData()

{

m_name=m_pSet->m_column1;

m_type=m_pSet->m_column2;

m_address=m_pSet->m_column3;

m_mail=m_pSet->m_column4;

UpdateData(FALSE);

}

(4)mainfirm函数。

//CMainFramemessagehandlers

//MainFrm.cpp:

implementationoftheCMainFrameclass

#include"stdafx.h"

#include"C02.h"

#include"MainFrm.h"

#ifdef_DEBUG

#definenewDEBUG_NEW

#undefTHIS_FILE

staticcharTHIS_FILE[]=__FILE__;

#endif

/////////////////////////////////////////////////////////////////////////////

//CMa

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 兵器核科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1