收藏 分享(赏)

vc++课题实践.docx

上传人:yjrm16270 文档编号:7652260 上传时间:2019-05-23 格式:DOCX 页数:27 大小:205.60KB
下载 相关 举报
vc++课题实践.docx_第1页
第1页 / 共27页
vc++课题实践.docx_第2页
第2页 / 共27页
vc++课题实践.docx_第3页
第3页 / 共27页
vc++课题实践.docx_第4页
第4页 / 共27页
vc++课题实践.docx_第5页
第5页 / 共27页
点击查看更多>>
资源描述

1、课程实践报告设计题目: 计算机程序设计实践(VC+) 设计时间: 2012. 2.27 至 2012. 3.4 学 院: 机械工程学院 专业班级: 机械电子工程专业 3 班 学生姓名: 李 亮 学号 1040206311 指导老师: 华 伟 2012 年 3 月 4 日一、实践任务任务一:试建一个类 SP,求 f(n,k)= ,另有辅助k21k3kn函数 power(m,n)用于求 。nm具体要求如下:(1)私有成员数据。 int n , k:存放公式中 n 和 k 的值;(2)公有成员函数。 SP( int n1, int k1):构造函数,初始化成员数据。 int power(int m,

2、int n):求 。n int fun():求公式中的累加和。 void show():输出求得的结果。(3)在主程序中定义对象 s,对该类进行测试。任务二:建立一个类 PHALANX,生成并显示一个折叠方阵。折叠方阵如下图所示。折叠方阵的生成过程为:起始数置于方阵的左上角,然后从起始数开始递增,依次折叠构成方阵。1342113451627890具体要求如下:(1) 私有数据成员 int (*p)20:指向按照折叠规律存放方阵的二维整型数组。 int startnum:折叠方阵的起始数。 int n:存放方针的层数。(2) 公有成员函数 PHALANX(int s,int m):构造函数,初始

3、化成员数据。 void process():生成起始数为 startnum 的 n 行方阵。 void print():输出折叠方阵。 PHALANX():析构函数。(3) 在主程序中对该类进行测试。任务三:定义一个方阵类 Array,实现对方阵进行逆时针 90 度旋转。如图所示。165413209871395406278具体要求如下:(1) 私有数据成员: int a44:用于存放方阵。(2) 公有成员函数 Array(int a14,int n):构造函数,用给定的参数 a1 初始化数据成员 a。 void xuanzhuan():实现对方阵 a 进行逆时针 90 度的旋转。 void s

4、how():在屏幕上显示数组元素。(3) 在主程序中定义数组int b4= 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16作为原始数组。定义一个 Array 类对象 test,用 b 初始化 test,完成对该类的测试。任务四:建立一个类 NUM,指定数据范围内的所有合数(非质数)。提示:合数定义是“一个数,除了 1 和它本身,还有其他约数,这样的数叫合数”。具体要求如下:(1) 私有数据成员 *data :动态存放在指定范围内求出的所有合数。 int span1,span2:存放指定范围内的下限和上限。 int num:存放 span1 与 span2 之间的合

5、数个数。(2) 公有成员函数 NUM(int n1,int n2):构造函数,用参数 n1 和 n2 初始化 span1 和 span2,同时初始化 num。 int isComposite(int x):判断 x 是否为合数。若是合数,返回 1,否则返回 0。 void process():指定范围内的所有合数,吧它们依次存放在数组 data中,并将求出的合数个数赋给 num。 void print():输出求出的素数个数及所有合数,每行输出 8 个合数。 NUM():释放动态分配的存储空间。(3) 在主函数中完成对该类的测试。定义一个 NUM 类对象 test,指定查找范围为 100200

6、,即求 100 至 200 之间的所有合数。通过 test 调用成员函数完成求合数及输出合数的工作。任务五:试定义一个类 ID,实现根据某人的身份证号码判定其在所指定的年份时的虚岁年龄(即年份之差加 1)。具体要求如下:(1)私有数据成员char id19;存放身份证号码,身份证号为 18 位。int age;根据身份证号码和指定年份计算后得到的虚岁年龄。(2)公有成员函数ID(char*p);构造函数,利用参数 p 初始化身份证号码。Int substr(char*p0,char n0,int n);取字符串 p0 中从第 n0 个字符开始的连续 n 个字符(假设都是数字字符)并按顺序转化为

