江苏科技大学_C 课程实践报告答案汇总

合集下载

实验报告参考答案

实验报告参考答案

请大家先自己做,然后看参考答案。

开始做错了,没关系,按照参考答案修改就可以了。

有修改痕迹至少说明此题你做过,总比直接抄答案好。

人工分析结果,一定要写,不会的,填实验运行结果。

C实验报告是全校统一的,相对而言外语系部分同学做题可能遇到困难多些,所以把答案给大家,自己根据自己情况好好利用参考答案。

实验报告成绩80-100. 平时上机实验比较认真的、学的不错的同学,我心里还是有数的。

5.26上机检查A1021班的1-5次实验报告,6.9上机检查A1021班的1-7次实验报告。

实验报告可以晚点交,留给大家期末考试复习。

6月底交给我就可以了,到时候再通知。

《C程序设计》实验报告学期:2010--2011学年第二学期教师姓名:教研室:实验1 熟悉C语言程序的运行环境,掌握数据描述1.1 实验目的1.了解在开发环境中如何编辑、编译、连接和运行一个C语言程序。

2.通过运行简单的C语言程序,初步了解C语言程序的结构特点。

3.掌握C语言数据类型的概念,学会使用C语言的相关运算符构成表达式。

1.2 实验预习1.熟悉Visual C++的启动和退出及Visual C++中的编辑、编译、连接和运行命令。

2.了解下列命令及函数:include<stdio.h>、main、printf、scanf。

3.熟悉Visual C++环境下每个菜单项的功能及相关命令对应的操作。

4.各种数据类型变量的定义形式及取值范围;熟悉下列标识符的含义。

int、short (int)、long (int)、unsigned (int)、float、double、char、void 5.各类运算符的优先级和结合规则。

6.常量与变量的区别和联系。

运行环境:1.双击桌面Visual C++快捷方式进入Visual C++,或通过执行“开始——>程序——> Microsoft Visual Studio 6.0——> Microsoft Visual C++6.0”或执行文件"C:\Program Files\Microsoft Visual Studio\COMMON\MSDev98\Bin\MSDEV.EXE"。

江苏科技大学2011C++期末试卷(附答案)

江苏科技大学2011C++期末试卷(附答案)

江苏科技大学2011C++期末试卷(附答案)使用前注意保密江苏科技大学非计算机专业学生Visual C++ 程序设计语言期末考试试卷代号:VC02说明:1、本试卷为笔试题,含选择、填空、及编程三部分。

2、本试卷满分为100分,考试时间为120分钟。

3、所有答案必须写在答题纸上,否则不计成绩。

3、填空题,请注意空格号(不是题号)与答题纸上的编号对应。

4、答题纸上必须写明学号(含班级号)、姓名。

计算机基础教研室一、选择题(10×2=20分)1、设CH为字符型变量,则语句CH=CH+’e’-‘E’;的作用可能是:(1)。

A.将大写字母转换成对应的小写字母B.将字母CH转换成eC.将小写字母转换成对应的大写字母D.将字母CH转换成E2、设有说明语句“int a=4,b=5,c=6,d=7,m=1,n=1;”,则执行语句“c=(m=a>b)&&(n=c>d);”后,m和n的值分别为(2)。

A.1、1 B.1、0 C.0、1 D.0、03、下列数组的定义和使用中,正确的是(3)。

A.char a[20];a[20]=”Hello”;B.char a[20];a=”Hello”;C.int n=20;char a[n];D.char a[]=”Hello”;4、设类A为类B的基类,类B为类C的基类,并有如下定义:Aa1,*pa;B b1,*pb;C c1,*pc;则以赋值存在语法错误的是(4)。

A.pa=&b1 B.pb=&c1 C.A a2=&c1 D.pc=&b1;5、设有变量说明“int a=1,b=2;float x=1.5,y=1.2;”,下列语句正确的是(5)。

A.y=x%a; B.int(y)=a; C.x+y=a+b; D.a=x+y;6、对于下面的一组函数:void fun (int a, float x); // 函数1void fun (int a, int x); // 函数2void fun (float a, float x ); // 函数3void fun (float a, int x ); // 函数4void fun (int a[], int n); // 函数5void fun (int *p, int n); // 函数6以下说法不正确的是:(6)。

