面向对象程序设计课程设计报告同学通讯录管理程序.docx

上传人:b****8 文档编号:27702166 上传时间:2023-07-04 格式:DOCX 页数:17 大小:369.08KB
下载 相关 举报
面向对象程序设计课程设计报告同学通讯录管理程序.docx_第1页
第1页 / 共17页
面向对象程序设计课程设计报告同学通讯录管理程序.docx_第2页
第2页 / 共17页
面向对象程序设计课程设计报告同学通讯录管理程序.docx_第3页
第3页 / 共17页
面向对象程序设计课程设计报告同学通讯录管理程序.docx_第4页
第4页 / 共17页
面向对象程序设计课程设计报告同学通讯录管理程序.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

面向对象程序设计课程设计报告同学通讯录管理程序.docx

《面向对象程序设计课程设计报告同学通讯录管理程序.docx》由会员分享,可在线阅读,更多相关《面向对象程序设计课程设计报告同学通讯录管理程序.docx(17页珍藏版)》请在冰豆网上搜索。

面向对象程序设计课程设计报告同学通讯录管理程序.docx

面向对象程序设计课程设计报告同学通讯录管理程序

 

1.设计题目

同学通讯录管理程序

2.设计目的和内容

2.1设计目的

1)学习VisualC++的MFC开发程序的步骤。

.

2)综合运用所学的类、继承和多态的知识。

3)进一步掌握程序的调试方法。

2.2设计内容

1)利用MFC的向导,创建基于对话框的应用程序,添加按钮、编辑框等控件;

2)设计通讯录的数据结构(如:

以数组或者动态链表)和相应的类;

3)完成对通讯录中记录的增加、修改、删除和显示;

4)将通讯录存入文本文件。

3.基本功能描述

可以实现学生信息(姓名、学号、系别、邮箱、电话)的添加、显示、选中修改、删除选中和保存并退出程序的功能。

4.设计思路

1)创建基于对话框的MFC应用程序,添加控件:

5个EditControl、6个Button、1个ListControl;

2)在5个EditControl分别输入相应信息,点击“添加记录”Button可在ListControl中显示相应信息,同时清空五个EditControl以便下一个学生信息的输入;

3)点中ListControl选中已有一组学生信息,点击“删除记录”Button可删除该组信息;

4)点中ListControl选中已有一组学生信息,点击“选择该列”Button将该列信息返回到5个EditControl。

修改完成后点击“确认修改”Button,对ListControl中选中列完成修改;

5)点击“确认保存”将信息保存到文本文档;

6)点击“退出”退出程序。

7)可在D盘查看保存的信息。

5.软件设计

5.1设计步骤

1)建立程序,添加变量和函数

打开MicrosoftVisualStudio2010,新建一个基于对话框的MFC应用程序。

添加5个StaticText、5个EditControl、6个Button、1个ListControl。

在各控件属性中修改Caption,见表1。

选择项目→类向导,添加成员变量(表2)和成员函数(表3)。

表1Caption

控件ID

Caption

控件ID

Caption

IDC_STATIC

姓名

IDC_BUTTON1

添加记录

IDC_STATIC

学号

IDC_BUTTON2

删除记录

IDC_STATIC

系别

IDC_BUTTON3

选择该列

IDC_STATIC

邮箱

IDC_BUTTON4

确认保存

IDC_STATIC

电话

IDCANCEL

退出

IDOK

确认修改

表2成员变量

控件ID

类型

成员

IDC_EDIT1

CString

m_name

IDC_EDIT2

CString

m_num

IDC_EDIT3

CString

m_ins

IDC_EDIT4

CString

m_email

IDC_EDIT5

CString

m_call

IDC_LIST1

CListCtrl

m_list

表3成员函数

函数名称

命令ID

消息

OnBnClickedCancel

IDCANCEL

BN_CLICKED

OnBnClickedOk

IDOK

BN_CLICKED

