《面向对象程序设计》课程设计报告-同学通讯录管理程序.doc_第1页
《面向对象程序设计》课程设计报告-同学通讯录管理程序.doc_第2页
《面向对象程序设计》课程设计报告-同学通讯录管理程序.doc_第3页
《面向对象程序设计》课程设计报告-同学通讯录管理程序.doc_第4页
《面向对象程序设计》课程设计报告-同学通讯录管理程序.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

目 录1.设计题目12.设计目的和内容12.1设计目的12.2设计内容13.基本功能描述14.设计思路15.软件设计25.1设计步骤25.2界面设计35.3关键功能的实现35.3.1添加记录35.3.2删除记录45.3.3选中记录45.3.4确认修改45.3.5保存记录45.3.6退出46.结论与心得体会47.参考文献48.附录58.1调试报告及测试结果58.2关键源代码108.2.1 Student类108.2.2全局108.2.3List Control初始化108.2.4添加记录118.2.5删除记录118.2.6选中记录128.2.7修改记录128.2.8保存记录138.2.9退出程序13第13页1. 设计题目同学通讯录管理程序2. 设计目的和内容2.1设计目的1) 学习Visual C+的MFC开发程序的步骤。.2) 综合运用所学的类、继承和多态的知识。3) 进一步掌握程序的调试方法。2.2设计内容1) 利用MFC的向导,创建基于对话框的应用程序,添加按钮、编辑框等控件;2) 设计通讯录的数据结构(如:以数组或者动态链表)和相应的类;3) 完成对通讯录中记录的增加、修改、删除和显示;4) 将通讯录存入文本文件。3. 基本功能描述可以实现学生信息(姓名、学号、系别、邮箱、电话)的添加、显示、选中修改、删除选中和保存并退出程序的功能。4. 设计思路1) 创建基于对话框的MFC应用程序,添加控件:5个Edit Control、6个Button、1个List Control;2) 在5个Edit Control分别输入相应信息,点击“添加记录”Button可在List Control 中显示相应信息,同时清空五个Edit Control以便下一个学生信息的输入;3) 点中List Control选中已有一组学生信息,点击“删除记录”Button可删除该组信息;4) 点中List Control选中已有一组学生信息,点击“选择该列”Button将该列信息返回到5个Edit Control。修改完成后点击“确认修改”Button,对List Control中选中列完成修改;5) 点击“确认保存”将信息保存到文本文档;6) 点击“退出”退出程序。7) 可在D盘查看保存的信息。5. 软件设计5.1设计步骤1) 建立程序,添加变量和函数打开Microsoft Visual Studio 2010,新建一个基于对话框的MFC应用程序。添加5个Static Text、5个Edit Control、6个Button、1个List Control。在各控件属性中修改Caption,见表 1。选择项目类向导,添加成员变量(表 2)和成员函数(表 3)。表 1 Caption控件IDCaption控件IDCaptionIDC_STATIC姓名IDC_BUTTON1添加记录IDC_STATIC学号IDC_BUTTON2删除记录IDC_STATIC系别IDC_BUTTON3选择该列IDC_STATIC邮箱IDC_BUTTON4确认保存IDC_STATIC电话IDCANCEL退出IDOK确认修改表 2成员变量控件类型成员IDC_EDIT1CStringm_nameIDC_EDIT2CStringm_numIDC_EDIT3CStringm_insIDC_EDIT4CStringm_emailIDC_EDIT5CStringm_callIDC_LIST1CListCtrlm_list表 3成员函数函数名称命令ID消息OnBnClickedCancelIDCANCELBN_CLICKEDOnBnClickedOkIDOKBN_CLICKEDOnClickedButton1addIDC_BUTTON1BN_CLICKEDOnClickedButton2deleteIDC_BUTTON2BN_CLICKEDOnClickedButton3modifyIDC_BUTTON3BN_CLICKEDOnClickedButton3keepIDC_BUTTON4BN_CLICKED2) 添加一个Student类,在Ctry2Dlg.cpp中定义Student类的对象数组emily和一个全局变量i。3) 初始化List Control在类视图try2Ctry2DlgOnInitialog()添加初始化的代码4) 实现添加、删除、修改和保存功能在类视图try2Ctry2Dlg中:OnClickedButton1add()实现添加记录到List Control功能;OnClickedButton2delete()实现删除记录功能;OnClickedButton3modify()实现选中记录返回到相应Edit Control功能;OnBnClickedOk()实现在OnClickedButton3modify()功能后替换List Control中原有内容确认修改;OnClickedButton4keep()实现在保存功能;OnBnClickedCancel()退出程序。5.2界面设计界面见图 1图 1界面5.3关键功能的实现5.3.1添加记录利用Edit Control关联的成员变量取其中的值存到对象数组中,再将对象数组中的值显示到List Control,同时清空Edit Control以便下一组学生记录的输入。i自增1,这样下一个记录便会存储在下一个数组元素中。5.3.2删除记录调用m_list.GetSelectionMark选中点击了List Control中的一行;再调用m_list.DeleteItem删除该行;调用Student类的delete函数删除数组中的该组信息。5.3.3选中记录调用m_list.GetSelectionMark获取点击的那一行;m_list.GetItemText获取想要的单元格返回到相应的Edit Control。5.3.4确认修改结合删除和添加功能即可。5.3.5保存记录建立CFile文件类的对象txt,文件路径为d:/student.txt;CFile:modeCreate|CFile:modeWrite为文件操作类型参数设置;利用GetLength函数字符串长度,再调用Write写入到文本文档;5.3.6退出OnBnClickedCancel()退出程序。6. 结论与心得体会在这个同学通讯录管理程序设计中,通过上网搜索,我学会并使用了很多编写应用程序的函数。在这个过程中,我觉得用进行查询很重要。中有很多函数,功能非常强大,网上有人说“在中只有想不到,没有做不到”。设计过程中虽然遇到了很多次困难,在每次通过查阅资料后解决难题的过程中都有很多意想不到的收获。全力投入后运行成功是无比喜悦的,作为等其他很多程序编写的基础,是非常重要的。这次课程设计过程我发现自己没有好好掌握,很多基本的概念没有彻底理解,需要再多看看书,查查资料。通过这次课程设计,我初步学会了基于对话框的MFC应用程序的设计,我发现原来枯燥的程序编写也有很多快乐,我对编程产生了浓厚兴趣。7. 参考文献孙鑫.(2006).VC+深入详解北京:电子工业出版社Visual.C+6.0技术内幕北京:希望电子出版社侯俊杰.(1998).深入浅出MFC8. 附录8.1调试报告及测试结果 图 2运行初始界面图 3键入信息图 4点击“添加记录”图 5再添加一个学生信息图 6点击第一行后点击“选择该列”取出信息到Edit Control图 7修改信息图 8点击“确认修改”图 9点击emily行后点击“删除记录”图 10点击yukaiyuan行后点击“选择该列”图 11点击“确认保存”图 12 D盘自动生产student.txt8.2关键源代码8.2.1 Student类class Studentpublic:Student(void);Student(void);CString name; CString num;CString ins;CString email;CString call;void Delete();8.2.2全局Student emily15;int i=0;8.2.3List Control初始化BOOL Ctry2Dlg:OnInitDialog()/ TODO: 在此添加控件通知处理程序代码DWORD dwStyle = m_list.GetExtendedStyle(); m_list.SetExtendedStyle(dwStyle|LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES); m_list.InsertColumn(0,_T( 姓名); m_list.InsertColumn(1, _T(学号); m_list.InsertColumn(2,_T( 院系); m_list.InsertColumn(3,_T( 邮箱);m_list.InsertColumn(4,_T( 电话); m_list.SetColumnWidth(0, 80); m_list.SetColumnWidth(1, 80); m_list.SetColumnWidth(2, 120); m_list.SetColumnWidth(3, 120);m_list.SetColumnWidth(4, 120);return TRUE; 8.2.4添加记录void Ctry2Dlg:OnClickedButton1add()/ TODO: 在此添加控件通知处理程序代码? UpdateData();=m_name;emilyi.num=m_num;emilyi.ins=m_ins;emilyi.email=m_email;emilyi.call=m_call;int nCurItem = m_list.InsertItem(0,);m_list.SetItemText(nCurItem, 1,emilyi.num); m_list.SetItemText(nCurItem, 2, emilyi.ins); m_list.SetItemText(nCurItem, 3,emilyi.email);m_list.SetItemText(nCurItem, 4, emilyi.call);m_name=;m_num=;m_ins=;m_email=;m_call=;UpdateData(FALSE);i=i+1;8.2.5删除记录void Ctry2Dlg:OnClickedButton2delete()/ TODO: i=m_list.GetSelectionMark ();m_list.DeleteItem(i);emilyi.Delete();8.2.6选中记录void Ctry2Dlg:OnClickedButton3modify()/ TODO: 在此添加控件通知处理程序代码i=m_list.GetSelectionMark (); /获取点击的那一行= m_list.GetItemText(i,0);/获得已被选择的行 SetDlgItemText(IDC_EDIT1,);emilyi.num=m_list.GetItemText(i,1);SetDlgItemText(IDC_EDIT2,emilyi.num);emilyi.ins=m_list.GetItemText(i,2);SetDlgItemText(IDC_EDIT3,emilyi.ins);emilyi.email=m_list.GetItemText(i,3);SetDlgItemText(IDC_EDIT4,emilyi.email);emilyi.call=m_list.GetItemText(i,4);SetDlgItemText(IDC_EDIT5,emilyi.call);8.2.7修改记录void Ctry2Dlg:OnBnClickedOk()/ TODO: 在此添加控件通知处理程序代码?i=m_list.GetSelectionMark ();m_list.DeleteItem(i);emilyi.Delete();UpdateData();=m_name;emilyi.num=m_num;emilyi.ins=m_ins;emilyi.email=m_email;emilyi.call=m_call;int nCurItem = m_list.InsertItem(i,);m_list.SetItemText(nCurItem, 1,emilyi.num); m_list.SetItemText(nCurItem, 2, emilyi.ins); m_list.SetItemText(nCurItem, 3,emilyi.email);m_list.SetItemText(nCurItem, 4, emilyi.call);m_name=;m_num=;m_ins=;m_email=;m_call=;UpdateData(FALSE);8.2.8保存记录/ TODO: 在此添加控件通知处理程序代码CFile txt;int j; txt.Open( _T(d:/student.txt) ,CFile:modeCreate|CFile:modeWrite); for(int i=0;i15;i+) j=.GetLength(); txt.Write(,2*j); j=emilyi.num.Get

温馨提示

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

评论

0/150

提交评论