VC++教材练习题参考答案 江苏科技大学

VC++教材练习题参考答案 江苏科技大学
cout<<"原字符串为:\n"<<s1<<endl;
s2=str;//A
while(*s2)s2++;
s2--;//B
while(s1<s2){
ch=*s1;
*s1=*s2;
*s2=ch;
s1++;
s2--;
}
cout<<"逆序后的字符串为:\n"<<str<<endl;
}
/*其中A到B行可改为:
cout<<"数组a中的奇数有:\n";
for(int i=0;i<10;i++)
if(p[i]%2)
{
k++;
cout<<*(p+i)<<'\t';
if(k%5==0)cout<<'\n';
}
cout<<"\n";
}
//3.产生一个随机的二维数组b[4][5],并按矩阵的方式输出
#include<iostream.h>
}
cout<<endl;
}
//5.小写字母改写为大写字母
#include<iostream.h>
void main()
{
char str[100];
cout<<"请输入一个含空格字符的字符串。\n";
cin.getline(str,100);
for(int i=0;str[i];i++)

江苏科技大学课程实践设计报告VC++

江苏科技大学课程实践设计报告VC++

江苏科技大学课程实践报告设计题目: 计算机程序设计实践(VC++) 设计时间: 2010 - 03-01 至2010- 03-07 学院:专业班级:学生姓名: 学号指导老师:2010年03月实践一一、实践任务1.基础题第2题:试建立一个类SP,求f(n,k)=1k + 2k + 3k + …… + n k,另有辅助函数power(m,n)用于求m n。

具体要求如下:(1)私有数据成员●int n,k;存放公式中n和k的值;共有成员函数(2)共有成员函数●SP(int n1,int k1):构造函数,初始化数据成员数据n和k。

●int power(int m,int n):求m n●int fun():求公式的累加和●void show():输出求得的结果(3)在主程序中定义对象s,对该类进行测试。

二、系统设计(1)系统功能分析本系统主要实现函数f(n,k)=1k + 2k + 3k + …… + n k的求值。

(2)类的定义与描述(3)编写源程序如下:#include <iostream.h>class SP{int n;int k;public:SP (int n1,int k1){n=n1;k=k1;}int power (int m,int n){int s=1;for (int i=1;i<=n;i++)s*=m;return s;}int fun ( ){int f=0;int j=1;while (j<=n){f+=power(j,k);j++;}return f;}void show(){cout<<fun()<<endl;}};void main (){int n,k;cin>>n>>k;SP s(n,k);s.show();}三.系统测试对类进行测试,测试数据为2 3;预期输出结果为9四.实验小结此题的关键是fun函数中条件的控制,通过此次实践,熟悉了类的基本构造,学会了用类来求解函数。

江苏科技大学2012-2013 C++补考试卷(附答案)

江苏科技大学2012-2013 C++补考试卷(附答案)

《计算机程序设计(VC++)期末试卷》(A卷) (试卷代号 16,考试日期2013年8月29日)学号:姓名:一、选择题(每题2分,计20分)1、下列定义变量和常量的语句中,语法不正确是〔 1 〕。

A. int const a=10;B. const int a=10;C. #define PI 3.14159;D. int n=10,a[n];2、下列叙述中,不正确的是〔 2 〕。

A. 一个函数的函数体中可以没有 return 语句B. 一个函数的函数体中可以有多个 return 语句C. 一次函数调用可以通过函数体中的多个 return 语句,返回多个值D. return 语句的 return 后面可以有表达式,也可以为空3、对于如下3个循环语句:while(e1) 循环体;for(;e2;) 循环体;do 循环体 while(e3);则下列说法正确的是〔 3 〕。

A. 表达式 e1 可省略B. 表达式 e2 可省略C. 表达式 e3 可省略D. 表达式e1、e2 和 e3 均可省略4、设有说明语句如下:int a[20]; char b[20];则下列选项中,存在语法错误的语句是〔 4 〕。

A. cin>>a;B. cout<<a;C. cin>>b;D. cout<<b;5、设有说明语句如下:char s[]=“string”,*p=s;则下列选项中,值为 6 的表达式是〔 5 〕。

A. strlen(p)B. sizeof(p)C. sizeof(*p)D. sizeof(s)6、设有说明语句如下:float a[3][4],*p1,(*p2)[3],(*p3)[4];则下列选项中,存在语法错误的语句是〔 6 〕。

A. p1=*a;B. p1=a[0];C. p2=a;D. p3=a;7、下列关于构造函数和析构函数的叙述中,正确的是〔 7 〕。

c,,实验报告定义一个point类

c,,实验报告定义一个point类

c,,实验报告定义一个point类C实验报告答案完整版实验一、实验学时完成本实验需4学时。

二、实验目的1、阅读程序题1简单判定性问题求解(1)掌握C语言数据类型,熟悉如何定义一个整型、字符型的变量,以及对它们赋值的方法;(2)掌握不同的类型数据之间赋值的规律;(3)掌握数据在内存中的存储方式;(4)学会输入、输出函数的基本格式和使用方法;(5)学会使用有关算术运算符、逻辑运算符、关系运算符,以及包含这些运算符的表达式。

2、编程题(1)如何运用if-else判定性结构进行程序设计;(2)如何运用switch判定性结构进行程序设计。

3、调试题(1)熟悉C程序的编辑、编译、连接和运行的过程。

三、实验指导为了达到最佳的实验效果,以下提供几条适于编程的指导意见,可供参考。

1、阅读程序题应先运用自己在课堂所学的知识,推导出结果,在上机时输入计算机,印证自己推导的结果,注意观察数据在内存中的存储方式、含不同种运算符表达式的输出结果。

2、编程题必须首先画出流程图,并反复思考判断程序设计的正确性,完成程序的设计。

要注意简单判定性问题的结构选择。

3、调试题应明确程序的调试、测试是一项非常烦琐的工作,也是非常重要的工作。

对于初学者来说应该建立良好的习惯,在调试程序的时候,应该尽可能考虑到程序运行时各种可能情况。

- 1 -四、实验内容1、阅读程序题(1)main( ){/*定义字符型变量*/char c1,c2; /*向字符变量赋以整数*/ c1=97; c2=98;printf(%c %c\n,c1,c2); /*以字符形式输出*/ printf(%d %d\n,c1,c2); /*以整数形式输出*/}思考:可否改成int c1,c2;输出结果是?相同(2)main(){int a=7,b=5;printf(%d\n,b=b/a);}思考:若将printf语句中%d变为%f,可否输出分式的值?可以(3)main(){int a=9;a+=a-=a+a; /*包含复合的赋值运算符的赋值表达式*/ printf(%d\n,a);}思考:赋值表达式a+=a-=a+a的求解步骤?第一步:a=a-(a+a)=-9 第二步a=a+a=18 (4)main(){int k=-1;printf(%d,%u\n,k,k); }- 2 -思考:-1在内存中的存储形式?取反加一11111111111111111111111111111111(32个)(5)main(){unsigned x1; int b=-1;x1=b; /*有符号数据传送给无符号变量*/ printf(%u,x1);}(6)main(){int a=3,b=4,c=5;printf(%d\n,(!(ab))&amp;&amp;(c=c+1));printf(%d,c); }思考:若将第一个1(换行)6 (7)main(){int a=1,b=2,c=3;if(c=a) ; printf(%d\n,c); elseprintf(%d\n,b); }2、编程序并上机调试运行(包括题目及要求、流程图、程序清单、测试数据及结果)(1)将一个百分制成绩转换成等级制成绩,百分制与等级制的对应- 3 -具体要求如下:1) 用switch语句实现该功能;2) 用键盘输入百分制成绩,输入前要有提示信息,对于不合理的数据应输出错误信息;3) 输出结果应包含百分制成绩和成绩等级;4) 分别输入成绩-10,30,60,68,75,83,95,102,查看记录运行结果。

