文档库 最新最全的文档下载
当前位置:文档库 › 南信大 Visual C++可视化 实验6

南信大 Visual C++可视化 实验6

南信大 Visual C++可视化 实验6
南信大 Visual C++可视化 实验6

南京信息工程大学实验(实习)报告实验(实习)名称按钮与列表框组合框实验(实习)日期 5.6 得分指导教师李燕

系计算机专业计科年级 11级班次姓名学号

一目的要求

(1)熟悉按钮控件的创建和代码的添加方法

(2)掌握列表框和组合框的添加方法及属性设置

(3)掌握表框和组合框的操作函数

(4)了解列表框和组合框通知消息

二实验内容

(1)按钮控件和静态控件:使用应用程序向导创建一个基于对话框的应用程序ButtonTest,界面上有两组不同的复选框信息,一组单选框信息,提供给用户选择,当用户作出选择后,单击“获取结果”按钮,能在下边的编辑框区域显示出选中的信息。

(2)列表框和组合框控件:创建基于对话框的应用程序ComboBoxTest,在“画笔颜色”下拉组合框中进行绘画工具颜色的选取,在“线型”组合框中进行线条形状的确认,单击“绘图”按钮时,下边的矩形框中出现相应颜色的线条。

三实验步骤

实验1:

(1)启动Visual C++6.0,利用MFC向导建立一个基于对话框的应用程序:ButtonTest。(2)利用对话框资源编辑器,在控件工具条上依次将静态组框控件、单选按钮控件、复选按钮控件、编辑框控件拖入对话框界面上合适的位置,原界面上默认按钮IDCANCEL标题改为“取消”,利用Properties属性对话框IDOK按钮的标题改为“获取结果”,ID号改为IDC_BUTTONSHOW,设置其他控件的属性。

(3)按组合键Ctrl+W打开ClassWizard类向导对话框,为控件添加成员变量。

(4)按组合键Ctrl+W打开类向导页面添加每个复选按钮的消息响应函数。

(5)添加的消息响应函数代码函数如下:

void CButtonTestDlg::OnCheck1()

{ if(m_A1) m_A1=false;

else m_A1=true;

}

void CButtonTestDlg::OnCheck2()

{ if(m_A2) m_A2=false;

else m_A2=true;

}

void CButtonTestDlg::OnCheck3()

{ if(m_A3) m_A3=false;

else m_A3=true;

}

void CButtonTestDlg::OnCheck4()

{ if(m_A4) m_A4=false;

else m_A4=true;

}

void CButtonTestDlg::OnCheck5()

{ if(m_B1) m_B1=false;

else m_B1=true;

}

void CButtonTestDlg::OnCheck6()

{ if(m_B2) m_B2=false;

else m_B2=true;

}

void CButtonTestDlg::OnCheck7()

{ if(m_B3) m_B3=false;

else m_B3=true;

}

void CButtonTestDlg::OnCheck8()

{ if(m_B4) m_B4=false;

else m_B4=true;

}

void CButtonTestDlg::OnCheck9()

{ if(m_B5) m_B5=false;

else m_B5=true;

}

(6)将项目工作区窗口切换到ClassView页面,双击CButtonTestDlg类下的OnInitDialog 函数,添加代码如下:

BOOL CButtonTestDlg::OnInitDialog()

{ ...

CheckRadioButton(IDC_RADIO1,IDC_RADIO4,IDC_RADIO1);

return TRUE; // return TRUE unless you set the focus to a control

}

(7)添加“获取结果”的消息响应函数,添加代码如下:

void CButtonTestDlg::OnButtonshow()

{ CString strCtrl;

m_result="你的年龄:";

UINT nID=GetCheckedRadioButton(IDC_RADIO1,IDC_RADIO4);

GetDlgItemText(nID,strCtrl);

m_result+=strCtrl+",爱好的运动";

if(m_A1) m_result+="跑步";

if(m_A2) m_result+="体操";

if(m_A3) m_result+="游泳";

if(m_A4) m_result+="滑冰";

m_result+=",爱好的食品";

if(m_B1) m_result+="牛奶";

if(m_B2) m_result+="鸡蛋";

if(m_B3) m_result+="面包";

if(m_B4) m_result+="水果";

if(m_B5) m_result+="饮料";

UpdateData(FALSE);

}

(8)程序运行结果如下图所示:

实验2:(1)按实验1步骤添加编辑框和按钮控件并设置各控件属性。

(2)添加Public属性成员变量如下:

int PenStyle;

COLORREF ColorStyle;

(3)双击CComboBoxTestDlg类下的OnInitDialog()函数,添加代码如下:

BOOL CComboBoxTestDlg::OnInitDialog()

{ ...

m_ListShape.AddString("实线");

m_ListShape.AddString("虚线");

m_ListShape.AddString("点线");

ColorStyle=RGB(0,0,0);

PenStyle=PS_SOLID;

m_ComboColor.SetCurSel(0);

m_ListShape.SetCurSel(0);

return TRUE; }

(4)为IDC_COMBOCOLOR添加下拉选择CBN_SELENDOK的消息处理函数,添加代码如下:void CComboBoxTestDlg::OnSelendokCombocolor()

{ int i;

i=m_ComboColor.GetCurSel();

if(i==0) ColorStyle=RGB(0,0,0);

if(i==1) ColorStyle=RGB(255,0,0);

if(i==2) ColorStyle=RGB(0,255,0);

if(i==3) ColorStyle=RGB(0,0,255); }

(4)为IDC_BUTTONDRAW添加单击BN_CLICKED的消息响应函数,添加代码如下:

void CComboBoxTestDlg::OnButtonraw()

{ CClientDC dc(this);

CPen*oldpen,pen;

CRect rect;

GetClientRect(&rect);

CRect drawrect(rect.right-170,20,rect.right-20,170);

if(m_ListShape.GetSel(0)) PenStyle=PS_SOLID;

else if(m_ListShape.GetSel(1)) PenStyle=PS_DASH;

else if(m_ListShape.GetSel(2)) PenStyle=PS_DOT;

pen.CreatePen(PenStyle,1,ColorStyle);

oldpen=dc.SelectObject(&pen);

dc.MoveTo(drawrect.left,drawrect.top/2);

dc.LineTo(drawrect.right,drawrect.bottom/2);

dc.SelectObject(oldpen);

pen.DeleteObject(); }

(5)编译运行程序,结果如下图所示:

四小结

汇编实验报告(详细版)

计算机组成与汇编语言(实验报告) 内容: 实验一、六、七、八 院系专业:计算机学院计算机科学与技术 姓名:xxxxxxxxx 学号: 2011004xxxxx 完成时间:2012年12月1日

计算机组成与汇编语言实验报告 姓名xxxx 学号2011004xxxxx 计分 专业软件工程班级xxxx 实验日期2012年 12 月 1日实验名称实验一数制转换 实验目的 ●熟悉各种进制数据之间的相互转换方法。 ●掌握二-十进制数据的相互转换程序设计。 实验内容 1.将编写好的程序1输入、编译、连接并运行。 程序1清单 #include #include #include void main() { int i,l,s0=0,s=0; char a[17]; while(l!=16) { printf("请输入一个16位的二进制数:\n"); gets(a); l=strlen(a); for(i=0;i<16;i++) { if(a[i]!='0'&&a[i]!='1') {

