王老师:19139051760(微信同号)  13333709510
联大   青书学堂   文才   和学   现代兴业   安徽教育在线   超星   弘成   广东开放大学   国家开放大学   上海开放大学   含弘慕课 

教育服务

成人高校
成考录取分数线
我要提升学历
提升学历的理由:
升职加薪、积分落户、考研、公务员考试、子女入学、出国留学


成人高考报名入口

当前位置: 首页 > 青书学堂系统 > 东北林业大学> 东北林业大学-高级语言程序设计
 

输入试题:
本题添加时间:2023/4/3 12:59:00
圆梦客服:王老师  19139051760(微信同号)  19139051760(微信同号)
(问答题) 答题步骤: 1.写出详细设计要求。 2.写出程序源代码。 3.把代码写入visual C++ 中,并编译,运行,截图出运行结果来。

定义一个字符串类CString,并设计一个算法实现,给定关键字str1在字符串str中出现时用关键字str2进行替换的功能。(本题10.0分)

答案是:标准答案:
一、详细设计

1、类的描述与定义

(1)私有数据成员

l char *str; 原始字符串。

l char *str1; 目标关键字。

l char *str2; 替换关键字。

l int flag; 标记替换是否完成替换。

(2)公有成员函数

l CString (char *s,char s1[ ],char *s2) :用给定的参数s、s1和s2相对应的初始化数据成员str、str1和str2。flag设置缺省0。

l void Replace () :判断str字符串中是否出现str1,若出现就用str2替换,否则什么都不做。若替换成功了标记flag为1,若替换不成功则标记flag为0。

l void Show( ) :若替换成功,则在屏幕上显示目标关键字、替换关键字和替换后的原始字符串;若不成功则显示原始字符串。

l ~ CString() :释放动态分配的空间。

2、主要函数设计

在主程序中定义字符串char s[]=”I am student, you are student too, we are all student.”作为原始字符串,定义char s1[]=” student”作为目标关键字,定义char s2[]=”teacher”作为替换关键字。定义一个CString类对象test,用s,s1和s2初始化test,完成对该类的测试。



二、源程序代码

#include

#include

class CString{

private:

char*str;//原始字符串

char*str1;//目标字符串

char*str2;//替换关键字

int flag;

public:

CString(char*s,char s1[],char*s2)

{

str=new char[strlen(s)+strlen(s2)+strlen(s1)+1];

str1=new char[strlen(s1)+1];

str2=new char[strlen(s2)+1];

strcpy(str,s);

strcpy(str1,s1);

strcpy(str2,s2);

flag=0;

}

void Replace();

void Show();

~CString()

{ if(str) delete []str;

if(str1) delete []str1;

if(str2) delete []str2;

}

};

void CString::Replace()

{

int i=0;//i记录原始字符串str中第i位开始出现与目标关键字重合;

int k=0,count=0;

while(str[i])

{

while(str[i]!=str1[0]&&str[i]) i++;

if(i
{

if(strncmp(str+i,str1,strlen(str1))==0)k=1;//利用strncmp(,)函数判断目标字符串是否出现于原始字符串,出现则k=1;

}

if(k)//若目标字符串出现,则进行替换;

{

char*turn=new char[strlen(str)+strlen(str1)+strlen(str2)+1];//临时数组指针,用于存放替换的字符串;

strncpy(turn,str,i);

turn[i]=0;

strcat(turn,str2);

strcat(turn,str+i+strlen(str1));

strcpy(str,turn);

delete []turn;

i=i+strlen(str2);

k=0;

count++;

}

}

if(count) flag=1;

}

void CString::Show()

{

if(flag) cout<<"目标关键字:"<
else cout<<"原始字符串:"<
}

void main()

{

char s[]="I am student,you are student too,we are all student.";

char s1[]="student";

char s2[]="teacher";

CString test(s,s1,s2);

test.Replace();

test.Show();

}







三、运行结果

上传图片

出自 东北林业大学-高级语言程序设计  青书学堂系统

东北林业大学

更多试题>>>>
1、词法分析的方法有( )。 A. 优先矩阵法 B.优先数法 C.状态矩阵法 D.递归子程序法 E.邻接表法
2、数据库管理中数据的独立性表现在 ( )。 A.物理独立性 B.逻辑独立性 C.操作独立性 D.维护独立性 E. 设计独立性
3、[多选题,6.5分] 小道消息的目标包括( ) A.建构和缓解焦虑 B.将支离破碎的信息说得完整 C.将群体成员或局外人组成一个整体 D.表明信息发送者的地位或权力 E.强化正式沟通效果
4、[多选题,5.5分] 创造性行为的特点包括( ) A.有用性 B.有效性 C.适应性 D.多变性 E.主动性
5、[多选题,5.5分] 人力资源管理研究的内容包括( ) A.行为规范 B.行为技巧 C.行为方法 D.行为标准 E.行为科学


提升学历-成人高考报名入口 提升学历-成人高考院校名单