7、相应的整数值,结果作为函数的返回值。void fun(int y1);计算对应某个年份 y1,该身份证号码主人的虚岁年龄。对于 18 位身份证。从第七位(序号从 1 开始)开始的四位数字为其出生年份。void print();打印身份证号码及其年龄。(3)在主程序中对该类进行测试。任务六:试定义一个类 NUM,实现对于给定的任意整数,求出其降序数。具体要求如下:(1)私有数据成员int n;存放一个整数。Int m;存放 n 的降序数。(2)公有成员函数NUM(int x=0)构造函数,用参数 x 初始化数据成员 n。void decrease();求数据成员 n 的降序数,并存放到数据成员

8、m 中。void print();输出原整数及其降序数。(3)在主程序中对该类进行测试。任务七:试定义一个类 NUM,实现求大于整数 m 的最小的 k 个自反数。具体要求如下:(1)私有数据成员int *p;P 指向用于存储满足条件的 k 个自反数的动态数组。Int m,k;(2)公有数据成员NUM(int t1,int t2);构造函数,用参数 t1,t2 分别初始化 m,k,并为 p 分配相应的存储空间。int isinv(int n); 判断整数 n 是否为自反数,如果是,则返回 1,否则返回0。void fun(); 根据题意将求得的自反数按从小到大的顺序存放在 p 所指定的动态数组中

9、。要求利用成员函数 isinv()来判断整个整数是否为自反数。void print();输入整数及输出满足条件的自反数。NUM();析构函数,释放动态内存。(3)在主程序中对该类进行测试。任务八:试定义一个类 Num,其功能是求出 1000 以内所有满足下列条件的整数:(1)该整数是一个素数,(2)其各位数字之和与它的平方数的各位数字之和相等。具体要求如下:(1)私有数据成员int a20;存放结果。int count;结果数组的元素个数。(2)公有成员函数Num();构造函数。设置 count 的初始值为 0。int prime(int x);判断参数 x 是否为素数,如果是则返回 1,否则

10、返回 0。int digitsum(int x);计算参数 x 的各位数字之和,并返回计算的结果。void fun();找出 1000 以内所有满足条件的数,并存放到成员数组 a 中,同时计数。void print();输出所有符合条件的数。(3)在主函数中完成对该类的测试。二、系统设计任务一1、 任务(系统)分析通过类 SP 的成员函数 power(int m,int n)求出 m 的 n 次方,int fun()求出公式的累加和。函数 show()输出求得的结果。类的定义如下:class SPprivate:int n,k;public:SP(int n1,int k1);int powe

11、r(int m,int n);int fun();int show();2、 算法设计1) 求 m 的 n 次方定义变量 m 和 n 利用循环语句 for(int i=1;ibd;SP s(b,d);s.show();运行结果:任务二1. 任务(系统)分析构造函数 PHALANX(int s,int m)初始化成员数据。类的函数 precess()生成起始数为 startnum 的方阵。函数 print()输出折叠方阵。2. 算法设计定义二维数组 pij,利用循环语句for(int i=0;i=0;j-)pij=startnum+;生成折叠方正。3. 系统测试在主函数中以整数初始化 PHALA

12、NX 的对象,并调用其成员函数 show()输出测试结果。主函数定义如下:void main()int a=1,b=4;PHALANX test(a,b);test.process();test.print();运行结果:任务三1. 任务(系统)分析类的构造函数 Array(int a14)用给定的参数 a1 初始化成员数据 a。成员函数旋转()实现对方阵 a 进行逆时针 90 度的旋转。Show()在屏幕上显示出数组元素。2. 算法设计1) 利用循环语句 for(int i=0;iy;char c19=“32062119910522831x“;ID test(c);test.fun(y);t

13、est.print();运行结果:任务六1. 任务(系统)分析用类的构造函数初始化数据成员 n,成员函数 decrease()求尘缘 n 的降序数,并存放到数据成员 m 中;将整数的各位数字依次存储到一维整型数组 a 中,再将 a 中的元素降序排列,最后利用数组 a 中的元素合成整数。2. 算法设计以用一下程序语句实现 n 的降序数int a100,j=1;for(int i=0;i+,j+)if(n/10)ai=n%10;n/=10;else ai=n;break;int t;for(int k1=0;k1ak1)t=ak1;ak1=ak2;ak2=t;m=0;for(int n1=0;n1

14、c;NUM test(c);test.decrease();test.print();运行结果:任务七1. 任务(系统)分析类的构造函数的参数 t1、 t2 分别初始化 m、k 并为 p 分配相应的空间。函数isinv(int n)判断 n 是否为自反数。函数 fun()将求得的自反数按从小到大的顺序存到 p 所指向的动态存储空间。2. 算法设计1) 对成员数据的初始化m=t1;k=t2;p=new int k2) 判断 n 是否为自反数,是则返回 1 否则返回 2。int a100,j=1;for(int i=0;i+,j+)if(n/10)ai=n%10;n/=10;else ai=n;b