printf("输入的二进制数不正确!!"); break; } } } if(a[15]=='1') s++; for(i=1;i<16;i++) { if(a[15-i]=='1') s+=(1<

说明:如果不是16位二进制则会提示错误。 2.将编写好的程序2输入、编译、连接并运行。 程序2清单 #include #include void main() { int t0,t1,t2,t3,i,j; int a[16]; printf("请输入一个十进制数:"); scanf("%d",&t0); t1=t0; for(i=0;i<16;i++) { t2=t1/2; if(t2>1) a[i]=t1%2; else if(t1==1) { a[0]=1; for(i=1;i<16;i++) a[i]=0; } else if(t1==2) { a[i]=0; a[i+1]=1; for(j=i+2;j<16;j++)

第5章上机实验报告

第5章上机实验报告 一、实验目的 (1)观察程序运行中变量的作用域74。 (2)学习类的静态成员的使用。 (3)学习多文件结构的C++程序中的使用。 二、实验任务 (1)运行下面的程序,观察变量x,y的值。 【代码lab5-1】 #include"iostream" usingnamespace std; void fun(); int x=1,y=2; int main() { cout<<"Begin..."<

第六次实验虚拟变量上机

1 表中给出1965—1970年美国制造业利润和销售额的季度数据。假定利润不仅与销售额有关,而且和季度因素有关。要求: (1) 如果认为季度影响使利润的截踞水平发生变异,应如何引入虚拟变量? 对利润函数μββ++=X Y 10按加分方式引入虚拟变量432,,D D D : μαααββ+++++=43322110D D D X Y 其中? ??==,其它季节、、 季:第0432,1i i D i EViews 软件下,命令 LS Y C X @seas(2) @seas(3) @seas(4) 得回归结果: 388 .026 .55256 .0) 28.0()35.0()07.2() 33.3() 91.3(2.1822.2185.13220383.08.6685?24 32===-+-++=DW F R D D D X Y 回归结果表明,只有销售额与第二季度对利润有显著影响。销售额每增加1美元,则平 均利润可增加4美分;第一季度的平均利润水平是6685.8美元,而在第二季度中则可提高1322.5美元。 由于其他季度的影响不显著,故可只引入第二季度虚拟变量2D ,得如下回归结果: 470 .018 .115156 .0)70.2() 72.3() 01.4(6.13310393.01.6513?22 ===++=DW F R D X Y (2)如果认为季度影响使利润对销售额的变化率发生变异,应当如何引入虚拟变量? 如果季度因素对利润率产生影响,则可按乘法方式引入虚拟变量: μαααββ+++++=X D X D X D X Y 43322110 EViews 软件下,命令 LS Y C X @seas(2)*X @seas(3)*X @seas(4)*X 得回 归结果: 419 .033 .55289 .0) 21.0()32.0() 03.2() 95.2() 97.3(00089.00014.00086.00365.085.6965?24 32===-+-++=DW F R X D X D X D X Y 可以看出,仍然是第二季度对利润的影响,其他季度的影响不显著,因此只引入第 二季度虚拟变量,得如下回归结果: 由此可知,在其他季度,利润率为0.0372,第二季度则增加到0.0459。 (3)如果认为上述两种情况都存在,又应当如何引入虚拟变量? (4)对上述三种情况分别估计利润模型,并对模型进行分析。 485 .041.115208.0) 76.2()51.3()23.4(0087.00372.02.6839?2 2 ===++=DW F R X D X Y

汇编语言程序设计第二次实验题目

《汇编语言程序设计实验》 第二次上机实验任务 实验名称:实验二分支程序、循环程序的设计。 一.实验目的和要求 1、熟悉分支、循环程序的结构及控制方法,掌握分支、循环程序的调试方法; 2、加深对转移指令及一些常用的汇编指令的理解; 3、加深对常用DOS功能调用指令的理解,进一步熟悉TD的使用。 二.实验内容 设计实现一个学生成绩查询的程序。 1、实验背景 在以BUF为首址的字节数据存储区中,存放着n个学生的课程成绩表(百分制),每个学生的相关信息包括:姓名(占10个字节,结束符为数值0),语文成绩(1个字节),数学成绩(1个字节),英语成绩(1个字节),平均成绩(1个字节)。 例如: N EQU 1000 BUF DB ‘zhangsan’,0,0 ;学生姓名,不足10个字节的部分用0填充 DB 100, 85, 80,? ; 平均成绩还未计算 DB ‘lisi’,6 DUP(0) DB 80, 100, 70,? DB N-3 DUP( ‘TempValue’,0,80,90,95,?) ;除了3个已经具体定义了学生信息的成绩表以 外,其他学生的信息暂时假定为一样的。 DB ‘wangwu’,0,0,0,0 DB 85, 85, 100, ? 2、功能一:提示并输入学生姓名 (1)使用9号DOS系统功能调用,提示用户输入学生姓名。 (2)使用10号DOS系统功能调用,输入学生姓名。输入的姓名字符串放在以in_name为首址的存储区中。 (3)若只是输入了回车,则回到“(1)”处重新提示与输入;若仅仅输入字符q,则程序退出,否则,准备进入下一步处理。 3、功能二:以学生姓名查询有无该学生 (1)使用循环程序结构,在成绩表中查找该学生。 (2)若未找到,就提示用户该学生不存在,并回到“功能一(1)”的位置,提示并重新输入姓名。 (3)若找到,则将该学生课程成绩表的起始偏移地址保存到POIN字变量中。 提示:字符串比较时,当采用输入串的长度作为循环次数时,若因循环次数减为0而终止循环,则还要去判断成绩表中名字串的下一个字符是否是结束符0,若是,才能确定找到了。 4、功能三:计算所有学生的平均成绩 使用算数运算相关指令计算并保存每一个学生的平均成绩。 平均成绩计算公式:(A*2+B+C/2)/3.5,即将语文成绩A乘以权重2、英语成绩C除以权重2后,与数学成绩B一起求和,再计算该生的平均成绩。要求避免溢出。 提示:使用循环程序结构,注意寻址方式的灵活使用。把小数3.5转换成分数后再运算避免使用浮点数指令。

上机实验6

上海电力学院 C程序设计实验报告 题目:《C程序设计》综合实训 院系:电力与自动化工程学院 专业年级:2011028 学生姓名:张晶晶学号:20111440 2011年11月27日

实验 6 数组 一、实验目的 1、掌握一维数组和二维数组的定义、赋值和输入输出的方法; 2、掌握字符数组和字符串函数的使用; 3、掌握与数组有关的算法(特别是排序算法)。 二、实验内容和步骤 编程序并上机调试运行。 1、以下给定程序MODI1.C的功能是: 求一维数组a中所有元素的平均值,结果保留两位小数。例如,当一维数组a中的元素为:10,4,2,7,3,12,5,34,5,9时,程序的输出应为:The aver is:9.10 程序中有两处错误,错误都在提示行:/**********found**********/的下面一行。请改正程序中的错误,使它能得出正确的结果。 注意:程序中的其它地方请不要随意改动,不得增行或删行,也不得更改程序的结构。 2、以下给定程序MODI1.C的功能是:求二维数组a中的最小值。 例如,当二维数组a总的元素为: 4 2 34 7 3 12 5 6 5 程序的输出应为:The min is:2。 程序中有两处错误,错误都在提示行:/**********found**********/的下面一

行。请改正程序中的错误,使它能得出正确的结果。 3、在考生目录下,给定程序FILL1.C的功能是:在第一个循环中给a数组的前10个数组元素依次赋1、2、3、 4、 5、 6、 7、 8、 9、10;在第二个循环使a 数组前10个元素中的值对称折叠,变成1、2、3、4、5、5、4、3、2、1;在最后一个循环中输出对称折叠以后的a数组的前10个元素。 程序总有两个空(1)、(2)需要补充完整。并将程序调试出所需的结果。注意:程序中的其它地方请不要随意改动,不得增行或删行,也不得更改程序的结构! 4、以下给定程序FILL1.C的功能是:输入一个数x,查找x在数组a中最后一次出现的位置。例如:如果a数组中的元素为:1,5,2,5,6,8,7,4,3,0,当x=5时,程序的输出结果为:5 isNo.3。当x=10时,该数不在数组中,程序有两个空(1)、(2)需要补充完整。请将程序调试出所需的结果。 注意:程序中的其它地方请不要随意改动,不得增行或删行,也不得更改程序的

汇编实验报告2-1

《汇编语言程序设计》第二次上机2-1实验报告 院系:计算机科学与技术 专业:信息安全 班级:0903班 姓名: 学号: 时间:2011-6-6 地点:南一楼808

一、实验目的 (3) 二、题目与实验要求 (3) 三、寄存器分配和变量定义说明: (3) 四、流程图 (5) 五、源程序及注释 (7) 六、实验步骤 (13) 七、实验记录 (13) 八、体会 (16)

一、实验目的 1、加深对一些常用的汇编指令的理解; 2、加深对常用DOS功能调用指令的理解; 3、进一步熟悉TD的使用。 二、题目与实验要求 1、《80X86汇编语言程序设计》教材中 P95的 3.7 题。 要求:(1)将该题改成一完整的程序(可以省略实验报告中的程序框图)。 (2)请事先指出依次执行每条程序指令后(AX)的内容。 (3)请事先指出执行ADD、SUB、SAL、RCL指令后,CF、ZF的值。 (4)记录上机执行后与(2)、(3) 中对应的内容。 2、《80X86汇编语言程序设计》教材中 P94的 3.3 题。 要求:(1)将该题改成一完整的程序,其中数据段的定义为习题3.1中的数据段(可以省略实验报告中的程序框图)。 (2)请事先画出数据段中数据的存储形式。 (3)请事先指出依次执行每条程序指令后相应寄存器中的内容。 (4)请事先给出各调指令在汇编后的形式。 (5)比较上机执行后,看到的各项内容是否与(2)、(3) ,(4)内容一致。 不一致的应分析错误原因。 3、《80X86汇编语言程序设计》教材中 P96的 3.11 题。 要求:(1)请事先指出程序运行结束后,显示器显示的内容。 (2)若将NUM的定义改成如下形式: NUM DB 35 显示的结果是什么? (3)若将NUM的定义改成如下形式: NUM DB 59 显示的结果是什么? (4)指出程序运行后看到的结果,若不一致,分析产生错误的原因。 4. 从键盘输入两串字符分别存入BUF1和BUF2区,比较两串内容是否相等,相等显示“MATCH !”, 不相等显示“NO MATCH !”。 要求:(1) 使用10号功能调用输入字符串; (2) 使用9号功能调用输出提示信息; 提示:先比较长度是否相等。 5 选做题 输入一个无符号的数字串,然后以16进制形式显示出串的值。 例如: INPUT A NUMBER : 59 RESULT : 3BH 其中下划线上的内容(59)为程序运行时输入的串。 三、寄存器分配和变量定义说明:

计算机组成原理上机实验报告

《计算机组成原理实验》课程实验报告 实验题目组成原理上机实验 班级1237-小 姓名 学号 时间2014年5月 成绩

实验一基本运算器实验 1.实验目的 (1)了解运算器的组成原理 (2)掌握运算器的工作原理 2.实验内容 输入数据,根据运算器逻辑功能表1-1进行逻辑、移位、算术运算,将运算结果填入表1-2。 表 1-1运算器逻辑功能表 运算类 A B S3 S2 S1 S0 CN 结果 逻辑运算65 A7 0 0 0 0 X F=( 65 ) FC=( ) FZ=( ) 65 A7 0 0 0 1 X F=( A7 ) FC=( ) FZ=( ) 0 0 1 0 X F=( ) FC=( ) FZ=( ) 0 0 1 1 X F=( ) FC=( ) FZ=( ) 0 1 0 0 X F=( ) FC=( ) FZ=( ) 移位运算0 1 0 1 X F=( ) FC=( ) FZ=( ) 0 1 1 0 0 F=( ) FC=( ) FZ=( ) 1 F=( ) FC=( ) FZ=( ) 0 1 1 1 0 F=( ) FC=( ) FZ=( ) 1 F=( ) FC=( ) FZ=( ) 算术运算 1 0 0 0 X F=( ) FC=( ) FZ=( ) 1 0 0 1 X F=( ) FC=( ) FZ=( ) 1 0 1 0X F=( ) FC=( ) FZ=( ) 1 0 1 0X F=( ) FC=( ) FZ=( ) 1 0 1 1 X F=( ) FC=( ) FZ=( ) 1 1 0 0 X F=( ) FC=( ) FZ=( ) 1 1 0 1 X F=( ) FC=( ) FZ=( ) 表1-2运算结果表

汇编实验指导书

汇编语言实验指导书 授课教师李娜 授课对象 05计科、网络、06计科 授课时间 07-08学年第一学期 授课地点一、二、四机房 课程简介 一.实验课程的性质和目的 汇编语言程序设计是计算机专业的一门专业基础课,是学好计算机底层系统构成的课程。汇编语言程序设计是一门实用性很强的课程。汇编语言程序程序设计实验教案是教案的重要环节,是理论教案的重要补充,只有通过实验,学生才能熟练掌握汇编语言程序设计的基本方法,并对其有更深刻的认识。本门实验课是单独设课。 二.实验教案的方法和手段 为了提高实验教案效果,实验严把预习、实验、实验报告3个环节。实验在软件实验室机房完成,单独设组,个人完成实验,每项实验以小班为单位,实验考勤采用电子签到制度。 预习:安排学生学习实验内容,了解实验的过程和操作规程,并布置思考题和预习报告,让学生有目的地去查阅与实验相关的资料。 实验:实验开始前由指导教师讲解实验要点,提出注意事项。实验过程中,主题是学生,教师是辅助作用,要求学生独立完成实验。 实验报告:实验结束后,强调学生及时填写实验记录表,对实验过程进行详细记录,对实验结果细致地分析、讨论,完成相关思考题作业。 三.课程学时 本实验课实验总学时为32学时。 四.实验成绩的考核方法 汇编语言实验成绩按百分制核定。实验过程占50%,实验报告占50%。五.大纲的适用范围 本大纲适用计算机科学与技术专业和计算机应用与维护专业学生。 六.主要设备与器材配备

七.实验项目汇总表 实验一熟悉汇编语言编程环境 一.实验目的 <1)熟悉汇编语言编程环境; <2)掌握基本汇编程序。。 二.实验仪器设备 计算机 三.实验重点、难点 熟悉汇编语言编程环境; DEBUG常用命令的正确使用。-T/-U/-Q/-G 四.实验题目 比较两个字符串string1和string2所含的字符是否相同,若相同则显示‘metch’,否则,显示’no match’。 五.实验内容、步骤 1.调用EDIT建立ASM源文件。 2.用汇编程序MASM对源文件汇编产生目标文件OBJ。 <如有问题,可用DEBUG调试。) 3.用LINK联接程序产生执行文件EXE。 4.执行程序。 附:源程序 ;PROGRAM TITLE GOES HERE—COMPARE STRING ;******************************************************** data segment string1 db 'move the cursor backward.' String2 db 'move the cursor backward.'

