VC++实习报告.doc_第1页
VC++实习报告.doc_第2页
VC++实习报告.doc_第3页
VC++实习报告.doc_第4页
VC++实习报告.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

唐 山 学 院面向对象程序设计课 程 设 计 题 目 通讯录管理程序设计 系 (部) 计算机科学与技术系 班 级 07计本2班 姓 名 胡珊珊 学 号 4070206202 指导教师 陈舵 2010 年 7 月 12 日至 7 月 16 日 共 1 周 2010年 7 月 16 日面向对象程序设计 课程设计任务书一、设计题目、内容及要求1、设计题目:通讯录管理程序设计2、设计内容及要求:利用MFC应用程序,ODBC API、MFC ODBC类、MFC DAO类、MFC的OLE/DB、ActiveX数据对象ADO等几种Visual C+数据库连接技术,设计一个通讯录应用程序。要求通讯录中包括姓名、单位、通信地址、邮箱和联系电话等信息。程序实现通讯录记录的添加、删除、修改、浏览和查询功能。二、要求的设计成果(课程设计说明书、设计实物、图纸等)1、用Visual C+进行编码,实现应用程序的功能。注重编码质量,代码要有适当的注释;2、撰写课程设计说明书一份,不少于2000字。课程设计说明书应包括封面、任务书、正文(设计的基本思路、设计的步骤及主要代码解释)、参考文献(资料)、附录(程序代码)等内容。三、进程安排7月12日:完成需求分析,确定程序功能,确立程序设计思想;7月13日7月14日:进行详细设计,实现编码;7月15日:进行程序测试,完善编码;撰写设计说明书,准备答辩;7月16日:答辩。四、主要参考资料1 王育坚Visual C+面向对象编程教程第2版北京:清华大学出版社,20082 侯俊杰深入浅出MFC第2版广东:南方出版社,20073 李涛 等Visual C+ +SQL Server数据库开发与实例北京:清华大学出版社,2006指导教师(签名):教研室主任(签名):注:可以附页课程设计成绩评定表出勤情况出勤天数 缺勤天数成绩评定出勤情况及设计过程表现(20分)课设答辩(20分)设计成果(60分)总成绩(100分)提问(答辩)问题情况综合评定 指导教师签名: 年 月 日唐山学院课程设计1 引言随着知识化合信息化新经济时代的到来,作为信息技术龙头的计算机及软件技术突飞猛进,呈现出平台化、方法对象化、系统构建化、开发工程化、过程规范化的发展趋势,信息技术的应用与专业领域的结合更加紧密1。一直以来人们都是靠传统人工的方式管理学生通讯,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找,更新和维护都带来了不少的困难2。随着计算机技术的日渐成熟,其强大的功能已为人们所接受并将广泛应用于各个领域。作为计算机应用的一部分,使用计算机对联系人信息进行管理,是手工管理所无法比拟的。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高通讯录管理的效率,因此,开发这样的一套通讯录管理程序是很有必要的。通讯录管理程序,是一个由人、计算机等组成的能进行信息的收集、储存、维护和使用的系统,利用本程序,可以快速、准确、方便地对联系人信息包括姓名、性别、地址、邮箱、邮编和电话进行管理。程序实现通讯录记录的添加、删除、修改、浏览和查询功能,节约大量的人力和物力资源3。通讯录管理程序利用ACCESS数据库为后台,可以使用VC+高级语言来实现程序的编程。VC+是一个功能强大的可视化软件开发工具,它不仅是一个VC+编译器,还是一个基于Windows操作系统的集成开发环境。VC+中源程序采用C/ C+语言编写,支持面向对象程序设计1。 2 总体设计2.1 程序功能与使用说明通讯录管理程序,可以快速、准确、方便地对联系人信息包括姓名、性别、地址、邮箱、邮编和电话进行管理。通讯录管理程序实现通讯录记录的添加、删除、修改、浏览和查询功能,节约大量的人力和物力资源。2.2 系统功能模块图通讯录管理程序的详细设计,按照数据管理模块进行划分,主要包括以下五个主要管理模块,数据管理模块如图2-1所示。(1)浏览数据模块 本模块主要实现对联系人信息的浏览,包括姓名、性别、地址、邮箱、邮编和电话。(2)查询数据模块本模块主要实现对联系人信息的查询,包括姓名、性别、地址、邮箱、邮编和电话。(3)添加数据模块本模块主要实现对联系人信息的添加,包括姓名、性别、地址、邮箱、邮编和电话。(4)修改数据模块本模块主要实现对联系人信息的修改,包括姓名、性别、地址、邮箱、邮编和电话。(5)删除数据模块本模块主要实现对联系人信息的删除,包括姓名、性别、地址、邮箱、邮编和电话。数据管理模块查询数据添加数据修改数据删除数据浏览数据图2-1 数据管理模块3 详细设计3.1 数据库设计通讯录管理程序采用Access 2003数据库系统(数据源名称为hss),因此,应将概念设计的E-R模型转化为关系数据模型。管理员实体和联系人实体存在管理关系,管理员可以对联系人的基本信息进行管理,并且一个管理员可以管理多个联系人,所以管理员实体和联系人实体存在一对多联系(1:n),所以可以用下面的关系模式来表示, 并设置主键(下划线为主键标记)。联系人(姓名、性别、地址、邮箱、邮编、电话、编号)得出数据表的各个关系模式后,需要给出是各数据表结构。考虑系统的兼容性及编写程序的方便性,可将关系模式的属性对应为表字段的英文名。通讯录表设计如表3-1所示。 表3-1 通讯录说明数据类型字段大小必填字段允许空字符串主键姓名文本20否是否性别文本4否是否地址文本50否是否邮编文本10否是否邮箱文本50否是否电话文本20否是否 3.2 模块设计通讯录管理程序的详细设计,按照数据管理模块进行划分,主要包括以下五个主要管理模块:(1)浏览数据模块 程序开始运行,自动进行初始化,与数据库进行连接,将联系人信息在主界面的列表框中显示出来。if(!m_database.IsOpen() /判断数据库是否打开 m_database.OpenEx( _T( DSN=hss ); /连接数据源 sSql=SELECT * FROM telbook; /从数据库中查找RefreshData(); /刷新(2)查询数据模块以按姓名查询为例,点击查询信息按钮,出现查询信息对话框,在编辑框输入需要查询的姓名,点击按姓名查找按钮后,编辑框的信息会传递给变量m_editchar,利用查找语句select * from telbook ,where 姓名=%s,m_editchar ,RefreshData();最后,将联系人信息在查询界面的列表框中显示出来。UpdateData(); /将控件中的数据更新到记录集对象的数据成员中if(m_editchar.IsEmpty() /判断编辑框内容是否为空MessageBox(请输入查询条件!);elsem_editchar.TrimLeft(); /去掉左空格m_editchar.TrimRight(); /去掉右空格strchar.Format(select * from telbook where 姓名=%s,m_editchar); /查找RefreshData(); /刷新(3)添加数据模块点击添加信息按钮,出现添加信息对话框,在对话框中输入相关信息,点击确定按钮,对话框中的信息会传递给相应的变量,然后将刚添加的信息写入到数据库中,最后,在主界面的列表框中显示出来。if(!m_set.Open(CRecordset:dynaset,strchan,CRecordset:none) /查看数据库中是否有该记录 MessageBox(不能打开记录集);if(dlg.DoModal()=IDOK) /判断选择确定按钮 m_set.Edit(); /调用函数 m_set.m_column1=dlg.m_editxingming;m_set.m_column3=dlg.m_editdizhi;m_set.m_column4=dlg.m_edityoubian;m_set.m_column5=dlg.m_edityouxiang;m_set.m_column6=dlg.m_editdianhua;if(dlg.m_Radio1=0) m_set.m_column2=男;if(dlg.m_Radio1=1) m_set.m_column2=女;m_set.Update(); /更新数据库m_set.Close(); /关闭窗口RefreshData(); /刷新(4)修改数据模块首先,在主界面中选择要修改的联系人的姓名,点击修改信息按钮出现修改信息对话框的同时,各个编辑框的信息会传递给相关变量,利用查找语句select * from telbook ,where 编号=%ld,id ,在数据库中进行查找并在修改信息对话框中显示相关信息,再在对话框中修改相关信息,点击确定按钮,对话框中的信息会传递给相应的变量,然后将刚修改的信息写入到数据库中,最后,在主界面的列表框中显示出来(重要代码与添加模块类似,在此不重复说明)。 (5)删除数据模块首先,在主界面中选择要删除的联系人,在点击删除信息按钮的同时,各个编辑框的信息会传递给相关变量,利用查找语句select * from telbook ,where 编号=%ld,id ,在数据库中进行查找并删除相关信息,最后,在主界面的列表框中显示出来。int nchoice=m_listctl.GetNextItem(-1,LVNI_SELECTED); /获取选择信息的编号if(nchoice!=-1) /判断数据库中是否存在此信息 long id=atoi(m_listctl.GetItemText(nchoice,6);CString strdel;strdel.Format(delete * from telbook where 编号 = %ld,id); m_database.ExecuteSQL(strdel); /删除信息RefreshData(); /刷新 3.3 界面设计通讯录管理程序,主要有主界面、添加界面、修改界面和查询界面共四个。在主界面中,用户可以浏览联系人基本信息,并根据需要,对联系人信息进行添加、修改、删除和查询的管理。通讯录管理程序的主界面如图3-1所示。在添加界面中,用户可以添加联系人基本信息,界面设计如图3-2所示。在修改界面中,用户可以修改联系人基本信息,界面设计如图3-2所示。在查询界面中,用户可以根据联系人所有属性(包括姓名、性别、地址、邮箱、邮编、电话)查询联系人基本信息,界面设计如图3-3所示。4 总结经过本学期对面向对象程序设计的学习,在学期末,我用VC+Access编写了这个通讯录管理程序,独立完成了系统软件设计的全过程。在这一周的课程设计过程中,我的独立设计能力得到了锻炼,当然,没有同学的帮助,我也不可能在这么短的时间里完成本系统的设计。当然,我的程序中也存在一些问题,如:数据库设计中,邮箱的格式没有加限制;在程序设计中,删除界面没有提示是否删除就直接将信息删除掉了等。为了使程序更加完善,要从以下几方面进行:(1)增强系统功能,如区号查询,力求达到更完善的功能。(2)程序界面设计,力求达到简洁、大方,给用户以视觉享受。(3)在程序的编写方面,加强练习力度,降低语法错误的出现频率,使代码编写更加流畅。在此之前,我觉得自己设计系统是一件很难的事情,但是,事实证明,只要肯下功夫,什么困难都是可以克服的。面向对象编程其实是有相对固定的模式和流程的,只要按照这个模式和流程,就能够完成一个比较规范的软件制作。此外,在本次课程设计中,我觉得自己的知识还是有欠缺的,逻辑思维不是很清晰,在以后的学习中需要有意识的加强这方面的练习。参考文献1 王育坚Visual C+面向对象编程教程M第2版北京:清华大学出版社,20082 侯俊杰深入浅出MFCM第2版广东:南方出版社,2007 3 李涛 等Visual C+ +SQL Server数据库开发与实例M北京:清华大学出版社,2006附录1. 初始化及数据库连接m_listctl.InsertColumn(0,姓名);m_listctl.InsertColumn(1,性别);m_listctl.InsertColumn(2,地址);m_listctl.InsertColumn(3,邮编);m_listctl.InsertColumn(4,邮箱);m_listctl.InsertColumn(5,电话);m_listctl.InsertColumn(6,编号);RECT rect;m_listctl.GetWindowRect(&rect);int width=rect.right-rect.left;m_listctl.SetColumnWidth(0,width/9);m_listctl.SetColumnWidth(1,width/9);m_listctl.SetColumnWidth(2,2*width/9);m_listctl.SetColumnWidth(3,width/9); m_listctl.SetColumnWidth(4,2*width/9);m_listctl.SetColumnWidth(5,2*width/9);m_listctl.SetColumnWidth(6,0*width/9);if(!m_database.IsOpen()m_database.OpenEx( _T( DSN=hss );sSql=SELECT * FROM telbook;RefreshData();2.添加信息CAddDlg dlg;if(dlg.DoModal()=IDOK)CTelset m_set(&m_database);if(!m_set.Open(CRecordset:dynaset,sSql,CRecordset:none)MessageBox(不能打开记录集);m_set.AddNew();m_set.m_column1=dlg.m_editxingming;m_set.m_column3=dlg.m_editdizhi;m_set.m_column4=dlg.m_edityoubian;m_set.m_column5=dlg.m_edityouxiang;m_set.m_column6=dlg.m_editdianhua;if(dlg.sign=1) m_set.m_column2=男;if(dlg.sign=2) m_set.m_column2=女;m_set.Update();m_set.Close();RefreshData();3.删除信息int nchoice=m_listctl.GetNextItem(-1,LVNI_SELECTED);if(nchoice!=-1)long id=atoi(m_listctl.GetItemText(nchoice,6);CString strdel;strdel.Format(delete * from telbook where 编号 = %ld,id);m_database.ExecuteSQL(strdel);RefreshData();4.修改信息CChangeDlg dlg;CTelset m_set(&m_database);int nchoice=m_listctl.GetNextItem(-1,LVNI_SELECTED);if(nchoice!=-1)long id=atoi(m_listctl.GetItemText(nchoice,6);CString strchan;strchan.Format(select * from telbook where 编号 = %ld,id);if(!m_set.Open(CRecordset:dynaset,strchan,CRecordset:none)MessageBox(不能打开记录集);dlg.m_editxingming=m_set.m_column1;/dlg.m_editname=m_set.m_column2;dlg.m_editdizhi=m_set.m_column3;dlg.m_edityoubian=m_set.m_column4;dlg.m_edityouxiang=m_set.m_column5;dlg.m_editdianhua=m_set.m_column6;CString str=m_set.m_column2;if(str=男)dlg.m_Radio1=0;if(str=女)dlg.m_Radio1=1;if(dlg.DoModal()=IDOK)m_set.Edit(); m_set.m_column1=dlg.m_editxingming;m_set.m_column3=dlg.m_editdizhi;m_set.m_column4=dlg.m_edityoubian;m_set.m_column5=dlg.m_edityouxiang;m_set.m_column6=dlg.m_editdianhua;if(dlg.m_Radio1=0) m_set.m_column2=男;if(dlg.m_Radio1=1) m_set.m_column2=女;m_set.Update();m_set.Close();RefreshData();5.查询信息(以按姓

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论