[试题]

阅读以下说明和C++程序,将应填入(n)处的字句写在对应栏内。

(说明)

字符串在程序设计中扮演着重要角色。现需要设计字符串基类string,包含设置字 符串、返回字符串长度及内容等功能。另有一个具有编辑功能的串类edlt_string,派生于string,在其中设置一个光标,使其能支持在光标处的插入、删除操作。

(程序)

include <iostream.h>

include <stdio.h>

include <string.h>

class string

{

int length;

char *data;

public:

int get_length() {return length;}

char *get_data() {return data;}

~string() {delete data;}

int set data(int in_length, char *in_data);

int set_data(char *data);

void print() {cout<<data<<endl;}

};

class edit_string: public string

{

int cursor;

public:

int get_cursor() {return cursor;}

void move_cursor(int dis) {cursor=dis;}

int add_data(string *new_data);

void delete_data(int num);

};

int string::set_data(int in_length,char *in_data)

{

length=in_length;

if(!data)

delete data;(1)

strcpy(data,in_data);

return length;

}

int string::set data(char *in_data)

{(2)

if(!data)

delete data;(1)

strcpy(data,in_data);

return length;

}

int edit_string::add_data(string *new_data)

{

int n,k,m;

char *cp,*pt;

n=new_data->get_length();

pt=new_data->get_data();

cp=this->get_data();

m=this->get_length();

char *news=new char[n+m+1];

for(int i=0; i<cursor; i++)

news[i]=cp[i];

k=i;

for(int j=0; j<n; i++,j++)

news[i]=pt[j];

cursor=i;

for(j=k; j<m; j++,i++)(3)

news[i]='/0';(4)

delete news;

return cursor;

}

void edit string::delete_data( int num)

{

int m;

char *cp;

cp=this->get_data();

m=this->get_length();

for(int i=cursor; i<m; i++)(5)

cp[i]='/0';

}

参考答案与解析:

相关试题

阅读以下说明和C£«£«程序,将应填入(n)处的字句写在对应栏内。[说明] 以下