汇编实验二

实验二3)编制在屏幕上显示九九乘法表的程序。(1)源程序 code segment assumecs:code,ds:code org 100h start: pushcs pop ds pushcs popes mov ax,3 int 10h mov di, 200h movbl, 1 again: mov al, 1 next1: mov dl, al mov al, bl add al, 30h stosb mov al, 'x' stosb mov al, dl add al, 30h stosb mov al, '=' stosb mov al, dl mulbl aam test ah, ah jz @asc xchg al, ah add al, 30h stosb xchg al, ah @asc:

add al, 30h stosb mov ax, 2020h stosw stosb mov al, dl inc al cmp al, bl jle next1 mov ax, 0d0ah stosw incbl cmpbl, 9 jle again mov ax, 0d0ah stosw mov al,'$' stosb mov ah, 9 mov dx, 200h int 21h mov ah,7 int 21h mov ah,4ch int 21h code ends end start (2)流程图

(3)实验结果 (4)心得体会 通过本次汇编课程设计,我深刻感受到了汇编语言在程序运行效率,以及时间、空间上的优越性。对汇编中常用的寄存器有了一定的了解,同时对程序设计的基本步骤有了一定的了解,此次编程对编程知识了解太少,动手能力不够强,以后在程序的调试过程在不断完善功能,使程序功能更强大,能够处理更多的错误,处理更多的异常。本次课程设计,我感受到编程成功带来的成就感,也感受到的汇编语言的特点。 4)编制在屏幕上显示用*组成的三角形的程序。 (1)流程图