OnClickedButton1add

IDC_BUTTON1

BN_CLICKED

OnClickedButton2delete

IDC_BUTTON2

BN_CLICKED

OnClickedButton3modify

IDC_BUTTON3

BN_CLICKED

OnClickedButton3keep

IDC_BUTTON4

BN_CLICKED

2)添加一个Student类,在Ctry2Dlg.cpp中定义Student类的对象数组emily和一个全局变量i。

3)初始化ListControl

在类视图→try2→Ctry2Dlg→OnInitialog()添加初始化的代码

4)实现添加、删除、修改和保存功能

在类视图→try2→Ctry2Dlg中:

OnClickedButton1add()实现添加记录到ListControl功能;

OnClickedButton2delete()实现删除记录功能;

OnClickedButton3modify()实现选中记录返回到相应EditControl功能;

OnBnClickedOk()实现在OnClickedButton3modify()功能后替换ListControl中原有内容确认修改;

OnClickedButton4keep()实现在保存功能;

OnBnClickedCancel()退出程序。

5.2界面设计

界面见图1

图1界面

5.3关键功能的实现

5.3.1添加记录

利用EditControl关联的成员变量取其中的值存到对象数组中,再将对象数组中的值显示到ListControl,同时清空EditControl以便下一组学生记录的输入。

i自增1,这样下一个记录便会存储在下一个数组元素中。

5.3.2删除记录

调用m_list.GetSelectionMark选中点击了ListControl中的一行;

再调用m_list.DeleteItem删除该行;

调用Student类的delete函数删除数组中的该组信息。

5.3.3选中记录

调用m_list.GetSelectionMark获取点击的那一行;

m_list.GetItemText获取想要的单元格返回到相应的EditControl。

5.3.4确认修改

结合删除和添加功能即可。

5.3.5保存记录

建立CFile文件类的对象txt,文件路径为d:

//student.txt;

CFile:

:

modeCreate|CFile:

:

modeWrite为文件操作类型参数设置;

利用GetLength函数字符串长度,再调用Write写入到文本文档;

5.3.6退出

OnBnClickedCancel()退出程序。

6.结论与心得体会

在这个同学通讯录管理程序设计中,通过上网搜索,我学会并使用了很多编写MFC应用程序的函数。

在这个过程中,我觉得用msdn进行查询很重要。

MFC中有很多函数,功能非常强大,网上有人说“在MFC中只有想不到,没有做不到”。

设计过程中虽然遇到了很多次困难,在每次通过查阅资料后解决难题的过程中都有很多意想不到的收获。

全力投入后运行成功是无比喜悦的,

C++作为MFC等其他很多程序编写的基础,是非常重要的。

这次课程设计过程我发现自己没有好好掌握C++,很多基本的概念没有彻底理解,需要再多看看书,查查资料。

通过这次课程设计,我初步学会了基于对话框的MFC应用程序的设计,我发现原来枯燥的程序编写也有很多快乐,我对编程产生了浓厚兴趣。

7.参考文献

孙鑫.(2006).VC++深入详解 北京:

电子工业出版社

Visual.C++6.0技术内幕 北京:

希望电子出版社

侯俊杰.(1998).深入浅出MFC

8.附录

8.1调试报告及测试结果

图2运行初始界面

图3键入信息

图4点击“添加记录”

图5再添加一个学生信息

图6点击第一行后点击“选择该列”取出信息到EditControl

图7修改信息

图8点击“确认修改”

图9点击emily行后点击“删除记录”

图10点击yukaiyuan行后点击“选择该列”

图11点击“确认保存”

图12D盘自动生产student.txt

8.2关键源代码

8.2.1Student类

classStudent{

public:

Student(void);

~Student(void);

CStringname;

CStringnum;

CStringins;

CStringemail;

CStringcall;

voidDelete();

};

8.2.2全局

Studentemily[15];

inti=0;

8.2.3ListControl初始化