江苏科技大学c++课程解析实训答案

江苏科技大学c++课程解析实训答案

《解析与实训》习题及实验参考解答目录第一章 (1)第二章 (4)第三章 (9)第四章 (20)第五章 (28)第六章 (32)第七章 (43)第八章 (67)第九章 (68)第十章 (78)第一章一、选择题1. A2.D3.A4.B5.A6.D7.D8.C9.D 10.C11.D 12.C 13.B 14.A 15.C 16.B 17.A 18.C 19.B 20.D21.A 22.D 23.B 24.B 25.B 26.A 27.C 28.B 29.D 30.C 31.A二、填空题1. #include <iostream.h> (或# include "iostream.h")2. 编译连接3. .cpp .obj .exe4. 十5. setw() iomanip.h6. a b c7. a b (注:输出第二项是空格)8. 109. 110. 字符11. 八十六12. 4.013. ; (分号)14. 105 7015. 6016. 817. 718. 1519. int(x) 或(int)x三、编程题1.#include<iostream.h>#define PI 3.1415926void main(){float r,h,area;cout<<"输入圆柱体的半径和高(r,h):"<<endl;cin>>r>>h;area=PI*r*r*h;cout<<" 圆柱体的体积为:"<<area<<endl;}2.#include<iostream.h>void main(){int x,a,b,c ,m,n;cout<<"输入一个三位整数x:"<<endl;cin>>x;a=x/100;b=x/10%10;c=x%10;m=c*100+b*10+a;n=m-x;cout<<" 反序组成的新3位整数为:"<<m<<endl;cout<<" 新3位整数减去原3位整数的值为:"<<n<<endl; }四、实验1.#include<iostream.h>void main(){cout << "中华人民共和国"<<endl ;}2.# include <iostream.h>void main (void){ int a,b,c;cin>>a>>b;c= a+b ;cout<<"c="<<c<<endl;}3.结果:1 0 1 0 1(1)结果为:10 16 16 8 10(2)换成dec结果为:a 10 10 8 a换成oec结果为:12 20 20 10 12 4.# include <iostream.h># include <math.h>void main (void){ int a,b,c,s,area;cout<<" 输入三角形三边长a,b,c:"<<endl; cin>>a>>b>>c;s= (a+b+c)/2 ;area=sqrt(s*(s-a)*(s-b)*(s-c));cout<<"三角形面积为:"<<area<<endl;}第二章一、选择题1.B2.A3.A4.C5.B6.C7.B8.B9.B 10.D 11.B 12.D 13.D 14.D 15.A 16.D 17.C 18.C 19.A 20.C 21.B 22.A 23.D 24.A 25.B 26.B 27.D 28.C 29.B 30.D 31.B 32.A 33.C 34.C二、填空题1. 选择结构循环结构2. if3. break continue4. 循环语句switch语句5. 循环语句6. 1 1 结束循环体的语句7. 60,308. d=209. 110. 1011. y=0 y=5 y=30 error12. 11 713. 2 , 314. 2 , 315. #16. s=6,k=517. 5 7 111318. 0246819.* * * * * ** ** ** * * * * *20. (1) Year / 4 !=0(2) Year / 100 !=0(3) Year / 400 !=021. (1)a<b(2) t=a;a=d;d=t;(3) b<d22. (1) c+=5 (2) c=c-2123. (1) ch>='a'&&ch<='z'|| ch>='A'&&ch<='Z'(2) ch-=32(3) ch+=3224. (1) x>2&&x<=10(2)x>-1(3) y=-125. (1)int i=200(2) i<=300(3) i/100+i/10%10+i%10==12&&(i/100)*(i/10%10)*(i%10)==42 26. (1) i<=100(2) t=s/i(3) s=-s27. (1) n (或n!=0)(2) n<0(3) n/=1028. (1) n=k*k(2) b=n/10%10(3) a==b||b==c||c==a29. (1) i<=30(2) a=a*230. (1) m=n(2) m(3) k>s31. (1) x1(2) x1=x232. (1)d<=4(2) a+i*d三、编程题1.#include<iostream.h>void main(){ int x,y,t,m,n;cout<<"输入两个整数(x,y):"<<endl;cin>>x>>y;if(x>y) {t=x;x=y;y=t;}for(int i=x;i>0;i--)if(x%i==0&&y%i==0){m=i;break;}for( i=y;;i++)if(i%x==0&&i%y==0){n=i;break;}cout<<x<<"和"<<y<<"的最大公约数是:"<<m<<endl;cout<<x<<"和"<<y<<"的最小公倍数是:"<<n<<endl;}2.# include <iostream.h>void main(void){ int s;char score;do{cout <<"请输入百分制分数(0 - 100):";cin >> s;}while(s<0||s>100);switch (s/10) {case 10 :case 9 : score='A';break;case 8 : score='B';break;case 7 : score='C';break;case 6 : score='D';break;default : score='E';break;}cout<<"百分制分数为:"<<s<<'\t'<<"五分制分数为:"<<score<<endl; }3.#include<iostream.h>#include<math.h>void main(void){ float a,b,c;cout<<"输入三角形的三边:";cin>>a>>b>>c;if(a+b>c&&b+c>a&&c+a>b){ if(a==b&&b==c)cout<<"三角形是等边三角形。

