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 #include class CStudentInfo{ char stu_name[20]; char stu_id[10]; float C_score; float E_score; float M_score; public:

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 class CTest{ int x,y; public:

void init(int x0,int y0){ x=x0; y=y0; } void print(){

cout<<\ } };

本文来源:https://www.bwwdw.com/article/lmhr.html

Top