vc++考试1
更新时间:2024-04-02 07:17:01 阅读量: 综合文库 文档下载
实验七:常用控件
一、实验目的与要求
设计一个 “学生基本信息”对话框,求学生成绩总分、平均分。
图“学生基本信息”对话框
二、实验类型
设计型
三、实验原理及说明
掌握编辑框、按钮控件的使用方法。 1.启动Visual C++ 6.0
2.创建一个默认的对话框应用程序chengji.
① 选择“文件”→“新建”菜单,在弹出的“新建”对话框中选择“工程”页面,选择MFC AppWizard(exe),在工程框中输入chengji.
② 单击“确定”按钮,在出现的Step 1对话框中选择“基本对话(框)”应用程序类型,单击“完成”按钮。
3向对话框添加如表所示的控件。
表 学生基本信息对话框添加的控件
添加的控件 编辑框 编辑框 编辑框 编辑框 编辑框 编辑框 按钮 按钮 ID号 IDC_EDIT1 IDC_EDIT2 IDC_EDIT3 IDC_EDIT4 IDC_EDIT5 IDC_EDIT6 IDC_BUTTON1 IDC_BUTTON2 4 按Ctrl+W打开ClassWizard的Member Variables页面,选中所需的控件ID号,双击鼠标。依次为控件增加成员变量。
控件ID号 IDC_EDIT1 变量类别 Value 表 控件变量
变量类型 CString 变量名 m_xuehao 范围和大小
IDC_EDIT2 IDC_EDIT3 IDC_EDIT4 IDC_EDIT5 IDC_EDIT6 Value Value Control Value Value CString float float float float m_xingming m_yuwen m_shuxue m_yingyu m_zongfen ——
5双击按钮IDC_BUTTON1,并添加下列代码:
void CChengjiDlg::OnButton1() { UpdateData(true); }
6双击按钮IDC_BUTTON2,并添加下列代码:
m_zongfen=m_yuwen+m_shuxue+m_yingyu; UpdateData(false);
void CChengjiDlg::OnButton2()
{float aa; CString str;
UpdateData();
aa=(m_yuwen+m_shuxue+m_yingyu)/3;
str.Format(\g,\平均分为\,aa); MessageBox(str); UpdateData(false); }
七、选做题:
编写如下程序:
实验八:常用控件
一、实验目的与要求
编写一个选修课程程序。完成添加新课程、删除已选课程、清空所有已选课程程序。
三、实验原理及说明
掌握列表框控件的使用方法。
1.启动Visual C++ 6.0
2.创建对话框应用程序kecheng,并设计其界面
① 选择“文件”→“新建”菜单,在弹出的“新建”对话框中选择“工程”页面,选择MFC AppWizard(exe),在工程框中输入kecheng。
② 单击“确定”按钮,在出现的Step 1对话框中选择“基本对话(框)”应用程序类型,单击“完成”按钮。
3调整对话框的大小,删除对话框中间的“TODO: 在这里设置对话控制。”静态文本控件、“确定”按钮控件, “取消”按钮。
4 添加三个按钮,一个是“添加按钮,ID为IDC_BUTTON1,一个是“删除”按钮,ID为IDC_BUTTON2,一个是“清空”按钮,ID为IDC_BUTTON3。
5为对话框添加如表所示的一些控件。
添加的控件 编辑框 列表框 ID号 IDC_EDIT1 IDC_LIST1 6打开ClassWizard的Member Variables页面,选中所需的控件ID号,双击鼠标或单击Add Variables按钮。依次为控件增加成员变量。
表9.2 控件变量
控件ID号 IDC_EDIT1 IDC_LIST1 变 量 类 别 Value Control 变 量 类 型 CString ClistBox 变 量 名 m_kecheng m_list
7 用MFC ClassWizard为按钮添加BN_CLICKED消息映射,并增加下列代码: void CKechengDlg::OnButton1() {
UpdateData(); if (m_list.FindString(-1,m_kecheng)==LB_ERR) m_list.AddString(m_ kecheng); else MessageBox(\该课程已选\}
void CKechengDlg::OnButton2()
{ m_list.DeleteString(m_list.GetCurSel());
}
void CKechengDlg::OnButton3() { m_list.ResetContent(); }
实验十二:图形和文本
一、实验目的与要求
1、编写一个画直线程序。要求在坐标为(300,50)的位置显示文字\画线\。在坐标为(12,20)到(100,120)的位置画一条红色、线的宽度为4的实线。画完后恢复原来的画笔。
2、编写使用纯绿色画刷绘制矩形和显示文字的程序。矩形的左上角坐标为(100,30),右下脚坐标为(230,130)。在坐标为(20,50)的位置显示文字\画矩形\。
3、编写使用红色画刷画圆形和显示文字的程序。圆心(50,50),半径为40.在坐标为(100,60)的位置显示文字\画红色圆形\。 3.编写代码。
(1)void CYutuView::OnDraw(CDC* pDC) {
CPen *pPenOld, PenNew;
PenNew.CreatePen(PS_SOLID,4,RGB(255,0,0)); pPenOld=pDC->SelectObject(&PenNew); pDC->TextOut(300,50,\画线\ pDC->MoveTo(12,20); pDC->LineTo(200,120);
pDC->SelectObject(pPenOld); PenNew.DeleteObject(); }
(2)void CDrawpictView::OnDraw(CDC* pDC) {
CBrush *pold, brushnew(RGB(0,255,0));
pold=(CBrush*)pDC->SelectObject(&brushnew); pDC->Rectangle(100,30,230,130); pDC->TextOut(10,50,\画绿色矩形\brushnew.DeleteObject(); pDC->SelectObject(pold); }
(3)void CDrawpictView::OnDraw(CDC* pDC) {
CDrawpictDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
CBrush *pold, brushnew(RGB(255,0,0)); pold=(CBrush*)pDC->SelectObject(&brushnew); pDC->Ellipse(10,10,90,90);
pDC->TextOut(100,60,\画红色圆形\brushnew.DeleteObject(); pDC->SelectObject(pold);
}实验十三:数据库1.创建数据库和数据表
这里以Microsoft Access 2003为例说明数据库和数据表的创建过程。 ① 启动Microsoft Access 2003。
② 选择“文件”→“新建”菜单,在右边任务窗格中单击“空数据库”,弹出一个对话框,指定数据库名main.mdb。单击“创建”按钮,出现如图13.2所示的数据库设计窗口。
图13.2 数据库设计窗口
③ 双击“使用设计器创建表”,出现如图13.3所示的表设计界面。其中,单击数据类型框的下拉按钮,可在弹出的列表中选择适当的数据类型。在下方的常规页面中可以设置字段大小、格式等内容。
图13.3 表设计界面
④ 按表13.1添加字段名和数据类型,关闭表设计界面,弹出一个消息对话框,询问是否保存刚才设计的数据表,单击“是(Y)”按钮,出现如图13.4所示的对话框,在表名称中输入score,单击““确定”按钮。此时出现一个消息对话框,用来询问是否要为表创建主关键词,单击[否(N)”按钮。注意:若单击“是(Y)”按钮,则系统会自动为表添加另一个字段ID。
表13.1 学生课程成绩表(score)结构
序 号 1 2 3 4 字 段 名 称 studentno course score credit 数 据 类 型 文本 文本 数字 数字 字 段 大 小 8 7 单精度 单精度 小 数 位 1 1 字 段 含 义 学号 课程号 成绩 学分 ⑤ 在数据库设计窗口中,双击score表,就可向数据表输入记录数据。
2.创建ODBC数据源
① Windows中的ODBC组件是出现在系统的“控制面板”管理工具中,如图所示。双击ODBC图标,进入ODBC数据源管理器。运行ODBC组件,进入ODBC数据源管理器。
② 单击“添加”按钮,弹出有一驱动程序列表的“创建新数据源”对话框,在该对话框中选择Microsoft Access Driver。
③ 单击“完成”按钮,进入指定驱动程序的安装对话框,数据源名称设为“学生信息管理系统”,单击“选择”按钮将本实验中的数据库。
④ 单击“确定”按钮,刚才创建的用户数据源被添加在“ODBC数据源管理器”的“用户数据源”列表中。
3.创建单文档应用程序
在向导的第2步对话框中加入数据库的支持.选中“数据库查看使用文件支持”项,单击[Data Source]按钮,弹出“Database Options”对话框,从中选择ODBC的数据源“Database Example For VC++”. 保留其他默认选项,单击[OK]按钮,弹出 “Select Database Tables”对话框,从中选择要使用的表score。 单击[OK]按钮,又回到了向导的第2步对话框。单击[完成]按钮。
4. 设计浏览记录界面
在表单视图中添加控件并与表的字段相关联,其步骤如下。 按照图所示的布局,为表单对话框资源模板添加表所示的控件。
(2) 按快捷键Ctrl+W,弹出MFC ClassWizard对话框,切换到Member Variables页面,在Class name框中选择CEx_ODBCView,为上述控件添加相关联的数据成员。按快捷键Ctrl+W,弹出MFC ClassWizard对话框,切换到Member Variables页面,在Class name框中选择CEx_ODBCView,为上述控件添加相关联的数据成员。双击IDC_STUNO,在弹出的“Add Member Variable”对话框中的成员变量下拉列表中选择要添加的成员变量名m_pSet->m_studentno,选择后,控件变量的类型将自动设置,m_pSet->m_studentno,选择后,控件变量的类型将自动设置。
按照上一步骤的方法,为表所示的其他控件依次添加相关联的成员变量。
5. 查询记录
(1) 打开Ex_ODBC应用程序的表单资源,添加控件,添加的编辑框ID号设为IDC_EDIT_QUERY,“查询”按钮的ID号设为IDC_BUTTON_QUERY。
(2) 打开MFC ClassWizard对话框,为控件IDC_EDIT_QUERY添加关联变量m_strQuery。 (3)在CEx_ODBCView类中添加按钮控件IDC_BUTTON_QUERY的BN_CLICKED消息映射,并在映射函数中添加代码。 void CMy8_0odbcView::OnButton1()
{ // TODO: Add your control notification handler code here UpdateData(); m_strquery.TrimLeft(); if( m_strquery.IsEmpty())
{this->MessageBox(\学号不能为空\return; }
if (m_pSet->IsOpen()) m_pSet->Close();
m_pSet->m_strFilter.Format(\m_pSet->m_strSort=\m_pSet->Open();
if (!m_pSet->IsEOF()) UpdateData(false); else
MessageBox(\没有要找的学号\}
实验十四:数据库五、实验内容和步骤( 以学生管理为例)
1.修改“学生成绩”对话框
将项目工作区窗口切换到ResourceView页面,按图所示的控件布局,向对话框再添加4个按钮控件。
2.完善代码 增加记录
void CMy8_0odbcView::OnButton2(){
m_pSet->AddNew(); // 在表的末尾增加新记录
m_pSet-> m_studentno = “11044101\输入新的字段值 m_pSet->m_course =\ m_pSet->m_score =78; m_pSet->m_credit =4; m_pSet->Update(); // 将新记录存入数据库 m_pSet->Requery(); }
删除记录
void CMy8_0odbcView::OnButton3(){ m_pSet->Delete(); m_pSet->MoveNext(); if (m_pSet->IsEOF()) m_pSet->MoveFirst(); m_pSet->Requery(); UpdateData(FALSE); }
修改记录 :
void CMy8_0odbcView::OnButton4(){ m_pSet->Edit(); // 修改当前记录 m_pSet->m_score=100; // 修改当前记录字段值 m_pSet->Update(); // 将修改结果存入数据库 UpdateData(FALSE); }
void CMy8_0odbcView::OnButton4(){
m_pSet->Move(AFX_MOVE_REFRESH); //或 m_pSet->CancelUpdate(); UpdateData(FALSE); }
3. 编译运行并测试。
14.定义一个描述学生基本情况的类,数据成员包括姓名、学号、C++、英语和数学成绩,成员函数包括输出数据、置姓名和学号、置3门课的成绩,求出总成绩和平均成绩。 #include
CStudentInfo(char *name, char *id){ strcpy(stu_name,name); strcpy(stu_id,id);
C_score=E_score=M_score=0.00; }
void Init(float score1, float score2,float score3){ C_score=score1; E_score=score2; M_score=score3; }
float GetTotal(){
return (C_score+E_score+M_score); }
float GetAvg(){
return (C_score+E_score+M_score)/3; }
void Display(){
cout<<\
cout<<\Language:\ English:\ Mathmetics:\< void main(){ CStudentInfo stu(\ float score1,score2,score3; cout<<\ cin>>score1; cout<<\ cin>>score2; cout<<\ cin>>score3; stu.Init(score1,score2,score3); stu.Display(); } 15.设有一个描述坐标点的CPoint类,其私有变量x和y代表一个点的x、y坐标值。编写程序实现以下功能:利用构造函数传递参数,并设其默认参数值为60和75,利用成员函数display()输出这一默认的值;利用公有成员函数setpoint()将坐标值修改为(80,150),并利用成员函数输出修改后的坐标值。 #include class CMyPoint{ public: CMyPoint(){ x=60;y=75; } void Display(){ cout<<\cout<<\} void setpoint(float a,float b){ x=a;y=b; } private: float x,y; }; void main() { CMyPoint pt;CMyPoint pt2; pt.Display(); pt2.setpoint(80,150);pt2.Display(); }16.以下是一个类的测试程序,给出类的定义,构造一个完整的程序。执行程序时的输出如下。输出结果:200-60=140主函数为: void main() {CTest c; c.init(200, 60); c.print(); } CTest类的构造如下: #include void init(int x0,int y0){ x=x0; y=y0; } void print(){ cout<<\ } };
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 考试
- vc