C 上机实验报告 实验四-2023修改整理_第1页
C 上机实验报告 实验四-2023修改整理_第2页
C 上机实验报告 实验四-2023修改整理_第3页
C 上机实验报告 实验四-2023修改整理_第4页
C 上机实验报告 实验四-2023修改整理_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

千里之行,始于足下让知识带有温度。第第2页/共2页精品文档推荐C上机实验报告实验四试验四数组、指针与字符串

1.试验目的

1.学习使用数组

2.学习字符串数据的组织和处理

3.学习标准C++库的使用

4.把握指针的使用办法

5.练习通过Debug观看指针的内容及其所指的对象的内容

6.联系通过动态内存分配实现动态数组,并体味指针在其中的作用

7.分离使用字符数组和标准C++库练习处理字符串的办法

2.试验要求

1.编写并测试3*3矩阵转置函数,使用数组保存3*3矩阵。

2.使用动态内存分配生成动态数组来重新完成上题,使用指针实现函数的功能。

3.编程实现两字符串的衔接。要求使用字符数组保存字符串,不要使用系统函数。

4.使用string类定义字符串对象,重新实现上一小题。

5.定义一个Employee类,其中包括姓名、街道地址、城市和邮编等属性,以及change_name()和display()等函数。Display()显示姓名、街道地址、城市和邮编等属性,change_name()转变对象的姓名属性。实现并测试这个类。

6.定义包含5个元素的对象数组,每个元素都是Employee类型的对象。

7.(选做)修改试验4中的选做试验中的people(人员)类。具有的属性如下:姓名charname[11]、编号charnumber[7]、性别charsex[3]、生日birthday、身份证号charid[16]。其中“诞生日期”定义为一个“日期”类内嵌对象。用成员函数实现对人员信息的录入和显示。要求包括:构造函数和析构函数、拷贝构造函数、内联成员函数、聚拢。在测试程序中定义people类的对象数组,录入数据并显示。

3.试验内容及试验步骤

1.编写矩阵转置函数,输入参数为3*3整形数组,使用循环语句实现矩阵元素的行列对调,注重在循环语句中毕竟需要对哪些元素举行操作,编写main()函数实现输入、输出。程序名:lab6_1.cpp。

2.改写矩阵转置函数,参数为整型指针,使用指针对数组元素举行操作,在main()函数中使用new操作符分配内存生成动态数组。通过Debug观看指针的内容及其所指的对象中的内容。程序名:lab6_2.cpp。

3.编程实现两字符串的衔接。定义字符数组保存字符串,在程序中提醒用户输入两个字符串,实现两个字符串的衔接,最后用cout语句显示输出。程序名:lab6_3.cpp。用cin实现输入,注重,字符串的结束标志是ASCII码0,使用循环语句举行字符串间的字符拷贝。

4.使用string类定义字符串对象,编程实现两字符串的衔接。在string类中已重载了运算符“+=”实现字符串的衔接,可以使用这个功能。程序名:lab6_4.cpp。

5.在employee.h文件中定义Employee类。Employee类具有姓名、街道地址、城市和邮编等私有数据成员,在成员函数中,构造函数用来初始化全部数据成员;display()中使用cout显示姓名、街道地址、城市和邮编等属性,change_name()转变类中表示姓名属性的数据成员。在主程序中定义这个类的对象并对其举行操作。程序名:lab6_5.cpp。

6.使用上一小题中定义的Employee类定义对象数组emp[5],使用循环语句把数据显示出来。程序名:lab6_6.cpp。

4.思量题

1.如何存储和处理字符串?

(1)可以利用字符数组存储和处理字符串;

(2)利用系统提供的string类存储和处理字符串。

2.头文件和头文件有何区分?

包含头文件后,可以使用系统的字符串处理函数,如strcat(衔接).strcpy(复制).strcmp(比较).strlen(求长度).strlwr(转换为小写).strupr(转换为大写)等等;而包含头文件后,则可以定义string类,并且使用系统提供的string类操作符对string类型的对象举行处理。

3.有几种办法来表示和处理数组元素?

(1)数组下标办法,如a[i]

(2)指针的办法,如int*p=

inta[3][3];

voidshowTrans()