江科大实习报告

江科大实习报告

江科大实习报告篇一:江科大实习报告院江苏科技大学认识实习报告班级:12404012 学号:1240401219 姓名:朱换英指导教师:孟庆良实习时间:XX年10月16-18XX年 10 月19 日认识实习报告一、实习目的大多数人对本专业的认识有限,尤其是很多的人对这个专业的理解还比较抽象,不能很好的感受到这个专业的用途和魅力,尤其在理论联系实际这一环节,对很多人来说是一个缺陷和弱势。

因此,在大二开学初学院曾为我们组织了一个星期的认识实习,但这对于对工商管理专业的学生来说,是远远不够的,再加上由于大二所学知识还不多,尤其涉及本专业知识不多,所以这次的实习就显得尤为重要了。

为了加深同学们对课外知识的了解与运用,理论联系实际;本次认识实习以认识各大集团的运营以及了解各企业的文化为主要目的。

二、实习安排依次参观惠龙港国际,沃德集团以及镇江市醋博物馆,期间观看企业文化与发展的相关视频。

三、实习要求要注意安全,有安全帽的要戴工作帽,在工厂不得打闹嬉戏,服从带队教师的统一指挥。

四、实习主要过程及典型实习案例认识与分析因为学校认识实习的课程安排,我平生第一次走进了各种各样的集团企业。

