VC++课程实验Word文档下载推荐.docx
- 文档编号:15069666
- 上传时间:2022-10-27
- 格式:DOCX
- 页数:16
- 大小:574.96KB
VC++课程实验Word文档下载推荐.docx
《VC++课程实验Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《VC++课程实验Word文档下载推荐.docx(16页珍藏版)》请在冰豆网上搜索。
2.1创建并设计对话框3
2.2设计主对话框及其控件6
2.3设计子对话框及其控件7
2.4更改各控件ID8
2.5设置成员变量10
3添加程序代码11
4.调试和运行15
5.实验的心得和体会18
(1)建立一个基于对话框的应用项目(项目名称为学生姓名拼音首字母缩写)。
(2)在主对话框中设置组合框、列表框和“添加”按钮。
(3)当按下“添加”按钮后,调用一个学生成绩输入的对话框(包括学号、姓名、三门课(电路、高数,通信)的成绩)。
(4)学生成绩输入的结果在主对话框中显示,其中学号显示在组合框,选
择组合框的学号后,学生的其他信息显示在列表框。
2.1创建并设计对话框
新建一个名为XF的工程,在这个创建一个基本对话框的应用项
目。
单击对话框编辑器工具栏上的切换网格按钮,显示对话框网格。
(1)选择“File”→“New”菜单命令,在弹出的“New”对话框中,“Project”标签页面中显示了一系列的应用程序项目类型;
选择MFC
AppWizard(exe)的项目类型,将项目工作文件夹定位在“H:
\Microsoft
VisualStudio\MyProjects\”,并在“Projectname”编辑框中输入项目名
XF,如图1所示。
图1新建工程
(2)单击“确定”按钮,出现如图2所示的对话框。
并在类型选择栏选择选
择“基本对话框”
图2选择基本对话框(3)完成上述步骤后,可以单击完成按钮,或者一直点击下一步直至完成基本设置。
并出现下图所示的提示界面。
图4完成基本设置后的提示信息
2.2设计主对话框及其控件
打开对话框网格,参见图6的控件布局,用编辑器为主对话框添加如
下图所示的一些控件。
图5主对话框的控件布局
2.3设计子对话框及其控件
将鼠标到左边框的IDD_GZ_DIALOG处并单击右键,在下拉菜单中选
择插入dialog选项系统弹出子对话框。
(1)打开对话框网格,参见图8的控件布局,用编辑器为对话框添加如下图所示的一些控件。
图6子对话框的控件布局
2.4更改各控件ID
更改各控件的ID和名称,并添加相关属性。
如下列各图所示:
2.5设置成员变量
打开ClassWizard的MemberVariable页面,或者直接按Ctrl+W组合键,
在Classname中选择XFzDlg,选中所需的控件号,双击或者单击AddVariaable按钮。
依次为下列控件添加成员变量,如图8所。
图8为主对话框的控件添加成员变量
同样的,为子对话框的控件添加成员变量如图9所示。
图9为子对话框的控件添加成员变量
3添加程序代码
(1)用MFCClassWizard为IDOK类添加BN_CLICKED消息映射,并添加下列初始化代码,代码中增添了原题目中未要求的部分,即如果输入的是空白则会
产生提示继而返回初始输入界面重新输入数值:
UpdateData(true);
if(m_strName!
="
"
)
{
if(m_strNO!
{
if(m_mark1!
{
if(m_mark2!
{if(m_mark3!
{
CStringinfor="
;
CStringid="
id=m_strNO;
infor+="
姓名:
infor+=m_strName;
\r\n"
infor+="
电路成绩:
infor+=m_mark1;
高数成绩:
infor+=m_mark2;
通信成绩:
infor+=m_mark3;
CDialog:
:
OnOK();
FILE*f=fopen("
recordinfor.txt"
"
w+"
);
for(inti=0;
i<
strlen(infor);
i++)fputc(infor[i],f);
fclose(f);
FILE*fp=fopen("
recordid.txt"
for(i=0;
strlen(id);
i++)fputc(id[i],fp);
fclose(fp);
MessageBox("
恭喜添加成功!
CDialog:
//m_list.AddString(str);
//UpdateData(TRUE);
}
else
MessageBox("
通信成绩输入不能为空!
m_strName="
m_strNO="
m_mark1="
m_mark2="
m_mark3="
UpdateData(FALSE);
}}else
高数成绩输入不能为空!
m_mark1="
m_mark2="
m_mark3="
UpdateData(FALSE);
}
}
else
MessageBox("
电路成绩输入不能为空!
UpdateData(FALSE);
MessageBox("
学号不能为空!
m_strName="
m_strNO="
m_mark2="
姓名不能为空!
//TODO:
Addextravalidationhere
UpdateData(true);
(2)在文件XFDlg.cpp的前面添加XFDialog的包含语句:
#include"
XFDlg.h"
InputDlg.h"
(3)用MFCClassWizard为CXFDlg增加IDC_COMBO1控件的
CBN_SELCHANGE消息映射,并添加下列代码:
intindex=m_classid.GetCurSel();
CStringinfor=*(CString*)m_classid.GetItemDataPtr(index);
m_classinfor.ResetContent();
m_classinfor.AddString(infor);
(4)用MFCClassWizard为XFzDlg增加IDOK控件的BN_CLICKED消
息映射,并添加下列代码:
CInputDlga;
if(a.DoModal()==IDOK)
CStringid="
CStringinfor="
FILE*f=fopen("
r"
FILE*fp=fopen("
while(!
feof(f)){infor+=fgetc(f);
}while(!
feof(fp)){id+=fgetc(fp);
}fclose(f);
fclose(fp);
intindex;
index=m_classid.AddString(id);
m_classid.SetItemDataPtr(index,newCString(infor));
//UpdateData(true);
4.调试和运行
调试成功后的结果如下图所示,单击添加按钮,就会弹出子对话框,在子对话框中输入班级信息。
图11编译运行结果
图12输入班级信息在输入完一组数据后单击确定,会弹出小窗口提示添加成功。
图13提示框口
如果输入的姓名为空,系统会提示“姓名不能为空!
”,并返回成绩添加页面重新进行学生成绩输入
同理,其他4项输入内容如果为空也会出现相对应的提示,继而返回成绩输入界面进行后续操作
所有班级信息成功添加完之后,单击主对话框班级号栏的组合框会显示所有以输入学生学号,选择一个学号,主对话框的列表框就会显示该班级的全部信息。
5.实验的心得和体会
本次课程设计,使我对《VisualC++》这门课程有了更深入的理解。
《Visual
C++》是一门实践性较强的课程,为了学好这门课程,必须在掌握理论知识的同时,加强上机实践。
我的课程设计题目是班级信息输入与显示。
刚开始做这个程序的时候,感到完全无从下手,甚至让我觉得完成这次程序设计根本就是不可能的,于是开始查阅各种资料以及参考文献,之后便开始着手写程序,写完运行时有很多问题。
特别是实现对话框调用时很多情况没有考虑周全,经常运行出现错误,但通过同学间的帮助最终基本解决问题。
并且在查阅了很多资料之后我对原题目要求进行了扩展和延伸,添加了输入内容识别功能,如果输入是空的系统会自动识别并且自返回输入页面等待进一步纠正后的输入。
这一改动完善了系统的实用性和合理性,扩宽了我的知识层面。
在本课程设计中,我明白了理论与实际应用相结合的重要性,并提高了自己组织数据及编写大型程序的能力。
培养了基本的,良
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VC 课程 实验