ImageVerifierCode 换一换
格式:DOCX , 页数:33 ,大小:31.38KB ,
资源ID:5995216      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5995216.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(北邮小学期c++实验报告and程序文件.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

北邮小学期c++实验报告and程序文件.docx

1、北邮小学期c+实验报告and程序文件 C+实验课总结 张涛实验一:简单c+程序设计一、 1、 猜价格游戏编写C+程序完成以下功能:(1) 假定有一件商品,程序用随机数指定该商品的价格(1-1000的整数);(2) 提示用户猜价格,并输入:若用户猜的价格比商品价格高或低,对用户作出相应的提示;(3) 直到猜对为止,并给出提示。#include#includeusing namespace std;/使用命名空间 std.int main() srand(time(NULL);/将时钟数作为随机数种子 int price,guess; price = rand() % 1000 + 1;/取余,获

2、得11000的随机数 cout please input the price: guess;/记录玩家所输入数值 if(guess price) cout The price is lower than your guess,please input the price again: endl; if(guess price) cout The price is higher than your guess,please input the price again: endl;/给予玩家比较大小的提示 while (guess != price);/循环结构 cout The price yo

3、u give is right.It cost price . endl;/获得正确答案 system(pause); return 0; 2、 计算 N 以内的所有素数编写C+程序完成以下功能:(1) 提示用户输入N;(2) 计算出从2到N之间的所有素数;(3) 将结果保存在一个文本文件中。#include#include#include/两种输入流using namespace std; int isprime(int a)int b = 2; while(a % b!=0 & b sqrt(a) b+; if(a % b=0) return 0; if(a % b!=0) return

4、1;/判断是否为素数的函数定义int main() int num,a; ofstream myFile(d:result.txt); cout Please input the number: num ; myFile 2 ; for(a = 2;a = num;a+)/例举所有数,并对其进行判断,是否为素数 if(isprime(a)=1) myFile a ; /向文件内输出数据system(pause);return 0;3、 袋中取球编写C+程序完成以下功能(使用 enum):(1) 袋子中有 red, yellow, blue, white, black 五种颜色的球多个;(2)

5、一次从袋子里取出3个颜色不同的球,有几种取法;(3) 将每种方法的所有取法输出到屏幕上。#include#includeusing namespace std;enum colors red = 1, yellow, blue, white, black;void print(int a)/设置一个打印函数,根据数字得到颜色switch(a) case 1:cout setw(7) red ; break; case 2:cout setw(7) yellow ;break; case 3:cout setw(7) blue ;break; case 4:cout setw(7) white

6、;break; case 5:cout setw(7) black ;break;int main()int color1,color2,color3;/设置三个记录颜色的变量cout The result is:endl; for(color1=red;color1=blue;color1+) for(color2=color1+1;color2=white;color2+) for(color3=color2+1;color3=black;color3+)/三次循环迭代出所有情况 print(color1); print(color2); print(color3); coutendl;

7、system(pause); return 0;4、 乘法口诀表编写C+程序完成以下功能:(1) 输出乘法口诀表;(2) 显示格式如下所示。1*1=1 1*2=2 1*3=3 . 1*9=9 2*2=4 2*3=6 . 2*9=183*3=9 . 3*9=27 . .9*9=81#include#includeusing namespace std;int main()int a,b,c;for(a=1;a=9;a+)for(c=0;ca-1;c+) cout ; /打印每行前的空格for(b=a;b=9;b+)couta*b=setw(4)setiosflags(ios:left)a*b;/

8、按规律输出乘法表coutendl;system(pause);return 0;5、 最大公约数和最小公倍数编写C+程序完成以下功能:(1) 提示用户输入两个无符号整数;(2) 计算两者的最大公约数和最小公倍数,并输出。#includeusing namespace std;int GCD(int a,int b) if(a%b=0) return b; else return GCD(b,a%b);/利用辗转相除法进行递归. int main() int a,b; coutab; int c; if(ab) c=a;a=b;b=c;/调整ab的大小顺序 couta和b的最大公约数是GCD(a

9、,b)endl; couta和b的最小公倍数是a*b/GCD(a,b)endl;/利用最大公约数与最小公倍数之间的关系直接得到最小公倍数 return 0;6、 计算Fibonacci级数fib(1) = fib(2) = 1fib(n) = fib(n-1) + fib(n-2)分别编写递归和非递归的C+程序完成以下功能:(1) 提示用户输入整数n;(2) fib(n),并输出结果。/递归法求斐波那契数列#includeusing namespace std;int fib(int n)if(n=1|n=2)return 1;else return fib(n-1)+fib(n-2);/递归