在为期一个星期的认识实习期间,按计划我们依次参观了惠龙港国际、沃德集团以及镇江市醋博物馆。

下面就对三个参观地点做简单的介绍。

一:惠龙港国际。

惠龙港国际是上海期货交易所批准的目前中国最大钢材期货交割库;江苏省发改委批准“江苏省现代服务业(钢铁)集聚区”;江苏省经贸委批准的“江苏省钢铁物流基地”;江苏海关批准的“对外公共开放港区”、“货物公共保税仓库”、“货物出口监管仓库”;中国物流采购联合会评定的“中国AAAA级物流企业”;国务院发展研究中心、中国物流采购联合会、中国钢铁工业协会认定的“中国钢铁物流运营模式及其支撑技术标准实验示范基地”。

不仅如此,惠龙港国际地处长江和京杭大运河的十字交汇处,长江深水航道的终点段,常年可航行5万吨巨轮;长江深水航道三期整治工程结束后10万吨级海轮可乘潮进出惠龙港;北面码头区与南面京沪铁路六摆渡货运站相距只有1200米,具有江海河、水铁公六位一体的交通运输优势,是国内外钢铁转运、分销、集散、出口及期货交割最经济、最理想的位置。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

江苏科技大学课程实践报告设计题目: 程序设计(VC++)实践设计时间至学院(系):专业班级:学生姓名:学号指导老师:2013年12月任务一一、实践任务2.试建立一个类SP,求,另有辅助函数power(m,n)用于求。

二、详细设计1、类的描述与定义(1)私有数据成员● int n,k:存放公式中n和k的值;(2)公有成员函数● SP(int n1,int k1):构造函数,初始化成员数据n和k。

● int power(int m, int n):求m n。

● int fun( ):求公式的累加和。

● void show( ):输出求得的结果。

2、主要函数设计在主程序中定义对象s,对该类进行测试。