{

inti,j;

cout>a[i][j];

}

}

}

intmain()

{

input();

showTrans();

return0;

}

2.lab6_2.cpp

#includeusingnamespacestd;

int*p[9];

voidshowTrans()

{

inti,j;

cout>n;

p[i]=newint(n);

}

}

intmain()

{

input();

showTrans();

inti;

for(i=0;i

//不使用系统自带函数strcpyusingnamespacestd;

chara[20]={"/0"},b[20]={"/0"},c[45]={"/0"};intmain()

{

inti,j,k;

cout

#include

usingnamespacestd;

chara[20]={"/0"},b[20]={"/0"};

intmain()

{

cout

#include"Employee.h"usingnamespacestd;

Employee::Employee(){}

Employee::Employee(charn,chara,charc,intp){

name[0]=n;

name[1]='\0';

address[0]=a;

address[1]='\0';

city[0]=c;

city[1]='\0';

postcode=p;

}

Employee::~Employee(){}voidEmployee::change_name()

{

cout>postcode;

}

voidEmployee::display()

{

cout

#include"Employee.h"usingnamespacestd;

Employee::Employee(){}

Employee::Employee(charn,chara,charc,intp)

{

name[0]=n;

name[1]='\0';

address[0]=a;

address[1]='\0';

city[0]=c;

city[1]='\0';

postcode=p;

}

Employee::~Employee(){}

voidEmployee::change_name()

{

cout>postcode;

}

voidEmployee::display()

{

cout

#include

usingnamespacestd;

//Date类

classDate

{

private:

intyear;

intmonth;

intday;

public:

Date();

Date(inty,intm,intd);

Date(Date

~Date();

voidsetDate();

voidshowDate();

};

//People类,其中含Date类型的数据classPeople

{

private:

charname[11];

charnumber[7];

charsex[3];

Datebirthday;

charid[16];

public:

People();

People(char*n,char*nu,char*s,Dateb,char*i);

People(People

~People();

voidsetName();

voidsetNumber();

voidsetSex();

voidsetId();

voidshowPeople();

};

//Date构造函数

Date::Date(){}

Date::Date(inty,intm,intd)

{

year=y;

month=m;

day=d;

}

Date::Date(Date

month=p.month;

day=p.day;

}

//析构

inlineDate::~Date(){}

//Date成员函数,设置诞生年代日voidDate::setDate()

{

inty,m,d;

cout>y;

cout>m;

cout>d;

year=y;

month=m;

day=d;

}

//Date内联成员函数,输出年代日

inlinevoidDate::showDate()

{

cout<<"Birthdayis"<<year<<"年"<<month<<"月"<<day<<"日"<<endl;

}

//People构造函数

People::People(){};

People::People(char*n,char*nu,char*s,Dateb,char*i)

{

strcpy(name,n);

strcpy(number,nu);

strcpy(sex,s);

birthday=b;

strcpy(id,i);

}

People::People(People

strcpy(number,p.number);

birthday=p.birthday;

strcpy(id,p.id);

}

//People析构

inlinePeople::~People(){}

//People成员函数,设置各类数据

voidPeople::setName()

{

cout<<"Pleaseinputtheperson'sname:";

cin.getline(name,11,'\n');

}

voidPeople::setNumber()

{

cout<<"Inputnumber:";

cin.getline(number,7,'\n');

}

voidPeople::setSex()

{

cout<<"Inputsex:";

cin.getline(sex,3,'\n');

}

voidPeople::setId()

{

cout<<"Inputid:";

cin.getline(id,16,'\n');

}

//People内联成员函数,输出人员信息

inlinevoidPeople::showPeople()

{

cout<<"Name:"<<name<<endl;

cout<<"Number:"<<number<<endl;

cout<<"Sex:"<<sex<<endl;

cout<<"ID:"<<id<<endl;

}

intmain()

{

inti;

charspaceA;

//生成3个Date类型的对象

Datedate[3]={Date(0,0,0),Date(0,0,0),Date(0,0,0)};

//生成3个People类型的对象

Peopleperson[3]={People("0","0","0",date[0],"0"),People("0","0","0",date[1],"0"),People("0","0","0",date[2],"0")};

//设置这3个对象的各

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论