
VC总复习资料.docx
8页VC+总复习资料一、知识点1、类和对象的概念要求能够具体识别代码中的类和对象2、C++程序设计语言的三个特点即封装性、继承性和多态性具体要求为:(1) 能够在程序代码中指出类的定义中体现封装性的代码,如类和对象的定义和三种访问类型(公有型、私有型和保护型),说明公有、私有和保护类型的访问区别(对象不能访问私有和保护,可以访问公有);能够指出类中的构造函数和析构函数;能够说明什么是重载2) 能够在代码中指出类的继承,如CScoreDlg是继承自CDialog类,继承方式怎样(公有、私有或保护),不同的继承方式下,派生类有何不同(公有继承访问权限不变、私有继承变私有、保护继承变保护)⑶如代码中有虚函数,能够指出虚函数体现了C++语言的多态性,多态性体现在可以用基类的对象指针,访问派生类的对象3、消息传递机制要求能够操作,在制作VC+程序的过程中如何体现?具体可以操作建立--个对象的消息映射,比如建立个按钮的LButtonDown消息,或CDialog的WM」INITDIALOG肖息4、类、成员变量和盘员函数的定义方法能够通过操作定义一个类,包括一般类和通过继承的派生类;能够定义一个成员变量,包括控件变量和一般变量;能够定义一个函数,包括消息映射函数和一般函数。
二、实验二代码1、对话框校验代码同样的代码在实验四、九中均有)voidCCourseDlg::OnOK(){UpdateData();〃括号中参数默认为TRUE控件值传递给变量m_strNO.TrimLeft();//TrimLeft():从左边开始滤去空格if(m_strNO.IsEmpty())〃判断语句,假如m_strN变量值为空时,执行下面的代码{MessageBox(课“程号不能为空!","警告",MB_ICONQUESTION|MB_ABORTRETRYIGNORE);〃弹出消息框,参数1:对话框的提示消息内容;参数2:对话框标题内容;参数3:对话框按钮和图标的形式return;〃返回,函数执行结束)}2、对话框初始化代码类似的消息映射实验四、九中均有,这里需要知道各个控件的名称)BOOLCCourseDlg::OnlnitDialog()CDialog::OnlnitDialog();m_spinOpen.SetRange(1,8);m_nHours=60;m_fCredit=2.0;m_nOpen=l;m_strType=,'专修”;〃这里对专业组合框进行初始化为各个控件所对应的一般变量赋初始值J为各个控件所对应的一般变量赋初始值m_comboSpecial,AddString("机械工程及其自动化,m_comboSpecial.AddString("电气工程及其自动化”');〃为组合框对象的下拉列表赋初值m_strSpecial="机械工程及其自动化”;UpdateData(FALSE);〃括号中参数为FALSE变量值传递给控件}3、“课程信息”按钮单击消息代码。
voidCEx_CtrlsDlg::OnButtonCourse()(CCourseDIgdig;if(IDOK!=dlg.DoModal())return;〃类的实例化//dlg.DoModal()为弹出对话框对象dig,所弹出的对话框中用户如点击0K按钮,则程序返回值为IDOK,程序继续执行下列代码段,否则该代码段返回,不再继续向下执行,跳出该函数while(m_List.GetCount()!=0)m_List.DeleteString(O);//清除列表框原来显示内容,这里为循环语句,逐行删除,每次删除第一行的内容,直到所有内容清空后,循环结束m_List.AddString("课程号"+dlg.m_strNO);〃向列表框中添加-彳亍字符串,下同m_List.AddString("课程名称"+dlg.m_strName);m_List.AddString("所属专业"+dlg.m_strSpecial);m_List.AddString("课程类型"+dlg.m_strType);CStringstr;〃定义一个字符串变量str.Format("开课学期:%d",dlg.m_nOpen);〃按照对象类型组建数据,这里对象str为字符串型,可以理解为将任意类型的值转换为字符串CString型。
这里的%d为其所在位置的值以整型格式填充内容,所填充内容为dlg.m_nOpen变量的值下同,下列代码段中的%4&为浮点型值,共4位,其中1位小数m_List.AddString(str);〃向列表框中添加一行字符串,下同三、实验四代码1、构造函数赋初值CScoreDlg::CScoreDlg(CWnd*pParent/*=NULL*/):CDialog(CScoreDlg::IDD,pParent)(……m_strOKText.Empty();〃将变量的值设)2、对话框赋初值BOOLCScoreDlg::OnlnitDialog()〃调用基类的函CDialog::OnlnitDialog();if(!m_strOKText.lsEmpty())GetDlgltem(IDOK)->SetWindowText(m_strOKText);〃将IDOK按钮标题设为m_strOKText变量的内容}BOOLCEx_ListDlg::OnlnitDialog()(CDialog::OnlnitDialog();〃创建列表控件的标题头CStringstrHeader⑷={"学号“,“课程“,“成绩“,"学分"};//定义列标题头内容数组for(intnCol=0;nCol<4;nCol++)〃新建一列并赋标题头内容(列标号,列标题内容,左对齐,列宽)m_ListCtrl.lnsertColumn(nCol,strHeader[nCol]/LVCFMT_LEFT/80);GetDlgltem(IDC_BUTTON_CHANGE)->EnableWindow(FALSE);〃取得控件ID所对应元素的使用权(即句柄),并将其置灰,即禁用此按钮3、添加按钮单击消息voidCEx_ListDlg::OnButtonScore()(CScoreDIgdig;if(IDOK!=dlg.DoModal())return;〃类的实例化//dlg.DoModal()为弹出对话框对象dig,所弹岀的对话框中用户如点击0K按钮,则程序返回值为IDOK,程序继续执行下列代码段,否则所弹岀的对话框中用户如点击0K按钮,则程序返回值为IDOK,程序继续执行下列代码段,否则该代码段返回,不再继续向下执行,跳出该函数。
intnltem=m_ListCtrl,GetltemCount();〃取得列表控件已有元素数量,即行数m_ListCtrl.lnsertltem(nltem,dlg.m_strStuNo);值,参数2:首列所赋值内容,这里为对话框对象〃生成一行,并为首列赋值参数dig的m_strStuN变量的值1:行m_ListCtrl.SetltemText(nltem,l,dlg.m_strCourseNo);〃为列表控件某行某列的单元格赋值,这里是为nltem行,第2列赋值参数1:行值,参数2:列值,参数3:所赋值内容}4、修改按钮单击消息voidCEx_ListDlg::OnButtonChange()(〃获取被选择的列表项索引号POSITIONpos;〃定义POSITION变量,定位选中行pos=m_ListCtrl.GetFirstSelectedltemPosition();〃如果函数执行成功,则返回条目的POSITION{t如果返回值为KULL则表示当前列表视图控件中没有条目选中if(pos==NULL){〃当没有选中行时,弹岀消息对话框提示MessageBox("你还没有选中列表项!");return;}中下型,表。
intnltem=m_ListCtrl.GetNextSelectedltem(pos);〃如果函数执行成功,则返回列表控件一个被选中的条目索引其中参数pos为将接收条目POSITION值的变量,返回值为整明目前选中行的行值CScoreDIgdig;dlg.m_strOKText="修改”;dlg.m_strStuNo=m_ListCtrl,GetltemText(nltem,0);〃取得列表控件某行某列的值参数1:行号,参数2:列号返回值:某行某列的值dlg.m_fScore=(flo〃将CString型转换成四、a实验九代码float1、删除列表头voidCEx_StudentView::DeleteAIIColumn()(CListCtrl&m_ListCtrl=GetListCtrl();〃从列表视图中得到列表控件对象的引用intnCount=0;CHeaderCtrl*pHeaderCtrl=m_ListCtrl.GetHeaderCtrl();//取得列表控件标头指针if(pHeaderCtrl!=NULL)〃假如标头指针不为空nCount=pHeaderCtrl->GetltemCount();〃返回当前的列数for(inti=0;i 每删除一列后,右边列左移,成为第0列}2、视图刷新显示voidCEx_StudentView::DispScorelnfo(CStringstrFilter)(DeleteAIIColumn();//自定义函数,删除表头CListCtrl&m_ListCtrl=GetListCtrl();〃从列表视图中得到列表控件对象的引用CStringstrHeader[]=("学号尸课程号7成绩”广学分“};for(intnCol=0;nCol sSet.m_strSort="studentno,course";〃m_strSort为记录集类的固有字段,用于定义记录集打开前数据的排序条件,其类型为字符串型,其中第一个值为主排序字段,第二个值为辅排序字段sSet.Open();〃打开数据库记录集intnltem=0;CStringstr;while(!sSet.lsEOF())〃循环,当记录集指针没有到文件尾时执行循环m_ListCtrl.lnsertltem(nltem,sSet.m_studentno);〃生成一行,并为首列赋值参数1:行值,参数2:首列所赋值内容,这里为记录集对象sSet的m_studentno变量的值m_ListCtrl.SetltemText(nltem,。