三、源程序清单#include <iostream.h>class SP{int n,k;public:SP(int n1,int k1){n=n1;k=k1;}int power(int m,int n){int p=1;for (int i=1;i<n+1;i++)p*=m;return p;}int fun(){int s=0;for (int i=1;i<n+1;i++)s+=power(i,k);return s;}void A(){cout<<"n="<<n<<",k="<<k<<",f(n,k)="<<fun()<<endl;}};void main(){SP a(3,3);a.power(3,3);a.fun();a.A();}四、实践小结掌握用循环语句求m^n,和m!,熟练掌握函数的调用。

五、运行结果任务三一、实践任务3.建立一个类MOVE,不进行排序,将数组中小于平均值的元素放到数组的左边,大于平均值的元素放到数组的右边。

二、详细设计1、类的描述与定义(1)私有数据成员● float array[20]:一维整型数组。

● int n:数组中元素的个数。

(2)公有成员函数● MOVE(float b[],int m):构造函数,初始化成员数据。

● void average():输出平均值,并将数组中的元素按要求重新放置。

● void print():输出一维数组。

2、主要函数设计在主程序中用数据{1.3,6.2,3,9.1,4.8,7.4,5.6,9.2,2.3}对该类进行测试。

三、源程序清单四、实践小结应熟练掌握数组与指针的应用。

五、运行结果任务四一、实践任务4.建立一个类MOVE,将数组中最大元素的值与最小元素的值互换。

二、详细设计1、类的描述与定义(1)私有数据成员● int *array:一维整型数组。

● int n:数组中元素的个数。

(2)公有成员函数● MOVE(int b[],int m):构造函数,初始化成员数据。

● void exchange():输出平均值,并将数组中的元素按要求重新放置。

● void print():输出一维数组。

● ~MOVE():析构函数。

2、主要函数设计在主程序中用数据{21,65,43,87,12,84,44,97,32,55}对该类进行测试。

三、源程序清单四、实践小结学会求数组中最大元素与最小元素方法,并实现交换。

五、运行结果任务六一、实践任务6.定义一个字符串类String,实现判断该字符串是否为回文字符串。

所谓回文字符串,是指该字符串左右对称。

例如字符串“123321”是回文字符串。

二、详细设计1、类的描述与定义(1)私有数据成员● char *str;● int y:标记是否为回文字符串。

(2)公有成员函数● String (char *s) :构造函数,用给定的参数s初始化数据成员str。

y初始化为0。

● void huiwen () :判断str所指向的字符串是否为回文字符串。

● void show( ) :在屏幕上显示字符串。

2、主要函数设计在主程序中定义字符串char s[]=”ababcedbaba”作为原始字符串。

定义一个String类对象test,用s初始化test,完成对该类的测试。

三、源程序清单四、实践小结掌握判断回文字符串的一般形式。

五、运行结果任务十一一、实践任务11.建立一个STRING,将一个字符串交叉插入到另一个字符串中(假定两字符串等长)。

例如将字符串“abcde” 交叉插入字符串“ABCDE”的结果为“aAbBcCdDeE”或“AaBbCcDdEe”。

二、详细设计1、类的描述与定义(1)私有数据成员● char str1[80] :存放被插入的字符串。

● char str2[40] :存放待插入的字符串。

(2)公有成员函数● STRING (char *s1, char *s2 ):构造函数,用s1和s2初始化str1和str2。

● void process():将str2中的字符串插入到str1中。

void print():输出插入后的字符串。

2、主要函数设计在主程序中定义STRING类的对象test对该类进行测试。