MATLAB第六次上机实验报告

MATLAB第六次上机实验报告 0210901班学号2009210811 姓名:李贤凤Quiz 3.1 >> a=20; >> b=-2; >> c=0; >> d=1; >> a>b ans = 1 >> b>d ans = >> a>b&c>d ans = >> a==b ans = >> a&b>c ans = >> ~~b ans = 1 >> a=2; >> b=[1 -2;-0 10]; >> c=[0 1;2 0]; >> d=[-2 1 2;0 1 0]; >> ~(a>b) ans = 0 0 0 1 >> a>c&b>c ans = 1 0 0 1 >> c<=d ??? Error using ==> <= Matrix dimensions must agree.

>> a=2; >> b=3; >> c=10; >> d=0; >> a*b^2>a*c ans = >> d|b>a ans = 1 >> (d|b)>a ans = >> a=20; >> b=-2; >> c=0; >> d='Test'; >> isinf(a/b) ans = >> isinf(a/c) Warning: Divide by zero. (Type "warning off MATLAB:divideByZero" to suppress this warning.) ans = 1 >> a>b&ischar(d) ans = 1 >> isempty(c) ans = Quiz3.2 1.% Script file : Sqrt_x.m % Purpose: % This program is used to calculate the square root of a randem number % Record of revisions: % Date Programmer Description of change % === ======== ================ % 10/22/2010 lixianfeng Original code

C++上机实验报告实验六

实验六 实验目的 1.掌握运算符重载的方法 2.学习使用虚函数实现动态多态性 实验要求 1.定义Point类,有坐标_x,_y两个成员变量;对Point类重载“++”(自增)、“――”(自减)运算符,实现对坐标值的改变。 2.定义一个车(vehiele)基类,有Run、Stop等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类,从bicycle和motorcar派生出摩托车(motorcycle)类,它们都有Run、Stop 等成员函数。观察虚函数的作用。 3. (选做)对实验4中的People类重载“==”运算符和“-”运算符,“==”运算符判断两个people类对象的id属性是否相等;“-”运算符实现People类对象的赋值操作。 实验内容及实验步骤 1.编写程序定义Point类,在类中定义整型的私有成员变量_x_y,定义成员函数Point& operator++();Point operator++(int);以实现对Point类重载“++”(自增)运算符,定义成员函数Point& operator--();Point operator--(int);以实现对Point类重载“--”(自减)运算符,实现对坐标值的改变。程序名:1ab8_1.Cpp #include using namespace std; class Point { public: Point(); Point(int x,int y); ~Point(){} //Point类析构函数 Point& operator++(); //公有成员函数 Point operator++(int); Point&operator--(); Point operator--(int); void Show(); private: int _x; //私有数据成员 int _y; }; Point::Point(){ //Point类构造函数 _x=0;_y=0;} Point::Point(int x,int y) //Point类构造函数 { _x=x; _y=y; }

汇编实验2讲解