15、reak;for(int k1=0,k2=j-1;k1ab;NUM test(a,b);test.fun();test.print();运行结果:任务八1. 任务(系统)分析类的成员函数 prime(int x)判断参数 x 是否为素数;digitsum(int x)计算参数的各位数字之和。Fun()找出 1000 以内的所有满足条件的数,并存放到成员数组 a 中。2. 算法设计1) 利用以下语句判断参数是否为素数if(x=1)return 0;for(int i=2;iclass SPprivate:int n,k;public:SP(int n1,int k1);int power(int

16、 m,int n);int fun();int show();SP:SP (int n1,int k1)n=n1;k=k1;int SP:power(int m,int n)int t=1;for(int i=1;ibd;SP s(b,d);s.show();任务二#includeclass PHALANXint(*p)20;int startnum;int n;public:PHALANX(int s,int m);void process();void print();PHALANX();PHALANX:PHALANX(int s,int m)startnum=s;n=m;p=new in

17、t 2020;void PHALANX:process()for(int i=0;i=0;j-)pij=startnum+;void PHALANX:print()for(int i=0;iclass Arrayprivate:int a44;public:Array(int a14,int n);void xuanzhuan();void show();Array:Array(int a14,int n)for(int i=0;iclass NUMprivate:int *data;int span1,span2;int num;public:NUM(int n1,int n2);int i

18、scomposite(int x);void process();void print();NUM();NUM:NUM(int n1,int n2)span1=n1;span2=n2;data=new int 100;int NUM:iscomposite(int x)for(int i=2;iclass IDchar id19;int age;public:ID(char *p);int substr(char *p0,char n0,int n);void fun(int y1);void print();ID:ID(char *p)for(int i=0;iy;char c19=“320

19、62119910522831x“;ID test(c);test.fun(y);test.print();任务六#includeclass NUMint n;int m;public:NUM(int x=0);void decrease();void print();NUM:NUM(int x)n=x;void NUM:decrease()int a100,j=1;for(int i=0;i+,j+)if(n/10)ai=n%10;n/=10;else ai=n;break;int t;for(int k1=0;k1ak1)t=ak1;ak1=ak2;ak2=t;m=0;for(int n1=

20、0;n1c;NUM test(c);test.decrease();test.print();任务七#includeclass NUMint *p;int m,k;public:NUM(int t1,int t2);int isinv(int n);void fun();void print();NUM();NUM:NUM(int t1,int t2)m=t1;k=t2;p=new int k;int NUM:isinv(int n)int a100,j=1;for(int i=0;i+,j+)if(n/10)ai=n%10;n/=10;else ai=n;break;for(int k1=0

21、,k2=j-1;k1ab;NUM test(a,b);test.fun();test.print();任务八#includeclass Numint a1120;int count;public:Num();int prime(int x);int digitsum(int x);void fun();void print();Num:Num()count=0;int Num:prime(int x) if(x=1)return 0;for(int i=2;ix;i+) if(x%i=0)return 0;break;return 1;int Num:digitsum(int x)int s=0;while(x)s+=x%10;x/=10;return s;void Num:fun()for(int i=1;i=1000;i+)int j;if(prime(i)j=i*i;if(digitsum(i)=digitsum(j)acount=i;count+;void Num:print()for(int i=0;icount;i+)coutaitai*ain;void main()Num test;test.fun();test.print();

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报