ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:124.67KB ,
资源ID:28729404      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/28729404.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C++语言程序设计实验答案数组指针与字符串.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C++语言程序设计实验答案数组指针与字符串.docx

1、C+语言程序设计实验答案数组指针与字符串实验06 数组、指针与字符串(4学时)(第6章 数组、指针与字符串)一、实验目的(1) 学习使用数组数据对象。(2) 学习字符串数据的组织和处理。(3) 学习标准C+库的使用。(4) 掌握指针的使用方法。(5) 练习通过调试功能观察指针的内容及其所指的对象的内容。(6) 练习通过动态内存分配实现动态数组,并体会指针在其中的作用。(7) 分别使用字符数组和标准C+库练习处理字符串的方法。二、实验任务6_1(习题6-25)编写并测试33矩阵转置函数,使用数组保存33矩阵。6_2(习题6-26)使用动态内存分配生成动态数组来重新完成上题(n阶方阵),使用指针实

2、现函数的功能。6_3 编程实现两字符串的连接。要求使用字符数组保存字符串,不要使用系统函数。6_4 使用string类声明字符串对象,重新实现上一小题。6_5(习题6-27)声明一个Employee类。其中包括姓名、街道地址、城市和邮编等属性,以及change_name()和display()等函数。display()显示姓名、街道地址、城市和邮编等属性,change_name()改变对象的姓名属性,实现并测试这个类。6_6(习题6-27)声明包含5个元素的对象数组,每个元素都是Employee类型的对象。6_7 修改实验4中的people(人员)类。具有的属性如下:姓名char name11

3、、编号char number7、性别char sex3、生日birthday、身份证号char id16。其中“出生日期”声明为一个“日期”类内嵌子对象。用成员函数实现对人员信息的录入和显示。要求包括:构造函数和析构函数、拷贝构造函数、内联成员函数、聚集。在测试程序中声明people类的对象数组,录入数据并显示。三、实验步骤1.(编程,习题6-25)编写矩阵转置函数,输入参数为33整型数组。使用循环语句实现矩阵元素的行列对调,注意在循环语句中究竟需要对哪些元素进行操作,编写main()函数实现输入输出。程序名:lab6_1.cpp。参考运行结果: 程序及运行结果:/lab6_1.cpp#inc