10、int main() int num; coutnum; coutnum的Fibonacci级数是fib(num)endl;/输出结果 return 0;/直接法求斐波那契数列#includeusing namespace std;int fib(int n)if(n=1|n=2)return 1;int a,result=1,previous=1,present=1;/初始化if(n2) for(a=3;a=n;a+) result=result+previous; previous=present; present=result; return result;int main() int

11、num; coutnum; coutnum的Fibonacci级数是fib(num)endl; system(pause); return 0;7、 计算n 阶勒让德多项式编写C+程序完成以下功能:(1) 提示用户输入整数n和实数x;(2) Pn(x),并输出结果。#includeusing namespace std;int p(int x,int n)if(n=0)return 1;if(n=1)return x;if(n1)return (2*n-1)*x*p(x,n-1)-(n-1)*p(x,n-2)/n;int main()int x,n; coutxn;coutx的n阶勒让德多项式

12、的结果是p(x,n)endl;return 0;总结:由于第一天学习c+课,所以决定多做些题目来熟悉c+的规范格式,于是将七道题目都编写了,题目都很基础,用到的算法和技巧都在学c的时候学过了。具体的有随机数种子的设定,双重for循环,递归函数求解,基本完成了实验目的所写的那样:熟悉C编程环境,掌握在Dev-C+开发环境下编写、编译、调试和执行C程序的方法。掌握C基本语法、数据类型和程序控制结构,能够编写简单C程序。实验二:类与对象1、 矩形编写C+程序完成以下功能:(1) 定义一个Point类,其属性包括点的坐标,提供计算两点之间距离的方法;(2) 定义一个矩形类,其属性包括左上角和右下角两个

13、点,提供计算面积的方法;(3) 创建一个矩形对象,提示用户输入矩形左上角和右下角的坐标;(4) 观察矩形对象以及Point类成员的构造函数与析构函数的调用;(5) 计算其面积,并输出。#include#includeusing namespace std;class pointprivate: int x,y; public: point(int X=0,int Y=0) x=X;y=Y;/构造函数 int getX()return x; int getY()return y; friend double getline(point &a,point &b) return sqrt(a.x-b