实验二循环与子程序程序设计 一、实验目的 1) 加深对循环结构的理解。 2)掌握循环程序的设计方法。 3)学习子程序的定义和调用方法。 4)掌握子程序、子程序的嵌套、递归子程序的结构。 5) 掌握子程序设计、编制及调试。 6) 熟练掌握DEBUG的常用命令,学会用DEBUG调试程序。 二、实验内容 1) 编制程序计算S=1+2·3+3·4+4·5+……+N(N+1)+……直到N(N+1)大于200为止,并将结果由屏幕上显示出来。 2)将从3000H内存单元开始的100个字节存储单元全部清0。 3)编制在屏幕上显示九九乘法表的程序。 4)编制在屏幕上显示用*组成的三角形的程序。 5)设有五个字数据存放在以BUF为首地址的内存单元中,要求采用调用多个字数据相加的子程序方法编程,和的低位字放在RESULT单元,和的高位字放在RESULT+2单元,并将结果显示在屏幕上。 6)编写一个递归子程序,计算指数函数X n的值,其中X,n从键盘输入。 三、实验设备 PC机一台 四、实验步骤 1) 按程序流程图编制实验程序。 2) 输入源程序。 3) 汇编、连接程序,执行程序,检查结果。

4)对内存单元3000H开始的100个存储单元用E命令输入任意数。 5) 程序的执行可用DEBUG的G命令,也可用T命令单步跟踪执行。 6) 用D命令检查执行结果。 五、实验报告的要求 1)列出源程序。 2)对程序中用到的寄存器说明其功能。 3)总结计数控制循环程序的设计方法。 4) 说明怎样使用DEBUG进行程序调试的。调试过程中所遇到的问题是如何解决的。 实验2-1 源程序: DATA SEGMENT BUF DB '1+2*3+3*4+4*5+...+N(N+1)=$' DATA ENDS STACK1 SEGMENT PARA STACK DW 20H DUP(0) STACK1 ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK1,ES:DATA START: MOV AX,DATA MOV DS,AX

C程序设计上机实验报告((完整版))

C语言程序设计上机实验报告 学院:机械工程学院 班级:机自161213 姓名:刘昊 学号:20162181310 实验时间:2017 年3 月6 号 任课老师:张锐

C语言程序设计上机实验报告 实验一 一、实验名称: C 程序的运行环境和运行C程序的方法 二、实验目的:了解在 程序 C 编译系统上如何编辑、编译、连接和运行一个 C 三、实验内容: (1). (2). (3). 输入并运行一个简单的C程序。 设计程序,对给定的两个数求和。 设计程序,对给定的两个数进行比较,然后输出其中较大的数。 四、源程序代码: 代码1: 运行结果1:

程序分析1: 该程序用来判断所输入的整数是否为一个素数,如果一个数能被除了 1 和它本身整除,还能被其它数整除,那么它就不是一个素数,因此,用for 循环来进行整除过程的简写。 代码2: 运行结果2:

程序分析2: 简单的使用printf() 和scanf() 函数进行简单的数据运算。代码3: 运行结果3:

程序分析3: 使用if 语句进行判断。 五.实验总结 C语言程序设计上机实验报告 实验二 一、实验名称:顺序结构程序设计 二、实验目的:正确使用常用运算符(算术运算符、赋值运算符)的用法, 熟练掌握算术运算符及其表达式,逻辑运算符和逻辑表达式。 三、实验内容: (1). 编写程序,实现小写字母转大写。

(2). 编写程序,实现输入两个不同类型数据后,经过适当的运算(加、减、乘、除)后输出。 (3). 编写程序,计算三角形面积、立方体的体积和表面积、圆的面积和周长。 (4). 编写程序,实现单字符getchar 和putchar 输入输出。 (5). 编写程序,实现十进制、八进制、十六进制不同数制的输出。 四、源程序代码 代码1: 运行结果1: 程序分析1:

上机实验六

上机实验六数组一 一.目的要求 1.掌握一维数组的基本概念,如何定义一维数组,如何初始化一维数组。 2.掌握数组的基本操作:引用数组元素、行(列)求和,行(列)最大最小值,整个数组的输入输出等。 3.掌握与数组有关的算法,如排序、找最大最小值(或位置)等。 二.实验内容 第1题、输入n(n不超过10),然后输入n个数组元素,要求将数组元素在同一个数组中按逆序重新存放并输出。 如输入5 1 2 3 4 5 应输出 5 4 3 2 1 #include #define N10 Void main() { int i,j; int a[N]; scanf("%d",&n]); for(i=0;i<=9;i++) j=9-i; a[i]=a[j]; for (i=0;i<=9;i++) printf("%d",a[i]); return 0;

第2题、输入一个数组的所有元素,再输入一个整数m,把该数组的后m个数字移到数组的前头。 比如数组元素为:1 2 3 4 5 6 7 8 9 10,m=4,应输出:7 8 9 10 1 2 3 4 5 6 #include int main() { int a[10]; int b[10]; int i=0; int m; printf ("please enter a[i]"); scanf("%d",&a[i]); printf("please enter m"); scanf("%d",&m]); if(m<=0 && m>=10) printf("wrong enter"); else for(i=0;i

汇编语言实验四

福建农林大学金山学院实验报告 系:信息与机电工程系专业:计算机科学与技术年级: 08 姓名:游品尧学号: 082231044 实验课程:汇编语言 实验室号:___ _605 实验设备号: F5 实验时间:11.22 指导教师签字:成绩: 实验四 DOS功能调用 1.实验目的和要求 1.学会DOS中关于显示功能调用指令的用法。 2.领会修改显存方法显示字符。 2.实验环境 实验的硬件环境是: IBM—PC机及其兼容机 实验的软件环境是: 操作系统:DOS 2.0以上;调试程序:https://www.wendangku.net/doc/dc11663300.html,;文本编程程序:EDIT.EXE、WPS.EXE;宏汇编程序:MASM.EXE(或ASM .EXE);连接装配程序:LINK .EXE;交叉引用程序:CREF.EXE(可有可无)。 3.实验内容及实验数据记录 1、输入一个字符,显示出来 2、输入一个字符串,显示出来 3、buf开始的3个的16位二进制数用十六进制数的形式显示出来, (1)理解程序 (2)输入程序,汇编,运行(在DOS状态下输入:文件名.EXE),观察结果。 (3)如果要分行显示,程序要如何修改? DATA SEGMENT BUF DW 4F59H, 56A8H, 0FF90H DATA ENDS CODE SEGMENT ASSUME CS: CODE, DS: DA TA START: MOV AX, DA TA MOV DS, AX

