C++课程设计报告模板.docx
- 文档编号:24126731
- 上传时间:2023-05-24
- 格式:DOCX
- 页数:28
- 大小:537.21KB
C++课程设计报告模板.docx
《C++课程设计报告模板.docx》由会员分享,可在线阅读,更多相关《C++课程设计报告模板.docx(28页珍藏版)》请在冰豆网上搜索。
C++课程设计报告模板
青岛理工大学
C++面向对象课程设计报告
院(系):
计算机工程学院_______
专业:
计算机科学与技术_____
学生姓名:
纪晨___
班级:
计算101班学号:
201007015
题目:
手机通信录管理系统______
起讫日期:
2012/06/18——2012/06/29
设计地点:
现代教育技术中心101室__
指导老师:
李兰_______
完成日期:
2012年6月29日
段落文字:
小四宋体(英文用TimesNewRoman体12磅),两端对齐书写,段落首行左缩进2个汉字符。
行距单倍行距),段前0磅,段后0磅。
一级节标题:
四号黑体顶左,单倍行距,段前12磅,段后3磅,序号与题名间空一个汉字符字符
标题:
四号黑体居中,二字之间空一汉字符,单倍行距,段前12磅,段后9磅,序号与题名间空一个汉字符
一、概述
1.1引言
在现实生活中,我们会碰到形形色色的人,如亲人、同事、老师、同学等。
他们的联系方式多种多样,是很难记忆的。
过去人们用小册子记录,现在则用手机。
为了方便,人们要求可以通过文件导入导出通讯录信息,可以向前向后浏览通讯录信息,可以添加、修改、和删除通信录信息等。
1.2设计要求
1.模拟手机通信录的功能,实现添加、删除、修改手机通信录;
2.通信录添加其他功按姓名进行排序,同一个记录可以存储多个手机号、办公电话等;
3.符合课题要求,实现相应功能,可能或修饰,是程序更加完善、合理。
1.3运行环境
1.WindowsXP操作系统。
2.VisualC++6.0:
VisualC++6.0开发环境是一个基于Windows操作系统的可视化、面向对象的集成开发环境,在该环境下用户可以开发有关C和C++的各种应用程序。
应用程序开发包括建立、编辑、浏览、保存、编译、链接和调试等操作,这些操作都可以通过单击菜单项或工具按钮来完成,使用方面、快捷。
1.4MFC应用程序概述
MFC是由微软公司编写的一套专门用于Windows编程的基础类库,它的类可以处理许多标准的Windows应用程序任务。
借助AppWizard可以创建非常灵活的应用程序框架,使开发者摆脱那些每次都必须写的基本代码。
与其他所有的Windows应用程序一样,在使用MFC的应用程序中也要处理Windows消息,但是在MFC中消息处理更容易,封装的更好,更易于维护。
借助ClassWizard和消息映射,开发者可以摆脱定义消息处理时那种混乱和冗长的代码段,但同时也掩饰了太多的细节。
2、手机通信录设计过程
2.1设计目标
我们能通过此通讯录记录我们所需要联系人的的通讯信息,信息包括姓名、电话号码、工作单位等。
并其能够实现添加记录、删除记录、清除记录、向前和向后浏览等功能。
2.2基本思路
1确定通讯录的基本功能和界面布局。
2分析所需要的函数计算法。
3编写代码。
4程序调试。
2.3基本步骤
1.项目创建。
2.界面设计。
打开对话框IDD_ADDRESS_FORM,该对话框将是程序运行是的主界面。
添加完所需要的空间后,打开ClassWizard,为IDD_CHATROOM_DIALOG所指向的类CAddressBookView添加成员变量。
3.代码实现。
定义一个新类。
定义文档类数据成员。
初始化文档类成员。
定义视图类其它数据成员。
初始化视图类的数据成员。
建立文档类和视图类之间的联系。
编写命令按钮执行代码。
释放链表对象空间。
编写读写列表文件代码。
人性化。
2.4程序流程图
开始
退出
删除信息
显示信息
信息排序
保存信息
修改信息
查找信息
3、数据测试及运行情况分析
3.1数据测试
1添加信息
2修改信息
修改成功的情况
修改不成功
3排列信息
4删除信息
删除成功
删除不成功
5保存信息:
将已输入的信息保存,方便下次操作。
6显示信息:
显示已经保存的信息
7查找信息
8关于
9退出
四、总结
4.1设计完成情况
在通讯录设计的过程中,首先确定目标是非常重要的,我们必须根据目标行进,避免了盲目的设计过程。
对于程序的实现,主要需要了解MFC各种函数的功能,熟悉地应用函数,然后根据我们的目标合理地设计算法。
总体来讲,设计完成情况很不错,程序正常运行,各种控件功能得到良好体现,窗口设计美观大方。
我们知道:
任何事做则易,不做则难。
面对MFC大作业,刚开始感觉无从下手,力不从心,心中一片茫然。
经过筛选,最终确定了通讯录这一程序设计,又经过自己的努力,最终小有成绩。
虽然这次作业要求不高,但是对自己来说难度还是不小。
首先要懂得基本的编程知识,比如消息映射与消息处理,我们必须懂得MFC消息映射机制。
在程序设计的过程中经常会遇到一些无从下手的问题,需要翻阅书本,查找资料,一步一步地走完设计过程。
到此,对我们来说作业的任务基本完成,面对最终的成果,有点欣喜,但也有很多不足之处,希望经过这次经历让自己有点收获。
4.2设计需要改进的地方
经过两个星期不断的和同学探讨,交流,上网搜索相关资料,我发现我的程序还有些不足,比如说:
添加一个闹钟系统,方便工作时间长的人们看好时间休息:
还有日历,方便人们的日常工作快速而稳定的进行。
致谢
在这次课程设计的撰写过程中,我得到了许多人的帮助首先我要感谢我的老师在课程设计上给予我的指导、提供给我的支持和帮助,这是我能顺利完成这次报告的主要原因,更重要的是老师帮我解决了许多技术上的难题,让我能把系统做得更加完善。
在此期间,我不仅学到了许多新的知识,而且也开阔了视野,提高了自己的设计能力。
其次,我要感谢帮助过我的同学,他们也为我解决了不少我不太明白的设计商的难题。
同时也感谢学院为我提供良好的做毕业设计的环境。
最后再一次感谢所有在设计中曾经帮助过我的良师益友和同学。
2012年6月
参考文献
1.《VisualC++程序设计》张岳新编著苏州大学出版社;
2.《VisualC++程序设计与应用教程》马石安、魏文平编著清华大学出版社;
3.《VisualC++面向对象与可视化程序设计编程设计》清华大学出版社;
附录源程序部分代码
#include"stdafx.h"
#include"mobile_list.h"
#include"mobile_listDlg.h"
#include"adder.h"
#include"modify.h"
#include"search.h"
#include"fstream.h"
#ifdef_DEBUG
#definenewDEBUG_NEW
#undefTHIS_FILE
staticcharTHIS_FILE[]=__FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
//CAboutDlgdialogusedforAppAbout
classCAboutDlg:
publicCDialog
{
public:
CAboutDlg();
//DialogData
//{{AFX_DATA(CAboutDlg)
enum{IDD=IDD_ABOUTBOX};
//}}AFX_DATA
//ClassWizardgeneratedvirtualfunctionoverrides
//{{AFX_VIRTUAL(CAboutDlg)
protected:
virtualvoidDoDataExchange(CDataExchange*pDX);//DDX/DDVsupport
//}}AFX_VIRTUAL
//Implementation
protected:
//{{AFX_MSG(CAboutDlg)
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
CAboutDlg:
:
CAboutDlg():
CDialog(CAboutDlg:
:
IDD)
{
//{{AFX_DATA_INIT(CAboutDlg)
//}}AFX_DATA_INIT
}
voidCAboutDlg:
:
DoDataExchange(CDataExchange*pDX)
{
CDialog:
:
DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAboutDlg)
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAboutDlg,CDialog)
//{{AFX_MSG_MAP(CAboutDlg)
//Nomessagehandlers
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
//CMobile_listDlgdialog
CMobile_listDlg:
:
CMobile_listDlg(CWnd*pParent/*=NULL*/)
:
CDialog(CMobile_listDlg:
:
IDD,pParent)
{
//{{AFX_DATA_INIT(CMobile_listDlg)
//NOTE:
theClassWizardwilladdmemberinitializationhere
//}}AFX_DATA_INIT
//NotethatLoadIcondoesnotrequireasubsequentDestroyIconinWin32
m_hIcon=AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
voidCMobile_listDlg:
:
DoDataExchange(CDataExchange*pDX)
{
CDialog:
:
DoDataExchange(pDX);
//{{AFX_DATA_MAP(CMobile_listDlg)
DDX_Control(pDX,IDC_LIST1,m_list);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CMobile_listDlg,CDialog)
//{{AFX_MSG_MAP(CMobile_listDlg)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(IDC_BUTTONadd,OnBUTTONadd)
ON_BN_CLICKED(IDC_BUTTONmodify,OnBUTTONmodify)
ON_BN_CLICKED(IDC_BUTTONdelete,OnBUTTONdelete)
ON_BN_CLICKED(IDC_BUTTONsort,OnBUTTONsort)
ON_BN_CLICKED(IDC_BUTTONsearch,OnBUTTONsearch)
ON_BN_CLICKED(IDC_BUTTONsave,OnBUTTONsave)
ON_BN_CLICKED(IDC_BUTTONdisplay,OnBUTTONdisplay)
ON_COMMAND(IDM_ABOUT,OnAbout)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
//CMobile_listDlgmessagehandlers
BOOLCMobile_listDlg:
:
OnInitDialog()
{
CDialog:
:
OnInitDialog();
//Add"About..."menuitemtosystemmenu.
m_list.InsertColumn(0,"姓名",LVCFMT_CENTER,100,NULL);//添加“姓名”列
m_list.InsertColumn(1,"手机号",LVCFMT_CENTER,120,NULL);//添加“电话”列
m_list.InsertColumn(2,"办公电话",LVCFMT_CENTER,200,NULL);//添加“phone”列
//IDM_ABOUTBOXmustbeinthesystemcommandrange.
ASSERT((IDM_ABOUTBOX&0xFFF0)==IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX<0xF000);
CMenu*pSysMenu=GetSystemMenu(FALSE);
if(pSysMenu!
=NULL)
{
CStringstrAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if(!
strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING,IDM_ABOUTBOX,strAboutMenu);
}
}
//Settheiconforthisdialog.Theframeworkdoesthisautomatically
//whentheapplication'smainwindowisnotadialog
SetIcon(m_hIcon,TRUE);//Setbigicon
SetIcon(m_hIcon,FALSE);//Setsmallicon
//TODO:
Addextrainitializationhere
returnTRUE;//returnTRUEunlessyousetthefocustoacontrol
}
voidCMobile_listDlg:
:
OnSysCommand(UINTnID,LPARAMlParam)
{
if((nID&0xFFF0)==IDM_ABOUTBOX)
{
CAboutDlgdlgAbout;
dlgAbout.DoModal();
}
else
{
CDialog:
:
OnSysCommand(nID,lParam);
}
}
//Ifyouaddaminimizebuttontoyourdialog,youwillneedthecodebelow
//todrawtheicon.ForMFCapplicationsusingthedocument/viewmodel,
//thisisautomaticallydoneforyoubytheframework.
voidCMobile_listDlg:
:
OnPaint()
{
if(IsIconic())
{
CPaintDCdc(this);//devicecontextforpainting
SendMessage(WM_ICONERASEBKGND,(WPARAM)dc.GetSafeHdc(),0);
//Centericoninclientrectangle
intcxIcon=GetSystemMetrics(SM_CXICON);
intcyIcon=GetSystemMetrics(SM_CYICON);
CRectrect;
GetClientRect(&rect);
intx=(rect.Width()-cxIcon+1)/2;
inty=(rect.Height()-cyIcon+1)/2;
//Drawtheicon
dc.DrawIcon(x,y,m_hIcon);
}
else
{
CDialog:
:
OnPaint();
}
}
//Thesystemcallsthistoobtainthecursortodisplaywhiletheuserdrags
//theminimizedwindow.
HCURSORCMobile_listDlg:
:
OnQueryDragIcon()
{
return(HCURSOR)m_hIcon;
}
voidCMobile_listDlg:
:
OnBUTTONadd()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
adderdlg;
if(IDOK==dlg.DoModal())
{
m_list.InsertItem(0,dlg.m_name);
m_list.SetItemText(0,1,dlg.m_phone);
m_list.SetItemText(0,2,dlg.m_telephone);
}
}
voidCMobile_listDlg:
:
OnBUTTONmodify()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
if(!
m_list.GetItemCount())
{
MessageBox("没有记录可以修改!
");
return;
}
modifydig;
dig.m_name=m_list.GetItemText(0,0);
dig.m_phone=m_list.GetItemText(0,1);
dig.m_telephone=m_list.GetItemText(0,2);
intindex=0;
index=m_list.GetNextItem(0,LVNI_SELECTED);
if(-1==index)
{
dig.m_name=m_list.GetItemText(0,0);
dig.m_phone=m_list.GetItemText(0,1);
dig.m_telephone=m_list.GetItemText(0,2);
if(dig.DoModal())
{
m_list.SetItemText(0,0,dig.m_name);
m_list.SetItemText(0,1,dig.m_phone);
m_list.SetItemText(0,2,dig.m_telephone);
}
}
else
{
dig.m_name=m_list.GetItemText(index,0);
dig.m_phone=m_list.GetItemText(index,1);
dig.m_telephone=m_list.GetItemText(index,2);
if(dig.DoModal())
{
m_list.SetItemText(index,0,dig.m_name);
m_list.SetItemText(index,1,dig.m_phone);
m_list.SetItemText(index,2,dig.m_telephone);
}
}
}
voidCMobile_listDlg:
:
OnBUTTONdelete()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
if(!
m_list.GetItemCount())
{
MessageBox("没有记录可以删除!
","Error!
",MB_ICONERROR|MB_OKCANCEL);
return;
}
intindex=0;
index=m_list.GetNextItem(0,LVNI_SELECTED);
if(-1==index)
{
if(IDOK==MessageBox("确定删除?
","Information",MB_OKCANCEL))
m_list.DeleteItem(0);
}
else
{
if(IDOK==MessageBox("确定删除?
","Information",MB_OKCANCEL))
m_list.DeleteItem(index);
}
}
voidCMobile_listDlg:
:
OnBUTTONsort()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
if(!
m_list.GetItemCount())
{
MessageBox("没有记录可以排序!
");
return;
}
for(intz=0;z { if(m_list.GetItemText(z,0)=="") m_list.DeleteItem(z); } intindex; index=m_list.GetItemCount(); CStringstr1[100],str2[100],str3[100]; for(inti=0;i { str1[i]=m_list.GetItemText(i,0); str2[i]=m_list.GetItemText(i,1); str3[i]=m_list.GetItemText(i,2); } for(intk=0;k { for(intj=k+1;j { if(str1[k]>str1[j]) { CStringtemp=str1[j]; str1[j]=str1[k]; str1[k]=temp; temp=str2[j]; str2[j]=str2[k]; str2[k]=temp;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 课程设计 报告 模板