[试题]阅读以下说明和C++程序,将应填入(n)处的字句写在对应栏内。[说明]以下程序的功能是统计学生成绩,包括输入学生的姓名和成绩,按成绩从高到低排列打印输出,对前百分之七十的学生定为合格(PASS),而后百分之三十的学生定为不合格(FAIL)。例如,当输入4名学生的姓名和成绩“Alice 67 Mary 90 Tom 56 John 88”后,程序的执行结果如下:姓名 成绩 合格否Mary 90 PASSJohn 88 PASSA.lice 67 FAILTom 56 FAIL[C++程序]inclu

  • 查看答案
  • 阅读以下说明和C£«£«程序,将应填入(n)处的字句写在对应栏内。 (说明) 设

    [试题]阅读以下说明和C++程序,将应填入(n)处的字句写在对应栏内。(说明)设计一个评选优秀教师和学生的程序,其类结构如图6所示。当输入一系列教师或学生的记录后,将优秀学生及教师的姓名列出来。(程序)include<iostream.h>include<stdio.h>enum boolean {False,True}class base{protected:char name[8];public:void getname() {cout<<"姓名:" ;cin>>name; }void print

  • 查看答案
  • 阅读以下说明和C£«£«程序,将应填入(n)处的字句写在对应栏内。(C£«£«程

    [主观题]阅读以下说明和C£«£«程序,将应填入(n)处的字句写在对应栏内。(C£«£«程序)include include阅读以下说明和C++程序,将应填入(n)处的字句写在对应栏内。(C++程序)include < stdio. h >include < string. h >define Max 1000class Bank{int index;char date [Max] [10]; // 记录交易日iht amount[Max]; // 记录每次交易金额,以符号区分存钱和取钱int rest[

  • 查看答案
  • 阅读以下说明和Java程序,将应填入(n)处的字句写在对应栏内。 [说明] 下面

    [试题]阅读以下说明和Java程序,将应填入(n)处的字句写在对应栏内。[说明]下面程序是为汽车市场编制的一个程序的一部分。其中automobile是基类。[Java程序]class MainJava{public static void main(String agr[]){car sedan=new car();sedan.initialize(24,20.0,4);System.out.println ("The sedan can travel"+ (1) +"miles./n");Sys

  • 查看答案
  • 阅读以下说明和C代码,将应填入(n)处的字句写在对应栏内。 [说明] 下面程序用

    [主观题]阅读以下说明和C代码,将应填入(n)处的字句写在对应栏内。[说明]下面程序用来将打乱的单词还原为原来的次序,比如将rty还原为try。单词的原来次序存储于wordlist.txt文件中,原则上可用穷举法(rty对应的穷举为:rty、ryt、try、tyr、ytr、yrt),但考虑到破译速度,采用如下方法。注意到单词列表中不存在组成字符完全相同的单词(如Hack12与Hack21包含完全相同的字符),因此将单词中的字符进行重组再进行比较,例如,try单词重组为rty(按ASCⅡ码顺序),这样不管打

  • 查看答案
  • 阅读以下说明和Java程序,将应填入(n)处的字句写在对应栏内 [说明] 以下程

    [试题]阅读以下说明和Java程序,将应填入(n)处的字句写在对应栏内[说明]以下程序的功能时三角形、矩形和正方形的面积输出。程序由5个类组成:areatest是主类,类Triangle,Rectangle和Square分别表示三角形、矩形和正方形,抽象类Figure提供了一个计算面积的抽象方法。[Java程序]public class areatest {public static viod main(string args[]){F.igure[]Figures={New triangle(2,3,3

  • 查看答案
  • 阅读以下说明和Java代码,将应填入(n)处的字句写在对应栏内(说明) 编写字符

    [主观题]阅读以下说明和Java代码,将应填入(n)处的字句写在对应栏内(说明)编写字符界面的Application程序,接收依次输入的10个整型数据,每个数据一行,将这些数据按升序排序后从系统的标准输出设备输出。(Java代码)import java.iO.*;import java.util.* ;public class compositor{public static void main ( String args[] ){final int NUMBER=10;Vector dataVector

  • 查看答案
  • 阅读下列程序说明和C代码,将应填入(n)处的字句写在对应栏内。 (说明) “背包

    [试题]阅读下列程序说明和C代码,将应填入(n)处的字句写在对应栏内。(说明)“背包问题”的基本描述是:有一个背包,能盛放的物品总重量为S,设有N件物品,其重量分别为w1,w2,…,wn。希望从N件物品中选择若干件物品,所选物品的重量之和恰能放入该背包,即所选物品的重量之和等于S。如下程序均能求得“背包问题”的一组解,其中程序1是“背包问题”的递归解法,而程序2是“背包问题”的非递归解法。(程序1)include<stdio.h>define N 7define S 15int w[N+1]={0,1,4

  • 查看答案
  • 阅读下列程序说明和C代码,将应填入(n)处的字句写在对应栏内。(程序说明) 著名

    [试题]阅读下列程序说明和C代码,将应填入(n)处的字句写在对应栏内。(程序说明)著名的四色定理指出任何平面区域图均可用4种颜色着色,使相邻区域着不同的颜色。本程序对给定的区域图找出所有可能的不超过4种颜色的着色方案。程序中用1~4表示4种颜色。要着色的N个区域用0~N-1编号,区域相邻关系用adj[][]矩阵表示,矩阵的i行j列的元素为1,表示区域i与区域j相邻:矩阵的i行j列的元素为0,表示区域i与区域j不相邻。数组color[]用来存储着色结果,color[i]的值为区域i所着颜色。(程序)incl

  • 查看答案
  • 阅读以下说明和Java源程序,将应填入(n)处的字句写在对应栏内。 (说明) 以

    [试题]阅读以下说明和Java源程序,将应填入(n)处的字句写在对应栏内。(说明)以下程序能够计算三角形、矩形和正方形的周长并输出。程序由5个类组成:AreaTest是主类,类Triangle、Rectangle和Square分别表示三角形、矩形和正方形,抽象类Figure提供了一个计算周长的抽象方法。(程序)public class girthTest{public static void main (String args[]){F.igure[]figures={new Triangle (2,3,

  • 查看答案
  • 阅读以下说明和C£«£«程序,将应填入(n)处的字句写在对应栏内。(说明) 字符