MOV SI, 0 P: MOV BX, BUF[SI] MOV CH, 4 L: MOV CL, 4 ROL BX, CL MOV DL, BL AND DL, 0FH CMP DL, 10 JB NEXT ADD DL, 7 NEXT: ADD DL, 30H MOV AH, 2 INT 21H DEC CH JNZ L INC SI INC SI CMP SI, 4 JNA P MOV AH, 4CH INT 21H CODE ENDS END START 4、运行下列程序,在屏幕的第1行,会显示一个字符X,理解程序段STACK SEGMENT DB 128 DUP(0) STACK ENDS CODE SEGMENT ASSUME CS:CODE,SS:STACK START: MOV AX,STACK MOV SS,AX MOV SP,128 MOV AX,0B800H

c语言上机实验完整答案

%c 字符形式输出, %d 整数形式输出, 实验一 自测练习1 程序代码 #include void main() { int x; scanf("%d",&x); //%d十进制整型,&指x在内 存中的地址。上面 scanf的作用是:按照 x在内存的地址将x 的值存进去, if (x%2 !=0) printf("%d is an odd\n",x); else printf("%d is an even\n",x); }

运行结果 自测练习2 程序代码 #include void main() { int i, sum; i=1 ; sum=0;

while (i<=100) { sum=sum+i; i++; } printf("sum=%d\n",sum); } 运行结果 自测练习3 程序代码 #include void main( ) { int i, n; long p;

p=1; printf("Enter n:"); scanf("%d",&n); for (i=1; i<=n; i++) p=p*i; printf(" p=%ld\n", p); } 运行结果 自测练习4 程序代码 #include"stdio.h" int max(int x,int y) {int z; if (x>y) z=x;else z=y; return(z); } void main() {int a,b,c;

scanf("%d,%d",&a,&b); c=max(a,b); printf("max=%d\n",c); } 运行结果 自测练习5 程序代码 #include"stdio.h" void main() {int x,y; for(x=0;x<=25;x++) for(y=0;y<=50;y++) if(4*x+y*2==100) printf("兔=%d,鸡=%\n",x,y); } 运行结果

汇编语言第四次上机实验报告