14、.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y); /返回两点间直线长度 ;/两点间距离的计算 class rectangle private: point a,b; public: rectangle(point A,point B) a=A;b=B;/ 构造函数 int getarea() return (b.getX()-a.getX()*(a.getY()-b.getY();/返回面积值 ; /矩形面积计算 int main() int x1,y1,x2,y2; cout请输入左上角的坐标x1y1; coutn请输入右下角的坐标x2y2; point A(x1,y1)

15、,B(x2,y2); rectangle rtangle(A,B);/ 类的初始化 coutn面积大小是:rtangle.getarea();/打印结果 system(pause); return 0; 2、 圆形编写C+程序完成以下功能:(1) 定义一个Point类,其属性包括点的坐标,提供计算两点之间距离的方法;(2) 定义一个圆形类,其属性包括圆心和半径;(3) 创建两个圆形对象,提示用户输入圆心坐标和半径,判断两个圆是否相交,并输出结果。#include#includeusing namespace std;class circle private: int x,y; int r; p

16、ublic: circle(int X,int Y,int R)x=X;y=Y;r=R;/构造函数 friend void start(circle &a,circle &b) double m,n; m=sqrt(a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y);/ 圆心间距离 n=a.r+b.r;/半径和 if(mn) cout两个圆不相交endl; if(m=n) cout两个圆相交endl;/友元函数判断是否相交 ; int main()int x1,y1,r1,x2,y2,r2; cout请输入第一个圆的圆心坐标和半径x1y1r1; cout请输入第二个圆

17、的圆心坐标和半径x2y2r2; circle a(x1,y1,r1); circle b(x2,y2,r2); start(a,b); system(pause); return 0; 3、 友元编写C+程序完成以下功能:(1) 定义一个Boat和Car两个类,他们都具有私用属性重量;(2) 编写一个函数,计算两者的重量和。double TotalWeight(Boat& b, Car& c);#includeusing namespace std;class car;class boat private: double weight; public: boat(double w)weight

18、=w;/ 构造函数 friend double TotalWeight(boat &a,car &b);/友元函数 ; class car private: double weight; public: car(double w)weight=w;/ 构造函数 friend double TotalWeight(boat &a,car &b);/友元函数 ;double TotalWeight(boat &a,car &b)return a.weight+b.weight;int main() double a,b; cout请输入boat和car的重量:ab; boat x(a);car y

19、(b);/初始化类值 cout重量和是TotalWeight(x,y);/打印结果 system (pause); return 0; 4、 分数编写C+程序完成以下功能:(1) 定义一个分数类,他们都具有私用属性分子和分母;(2) 定义分数类的构造函数和析构函数;(3) 定义方法Set,设置分子和分母;(4) 定义方法print,打印分数,格式如:2/7;(5) 定义方法value,返回double型的分数值;(6) 定义方法invert, 分子和分母交换。#include#includeusing namespace std;class fenshu private: int down,u

20、p; public: void set(int a,int b) up=a;down=b; void print() cout分数值是:up/downendl; double value() return double(up)/double(down); void invert() int c;c=up;up=down;down=c; ; int main() int a,b; cout请输入分子和分母:ab; fenshu x; x.set(a,b); x.print(); cout分数值的小数形式是x.value()endl; x.invert(); x.print(); system(p

21、ause); return 0; 总结:在编写程序前对类与对象还是挺生疏的,只有脑海里闪现的书本里的一些概念,编这道题目的时候也已经是学c+的第三天了,在看完书本的例子后,考虑到老师上课说的不要照书编程,于是就在编程前看个够。基本上这些题目也就是一些类与对象的格式的考察。于是将四道题目全部完成了。 记得唯一让我放下手指敲键盘的地方是第二题,正方形的的属性里,起初我是自己设定两点的坐标为其私有变量,后来发现这样做不符合题意,应该将点的对象作为其私有变量。基本上其他的也就没有问题了,注意的也就是不能直接在外部引用私有成员,需要对象内部的公有函数做接口实验三:数组与指针 矩阵(一)与矩阵(三)略 1

22、、 矩阵(三)编写C+程序完成以下功能:(1) 用类来实现矩阵,定义一个矩阵的类,属性包括: 矩阵大小,用 lines, rows(行、列来表示); 存贮矩阵的数组指针,根据矩阵大小动态申请(new)。(2) 矩阵类的方法包括: 构造函数,参数是矩阵大小,需要动态申请存贮矩阵的数组; 析构函数,需要释放矩阵的数组指针; 拷贝构造函数,需要申请和复制数组; 输入,可以从cin中输入矩阵元素; 输出,将矩阵格式化输出到cout; 矩阵相加的函数,实现两个矩阵相加的功能,结果保存在另一个矩阵类,但必须矩阵大小相同; 矩阵相减的函数,实现两个矩阵相减的功能,结果保存在另一个矩阵类,但必须矩阵大小相同。

23、(3) 定义三个矩阵:A1、A2、A3;(4) 初始化A1、A2;(5) 计算并输出A3 = A1加A2,A3=A1减A2;(6) 用new动态创建三个矩阵类的对象:pA1、pA1、pA3;(7) 初始化pA1、pA2;(8) 计算并输出pA3=pA1加pA2,pA3=pA1减pA2;(9) 释放pA1、pA1、pA3。#include#includeusing namespace std;class array private: int lines,rows; public: int*A; array(int a=3,int b=4); array(int a,int b,int c); a

24、rray(array &a); int getLines()return lines; int getRows()return rows; void printArray(int l,int r); friend void plusArray(array *a,array *b,array *c,int l,int r); friend void reductArray(array *a,array *b,array *c,int l,int r); array()for(int i=0;ilines-1;i+) delete Ai; delete A; ;array: array(array

25、 &a) lines=a.lines; rows=a.rows; /*A=new int*lines; for(int i=0;i=lines-1;i+) Ai=new introws;*/ A=a.A; array:array(int a,int b,int c) lines=a;rows=b; A=new int*a; for(int i=0;i=a-1;i+) Ai=new intb; array:array(int a,int b) lines=a;rows=b; A=new int*a; cout请输入矩阵的元素:endl; for(int i=0;i=a-1;i+) Ai=new intb; for(int j=0;jAij; void array:printArray(int l,int r) for(int i=0;i=l-1;i+) for(int j=0;j=r-1;j+) coutsetw(4)Aij; coutendl; void plusArray(array *a,array *b,array *c,int l,int r) for(int i=0;i=l-1;i+) for(int j=0;j=r-1;j+) (*c).Aij=(*a).A

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1