三、源程序清单#include<iostream.h>#include<string.h>class STRING{private:c har str1[80];//存放被插入的字符串;c har str2[40];//存放待插入的字符串;public:S TRING(char*s1,char*s2){strcpy(str1,s1);strcpy(str2,s2);}v oid process();v oid print();};void STRING::process(){i nt i,j;i nt n=strlen(str1);i f(strlen(str2)>strlen(str1)){//当待插入的字符串ABCDEFG比被插入的字符串abcde长或相等时,逻辑算法:abcde->a b c d e->空格处依次插入ABCDEFG->aAbBcCdDeEFG;for(i=n-1;i>0;i--){str1[i+i]=str1[i];//被插入的字符串由最后一位开始各位向后移动i位;}for(i=1,j=0;i<2*n;i+=2,j++){str1[i]=str2[j];//在空出的位置处依次插入字符串;}i--;for(;j<=strlen(str2);j++,i++){str1[i]=str2[j];//将过长额字符串放入被插入的字符串尾部,完成插入;}}e lse//当待插入的字符串abcde比被插入的字符串ABCDEFG短时,逻辑算法:ABCDEFG->A B C D E FG->空格处插入abcde->AaBbCcDdEeFG;{for(i=n;i>strlen(str2)-1;i--){str1[i+strlen(str2)]=str1[i];//比待插入的字符串长的部分均向后移strlen(str2)位;}for(i=strlen(str2)-1;i>0;i--){str1[i+i]=str1[i];//之前的部分均向后移i位;}for(i=1,j=0;i<2*strlen(str2);i+=2,j++){str1[i]=str2[j];//将待插入的字符串插入空格处,完成插入;}}}void STRING::print()//输出插入后的字符串{c out<<"插入后的字符串为:"<<str1<<endl;}void main()//测试{S TRING test("ABCDE","abcde");t est.process();t est.print();}四、实践小结发现字符插入的规律,再依次放入相应字符位置。

五、运行结果任务十二一、实践任务12.建立一个STRING,将一个字符串交叉插入到另一个字符串中(假定两字符串不等长)。

例如将字符串“abcde” 交叉插入字符串“ABCDEFG”的结果为“aAbBcCdDeEFG”或“AaBbCcDdEeFG”。

二、详细设计1、类的描述与定义(1)私有数据成员● char str1[60] :存放被插入的字符串。

● char str2[40] :存放待插入的字符串。

● char str3[100] :存放插入后的字符串。

(2)公有成员函数● STRING (char *s1, char *s2 ):构造函数,用s1和s2初始化str1和str2。

● void process():将str2中的字符串插入到str1中,存放到str3中。

● void print():输出插入后的字符串。

2、主要函数设计在主程序中定义STRING类的对象test对该类进行测试。

三、源程序清单#include<iostream.h>#include<string.h>class STRING{private:c har str1[60];c har str2[40];c har str3[100];public:S TRING(char*s1,char*s2){strcpy(str1,s1);strcpy(str2,s2);}v oid process();v oid print();};void STRING::process(){i nt i,j;i nt n=strlen(str1);i f(strlen(str2)>strlen(str1)){//当待插入的字符串ABCDEFG比被插入的字符串abcde长或相等时,逻辑算法:abcde->a b c d e->空格处依次插入ABCDEFG->aAbBcCdDeEFG;for(i=n-1;i>0;i--){str1[i+i]=str1[i];//被插入的字符串由最后一位开始各位向后移动i位;}for(i=1,j=0;i<2*n;i+=2,j++){str1[i]=str2[j];//在空出的位置处依次插入字符串;}i--;for(;j<=strlen(str2);j++,i++){str1[i]=str2[j];//将过长额字符串放入被插入的字符串尾部,完成插入;}}e lse//当待插入的字符串abcde比被插入的字符串ABCDEFG短时,逻辑算法:ABCDEFG->A B C D E FG->空格处插入abcde->AaBbCcDdEeFG;{for(i=n;i>strlen(str2)-1;i--){str1[i+strlen(str2)]=str1[i];//比待插入的字符串长的部分均向后移strlen(str2)位;}for(i=strlen(str2)-1;i>0;i--){str1[i+i]=str1[i];//之前的部分均向后移i位;}for(i=1,j=0;i<2*strlen(str2);i+=2,j++){str1[i]=str2[j];//将待插入的字符串插入空格处,完成插入;}}s trcpy(str3,str1);//将str2中的字符串插入到str1中,存放到str3中;}void STRING::print()//输出插入后的字符串{c out<<"插入后的字符串为:"<<str3<<endl;}void main(){S TRING test("abcde","ABCDEFG");t est.process();t est.print();}四、实践小结发现字符插入的规律,再依次放入相应字符位置。

相关文档
最新文档