汇编语言第四次上机实验报告 时间: 2013/5/10 7:00-9:30 地点:南一楼803 实验人员:计科10班王涛学号: U201114445 一、题目 1、用三种方式获取中断类型码10H对应的中断处理程序的入口地址。 (1)直接运行调试工具(TD.EXE),观察中断矢量表中的信息,指出中断类型码10H 对应的中断处理程序的入口地址。(使用TD观看即可)。使用TD观看时,在调试工具下调入以前编好的运行程序,跟踪执行INT 21H(即进入中断处理程序,方法是:执行到INT 21H 时,按ALT+F7),观察CS及IP是否改变成了前面记录的值。 (2)编写程序,用DOS系统功能调用方式获取,观察相应的出口参数与(1)看到的结果是否相同(使用TD观看即可)。 (3)编写程序,直接读取相应内存单元,观察读到的数据与(1)看到的结果是否相同. 2、编制时钟显示程序。要求每隔1s在屏幕右下角显示“年-月-日时:分:秒”,并将程序驻留在内存。 3、安装MASM32软件包,以其中的一个例子(如example\3dframes)为例,试用软件包中的集成汇编、连接和调试(TD32.EXE)功能。软件包从汇编教学网站上下载,操作参见《80X86汇编语言程序设计上机指南》第七章。 二、实验要求 1. 在调试工具下调入之前编好的运行程序,跟踪执行INT 21H(即进入中断处理程序,方法是:执行到INT 21H时,按ALT+F7),观察CS及IP是否改变成了前面记录的值。 操作提示:由于INT 21H内部的代码较长,为便于从中断处理程序返回到主程序,可在主程序INT 21H后面的指令上先设置好断点,当不再想跟踪中断处理程序时按F9即可。 实验报告的3、4、5 三个部分不用写。 2. 提示:CMOS内部07,08,09单元中分别存放着日、月、年的信息,“年”只显示低2位即可。汇编教学网站(http://202.114.1.86)上有CMOS参考资料。程序可参见教材6.2节的例1和例2。实验报告要完整。 3.在TD32中注意观察调用WIN API函数的指令序列特点,注意感受WINDOWS消息机制,掌握WINDOWS窗口程序的基本调试方法。 实验报告的3、4、5 三个部分不用写。 三、寄存器分配和变量定义说明 题目一:(1)略 (2)系统功能调用35H,入口参数为AL=10H,取中断信息。 (3)直接把主存中的DS:[40H]→IP,DS:[42H]→CS赋值给寄存器BX和CX 题目二:略 题目三:略

教科版六年级下册科学实验报告单讲解

六年级下册科学实验报告单 实验课题:放大镜下的发现 学校:实验时间:小组成员: 实验目的:知道放大镜的使用方法及其作用。 实验器材:放大镜、报纸、书本、树叶、电脑 放大镜2只【3X、5X 各一】/每组 实验原理:放大镜能把物体的像放大。 实验步骤: 1、用放大镜观察树叶,把看到的记录下来。把放大镜放在字的上方,逐渐向外移动,发现透过镜片后,字体变大了。 2、用放大镜观察报纸、书本,把看到的记录下来。 3、用放大镜观察电脑、电视机的屏幕。 实验现象: 在放大镜下观察到的物体比用肉眼看到的物体更大。 实验结果:放大镜可以把物体的像放大。

实验课题:放大镜的特点 学校:实验时间:小组成员: 实验目的:知道放大镜的使用方法及其作用。 实验器材:放大镜1只、玻璃塑料瓶1个、圆柱玻璃杯1只、烧杯1只、烧瓶1只、保鲜膜3张、透明塑料绳2米 猜测:放大镜能放大是因为它不同于普通玻璃,形状与平板玻璃有较大差异。 实验步骤: 1、比较放大镜与平板玻璃:放大镜的中间鼓,周围较薄,而平板玻璃厚度均匀,没有放大功能。 2、在圆柱玻璃杯、烧杯、烧瓶中灌上清水,透过瓶体观察物体,发现比直接观察看到的图像要大 3、再次比较圆柱烧杯和烧瓶,我们发现,圆烧瓶比烧杯放大的倍数要大。 实验现象: 放大镜的镜片是透明、中央厚、边缘薄,具有放大图像的功能。 实验结果:放大镜的镜片特点是透明、中央厚、边缘薄,凡是和放大镜镜片具有同样特点的器物,都具有放大功能。

实验课题:放大镜的放大倍数 实验时间:小组成员: 实验目的:知道放大镜把物体放大了多少倍。 实验器材:不同放大倍数的放大镜、布、纸、邮票 实验原理:通过观察、记录和测量,可以算出放大镜的放大倍数。 实验步骤: 1、把放大镜放在有格的纸上或放在书上,看看它能把物体放大多少倍。 2、用放大镜观察布、邮票的某部分,并把观察到的内容记录下来,看看它能把物体放大多少倍。 实验现象:同一放大镜的最大放大倍数是一定的。 实验结果: 通过观察、测量和计算,算出了不同放大镜的放大倍数。

c语言上机实验答案

一、实验方式:一人一机 二、实验目的: 1、熟悉VC++语言的上机环境及上机操作过程。 2、了解如何编辑、编译、连接和运行一个C程序。 3、初步了解C程序的特点。 三、实验内容: 说明:前三题为必做题目,后两题为选做题目。 1、输出入下信息:(实验指导书P79) ************************* Very Good ************************* 2、计算两个整数的和与积。(实验指导书P81) 3、从键盘输入一个角度的弧度值x,计算该角度的余弦值,将计算结果输 出到屏幕。(书P3) 4、在屏幕上显示一个文字菜单模样的图案: ================================= 1 输入数据 2 修改数据 3 查询数据 4 打印数据 ================================= 5、从键盘上输入两个整数,交换这两个整数。 四、实验步骤与过程: 1、#include void main( ) { printf(“********************\n”); printf(“ Very Good\n”); printf(“********************\n”); } 2、#include void main( ) { int a,b,c,d; printf(“Please enter a,b:”); scanf(“%d,%d”,&a,&b); c=a+b; d=a*b; printf(“%d+%d=%d\n”,a,b,c); printf(“%d*%d=%d\n”,a,b,d); } 3、#include #include

第六章上机实验题目

第六章试验题目 一、上机验证自己的选择是否正确 1、设数据表文件CJ.DBF中有两条记录,内容如下: XM ZF 1 李四 500.00 2 张三 600.00 运行下面的程序,输出结果是()。 SET TALK OFF USE CJ M->ZF=0 DO WHILE NOT EOF() M->ZF=M->ZF+ZF SKIP ENDDO ?M->ZF,ZF RETURN (A)1100.00 0 (B)1100.00 600 (C)600.00 0 (D)600.00 600 2、运行如下的程序后,显示的X的值是()。 SET TALK OFF X=0 Y=0 DO WHILE Y>X X=X+Y Y=Y+1 ENDDO ?X RETURN (A)0 (B)10 (C)100 (D)99 3、执行下面的程序,如果输入的M值为6,则最后P的输出值是()。 P=0 K=1 INPUT “M=” TO M DO WHILE P<=M P=P+1 K=K+1 ENDDO ?P (A)1 (B)3 (C)6 (D)7 4、有以下的程序段: INPUT “X=” TO X DO CASE CASE X>10

?”AAA” CASE X>20 ?”BBB” OTHERWISE ?”CCC” ENDCASE 当运行该程序时,如果在键盘上输入了21,则屏幕上的显示结果是()。 (A)“AAA”(B)AAA (C)BBB (D)CCC 5、有以下的程序段: CLEAR X=1 Y=1 DO WHILE .T. X=X+1 IF MOD(X,3)=0 LOOP ENDIF Y=Y+3 IF Y>25 EXIT ENDIF ENDDO ?X,Y RETURN 程序运行结束后,X,Y的值为: (A)X,Y不会有值,程序死循环(B)X=14,Y=25 (C)X=14,Y=28 (D)X=10,Y=31 6、有下列的程序段: a=0 for I=1 to 3 for j=1 to I for k=j to 3 a=a+1 next k next j next I ?a 该程序段的执行结果是()。 (A)3 (B)9 (C)14 (D)21 二、程序填空题,并上机验证能否运行 1、下面程序是显示“学生”表中的1980年出生的女生的记录(性别=.T.表示是男生)。 SELECT XS LOCATE FOR ①

相关文档