




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、浙尸丿:穿城市学院ZHEJIANG UNIVERSITY CITY COLLEGEC+程序设计报告课程名称ZU1C+程序设计黄丽平31202417专业班级电子科学与技术 12012013-2014- 1指导教师(职称)刘泓(副教授)次号实验内容概要实验1:熟悉上机环境及C+基础实验实验2:C +文件组织与C+运算符的应用实验3:C +循环程序设计实验4:C +分支程序设计实验5:函数设计与应用(1)实验6:函数设计与应用(2)实验7:数组的应用(1)实验8:数组的应用(2)实验9:指针在数组中的应用10实验10:指针与函数11实验11:类与对象(1)12实验12:类与对象(2)13实验13:运
2、算符重载14实验14:类继承与多态性15实验15:模板和异常处理16实验16: I/O与文件操作17实验17:可视化程序设计初步说明:以下为各个实验分实验目的和要求、实验内容、操作方法与实验步骤、程序运行结果与分析、讨论、心得。实验1熟悉上机环境及C+基础实验实验目的和要求1. 熟悉上机环境,了解 Visual C+6.0集成开发环境、掌握源程序编辑、程序调试、查看变量、程序运行;2. 熟悉C+的程序结构,掌握main函数、保留字、变量及变量定义、输入与输出流等概念;3. 熟悉类与类对象的定义、类成员的调用。实验内容任务1:程序调试1、熟悉Visual C+开发环境(1) 从 Windows
3、的“开始”菜单,选择“程序” “ Microsoft Visual Studio” 7“Microsoft Visual C+ 6.0”,用鼠标左键点击“ Microsoft Visual C+ 6.0”。 进入Developer Studio的应用程序集成开发环境。(2) 用鼠标左键点击“ File”-“新建”命令,得到“新建”对话框,在“新建” 对话框中点击“文件”标签,选择标签“ C+ Source File”,并且在右边“文 件”文本框中输入文件名filel ,点击命令按钮“确定”。(3) 在编辑区光标处开始输入源程序,输入源程序。/*程序功能:输入输出练习*/ #includevio
4、stream.h>int main()coutvv" 您好!浙江大学欢迎您,愿您喜欢cout<<2008;/C+的输入输出。"/表示输出一个字符串打印一个整数cout<<"n"/换行cout<<20.1;/cout<<endl;/打印一个实数换行coutvv"I am "vv20vv " years old studentchar name30;int age ;/."/ 连续打印变量的声明位置与 C有什么区别吗?cout< v"pl ease
5、give your name :"cin>>name ;/表示键盘输入字符串到变量 name中coutv v"pl ease tell me how old are you cin>>age ;/coutvv"Your name is "vvnamevvendl;?"J表示键盘输入整型数到变量age中coutvv"you are "<<age<<"years old(4)点击菜单栏的菜单“编译”-“编译 file1.cpp”,建立一个默认的工作区。 编译成功,产生一个
6、目标文件:file1.obj。如果程序有错误,在输出窗口中 会指出每一项的错误及产生错误的原因、所在行。请操作(a)在程序中任号,何一行少一个“;”符号,有什么提示? (b)删除int age;这一行,编译后有什 么错误提示。(6)点击菜单“编译” T “执行file1.exe Ctr1+F5”,点击命令按钮“是(丫)”, 将产生一个可执行文件 file1.exe。(7)编辑第二个C+源程序。点击“文件”-“新建”,在“新建”对话框中 选择“ C+ Source File”,在文件框中输入文件名file2。(8)点击菜单的“文件”-“关闭工作区”,关闭前一题的工作空间,重新编 译即可。文件”(
7、9)打开已存在的文件, Developer Studio 中一次只能打开一个工作空间。工 作空间的打开过程为:“文件”-“打开工作区”,在对话框中选择要打开的 工程(.dsw)文件。问题:1.C+中的注解有哪些?2. 应用输入输出流应包含什么库 ?3. 定义变量有什么含义 ?4. 常用变量有哪些基本类型 ?2、C+程序的调试编辑程序后存在一些错误是不可避免的, 这些错误的发生有可能是: 编译错误, 如语法、 输入错误等;链接错误,如函数名写错或所调用的函数没有定义;运行错误等。与位置有关的断点设置。(1)最简单的是设置一般位置断点,只要把光标移到要设断点的位置,当 然这一行必须包含一条有效语句
8、的;然后按F9键(F9键为开关键),会看到在这一行的左边出现一个红色的圆点。(2)表达式在满足一定条件的情况:要设置这种断点需可单击“编辑”-“断点.命令,这时Break point对话框将会出现(或组合键 Alt+F9键)。选中 Breakpoint 对话框中的 Location 标签,使 Location 页面弹出,输入行号或单击 con dition按钮,弹出“断点条件”对话框,在Ex pression编辑框中写出逻辑表达 式,如age=18或age>20,最后按0K返回。3、控制程序的运行(1)单击“编译”-“开始调试”-“去”命令,程序开始运行在Debug状态下(此时菜单“编译
9、”改变为“ Debug”),程序会由于断点而停顿下来,这 时会看到有一个小箭头,它指向即将执行的代码。( 2)四条命令: Step over, step Into, Step 0ut, Run to Cursor。则用 Step IntoStep ove:功能是运行当前箭头指向的代码(只运行一条代码)。 Step Into:功能是如果当前箭头所指的代码是一个函数的调用, 进入该函数进行单步执行。Step Out :功能是如当前箭头所指向的代码是在某一函数内,用它使程序运 行至函数返回处。Run to Cursor:功能是使程序运行至光标所指的代码处。任务 2:程序调试在实验 1 的源程序基础上
10、,作以下程序的调试,并回答相关问题。1)4)用单行注释符 ”/注”解预处理命令,编译程序有什么提示?如果程序中使 用函数fabs,应该增加什么样的预处理?把int main()写成int Main(),编译程序有什么提示?请回答在C+程序设计对大小写有什么要求?如果把语句 cout<<2008; 如改写为: cout<<2008 编译程序有什么提示? 请回答在C+程序设计对语句结束有什么要求?程序中的变量定义: int age ; 如改写为: int age_1 ; 编译程序有什么提示?如改写为: int 1_age ; 编译程序有什么提示?如改写为: int for
11、;编译程序有什么提示?关于变量的取名你能总结出什么经验?任务 3:程序设计仿照任务 1,应用 cin、cout 进行输入、输出的程序设计。给出提示“请输入您的学院名”,然后您输入您所在的学院,接着输出提示“请输入您的姓名” 然后输入您的姓名,然后输出提示“请输入您的年龄” ,输入您的年龄后,最后 输出“欢迎来自?学院的?同学,您的年龄是?岁” ,其中?为 输入的值。任务 4:程序调试进入Visual C+集成环境,编辑下列源程序:#include<iostream.h>class sprivate:int x,y;public:void s(int a,int b)x=a;y=b;
12、int area( )return x*y; void show( )cout<<" 面积 :"<<area( )<<endl;int main() int a,b;cin>>a>>b;s x(a,b);x.show();编译运行程序后写出程序的运行结果并回答下列问题:a)省略预处理行#includeviostream.h>,会出现什么样的错误提示?程序中出现了哪些关键字?c)函数init、area show功能分别是什么?d)(e)在类中,如果 private、 public 不写,会出现什么样的错误提示?
13、为什么?重写程序,把成员函数定义在类的外部,提示:请参照下列类定义。class sprivate:int x,y;public:void init(int a,int b);int area( );void show( );void s:init(int a,int b)x=a;y=b;int s: area( )return x*y;void s: show( )cout<<" 面积 :"<<area( )<<endl; 任务 5:程序设计模仿任务4,设计一个立方体类,它有三个int型私有成员a b、c,求出这个立方体的体积,然后输出。
14、提示:类定义为:class cubpublic:cub(int x,int y,int z)a=x;b=y;c=z;int Volume ( )int z;z=a*b*c;return z;void show( )cout<< ” 长方体体积为: ”<< Volume ( )<<endl; private:int a,b,c;参照任务 4 的 main 函数的编写。任务 6:程序设计首先在屏幕上输出以下菜单:1求函数值2计算方程的根3画简单图形其中前0退出请输入您的选择: 2您的选择是: 21 个 2 是键盘输入的,第 2 个 2 是把输入的变量值输出。操作
15、方法与实验步骤四、程序运行结果与分析五、讨论、心得实验2 C +文件组织与C+运算符的应用、实验目的和要求1. 熟悉C+的多文件组织(1个C+程序,由多个文件构成);2. 掌握C+的常量与变量,掌握(1)读入不同进位制常量,用 dec oct、hex等控制输出;(2)各种算术、关系运算符的应用,可含数学函数;3.熟悉类与类对象的定义、类成员的调用。二、实验内容 任务1: C+多文件程序调试C +多文件组织、类对象与类成员的使用。理解一个C+程序可以由一个或多个文件构成,一个文件可以由一个或多个函数构成。 下列程序是完成简单的函数调用,完成一些基本运算,程序的主要思想是掌握多文件系统的编译, 此
16、C +程序由五个文件构成。(1) 开始程序Microsoft Visual StudioMicrosoft Visual C+ 6.0 新建 T文件-C+Source File -在文件对话框中输入文件名2-1-1,编辑2-1-1.CPP 内容:int add(i nt x,i nt y)retur n x+y;保存并关闭此文件。(2)文件-新建-文件-C/C+Header File -在文件对话框中输入文件名2-1,编辑2-1.h内容: #in clude<iostream.h>#in clude "2-1-1.cp p"保存并关闭此文件。(3)文件新建文件C
17、+Source File在文件对话框中输入文件名 2-1, 编辑2-1.CPP内容:int main()int a,b;cin> >a>>b;int c=add(a,b);coutvvavv'+'vvbvv'='vvcvve ndl;(4) 编译程序,有什么提示?请思考什么原因?(5) 在文件 2-1.CPP的第一行加入预处理命令:#i nclude "2-1.h"(6) 再次编译,思考一下程序为什么成功了? 注意:编译时当前文件应是2-1.C PP任务2:多文件程序设计(1)仿照任务1,其中主调函数的文件名为2-2.
18、CP P,内容为:# in clude "2-2.h"int main()int a,b;cin> >a>>b;in t c1=f1(a,b); coutvvavv'+'vvbvv'='vvc1vve ndl;in t c2=f2(a,b); coutvvavv'-'vvbvv'='vvc2vve ndl;in t c3=f3(a,b); coutvvavv'*'vvbvv'='vvc3vve ndl; int c4=f4(a,b);coutvvavv7&
19、#39;vvbvv'='vvc4vve ndl; (2) 分别在文件 2-2-1.CPP、2-2-2.CPP、2-2-3.cpp、2-2-4.Cpp 中编写函数 f1、f2、f3、 f4分别完成算术运算+、-、*、/的功能。(3) 编辑头文件2-2.h#in clude <iostream.h>#i nclude "2-2-1.cp p" #i nclude "2-2-2.cp p" #i nclude "2-2-3.cp p" #i nclude "2-2-4.cp p"(4) 编译并
20、运行程序。注意:编译时当前窗口文件是 2-2.C PP 任务3:输入、输出操纵符控制程序设计(1)编辑并调试下列程序,程序的文件名为2-3.C PP #i ncludeviostream.h> #i ncludevioma nip .h> int main()int x,y;cin> >x>>y;cout<<"x="<<x<<" "vv"y="vvyvve ndl;cout<<"x="<<oct<<x<
21、<""vv"y="vvhexvvyvve ndl;coutvv"x="vvsetw(5)vvxvv""vv"y="vvyvve ndl;常用进位制操纵算子有 dec、oct、hex,它们在程序中分别起什么作用?在上述oct的位置分别用dec、hex去代替,输出结果分别是什么?(3)setw(5)起什么作用?请多次改变其中的数据,观察程序的运行结果有什么变化?(4)设计一个程序,输入20给X,输出结果为:x=20 x= 14 x= 20 x=24注意:程序设计中不能对X作运算,只能使用dec
22、、oct、hex、setw进行控制。任务4:运算符程序设计阅读程序,写出下列程序的运行结果,设程序的文件名为2-4.C PP#includeviostream.h> class dataprivate:int x,y;public:void data(int a,int b)x=a;y=b;void gt()coutvvxvv'>'vvyvv'='vv(x>y)vve ndl;void p rint()gt();int main()int a,b;cin>>a>>b; data A(a,b);A.print(); ret
23、urn 0; <、 >=、请改写函数print,分别调用成员函数函数:lt( )、ge( )、eq( )、and( )、or()分 别用于关系运算( <、 >=、 =)、逻辑运算(&& 、 |)的操作,请在类中增加成员函 数 lt、 ge、 eq、 and、 or 的定义,并在 print 函数中调用。任务5:程序设计重新设计任务4,把类及成员函数的实现存放在文件 test4.h中,把main函 数存放在test4.cpp中,编辑程序并编译运行。提示在文件 test4.cpp中要有预处 理命令 #include ” test4.h ” 任务 6:程序设计
24、新建三个文件,其文件名分别为ex2-2.h、ex2-2-1.cpp、ex2-2-2.cpp,其中ex2-2-1.cpp文件定义一个main函数,定义一个类对象,从键盘输入数据,作为 对象的参数。在ex2-2.h中定义类,在ex2-2-1.cpp中定义类中所有的成员函数。程序功能:(1) 定义三角形类,可计算三角形周长与面积。(2) 定义一个棱形类,输入棱形的两条对角线,类中可求得棱形的周长与 面积。操作方法与实验步骤四、程序运行结果与分析五、讨论与心得实验3 C +循环程序设计一、实验目的和要求1了解各种循环语句的基本形式;2理解并掌握循环语句的构成方法;3理解 for 循环的三个表达式的含义
25、及执行过程;4了解 for 语句的表达式缺省情况;5. 理解并掌握while、dowhile、for的应用;6. 理解break与contin ue语句的差异。二、实验内容 任务 1:程序调试定义一个类,此类的功能是求n至m间的自然数的和。程序设计代码如下:#include<iostream.h> class Addn_m private:int n,m;public:Addn_m(int n1,int m2)n=n1;m=m2;int Add();void print()cout<<Add()<<endl;int Addn_m:Add()int sum=0
26、,i;i=n;while(i<=m)sum=sum+i;i+;return sum;void main()int a,b;cin>>a>>b;Addn_m A(a,b);A.print();1)程序运行时,从键盘输入 1 100,请思考程序运行的结果;2)在程序段中:while(i<=m)sum=sum+i;i+;去掉大括号,编译程序,思考程序的运行结果;如果没有 i+ 语句,程序会出现 什么情况?3)请思考当程序运行时,如输入 10 2,程序结果如何?应如何修改程序才能得出正确结果;4)请思考成员函数 Add 能否用访问控制符 private 来限定。任务
27、 2:程序调试 #include<iostream.h> class Factorialprivate:int n;public:Factorial(int a)n=a;int mult();void print()cout<<n<<"!="<<mult()<<endl;int Factorial:mult()for(int i=1,s=1;i<=n;i+)s=s*i;return s;int main()int a;cin>>a;Factorial A(a);A.print();任务 3:程序设
28、计仿照任务2,定义一个求阶乘和的类,从键盘输入一个不大于10的整数n,求表 达式的值 sum=1!+2!+3!+n!。任务4:编写计算近拟公式:e=1-1/1!+1/2!-1/3!+1/4!-1/5!+.的程序,并使其 误差小于 0.00001.任务 5:程序设计已知 main 函数定义:int main() int a,b;char ch;cin>>a>>b>>cn;graphics A(a,b,ch);A.print();如果程序在执行时输入: 3 4程序执行的结果为:请设计程序并调试。任务 6:程序设计设计程序,在屏幕上输出如下图形。三、操作方法与实验
29、步骤四、程序运行结果与分析五、讨论与心得实验4 C +分支程序设计、实验目的和要求1.掌握分支结构的各种表达形式;2理解并掌握分支结构中条件的表示方法;3理解并掌握多分支选择结构的实现方法;4能应用选择结构解决实际问题。、实验内容 任务1 :程序设计输入a、b,循环实现计算下列算式,当a b中有一个为0时,退出循环。a>0,b>0,计算 Ja +ylba>O,bvO,计算 a2+b2值 av0,b>0,计算a*eb的值 avO,bvO,计算 ab值编写程序实现以上功能。任务2:程序调试从键盘输入一数,如果该数大于0,求该数的平方根,否则输出“该数少于0”。#includ
30、e viostream.h#includevmath.h>int main()double x,y;coutvv"请输入一数:"vvendlcin>>x;while(fabs(x)v1e-6)if(x>0)y=sqrt(x);coutvvxvv”平方根是 ” vvyvvendl;else该数少于O"vvendl;coutvv"cin>>x;return 0;如果省略下列程序段中的大括号,程序能运行吗?为什么?if(x>0)y=sqrt(x);c out<<x<< ” 平方根是 ” <
31、<y<<endl;任务3:程序设计输入一行字符, 分别统计出这行字符中英文字母、 空格、数字和其它字符的个数。提示:while(ch=getchar()!='n') if(ch>='A'&&ch<='Z'|ch>='a'&&ch<='z') Letters+;else if(ch>='0'&&ch<='9') Digital+;else if(ch=' ')Space
32、+;elseOther+;思 考 : 如 果 while 中 的 表 达 式 写 成 while(ch=getchar()!='n') 或while(ch=getchar()!='O'),程序是否能达到预期效果?为什么?任务4:程序设计从键盘输入三个数, 判断由这三个数能否够成一个三角形, 如能并判定是等边三 角形还是等腰三角形、 直角三角形, 还是其它三角形, 当输入的三个数中有一个 小于等于 0时,程序结束。任务 5:定义一个三角形的类,从键盘输入三个数,判断由这三个数能否够成一 个三角形, 如能并判定是等边三角形还是等腰三角形、 直角三角形, 还是其它三
33、角形,当输入的三个数中有一个等于 0时,程序结束。任务6:输入一个百分制成绩,要求输出成绩相应的等级(A:90分以上,B: 80-89 ,C:7O-79,D:6O-69,E:6O 分以下),要求用 switch 语句实现。任务6:已有一个数学类math的定义与main函数、show函数的定义,程序的功能 是完成小学数学中 +、-、*、/ 的运算,请完成程序。#include<iostream.h>class mathprivate:double x,y;char ch;public:math(double a,char ch,double b);double calculate(
34、);void show();请在成员函数 calculate 中用 switch 语句完成程序的功能。任务7:要求从键盘输入三个数,把三个数从大到小输出,直到输入的三个数都 为0,程序结束。定义一个类,类的功能是输出 n 至 m 之间的素数。程序运行时在 main 函数中输 入 100 1000,输出 100到 1000 之间的素数。提示:求 k 是否为素数的程序段可以设计为:j=(int)sqrt(k);i=2;while(i<=j)if(k%i=0)break;i+;if(i>=k)cout<<k<<'四、操作方法与实验步骤五、程序运行结果与分析
35、六、讨论与心得实验5函数设计与应用(1)、 实验目的和要求1掌握系统函数的调用方法;2掌握函数的定义方法;3理解不同的存储类型在函数中的不同作用;、实验内容任务 1:程序调试 (1) 下列程序有问题吗?请调试。#include<iostream.h>void main()cout<< f(2,3);int f(int x,int y)return x+y;(2) 下列程序有问题吗?请调试。#include<iostream.h>void main()int f(x,y);cout<< f(2,3);int f(int x,int y)return
36、 x+y;(3) 下列程序有问题吗?请调试。#include<iostream.h>void main() int f(int , int );cout<< f(2,3);int f(int x,int y)return x+y;(4) 下列程序有问题吗?请调试。#include<iostream.h>int f(int x,int y) return x+y;void main()cout<< f(2,3); 下列程序应用系统函数进行计算,其功能是如果a为2, b为3,则输出为8,如果a为-2,b为3,则输出为0.125,程序有多处错误,请改正
37、(文件包含、 参数类型,分号等)。#include<iostream.h> double f(int x,int y);double z;if(x>0)z=pow(x,y);elsez=pow(x,-y);return z;int main()double a,b,c;cin>>a>>b;c=f(a,b);cout<<c<<endl;return 0;任务 2:程序设计设计一个程序,调用有关字符串的系统函数strlenstrcatstrcpystrcmp对字符串进行长度测试、连接、拷贝、比较操作。任务 3:程序设计循环计算算术运
38、算a*sin(x)+b*x y,每次运算前都询问用户”是否继续计算(y/n)?,根据回答确定是否继续计算?任务 4:程序调试#include<iostream.h>#include<string.h>class strprivate:char x80,y80;char ch;public:str(char a,char b,char c)strcpy(x,a);strcpy(y,b);ch=c;void opre( )switch(ch)case '+':strcat(x,y);cout<<x<<endl;break;case &
39、#39;l':cout<<"x length="<<strlen(x)<<endl;cout<<"y length="<<strlen(y)<<endl;break;int main()str A("abcd","12345",'+');A. opre();str B("abcd","12345",'l');B. opre();调试程序,写出程序的运行结果。任务 5
40、:程序设计仿照任务 5,补充下列功能, 重写程序。设定:用字符 '+表'示两个字符串的连接, 用字符m表示两个字符串的比较,用字符'(表示字符串的拷贝,用字符'表示 测试字符串的长度。调试程序并运行结果。任务 6:实现任务 4 同样的功能,完成类的定义,在构造函数中只有两个字符串 的参数,函数opre有一个字符参数(+、I、C、m)并且含有switch语句,用main 函数进行测试。三、操作方法与实验步骤四、程序运行结果与分析五、讨论与心得实验 6 函数设计与应用( 2)、实验目的和要求1理解重载函数;2掌握缺省参数的函数;3成员函数的定义;4掌握函数的应用。、
41、实验内容任务 1:程序设计设计一个程序,调用一个函数 add,可以完成整型数、双精度型及它们混合型数的加法,如果是字符串即表示两个字符串的连接,函数的原型如下:int add(int,int);double add(int,double);double add(double,double);double add(int,double,double) char add(char *,char *);完成所有函数的定义,并用 main 函数进行测试。任务 2:程序设计定义一个类 dateclass date private: int year; int month; int day; public
42、:请补充完整类中成员函数的定义,其中 main 函数为:int main()date A;A.print(); date B(2011);B.print(); date C(2010,9);C. print();date D(2010,10,1);D. print();return 0;要求输出为:今天是 2010年 2 月14日今天是 2011年 2 月14日今天是 2010年 9 月14日今天是 2010年 10 月 1 日Press any key to continue任务 3:程序设计编程:main函数中读入一个整型数组,编写二个同名的函数inv ,其中之一是反序所有的元素并输出,另
43、一个反序前 n 个元素,请把类补充完整,并调试程序。#include<iostream.h>class Reverse private:int a10;public:Reverse (int x);void inv( );void inv(int n);void print( );Reverse:Reverse(int x) for(int i=0;i<10;i+)ai=xi;void Reverse:print( )for(int i=0;i<10;i+)cout<<ai<<" "cout<<endl;int m
44、ain()int x10;for(int i=0;i<10;i+)cin>>xi;Reverse A(x);A.p rint();A.inv();A.p rint();int n;cin>>n;A.inv(n);A.p rint();return 0;任务4:程序设计 设计一个程序,在main ()中输入一个字符串,然后再输入一个字符,调用一 个函数void del_char(char *p,char x),删除在字符串中的这个字符。任务5: 程序设计 调试下列程序,观察程序输出结果,总结程序的功能。#i ncludeviostream.h> class d
45、ata p rivate:int x,y;char ch;p ublic:void in it(i nt a,i nt b,char c)x=a;y=b;ch=c;void op re()switch(ch) case '+':cout<<x<<' '<<ch<<' '<<y<<'='<<x+y<<e ndl;break;case '-':cout<<x<<' '<<c
46、h<<' '<<y<<'='<<x-y<<e ndl;break;int main()class data x;x.i ni t(23,45,'+');x.o pre();按以下要求改写程序,能运算+、-、*、人能对除数为0的情况进行判断。 任务6:程序设计仿照例5,实现同样的功能,完成类的定义,并用main函数进行测试。class datap rivate:int x,y;char ch;public:void init(int a,int b,char c)x=a;y=b;ch=c;
47、int opre();void p rint()coutvvxvv' 'vvchvv' 'vvyvv'='vvoprevve ndl;三、操作方法与实验步骤四、程序运行结果与分析五、讨论、心得实验 7 数组的应用( 1)、实验目的和要求1了解数组与数学矩阵的关系;2掌握数组的定义、引用与初始化;3理解二维数组数据存储顺序;4理解并掌握冒泡、选择排序算法;5掌握字符数组的定义、字符串的表示方法与应用。二、实验内容 任务 1:程序调试下列程序定义了一个数组类 Array ,类中定义了两个数组与一个运算符, 成员 函数中有构造函数、运算函数与输出函数,
48、请调试程序。#include<iostream.h>class Array private:int a10,b10;char ch;public:Array(int x,int y,char ch);void Computing( );void print( );Array:Array(int x,int y,char ch1) for(int i=0;i<10;i+)ai=xi;bi=yi;ch=ch1;void Array:Computing( )int i;switch(ch)case '+':for(i=0;i<10;i+)ai=ai+bi;br
49、eak;case '-':for(i=0;i<10;i+)ai=ai-bi;break;case1*1.for(i=0;i<10;i+)ai=ai*bi;break;void Array:print( )for(int i=0;i<10;i+)cout<<ai<<"cout<<endl;int main()int x10,y10;char ch;cout<<" 请输入数组 1的 10 个元素 :"for(int i=0;i<10;i+) cin>>xi;cout&l
50、t;<" 请输入数组 2的 10 个元素 :"for(i=0;i<10;i+)cin>>yi;cout<<" 请输入运算类型 +、- 、*:"cin>>ch;Array A(x,y,ch);A.print();A.Computing();A.print();任务 2:程序设计请仿照任务 1,在已定义的数组类 Array ,可以完成两个数组的 +、 -、 * 、>运 算,它们的运算与任务 1中相同,都是相对应元素间的运算,请设计程序并 调试。任务 3:程序设计、* 、运算,请仿照任务2,在已定义的数组类
51、Array,它是对二维数组的+、 假设二维数组是 6*6,请设计程序并调试。任务 4:程序调试及设计调试下列程序,程序的功能是将类中成员数组int a10中的元素逆顺排序,请仿照此程序编写一程序,完成对字符数组进行逆序排列。#include<iostream.h>#include<iomanip.h>class invprivate:int a10;public:inv (int x);void inve( );void print( );inv:init(int x)for(int i=0;i<10;i+)ai=xi;void inv:inve( )int te
52、mp;for(int i=0;i<5;i+)temp=ai;ai=a9-i;a9-i=temp;void inv:print( )for(int i=0;i<10;i+)cout<<endl;int main()int x10;for(int i=0;i<10;i+)cin>>xi;class A(x);A.print( );A.inve( );A.print( );return 0;任务 5:程序设计编写一程序判断数组int a10中比相邻元素大的元素个数。任务 6:程序设计编写一程序判断数组int a66是否是一个上三角。三、操作方法与实验步骤四、
53、程序运行结果与分析五、讨论与心得、实验目的和要求实验 8 数组的应用( 2)1了解字符串处理函数的用法;2理解并掌握冒泡、选择排序算法;3掌握字符数组与字符串的定义、引用;二、实验内容任务 1:程序调试#include<iostream.h>void main()int a10,i=0,temp;cout<<" 输入 10 个整数,输入 0 时结束: "<<endl; while(i<10)cin>>ai;if(ai=0)break;i+;cout<<" 排序前: "<<end
54、l;for(int j=0;j<i;j+)cout<<aj<<" "cout<<endl;for(int k=0;k<i;k+)for(j=k-1;j>=0;j-)if(aj>aj+1)temp=aj+1;aj+1=aj;aj=temp;cout<<"排序后: "<<endl;for(k=0;k<i;k+)cout<<ak<<" "cout<<endl;调试程序,分析下列程序的执行情况:输入 10 个整数,输入
55、 0时结束:12 98 040 40 0x40 100 0 2398排序前:12 98 32 40 64 100排序后:12 32 40 64 98 100Press any key to continue任务 2:程序设计参照任务 1,定义一个类, 类的主要功能是对类中的整型数组从小到大进行排序。任务 3:程序设计定义一个类,类中有一个整型数 x与整型数组aN,类的功能是判断x在数组a中出现的次数,完成类的定义,同时编写 main 函数进行测试。任务 4:程序设计定义一个类,类中的私有数据为 int a66 ,另有构造函数、用于判断是否构成 一个上三角的判断函数。任务 5:程序设计不用字符串
56、处理函数,将两个字符连接,即将字符串 b 连到串 a 后面,变成字 符串 c。任务 6:程序设计str定义一个字符串的连接类str,成员函数strcat连接两个字符串,而成员函数print 用于输出连接后的字符串,当定义一个字符串的连接类的对象时,如:A.strcat( ); 输出形式为:A("abcd","12345"); 连接两个字符串的函数调用为:A.print( );任务 7:编写函数,删除字符串中,从指定位置 m 开始的 n 个字符。删除成功, 函数返回1;否则返回0。三、操作方法与实验步骤四、程序运行结果与分析五、讨论与心得实验 9 指针在数
57、组中的应用1234、实验目的和要求 理解指针与地址的关系;掌握指针变量的定义、初始化和引用的方法;理解并掌握指针变量和它所指向的对象的关系;理解数组的首地址和元素地址的概念;5区分指针与引用作为函数参数的应用6.掌握new与delete的应用;7理解并掌握 main 函数的形式参数的使用用法。二、实验内容任务 1:程序设计(1)设计一个函数swaP,函数的参数为指针,函数的功能是交换main函数中的 a, b 值。#include<iostream.h> void swap(int *p1,int *p2) void main() int a,b; cin>>a>
58、>b; swap(&a,&b);cout<<a<<" "<<b <<endl;思考:如果上述 swap 函数设计为:void swap(int *p1,int *p2)int *p;p=p1;p1=p2;p2=p1;程序运行会有什么样的结果?为什么?如果上述 swap 函数设计为:void swap(int *p1,int *p2)int *p;*p=*p1;*p1=*p2;*p2=*p1;程序运行会有什么样的结果?为什么?2)用引用的方法交换 main 函数中 a、 b 的值,请重新设计程序。#include<iostream.h> void swap( void main()int a,b;cin>>a>>b;swap(a,b);cout<<a<<" "&
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 河道湿地防洪工程施工方案
- 员工签订劳动合同协议
- 2025年二建考试试题及答案
- 武进区智能化道闸施工方案
- 砌石挡土墙冬雨季施工方案
- 居室空间设计概述习题
- 夏季网吧活动方案
- 个锤子检讨书更新
- 年会工作汇报会流程
- 苏教版四年级语文上册期末试卷及答案
- 吸烟有害健康-完整版PPT
- 《结构力学(2)》课程教学大纲(本科)
- 《中华传统文化》第1课-炎黄始-华夏悠远教学课件
- 国家体育馆QC成果之提高钢结构现场焊缝的一次合格率
- 队列训练教程ppt课件(PPT 86页)
- 国际商务(International Business)英文全套完整课件
- 《麻精药品培训》ppt课件
- JMP操作简要培训
- 立方智能停车场管理系统解决方案(课堂PPT)
- 员工廉洁协议
- 螺旋钻孔桩试桩施工方案
评论
0/150
提交评论