4、lude using namespace std;void move(int matrix3) int temp; for(int i=0;i3;i+) for(int j=0;ji;j+) temp=matrixij; matrixij=matrixji; matrixji=temp; void main() int i,j,mat33; cout输入33矩阵endl; for(i=0;i3;i+) cout第i+1行:; for(j=0;jmatij; coutn输入的33矩阵为:endl; for(i=0;i3;i+) for(j=0;j3;j+) coutmatij ; coutend

5、l; move(mat); cout转置后的矩阵为:endl; for(i=0;i3;i+) for(j=0;j3;j+) cout*(*(mat+i)+j) ;/指针形式 coutendl; 2.(编程,习题6-26)编写nn阶矩阵转置函数,参数为整型指针。使用指针对数组元素进行操作,在main()函数中使用new操作符分配内存生成动态数组。通过调试功能观察指针的内容及其所指的对象中的内容。程序名:lab6_2.cpp。注:可使用一维动态数组,或二维动态数组。程序及运行结果:(1) 使用一维动态数组表示方阵。/lab6_2.cpp#include #include using namespa

6、ce std;void move(int *matrix,int n)/矩阵为整型指针,对应一维数组 int temp; for(int i=0;in;i+) for(int j=0;ji;j+) temp=matrixi*n+j; matrixi*n+j=matrixj*n+i; matrixj*n+i=temp; void main() int i,j,n,*mat; coutn; mat=new intn*n; cout输入nn矩阵endl; for(i=0;in;i+) cout第i+1行:; for(j=0;jmati*n+j;/数组形式 coutn输入的矩阵为:endl; for(

7、i=0;in;i+) for(j=0;jn;j+) coutsetw(4)mati*n+j; coutendl; move(mat,n); cout转置后的矩阵为:endl; for(i=0;in;i+) for(j=0;jn;j+) coutsetw(4)*(mat+i*n+j);/指针形式 coutendl; delete mat;(2) 使用二维动态数组表示方阵。(参考实验提示)/lab6_2.cpp#include #include using namespace std;void move(int *matrix,int n)/矩阵为指向整型指针的指针,对应二维数组 int temp

8、; for(int i=0;in;i+) for(int j=0;ji;j+) temp=matrixij; matrixij=matrixji; matrixji=temp; void main() int i,j,n,*mat; coutn; mat=new int*n; for(i=0;in;i+) mati=new intn; cout输入nn矩阵endl; for(i=0;in;i+) cout第i+1行:; for(j=0;jmatij;/数组形式 coutn输入的矩阵为:endl; for(i=0;in;i+) for(j=0;jn;j+) coutsetw(4)matij; c

9、outendl; move(mat,n); cout转置后的矩阵为:endl; for(i=0;in;i+) for(j=0;jn;j+) coutsetw(4)*(*(mat+i)+j);/指针形式 coutendl; delete mat;3.(编程)实现两字符串的连接。声明字符数组保存字符串,在程序中提示用户输入两个字符串,实现两个字符串的连接,最后用cout语句显示输出。程序名:lab6_3.cpp。用cin实现输入,注意,字符串的结束标志是ASCII码0,使用循环语句进行字符串间的字符拷贝。/ 字符串的结束标志0参考运行结果: 程序及运行结果:/lab6_3.cpp#include

10、using namespace std;void strLL(char *a,char *b,char *c);void main() int i; char a10,b10,c20; couta; cout显示内存中的字符串a:; for(i=0;i10;i+) if(ai) coutai; /ai不为0 else cout0;/转义 break; coutendl; coutb; cout显示内存中的字符串b:; coutb0endl; strLL(a,b,c); coutn显示内存中的连接字符串c:; for(i=0;i20;i+) if(ci) coutci; else cout0;

11、break; coutendl;void strLL(char *a,char *b,char *c) int i,j; for(i=0;ai;i+) ci=ai;/循环直到ai为0 for(j=0;bj;i+,j+) ci=bj; ci=0;4.(编程)使用string类声明字符串对象,实现两字符串的连接。在string类中已重载了运算符“+=”实现字符串的连接,可以使用这个功能。程序名:lab6_4.cpp。 程序及运行结果:/lab6_4.cpp#include /使用C+中的string#include using namespace std;void main() string s1

12、,s2; couts1; couts2; s1+=s2; couts1+s2 = s1endl;5.(编程,习题6-27)声明Employee类并应用。在employee.h文件中声明Employee类。Employee类具有姓名、街道地址、城市和邮编等私有数据成员,都可以用字符数组来表示。成员函数:构造函数 用来初始化所有成员数组,对字符数组的赋值可以使用字符串拷贝函数strcpy(char *, char *name);display() 使用cout显示姓名、街道地址、城市和邮编等属性;change_name() 改变类中表示姓名属性的字符数组类型的数据成员。在主程序中声明这个类的对象并

13、对其进行操作。程序名:lab6_5.cpp。参考运行结果: 程序及运行结果:/lab6_5employee.h#include /使用C中的string#include using namespace std;class Employeeprivate: char name10,street20,city10,mail7;/姓名、街道、城市、邮编public: Employee(char *n,char *s,char *c,char *m); void display(); void change_name(char *n);Employee:Employee(char *n,char *s

14、,char *c,char *m) strcpy(name,n); strcpy(street,s); strcpy(city,c); strcpy(mail,m);void Employee:display() cout姓名:nameendl; cout街道:streetendl; cout城市:cityendl; cout邮编:mailendl;void Employee:change_name(char *n) strcpy(name,n); /lab6_5.cpp#include lab6_5employee.hvoid main() Employee emp(张山,海甸三西路13号,

15、海口市,570228); emp.display(); emp.change_name(李世); coutendl; emp.display();6.(编程,习题6-27)使用上一小题中的Employee类声明对象数组emp5。使用循环语句把数据显示出来。程序名:lab6_6.cpp。参考运行结果: 程序及运行结果:/lab6_6.cpp#include lab6_5employee.h#include using namespace std;void main() Employee emp5= Employee(n1,s1,c1,m1), Employee(n2,s2,c2,m2), Emp

16、loyee(n3,s3,c3,m3), Employee(n4,s4,c4,m4), Employee(n5,s5,c5,m5) ; for(int i=0;i5;i+) empi.display(); coutendl; 7.(编程)修改实验4中的people(人员)类。程序名:lab6_7.cpp。参考运行结果: 程序及运行结果:(1) lab6_7.h:People(人员)类的声明及成员函数的实现/lab6_7.h#include #include using namespace std;class Dateprivate: int yy,mm,dd;public: Date() Dat

17、e(Date &d) : yy(d.yy),mm(d.mm),dd(d.dd)/增添 Date() int Getyy()const return yy; int Getmm()const return mm; int Getdd()const return dd; void Setyy(int y) yy=y; void Setmm(int m) mm=m; void Setdd(int d) dd=d; ;class Peopleprivate: char name11; /姓名,增添 char number7; /编号,改为数组 char sex3; /男或女,改为数组 Date bir

18、thday; /出生日期 char id16; /身份证号,改为数组public: People() People(People &p); People() void Getname(char na) strcpy(na,name); void Getnumber(char nu) strcpy(nu,number); void Getsex(char se)strcpy(se,sex); int Getbirthyy()const return birthday.Getyy(); int Getbirthmm()const return birthday.Getmm(); int Getbi

19、rthdd()const return birthday.Getdd(); void Getid(char d) strcpy(d,id); void Setname(char na) strcpy(name,na); void Setnumber(char nu) strcpy(number,nu); void Setsex(char se)strcpy(sex,se); void Setbirthyy(int y) birthday.Setyy(y); void Setbirthmm(int m) birthday.Setmm(m); void Setbirthdd(int d) birt

20、hday.Setdd(d); void Setid(char d) strcpy(id,d); void input(); void output();People:People(People &p):birthday(p.birthday) strcpy(name,p.name); strcpy(number,p.number); strcpy(sex,p.sex); strcpy(id,p.id);inline void People:input() coutname; coutnumber; coutsex; coutymd; Setbirthyy(y); Setbirthmm(m);

21、Setbirthdd(d); coutid;inline void People:output() cout姓名:namen编号:numberendl; cout性别:sexendl; cout出生日期:Getbirthyy()年 Getbirthmm()月Getbirthdd()日endl; cout身份证号:idendl;(2) lab6_7.cpp:主函数(输入、输出和拷贝构造函数测试)/lab6_7.cpp#include lab6_7.hvoid main() People p; p.input(); coutendl; p.output(); People pp(p); coute

22、ndl; pp.output();(3) 结果四、实验提示步骤2提示二维数组动态分配空间示例1 mn矩阵#includeusing namespace std;void main() int i,j,m,n,*A; coutmn; A=new int*m; /m行 for(i=0;im;i+) Ai=new intn; /n列 cout输入mn矩阵endl; for(i=0;im;i+) cout第i+1行:; for(j=0;jAij;/数组形式 coutn输入的矩阵为:endl; for(i=0;im;i+) for(j=0;jn;j+) cout Aij; coutendl; 示例2 不规范的矩阵#includeusing namespace std;void main() int *a=new int*2; a0=new int3; a1=new int2; a00=11; a01=12; a02=13; a10=21; a11=22; couta00 a01 a02endl; couta10 a11 endl;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1