BOOLCtry2Dlg:

:

OnInitDialog()

{

……

//TODO:

在此添加控件通知处理程序代码

DWORDdwStyle=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);

returnTRUE;

}

8.2.4添加记录

voidCtry2Dlg:

:

OnClickedButton1add()

{

//TODO:

在此添加控件通知处理程序代码?

UpdateData();

emily[i].name=m_name;

emily[i].num=m_num;

emily[i].ins=m_ins;

emily[i].email=m_email;

emily[i].call=m_call;

intnCurItem=m_list.InsertItem(0,emily[i].name);

m_list.SetItemText(nCurItem,1,emily[i].num);

m_list.SetItemText(nCurItem,2,emily[i].ins);

m_list.SetItemText(nCurItem,3,emily[i].email);

m_list.SetItemText(nCurItem,4,emily[i].call);

m_name="";

m_num="";

m_ins="";

m_email="";

m_call="";

UpdateData(FALSE);

i=i+1;

}

8.2.5删除记录

voidCtry2Dlg:

:

OnClickedButton2delete()

{

//TODO:

i=m_list.GetSelectionMark();

m_list.DeleteItem(i);

emily[i].Delete();

}

8.2.6选中记录

voidCtry2Dlg:

:

OnClickedButton3modify()

{

//TODO:

在此添加控件通知处理程序代码

i=m_list.GetSelectionMark();//获取点击的那一行

emily[i].name=m_list.GetItemText(i,0);//获得已被选择的行

SetDlgItemText(IDC_EDIT1,emily[i].name);

emily[i].num=m_list.GetItemText(i,1);

SetDlgItemText(IDC_EDIT2,emily[i].num);

emily[i].ins=m_list.GetItemText(i,2);

SetDlgItemText(IDC_EDIT3,emily[i].ins);

emily[i].email=m_list.GetItemText(i,3);

SetDlgItemText(IDC_EDIT4,emily[i].email);

emily[i].call=m_list.GetItemText(i,4);

SetDlgItemText(IDC_EDIT5,emily[i].call);

}

8.2.7修改记录

voidCtry2Dlg:

:

OnBnClickedOk()

{

//TODO:

在此添加控件通知处理程序代码?

i=m_list.GetSelectionMark();

m_list.DeleteItem(i);

emily[i].Delete();

UpdateData();

emily[i].name=m_name;

emily[i].num=m_num;

emily[i].ins=m_ins;

emily[i].email=m_email;

emily[i].call=m_call;

intnCurItem=m_list.InsertItem(i,emily[i].name);

m_list.SetItemText(nCurItem,1,emily[i].num);

m_list.SetItemText(nCurItem,2,emily[i].ins);

m_list.SetItemText(nCurItem,3,emily[i].email);

m_list.SetItemText(nCurItem,4,emily[i].call);

m_name="";

m_num="";

m_ins="";

m_email="";

m_call="";

UpdateData(FALSE);

}

8.2.8保存记录

//TODO:

在此添加控件通知处理程序代码

CFiletxt;

intj;

txt.Open(_T("d:

//student.txt"),CFile:

:

modeCreate|CFile:

:

modeWrite);

for(inti=0;i<15;i++){

j=emily[i].name.GetLength();

txt.Write(emily[i].name,2*j);

j=emily[i].num.GetLength();

txt.Write(emily[i].num,2*j);

j=emily[i].ins.GetLength();

txt.Write(emily[i].ins,2*j);

j=emily[i].email.GetLength();

txt.Write(emily[i].email,2*j);

j=emily[i].call.GetLength();

txt.Write(emily[i].call,2*j);

}

txt.Close();

}}

8.2.9退出程序

voidCtry2Dlg:

:

OnBnClickedCancel()

{

//TODO:

在此添加控件通知处理程序代码

CDialogEx:

:

OnCancel();

}

 

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

当前位置:首页 > 总结汇报 > 学习总结

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

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