




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
江苏科技大学课程实践报告设计题目: 计算机程序设计实践(VC++)设计时间:2012.3.27至2012.3.4学 院: 机械工程学院 专业班级:机械电子工程专业10402062班学生姓名: 王磊学号1040206223指导老师: 华伟 2012年3月1日、实践任务任务一:建立一个STRING,,将一个字符串交叉插入到另一个字符串中(假设两字符串等长)。具体要求如下:私有数据成员charstr1[80]:存放被插入的字符串。charstr2[40]:存放待插入的字符串。私有数据成员charstr1[80]:存放被插入的字符串。charstr2[40]:存放待插入的字符串。公有成员函数••(2)STRING(char*s1,char*s2):构造函数,用si和s2初始化strl和str2。voidprocess():将str2中的字符插入到strl中。voidprint():输出插入后的字符串。(3)在主函数中定义STRING类的对象test对该类进行测试。任务二:建立一个STRING,,将一个字符串交叉插入到另一个字符串中(假设两字符串不等长)。具体要求如下:(1) 私有数据成员charstr1[80]:存放被插入的字符串。charstr2[40]:存放待插入的字符串。charstr3[100]:存放插入后的字符串。(2) 公有成员函数STRING(char*s1,char*s2):构造函数,用s1和s2初始化str1和str2。voidprocess():将str2中的字符插入到str1中,存放到str3中。voidprint():输出插入后的字符串。(3) 在主函数中定义STRING类的对象test对该类进行测试。任务三:建立一个类NUM,并统计特定序列中相同的数字的个数。具体要求如下:(1) 私有数据成员intdata[25]:随机生成25个在0-9之间的数字。intnum[10]:储存每个数字出现的个数。(2) 公有成员函数NUM(intdata):构造函数,初始化数组data。Voidprocess():。数组data中每个数字出现的个数,并保存到数组num中。voidprint():输出每个数字出现的个数,每行输出5个。(3) 在主程序中定义一个对象,对该类进行测试。任务四:建立一个类NUM,求指定数据范围内所以的素数。提示:素数定义是“只能被1和它本身整除的整数”,即质数。具体要求如下:私有数据成员intdata[10]:依次存放原始数据。intprime[10]:存放指定数据内所求出的所以素数。intnum:存放素数个数。公有成员函数NUM(intn[]):构造函数,用参数n初始化data,同时初始化num为0。Intisprime(intx):判断x是否为素数。若是素数,返回1,否则,返回0。voidprocess():求指定data数组中的所有素数,把它们依次存放在数组prime中,并求出素数的个数赋给num。voidprint():输出求出的素数个数级所有素数,每行输出4个素数。在主函数中完成对该类的测试。定义NUM类对象test调用成员函数完成求素数及输出素数的工作。原始数据为{4,5,6,11,36,29,1,101,56,199}。任务五:试定义一个类ID,实现根据某人身份证号码判断在其指定年份时的虚岁年龄。具体要求如下:私有数据成员charid[19]:存放身份证号码,身份证号码为18位。intage:根据身份证号码和指定年份计算后得到的虚岁年龄。公有成员函数ID(char*p):构造函数,利用参数p初始化身份证号码。Intsubstr(char*p0,charn0,intn):取字符串p0中从第n0个字符开始的连续n个字符(假设都是数字字符)并按顺序转换为相应的整数值,结果作为函数的返回值。voidfun(inty1):计算相对某个年份一,该身份证号码主人的虚岁年龄。对于18位身份证,从第七位(序号从1开始)开始的四位数字为其出生年份。voidprint():打印身份证号码及其年龄。在主程序中对该类进行测试。任务六:试定义一个类NUM,实现对于给定的任意整数,求出其降序数。具体要求如下:私有数据成员intn:存放一个整数。intm:存放n的降序数。公有成员函数NUM(intx=0):参数x初始化数据成员n。voiddecrease():求数据成员n的降序数,并存到数据成员m中。voidprint():按输入/输出示例格式输出原整数及其降序数。在主函数中对该类进行测试。任务七:试定义一个类NUM,实现求大于整数m的最小的k个自反数。具体要求如下:私有数据成员int*p:p指向用于储存满足条件的k个自反数的动态数组。intm,k:公有成员函数NUM(intt1,intt2):构造函数,用参数t1、t2分别初始化m、k,并为p分配相应的存储空间。Intisinv(intn):判断整数n是否为自反数,如果是,则返回1,否则返回0.voidfun():根据题意将求的的自反数按从小到大的顺序存放到p所指向的动态数组中。要求利用成员函数isinv()来判断某个整数是否为自反数。voidprint():按输出示例格式输出满足条件的自反数。~NUM():析构函数,释放动态内存。在主函数中对该类进行测试。任务八:。试定义一个类Num,其功能是求出1000以内满足所有下列条件的整数:(1)该整数是一个素数,(2)其各位数字之和和它的平方数的各位数字之和相等。具体要求如下:私有数据成员Inta[20];;存放结果。Intcount;结果数组的元素个数。公有成员函数Num();构造函数。设置count的初始值为0。intprime(intx);判断参数x是否为素数,如果是返回1,否则返回0。intdigitsum(intx);计算参数x的各位数字之和,并返回计算的结果。voidfun();找出1000以内所有满足条件的数,并存放到数组a中,同时计数。voidprint();按输出示例格式输出所有满足条件的数。在主函数中完成对该类的测试。二、系统设计任务一任务(系统)分析通过类STRING的成员函数process()将s1,s2中的字符赋给str1,str2。类的定义如下:classSTRING{private:charstr1[80];charstr2[40];public:STRING(char*s1,char*s2){strcpy(str1,s1);strcpy(str2,s2);}算法设计求字符串的长度遍历两个字符串的所有元素,将str2中的元素插入strl,同时i累加系统测试在主函数中以整数初始化STRING的对象,并调用其成员函数print()输出测试结果(字符串strl)。主函数定义如下:voidmain()(chars1[]="abcde”;chars2[]="ABCDE";STRINGtest(s1,s2);cess();test.print();}用以测试的字符串为:ABCDEabcde预期的输出结果为:字符串为:aAbBcCdDeE任务二任务(系统)分析通过类STRING将s1,s2中的字符赋给str1,str2.。类的定义如下:classSTRING{charstr1[60];charstr2[40];charstr3[100];public:STRING(char*s1,char*s2){strcpy(str1,s1);strcpy(str2,s2);}算法设计比较两个字符串的长度,使得str1字符串中的字符数量比str2中的多,遍历str2中的字符,利用自增使得字符依次插入。系统测试在主函数中以整数初始化STRING的对象,并调用其成员函数print()输出测试结果(字符串str1)。主函数定义如下:voidmain(){STRINGtest("ABCDEFG”,”abcde”);cess();test.print();}用以测试的字符串为:ABCDEFGabcde预期的输出结果为:字符串为:aAbBcCdDeEFG任务三任务(系统)分析通过NUM()函数进行赋值;通过process()函数统计每个数字出现的次数;通过print()函数输出结果。类的描述与定义classNUM{intdata[25];intnum[10];public:NUM(intdata1[]){for(inti=0;i<25;i++){data[i]=data1[i];num[i]=0;}}算法设计intnum[10]储存每个数字出现的个数,voidprocess()来统计数组data中每个数字出现的个数,并保存到数组num中。系统测试主函数定义如下:voidmain(){intdata[25]={0,2,1,1,3,6,5,2,4,9,8,6,0,4,8,7,4,1,2,3,5,1,0,8,9};NUMtest(data);cess();test.print();}任务四任务(系统)分析通过类NUM构造函数,将n[]中的数字赋给data[],类的定义如下:classNUM{intdata[10];intprime[10];intnum;public:NUM(intn[]){for(inti=0;i<10;i++)data[i]=n[i];num=0;}算法设计首先利用函数isprime()测试数组中的元素是否为素数,然后将素数存入到prime[]中系统测试在主函数中初始化数组a[],然后测试成员函数,调用voidprint()输出结果。主函数定义如下:voidmain(){inta[]={4,5,9,11,36,29,31,101,56,199};NUMtest(a);cess();test.print();}用以测试的数组为{4,5,9,11,36,29,31,101,56,199}预期的结果为:5112931101199任务五1、任务(系统)分析构造函数初始化身份证号码,在substr(char*p0,charn0,intn)中将数字字符变成一个整数,fun(inty1)中计算虚岁年龄,通过调用substr(char*p0,charn0,intn)寻找出生年份,并根据指定年份求虚岁年龄。2、算法设计substr(char*p0,charn0,intn)定义一个sum=0,通过循环语句进行sum=10*sum+p0[i]-'0',求出一个整数,返回。fun(inty1)调用substr(char*p0,charn0,intn)进行age=y1-substr(id,7,10)+1,求出虚岁年龄。3、系统测试在主函数中初始化ID的对象,并调用其成员函数print()输出测试结果。主函数定义如下:voidmain()inta;charb[19]={'0'};cout<<"请输入指定年份和身份证号码:”;cin>>a;cin>>b;IDtest(b);test.fun(a);test.print();}测试数据:2011 3206211991050522831X预期结果:指定年份:2011身份证号:3206211991050522831X虚岁年龄:21任务六1、 任务(系统)分析构造函数初始化数据成员n,decrease()函数求n的降序数。2、 算法设计decrease()中将整数的各位数字通过循环语句求余依次存放到一维数组a中,再将数组a中的元素用指针进行降序排列,最后用数组a中的元素组成整数。3、系统测试在主函数中初始化NUM的对象,并调用其成员函数print()输出测试结果。主函数定义如下:voidmain(){inta;cout<<"输入一个正整数:";cin>>a;NUMtest(a);test.decrease();test.print();}测试数据:431252预期结果:输入一个正整数:431252该数的降序数为:543221任务七1、任务(系统)分析构造函数初始化m、k、并为p分配相应的存储空间,isinv(intn)判断一个数是否为自反数,fun()根据题意将求得的自反数按从小到大的顺序存放到p所指向的动态数组中。2、 算法设计isinv(intn)中通过循环语句求余将整数的逆序,比较逆序前后的两个数若相等则返回1,否则返回0.fun()通过调用isinv(intn)将求得的自反数存放在p指向的动态数组中。3、 系统测试在主函数中初始化NUM的对象,并调用其成员函数print()输出测试结果。主函数定义如下:voidmain(){intm,k;cout<<"请输入m和k:";cin>>m;cin>>k;NUMtest(m,k);test.fun();test.print();}测试数据:1000 6预期结果:大于1000的6个自反数为:10011111 1221 1331 1441 1551任务八1、 任务(系统)分析构造函数,初始化count=0,prime(intx)判断x是否为素数,digitsum(intx)计算x的各位数字之和,fun()找出1000以内所有满足条件的数存放在成员数组a中同时计数。2、 算法设计prime(intx)通过遍历2~x之间的所有数,若存在x的约数,返回0,否则返回1.digitsum(intx)通过循环求余得到x各位数字之和。fun()遍历2~1000内的所有数若是素数并且其各位数字之和与其平方数的各位数字之和相等,则存放在a中。3、系统测试在主函数中初始化Num的对象,并调用其成员函数print()输出测试结果。主函数定义如下:voidmain(){Numtest;test.fun();test.print();}预期结果:19 361199 39601379 143641739 546121三、实践小结本次实践让我学会很多,尤其是掌握随机函数的运用,运用类,数组等来解决问题方面有了更深的认识。起初,自己也碰到了很多很多问题,一时找不清方向,但是冷静下来,好好地仔细地考虑,再加上老师的细心指导,以及同学间的讨论,最后问题都被一一克服。我明白了这门课程对于以后的就业很重要,因为现在毕竟是信息化的时代了,所以我会精益求精,把这门课学得更好。四、 参考文献2008~2011二级考试试卷汇编VisualC++语言分册 苏州大学出版社VisualC++程序设计 苏州大学出版社五、 源程序清单任务一#include<iostream.h>#include<string.h>classSTRING{private:charstr1[80];charstr2[40];public:STRING(char*s1,char*s2){strcpy(str1,s1);strcpy(str2,s2);}voidprocess(){chartemp[100]={0};intj=0;for(inti=0;i<(int)strlen(str1);i++){temp[j++]=str1[i];temp[j++]=str2[i];}strcpy(str1,temp);}voidprint(){cout<<"插入后字符串为:"<<str1<<'\n';}};voidmain(){chars1[]="abcde”;chars2[]="ABCDE";STRINGtest(s1,s2);cess();test.print();任务二#include<iostream.h>#include<string.h>classSTRING{charstr1[60];charstr2[40];charstr3[100];public:STRING(char*s1,char*s2){strcpy(str1,s1);strcpy(str2,s2);}voidprocess(){inti=0,j=0;while(str2[j]){str3[i++]=str2[j];str3[i++]=str1[j++];}while(str1[j]){str3[i++]=str1[j++];}str3[i]='\0';}voidprint(){cout<<str3<<endl;}};voidmain(){STRINGtest("ABCDEFG","abcde");cess();test.print();}任务三#include<iostream.h>classNUM{intdata[25];intnum[10];public:NUM(intdata1[]){for(inti=0;i<25;i++){data[i]=data1[i];num[i]=0;}}voidprocess(){for(inti=0;i<25;i++)if(data[i]>=0&&data[i]<=9){intj=data[i];num[j]++;}}voidprint(){for(inti=0;i<10;i++){if(i%5==0)cout<<endl;cout<<i<<"出现个数:"<<num[i]<<'\t';}}};voidmain(){intdata[25]={0,2,1,1,3,6,5,2,4,9,8,6,0,4,8,7,4,1,2,3,5,1,0,8,9};NUMtest(data);cess();test.print();任务四#include<iostream.h>classNUM{intdata[10];intprime[10];intnum;public:NUM(intn[]){for(inti=0;i<10;i++)data[i]=n[i];num=0;}intisprime(intx){intm=1;for(inti=2;i<x;i++)if(x%i==0){m=0;break;}returnm;}voidprocess(){for(inti=0;i<10;i++)if(isprime(data[i]))prime[num++]=data[i];}voidprint(){cout<<num<<'\n';for(inti=0;i<num;i++)cout<<prime[i]<<'\t*;if((i+1)%4==0)cout<<*\n*;}cout<<'\n';}};voidmain(){inta[]={4,5,9,11,36,29,31,101,56,199};NUMtest(a);cess();test.print();任务五#include<iostream.h>classID{charid[19];intage;public:ID(char*p);intsubstr(char*p0,charn0,intn);voidfun(inty1);voidprint();};ID::ID(char*p){for(inti=0;i<19;i++)id[i]=p[i];}intID::substr(char*p0,charn0,intn){intm=0;for(inti=n0;i<n;i++)m=m*10+(p0[n0+i-1]-48);returnm;}voidID::fun(inty1){intm=substr(id,11,4)+1;y1=y1-m;age=y1+10;}voidID::print(){fun(substr(id,1,4));cout<<"虚岁年龄:"<<age<<endl;}voidmain(){charp1[20];cin.getline(p1,19);IDtest(pl);test.print();任务六#include<iostream.h>classNUM{intn;intm;public:NUM(intx);voiddecrease();voidprint();};NUM::NUM(intx){n=x;}voidNUM::decrease(){inta[100],t=n,i=0;while(t){a[i++]=t%10;t/=10;}for(intk=0;k<i-1;k++){for(intj=k+1;j<i;j++)if(a[j]>a[k]){t=a[j];a[j]=a[k];a[k]=t;}}m=0;for(k=0;k<i;k++)m=m*10+a[k];}voidNUM::print(){cout<<"降序排序为"<<m<<endl;}voidmain(){intx;cin>>x;NUMtest(x);test.decrease();test.print();}任务七#include<iostream.h>classNUM{int*p;intm,k;public:NUM(intt1,intt2);intisinv(intn);voidfUn();voidprint();~NUM(){del
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 社会舆论引导策略:2024年记者证试题及答案
- 2025石嘴山市房屋租赁合同
- 2024年计算机基础考试学习资源试题及答案
- 云南省昭通市市直中学2024-2025学年高二下学期3月第一次月考语文试卷( 含答案)
- 打好语文基础的试题及答案
- 就业困难群体创业支持保障方案
- 2025二手车交易合同范本()
- 2025企业签订无固定期限劳动合同
- 2025健身器材租赁合同范本
- 辽宁广告职业学院《国际法前沿》2023-2024学年第二学期期末试卷
- 招标投标法培训课件
- 针灸治疗呃逆
- 2024年中考英语复习:阅读七选五 专项练习题汇编(含答案解析)
- 《吸收与解吸》课件
- 综合实践活动(1年级下册)第1课时 走近身边孝顺的好榜样-课件
- 初中信息技术教学中的项目式学习
- 部编版语文二年级下册第3单元核心素养教案
- DB43-T 1712-2019 银行业金融机构智能预警系统安全防范要求
- 2023年云南省接受军转干部安置考试试题
- 初三英语试卷分析失分原因和改进措施
- 关于在生产过程中物料流转的交接和管理规定
评论
0/150
提交评论