C++课程设计指导书.docx
- 文档编号:24396817
- 上传时间:2023-05-27
- 格式:DOCX
- 页数:28
- 大小:392.44KB
C++课程设计指导书.docx
《C++课程设计指导书.docx》由会员分享,可在线阅读,更多相关《C++课程设计指导书.docx(28页珍藏版)》请在冰豆网上搜索。
C++课程设计指导书
实验与实训指导书
课程名称:
C++课程设计
课程编号:
适用专业:
2002级计算机软件专业
学时数:
两周(52学时)
执笔人:
孙庚
审定人:
贺平
番禺职业技术学院
软件学院制定
第一章
概述
VisaualC++不仅仅是C++语言的集成开发环境,而且与WIN32紧密相连,所以利用VisualC++开发系统可以完成各种各样应用程序的开发,从底层软件直到上层直接面向用户的软件都可以用它来完成开发,因此VC++已经成为业界公认的Windows系统平台上最强大的应用程序开发系统。
我院软件专业开设了《C++面向对象程序设计课程》,为了使学生强化并灵活运用课堂所学的知识进行应用系统的开发,特开设C++课程设计实验专题,时间为两周。
一、实训总目的
1.强化C++语言的各种知识,并能够理解其在MFC中的具体运用;
2.掌握用VC++6.0开发环境开发软件的过程和方法;
3.理解并掌握MFC的消息处理机制;
4.理解MFC的应用程序框架结构;
5.熟悉文档视图结构,掌握文档和视图的相互控制技巧;
6.掌握SDI应用程序结构,熟悉MDI和基于对话框的应用程序的编程方法;
7.掌握用资源编辑器进行图标、菜单、工具栏、对话框等资源的编辑;
8.掌握对话框、常用控件和ActiveX控件的使用方法;
9.根据学生自己的兴趣和爱好,掌握数据库编程或网络编程的基本方法和技巧;
二、实训内容和时间进程安排:
序号
实训内容
学时
实训时间安排
备注
实训一:
学生成绩管理系统
1
在教师的指导下,通过自学理解MFC的应用程序框架
2
第一周星期一
8:
00~10:
00
2
在教师的指导下,通过自学理解MFC的消息处理机制和文档/视图结构
4
第一周星期一
10:
30~12:
00
14:
30~17:
00
3
在教师的指导下,通过自学和实践掌握利用资源编辑器进行菜单定义和编程方法
4
第一周星期二
10:
00~12:
00
4
在教师的指导下,通过自学和实践掌握对话框与控件的定义及其编程方法和技巧
6
第一周星期二
14:
30~17:
00
第一周星期三
8:
00~12:
00
5
在教师的指导下,通过自学和实践掌握数据库编程的ODBCAPI、数据库相关的ActiveX控件
6
第一周星期三
14:
30~17:
00
第一周星期四
8:
00~12:
00
6
分析我们要解决并实现的问题,从中抽取数据对象,并抽象出类
2
第一周星期四
14:
30~17:
00
7
数据库的设计、建立及其一些数据的录入
6
第一周星期五
8:
00~17:
00
8
创建数据源、建立应用程序框架
2
第二周星期一
8:
00~9:
45
9
进行应用程序的界面设计,添加菜单、按钮、对话框等控件,并建立消息映射
6
第二周星期一
10:
00~17:
00
10
编码
12
第二周星期二~第二周星期三
8:
00~17:
00
11
调试-编码-调试,功能测试
6
第二周星期四
8:
00~17:
00
12
编写应用程序使用说明书,并书写课程设计报告
2
第二周星期五
8:
00~9:
50
13
提交课程设计报告,答辩
4
第二周星期五
10:
00~17:
00
序号
实训内容
学时
实训时间安排
备注
实训二:
简单的网络聊天室
1
在教师的指导下,通过自学理解MFC的应用程序框架
2
第一周星期一
8:
00~10:
00
2
在教师的指导下,通过自学理解MFC的消息处理机制和文档/视图结构
4
第一周星期一
10:
30~12:
00
14:
30~17:
00
3
在教师的指导下,通过自学和实践掌握利用资源编辑器进行菜单定义和编程方法
4
第一周星期二
10:
00~12:
00
4
在教师的指导下,通过自学和实践掌握对话框与控件的定义及其编程方法和技巧
6
第一周星期二
14:
30~17:
00
第一周星期三
8:
00~12:
00
5
在教师的指导下,通过自学和实践掌握网络编程中的一些相关技术,特别是MFCSocket编程机制
6
第一周星期三
14:
30~17:
00
第一周星期四
8:
00~12:
00
6
分析我们要解决并实现的问题,从中抽取数据对象,并抽象出类
2
第一周星期四
14:
30~17:
00
7
设计并编制聊天室的服务器端程序
12
第一周星期五~第二周星期一
8:
00~17:
00
8
设计并编制聊天室的客户端程序
12
第二周星期二~第二周星期三
8:
00~17:
00
9
调试-编码-调试
最后的功能测试
6
第二周星期四
8:
00~17:
00
10
编写应用程序使用说明书,并书写课程设计报告
2
第二周星期五
8:
00~9:
50
11
提交课程设计报告,答辩
4
第二周星期五
10:
00~17:
00
三、实训条件
<硬件:
>PC机每人一台,局域网支持
<软件:
>VisualC++6.0,MSSqlServer2000
<场地:
>实验室
四、实训成绩评定、考核办法
本实训要求学生从所给选题范围中选一项目进行开发。
实训成绩的评定依据两个方面:
考勤成绩和考核成绩,前者占总评的10%,后者占总成绩的90%.
考勤内容包括:
是否按时到场;是否按进度要求完成实训科目;是否认真填写实训日记;是否保持实训设备完好无损等。
考核办法:
Ø规定日期前自行完成设计(10%)
Ø提交开发程序的源代码和课程设计报告(25%)
Ø达到设计要求(20%)
答辩方法:
Ø操作演示:
教师可通过检查学生实训成果或随机指定学生进行某方面操作,对学生进行实践方面的考核;(20%)
Ø回答问题:
教师向学生提出问题,根据学生回答问题的情况对学生进行理论方面的考核。
(15%)
其中,各等级的的评判标准为:
优秀标准:
综合评定:
90分以上(含90分)
良好标准:
综合评定:
80分以上(含80分)
中等标准:
综合评定:
70分以上(含70分)
及格标准:
综合评定:
60分以上(含60分)
不及格标准:
综合评定:
低于60分
第二章实训内容
实训一学生成绩管理系统
一、实训目的
1.理解数据库的一些基本概念,巩固C++基本知识;
2.掌握用VC++6.0开发环境开发软件的过程和方法;
3.理解并掌握MFC的消息处理机制;
4.理解MFC的应用程序框架结构;
5.掌握用资源编辑器进行图标、菜单、工具栏、对话框等资源的编辑;
6.掌握用MFC编写ODBC数据库程序的基本方法;
7.掌握CrecordSet类的常用操作方法;
8.熟悉数据库相关的ActiveX控件的使用;
二、实训理论基础
1.学习了《Access数据库系统》或《SqlServer数据库系统》,掌握了数据库的基本知识;
2.学习了《C++面向对象的程序设计》,掌握了C++程序设计的基本知识。
三、实训内容与步骤
1.自学内容:
(1)理解MFC的应用程序框架;
(2)理解MFC的消息处理机制;
(3)掌握利用资源编辑器进行菜单定义和编程方法;
(4)掌握对话框与控件的定义及其编程方法和技巧。
(5)理解ODBC的含义和作用;学会使用ODBC数据源管理器创建ODBC数据源;深入了解CDataBase类、CRecordSet类的各种属性的意义,成员方法的功能、参数、返回值等;
2.设计数据库,并给出各种表的定义,然后使用Access或SqlServer2000或创建数据库;
3.使用ODBC数据源管理器为刚设计的数据库创建ODBC数据源(创建步骤参见有关书籍);
4.启动VC++6.0,用MFCAppWizard(exe)创建一个基于对话框的应用程序框架结构。
(具体过程略)
5.进行界面设计(下面列举主要界面):
(1)使用资源编辑器创建班级成绩管理的主界面对话框IDD_BADIALOG,并在其中添加所需控件,然后使用类向导使控件与相应的成员变量相关联。
控件ID号
变量类型
变量名
IDC_ADD
CLinkButton
m_AddButton
IDC_ALL
CLinkButton
m_AllButton
IDC_COMBO1
CComboBox
m_cob
IDC_DELECT
CLinkButton
m_DelButton
IDC_EDIT
CLinkButton
m_EditButton
IDC_FIND
CLinkButton
m_FindButton
IDC_LIST1
CListCtrl
m_ListCtrlb
IDC_LIST2
CListCtrl
m_ListCtrll
IDC_LIST3
CListCtrl
m_ListCtrlx
IDC_START
CLinkButton
m_StaButton
(2)使用资源编辑器创建用于查询记录的操作对话框IDD_FINDDIALOG,并在其中添加所需控件,然后使用类向导使控件与相应的成员变量相关联。
控件ID号
变量类型
变量名
IDC_COMBO1
CComboBox
m_cob
IDC_COMBO2
CComboBox
m_com
IDC_FIND
float
m_find
IDCANCEL
CLinkButton
m_CancelButton
IDOK
CLinkButton
m_OkButton
(3)使用资源编辑器创建用于添加记录的操作对话框IDD_ADDDIALOG,并在其中添加所需控件,然后使用类向导使控件与相应的成员变量相关联。
控件ID号
变量类型
变量名
IDC_CHMISTRY
float
m_fchemistry
IDC_ENGLISH
float
m_fenglish
IDC_MATHS
float
m_fmaths
IDC_NAME
CString
m_strName
IDC_PHYSICAL
float
m_fphysical
IDC_POLITIC
float
m_fpolitic
IDC_XUEHAO
int
m_nxue
IDCANCEL
CLinkButton
m_CancelButton
IDOK
CLinkButton
m_OkButton
(4)使用资源编辑器创建用于删除记录的操作对话框IDD_DELECTDIALOG,并在其中添加所需控件,然后使用类向导使控件与相应的成员变量相关联。
控件ID号
变量类型
变量名
IDC_PASS
long
m_nPass
IDC_XUEHAO
long
m_nxue
IDCANCEL
CLinkButton
m_CancelButton
IDOK
CLinkButton
m_OkButton
(5)使用资源编辑器创建用于修改记录的操作对话框IDD_EDITDIALOG,并在其中添加所需控件,然后使用类向导使控件与相应的成员变量相关联。
控件ID号
变量类型
变量名
IDC_CHMISTRY
float
m_fchemistry
IDC_ENGLISH
float
m_fenglish
IDC_MATHS
float
m_fmaths
IDC_NAME
CString
m_strName
IDC_PASS
CString
m_Pass
IDC_PHYSICAL
float
m_fphysical
IDC_POLITIC
float
m_fpolitic
IDC_XUE
long
m_xue
IDCANCEL
CLinkButton
m_CancelButton
IDOK
CLinkButton
m_OkButton
(6)使用资源编辑器创建年级成绩管理的主界面操作对话框IDD_NADIALOG,并在其中添加所需控件,然后使用类向导使控件与相应的成员变量相关联。
控件ID号
变量类型
变量名
IDC_ALL
CLinkButton
m_AllButton
IDC_FIND
CLinkButton
m_FindButton
IDC_LIST1
CListCtrl
m_ListCtrlx
IDC_LIST2
CListCtrl
m_ListCtrlj
IDC_SHOW
CLinkButton
m_ShowButton
IDC_STATIC1
IDC_STATICALL
6.使用MFC类向导针对上述对话框添加消息映射,并向相应的消息响应函数中添加适当的代码,完成编码任务;(具体编码略)
7.编译并调试程序。
8.编写应用程序使用说明书,提交课程设计报告。
四、拓展思考题
1.MFC提供的数据库编程方式有哪些?
它们有什么不同?
2.如何定义ODBC数据源?
试述其过程。
3.用MFC进行ODBC的编程的过程是怎样的?
4.什么是动态行集(Dynasets)?
什么是快照集(Snapshots)?
它们的根本区别是什么?
5.在用CrecordSet类成员函数进行记录的编辑、添加和删除操作时,如何使操作有效?
6.若对一个数据表进行排序和检索,利用CrecordSet的成员变量m_strFilter和m_strSort如何操作?
7.如何处理多个表?
试述其过程及其技巧。
8.什么是ActiveX控件?
当VC++6.0安装后,用于数据库的ActiveX控件有哪些?
9.RemoteData和DBGrid控件是如何关联的?
又是如何进行数据库的操作的?
10.本实训过程是以建立基于对话框的应用程序框架完成的,考虑如果采用文档/视图结构将会在哪些方面有变化?
五、收获和体会
在课程设计即将结束时,师生共同对实训过程进行总结,互谈收获和体会。
实训一简单的网络聊天室
一、实训目的
1.理解数据库的一些基本概念,巩固C++基本知识;
2.掌握用VC++6.0开发环境开发软件的过程和方法;
3.理解并掌握MFC的消息处理机制;
4.理解MFC的应用程序框架结构;
5.掌握用资源编辑器进行图标、菜单、工具栏、对话框等资源的编辑;
6.掌握用网络编程的基本思想和原理,掌握MFCSocket编程机制;
7.掌握使用MFC的CSocket类进行网络编程的过程和技巧。
二、实训理论基础
1.学习了《C++面向对象的程序设计》,掌握了C++程序设计的基本知识。
2.具有基本的网络知识。
三、实训内容与步骤
1.自学内容:
(1)理解MFC的应用程序框架;
(2)理解MFC的消息处理机制;
(3)掌握利用资源编辑器进行菜单定义和编程方法;
(4)掌握对话框与控件的定义及其编程方法和技巧;
(5)了解MFCCSocket类,理解CSocket方式的服务器结构和客户机结构。
2.进行聊天室服务器端程序的设计与构建
(1)利用MFCAppWizard(exe)生成应用程序框架
启动VisualC++6.0,在此IDE环境下单击File|New菜单项,打开New对话框,然后单击project选项卡,选择“MFCAppWizard[exe]”一项。
在对话框右上角的ProjectName中填新工程的名字ChatServer,然后选择适当的目录位置放置此新工程。
在AppWizard的第一步设置中,选择基于对话框的应用程序结构;第二步设置中,选取WindowsSocket复选框,以使应用程序增加对WinSock的支持,将对话框的标题改为“聊天室服务器”,AppWizard的其他设置使用默认设置。
(2)主对话框设计
布置主对话框IDD_CHATSERVER_DIALOG,向其中添加控件,并进行控件属性设置:
控件属性设置
设置控件属性
控件
属性
设置
StaticText
ID
IDC_STATIC_PORT
Caption
端口号:
0
StaticText
ID
IDC_STATIC_NUMBER
Caption
在线人数:
0
StaticText
ID
IDC_STATIC_MESSAGE
Caption
消息数:
0
ListBox
ID
IDC_LIST_MSG
TabStop
未选中
Sort
未选中
Selection
None
Button
ID
IDOK
Caption
停止服务
Disabled
未选中
DefaultButton
未选中
完成对话框控件的布置工作后,单击View|ClassWizard菜单项,打开ClassWizard对话框,为对话框中的控件添加变量:
控件变量
对象
名称
类别
类型
IDC_STATIC_PORT
m_StaPort
Control
CStatic
IDC_STATIC_NUMBER
m_StaNumber
Control
CStatic
IDC_STATIC_MESSAGES
m_StaMessaget
Control
CStatic
IDC_LIST_MSG
m_ListMsg
Control
CListBox
(3)通信端口设置对话框IDD_DIALOG_PORT的创建与设计
利用资源编辑器建立通信端口设置对话框IDD_DIALOG_PORT,并添加如下控件:
在对话框中,有一个编辑框控件,用于让用户输入通信端口号;还有一个微调按钮控件,用户也可以用这个控件来输入通信端口号。
对话框控件的属性如下:
设置控件属性
控件
属性
设置
StaticText
ID
IDC_STATIC
Caption
端口号
EditBox
ID
IDC_EDIT_CHANNEL
Spin
ID
IDC_SPIN_CHANNEL
Alignment
Right
AutoBuddy
选中
SetBuddyInteger
选中
NoThousands
选中
Button
ID
IDOK
Caption
确定
完成对话框控件的布置工作后,单击View|ClassWizard菜单项,打开ClassWizard对话框,为对话框中的控件添加变量:
控件变量
对象
名称
类别
类型
IDC_EDIT_CHANNEL
m_nPort
Value
int
IDC_SPIN_CHANNEL
m_SpinPort
Control
CSpinButtonCtrl
在设置m_nPort变量的时候,设置其最小值为8000,最大值9000。
创建完通信端口输入对话框之后,为此新建对话框生成一个类。
(4)修改并添加代码,完成服务器端应用程序的编码工作:
●获取通信端口号
在ClassWizard对话框中为CportDlg类增加一个对WM_INITDIALOG消息进行处理的相应函数OnInitDialog(),具体代码如下:
BOOLCPortDlg:
:
OnInitDialog()
{
CDialog:
:
OnInitDialog();
//设置默认的端口号
m_nPort=8000;
//设置微调按钮的范围
m_SpinPort.SetRange(8000,9000);
//更新窗体
UpdateData(FALSE);
returnTRUE;
}
完成对CPortDlg类的初始化工作后,修改主对话框类(CserverDlg)的OnInitDialog()函数,使程序在主对话框之前先弹出通信端口对话框,获取通信端口号。
如果获取通信端口号成功,则调用相关函数,使服务器应用程序处于侦听状态,侦听客户机的连接请求。
具体代码如下:
BOOLCServerDlg:
:
OnInitDialog()
{
CDialog:
:
OnInitDialog();
//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
CPortDlgdlg;
//弹出通信端口对话框
//并获取通信端口号
if(dlg.DoModal()==IDOK)
{
//创建侦听套接字对象
m_pSocket=newCListeningSocket(this);
//用获得的通信端口侦听
if(m_pSocket->Create(dlg.m_nPort))
{
CStringstrTemp;
//在窗体上显示通信端口号
strTemp.Format("端口号:
%4d",dlg.m_nPort);
m_StaPort.SetWindowText(strTemp);
//错误判断
if(!
m_pSocket->Listen())
{
AfxMessageBox("侦听失败!
");
CDialog:
:
OnOK();
returnTRUE;
}
}
}
returnTRUE;//returnTRUEunlessyous
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 课程设计 指导书